2010-02-05  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlPage.cs (IsPopupWindowAllowed): Complete all 3 rules to
	return true. (PopupWindow) Add missing validations (null check, 
	scheme checks). Reset one-popup-per-event counter. Make popup
	works, within limits, when EnableHtmlAccess is false.
	* HtmlPopupWindowOptions.cs: Initialize with default values.
	Add missing validations for negative values. Move "as string"
	logic from HtmlPage and add extra (documented) restrictions 
	against spoofing.

2010-02-03  Chris Toshok  <toshok@ximian.com>

	* HtmlPage.cs (HtmlPage.PopupWindow): implement this.

2010-01-12  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Add support for indexed property setters

2010-01-08  Andreia Gaita  <avidigal@novell.com>

	* HtmlPage.cs: Remove duplicate code for checking scriptable and
	createable types

	* ScriptableObjectWrapper.cs: Move reserved name checks to the wrapper
	where they belong, automatically wrapper types also needs those checks
	when being exposed.
	Fix argument validation (fixes test failures)

2010-01-06  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Implement js wrapper custom methods
	pop, push, reverse, shift, unshift, splice, indexOf, lastIndexOf, toArray
	(see http://msdn.microsoft.com/en-us/library/cc645074(VS.95).aspx)
	Add support for optional arguments in js-to-managed method calls.

2009-12-29  Andreia Gaita  <avidigal@novell.com>

	Initial support for indexed properties, like this[int index]. Only
	getters are supported right now.

	* ScriptableObjectWrapper.cs: Add support for indexed property
	getters via "item" property.
	Add support for accessing Count and Length properties via a
	single "length" property.


2009-12-14  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Add manual property "length" mapping to
	ICollection.Count

2009-10-05  Sebastien Pouliot  <sebastien@ximian.com>

	* BrowserInformation.cs: Do not use a catch-all to parse Version. 
	Avoid re-creating the same Version object since it's immutable.
	* HtmlObject.cs: Seal internal class
	* HttpUtility.cs: Remove unused code
	* ScriptableObjectEventInfo.cs: Seal internal class
	* ScriptableObjectWrapper.cs: Avoid multiple casts
	[Found using Gendarme]

	r: rolf

2009-09-30  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlPage.cs: Add extra CheckHtmlAccess check on Register* 
	methods since they are not needed (i.e. they were not missing)
	and add a comment about the fact. Fix DRT 364 and 365

2009-09-30  Sebastien Pouliot  <sebastien@ximian.com> 

	* HtmlObject.cs, HtmlWindow.cs, ScriptableObjectWrapper.cs,
	ScriptObject.cs: Replace WebApplication by PluginHost.Handle

	r: andreia

2009-09-30  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlPage.cs: Add missing validations for RegisterCreateableType, 
	UnregisterCreateableType and RegisterScriptableObject. Move 
	storage for them here (from old, 1.1 times, WebApplication).
	* ScriptableObjectWrapper.cs: Use HtmlPage instead of 
	WebApplication. Seal internal types (gendarme).

	r: rolf

2009-09-29  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlObject.cs: Add missing validations. Throw correct 
	exceptions in Convert

	r: toshok

2009-09-29  Sebastien Pouliot  <sebastien@ximian.com> 

	* HtmlEventArgs.cs: Move critical code into the (already safe 
	critical) caller

	r: rolf

2009-09-28  Sebastien Pouliot  <sebastien@ximian.com> 

	* HtmlDocument.cs: Seal
	* HtmlElement.cs: Seal
	* HtmlPopupWindowOptions.cs: Seal
	* HtmlWindow.cs: Seal
	* HttpUtility.cs: Change to static class
	* ScriptableTypeAttribute.cs: Seal and add [AttributeUsage]
	* ScriptObject.cs: Internalize some methods, Remove [ComVisible]
	on Dispatcher property

2009-09-25  Sebastien Pouliot  <sebastien@ximian.com> 

	* ScriptObject.cs: Add missing validations. Check Invoke[Self]
	result to throw an InvalidOperationException if the invocation
	failed.

	r: andreia

2009-09-25  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlWindow.cs: Add missing validations. Don't pass null (but
	empty) to alert, confirm and prompt so it does not show "undefined"
	in the browser dialogs.

	r: rolf

2009-08-08  Chris Toshok  <toshok@ximian.com>

	* ScriptableObjectWrapper.cs (ObjectFromValue<T>): add a check for
	window objects (using a broken, inadequate check to see if they
	have the "location" property), and return an HtmlWindow object in
	that case.

2009-07-27  Andreia Gaita  <avidigal@novell.com>

	* HtmlElement.cs: fix InvokeInternal calls to call the proper overload
	(Handle should never be passed around on internal calls)

2009-07-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* BrowserInformation.cs: Don't throw an exception if the browser
	has an invalid app version.

2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* ScriptableObjectEventInfo.cs:
	* ScriptableObjectWrapper.cs: Add support for add/removeEventListener.

2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* ScriptableObjectWrapper.cs:
	* ScriptObject.cs: Retain/Release the native object.

2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* ScriptObject.cs: InvokeInternal: add null checks.

2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* HtmlWindow.cs: CreateInstance: add null check.

2009-07-14  Jackson Harper  <jackson@ximian.com>

	* HtmlWindow.cs: This returns a window not an IntPtr.

2009-06-02  Sebastien Pouliot  <sebastien@ximian.com>

	* ScriptableObjectWrapper.cs: Fix compiler warning. Using System.
	Globalization once is enough

2009-05-26  Chris Toshok  <toshok@ximian.com>

	* HtmlWindow.cs (CurrentBookmark): use
	"GetPropertyInternal<IntPtr>" instead of "(IntPtr) GetProperty".
	fixes the initial display at http://demos.telerik.com/silverlight/

2009-05-18  Andreia Gaita  <avidigal@novell.com>

	* BrowserInformation.cs, HtmlDocument.cs, HtmlElement.cs,
	  HtmlObject.cs, ScriptObject.cs, ScriptObjectCollection.cs:
	Simplify calls, avoid passing handles explicitely, exercise
	the public API as much as possible. Move internal helpers
	from HtmlObject to ScriptObject

	* HtmlWindow.cs, ScriptableObjectWrapper.cs:
	Rewrite the type conversion to target the requested type whenever
	possible. Concentrate all the conversions in one place, kill
	duplicated code.

2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* HtmlPage.cs: Updated according to API changes.

2009-05-15  Chris Toshok  <toshok@ximian.com>

	* ScriptableObjectWrapper.cs (ValidateArguments): don't deref
	nulls.
	(InvokeFromUnmanaged): same.

2009-05-15  Andreia Gaita  <avidigal@novell.com>

	* HtmlWindow.cs: Clean up some calls

2009-04-24  Sebastien Pouliot  <sebastien@ximian.com>

	* ScriptObject.cs: handle field should not be visible.

2009-04-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* HtmlObject.cs:
	* ScriptableObjectWrapper.cs: Generate all P/Invoke methods.

2009-04-07  Chris Toshok  <toshok@ximian.com>

	* HtmlWindow.cs: use string.IsNullOrEmpty instead of just checking
	null then assuming string[0] is valid.

2009-04-03  Sebastien Pouliot  <sebastien@ximian.com>

	* HtmlPage.cs: Do not let the "major" properties be usable if 
	EnableHTMLAccess (from the plugin properties) is false.

2009-04-02  Aaron Bockover  <abockover@novell.com>

	* ScriptObject.cs: Add [CLSCompliant (false)] attr to Dispatched to avoid
	gmcs 2.0.1 throwing an error when it should throw a warning

2009-04-01  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs, HtmlObject.cs, HtmlEventArgs.cs: 
	Include the native DOM object (wrapped as a npobj) in the DomEvent 
	callback handler and store it so it can called later by user code.
	Implement StopPropagation, PreventDefault and EventObject.

        * ScriptObject.cs: Remove unused code      

2009-03-31  Jb Evain  <jbevain@novell.com>

	* HtmlObject.cs: adjust to the change in DomEventCallback where
	keyCode and charCode have been added.

2009-03-27  Andreia Gaita  <avidigal@novell.com>

	* HtmlWindow.cs: Implement CreateInstance

2009-03-25  Geoff Norton  <gnorton@novell.com>

	* HtmlWindow.cs: Don't pass managed objects into the mozilla code,
	and lets not open a new window for an api that requests that we 
	stay in the same window.

2009-03-25  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: validation was the wrong way around, 
	fix and make it clear which type it is we're checking

2009-03-21  Andreia Gaita  <avidigal@novell.com>

	* HtmlObject.cs, ScriptObject.cs:
	Implement InvokeSelf using a variant of InvokeInternal with no
	name arg, that calls html_object_invoke_self (same as _invoke but
	with no name arg), that uses NPN_InvokeDefault instead.

2009-03-12  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Use the js binder for setting properties,
	the arg types might not match exactly

2009-03-12  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: make the method overload validator
	more flexible by checking for TypeCode equivalents if the type
	comparison fails

2009-03-11  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: fix argument validation for method 
	overloading, it should be as flexible as the js binder

2009-02-23  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Add support for returning Html* objects
	from js. Store all dynamically created objects in a cache, instead of
	just the ones that are created via RegisterScriptableObject.

2009-02-23  Andreia Gaita  <avidigal@novell.com>

	* ScriptObject.cs: Implement GetProperty(int)

2009-02-19  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Implement method overloading.
	Use names to lookup properties instead of PropertyInfo.
	Fix method return type code to be == 0 when it's void (because
	typeof(void) == object, and the conversion code gets confused trying to
	convert nothing to an object.

	* HtmlObject.cs, HtmlWindow.cs: fix return types from int to double on
	calls that are set to return objects

2009-02-19  Andreia Gaita  <avidigal@novell.com>

	* HtmlWindow.cs: Implement returning values from Eval

2009-02-16  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Register type members by ScriptAlias, if
	defined on the ScriptableMemberAttribute. Don't lowercase names,
	scriptable objects are case sensitive

2009-02-11  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Remove try block on SetProperty, 
	exceptions are caught on SetPropertySafe

2009-02-11  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: When converting from Object to Value, 
	check if the object is scriptable, and create a wrapper for it if
	it's not yet wrapped

2009-02-11  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Add all methods, properties and
	events in lowercase. Fix createManagedObject invocation

2009-02-11  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Expose the CreateObject method
        as scriptable

2009-02-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* ScriptableObjectWrapper.cs: Ensure no exceptions reach
	  native code.

2009-02-04  Jb Evain  <jbevain@novell.com>

	* HtmlDocument.cs: cache the body element.

2009-02-04  Jb Evain  <jbevain@novell.com>

	* HtmlDocument.cs (GetElementById): return null if the element
	is not found.

2009-02-04  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectGenerator.cs: Add scriptable method
	createManagedObject to types that can be created from script.
	Fix createable checks.

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: ... fix the previous commit and put the 
	initializer in the proper place. (*sigh*)

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Add a missing constructor call (that's what I
	get for splitting patches... sorry!)

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: add HasTypes property, to flag if the managed
	object references any types that can be created.

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptObject.cs: Move ScriptableTypes from ScriptObject to
	WebApplication.

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptObject.cs, ScriptableObjectWrapper.cs: Move scriptableObjects
	property to ScriptableObjectWrapper and make it a field, it's only used here
	to look up objects from handles coming from native.

2009-02-02  Andreia Gaita  <avidigal@novell.com>

	* ScriptableObjectWrapper.cs: Split out the wrapper
	class and move it to the S.W.Browser side. It inherits from ScriptObject
	and has it's own pinvokes, so it deserves it's own little place on the tree.

2009-01-29  Jb Evain  <jbevain@novell.com>

	* ScriptObjectCollection.cs: the indexer seems to always return
	HtmlElement, and not a ScriptObject.

2009-01-29  Jb Evain  <jbevain@novell.com>

	* HtmlElement.cs: fix retrieval of Children collection.

2009-01-21  Geoff Norton  <gnorton@novell.com>

	* ScriptObject.cs: Hook up Invoke

2009-01-21  Jb Evain  <jbevain@novell.com>

	* HtmlPage.cs: delay creation of the BrowserInformation object
	until it is demanded.
	* BrowserInformation.cs: implement retrieval of browser information
	by getting them on the navigator object through HtmlObject methods.

2009-01-21  Andreia Gaita  <avidigal@novell.com>

	* HtmlPage.cs, ScriptObject.cs: Initial support for creatable types.
	Implement converters (ScriptObject).

2009-01-21  Andreia Gaita  <avidigal@novell.com>

	* HtmlObject.cs, HtmlDocument.cs, HtmlPage.cs: Implement 
	RegisterScriptableObject, add support for scriptable objects with complex 
	types. Also implement some missing properties.

	* ScriptObject.cs: Now keeps a list of registered objects by 
	handle - NPObject*, not MoonlightObject* (this distinction is significant
      due to the fact that the lookups are done in calls that get NPObjects* as
      arguments (and NPObject* doesn't have a vtable)).

2009-01-16  Jb Evain  <jbevain@novell.com>

	* BrowserInformation.cs: use the updated
	plugin_instance_get_browser_information.

2009-01-16  Jb Evain  <jbevain@novell.com>

	* HtmlWindow.cs: implement Alert, Confirm and Prompt.

2009-01-16  Jb Evain  <jbevain@novell.com>

	* HtmlPage.cs: cache the window, the plugin and the document HtmlObjects.

2008-12-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* HtmlObject.cs: Rework event attaching/detaching a bit:
	  html_object_attach_event now takes a context argument, which is
	  passed to the event callback. ff2/3-dom.cpp: After removing the
	  event listener we delete the wrapper.

2008-11-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* HtmlDocument.cs: Implement Body and DocumentUri.
	* HtmlElement.cs: Implement GetStyleAttribute.
	* ScriptObject.cs: Implement Get/SetProperty.
	* HtmlPage.cs: Implement IsEnabled, Document, Window and Plugin better.

2008-11-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* BrowserInformation.cs, BrowserRuntimeSettings.cs, HtmlDocument.cs,
	  HtmlElement.cs, HtmlElementCollection.cs, HtmlPage.cs,
	  HtmlPopupWindowOptions.cs, HttpUtility.cs,
	  ScriptObjectCollection.cs: Corcompare fixes.

2008-08-14  Geoff Norton  <gnorton@novell.com>

	* Makefile, HtmlTimer.cs: HtmlTimer no longer exiss.

2008-08-13  Larry Ewing  <lewing@novell.com>

	* HtmlDocument.cs: move QueryString here from HtmlPage clean up
	the HtmlPage references.

	* HtmlPage.cs: make this static to match b2 move some methods to
	HtmlDocument.cs.
	
2008-08-13  Geoff Norton  <gnorton@novell.com>

	* HtmlTimer.cs: Update to replace the new pinvoke signature.

2008-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* HtmlWindow.cs: Implemented HtmlWindow.Eval.

2008-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* ScriptableAttribute.cs, ScriptableTypeAttribute.cs, HtmlElement.cs,
	  HtmlEventArgs.cs, BrowserInformation.cs, HtmlElementCollection.cs,
	  HtmlObject.cs, HtmlWindow.cs, HtmlPage.cs, HtmlDocument.cs,
	  ScriptEventHandler.cs, ScriptableMemberAttribute.cs,
	  MouseButtons.cs: Moved and stubbed stuff according to SL2B2.

2008-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* HtmlElement.cs: GetProperty isn't generic anymore, do type casting
	  instead.
	* ScriptableObject.cs, ScriptObject.cs: Rename ScriptableObject to
	  ScriptObject, stub out missing methods.
	* HtmlObject.cs, HtmlPage.cs: Rename ScriptableObject to ScriptObject.
	* HtmlDocument.cs: Fix GetElementByID/Id case mismatch and stub a bit.

2008-07-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* HtmlPage.cs: HtmlWindow is now a public class, and return that from
	  Window.
	* HtmlWindow.cs: Added.

2008-02-20  Sebastien Pouliot  <sebastien@ximian.com>

	* BrowserInformation.cs: Fix pinvoke to avoid crashes in monotone
	* HtmlPage.cs: Remove bandaid (added 2 weeks ago).

2007-10-22  Chris Toshok  <toshok@ximian.com>

	* ScriptableAttribute.cs: sealed.

	* HtmlElementCollection.cs: sealed.

2007-10-16  Jb Evain  <jbevain@novell.com>

	* BrowserRuntimeSettings.cs: use the new function
	plugin_instance_get_browser_runtime_settings to get
	the runtime settings.

2007-08-08  Jackson Harper  <jackson@ximian.com>

	* HtmlPage.cs: implement CurrentBookmark NavigateToBookmark and
	submit the pages 'default' form.

2007-08-07  Jb Evain  <jbevain@novell.com>

	* BrowserRuntimeSettings.cs: NonSerialized on fields
	are not necessary.

2007-08-03  Jackson Harper  <jackson@ximian.com>

	* HtmlElementCollection.cs: Add enumerators.
	* HtmlObject.cs: Remove the 'on' part of event names.  Mozilla
	wants the actual event name, not the method. 

2007-08-03  Jackson Harper  <jackson@ximian.com>

	* HtmlDocument.cs: Add element accessor.

2007-08-03  Jackson Harper  <jackson@ximian.com>

	* HtmlObject.cs: Implement event attaching.  Track the events in a
	dictionary so that we don't lose refs to the callback delegates,
	also this will be used for detaching events.
	* HtmlEventArgs.cs: set values

2007-07-27  Jackson Harper  <jackson@ximian.com>

	* Html*.cs: Implement property getting/setting and method
	invoking.  Put MonoTODOs on the missing bits.
	- Some of this could be moved into ScriptableObject eventually,
	but I am leaving separate to avoid conflicts with the work going
	on there.

2007-07-25  Miguel de Icaza  <miguel@novell.com>

	* HttpUtility.cs: Bring an implementation of the methods needed
	from System.Web.dll

2007-07-23  Miguel de Icaza  <miguel@novell.com>

	* HtmlTimer.cs: Use the plugin functions, pass the plugin handle 

2007-07-20  Miguel de Icaza  <miguel@novell.com>

	* HtmlTimer.cs: Implement.

2007-07-16  Chris Toshok  <toshok@ximian.com>

	* HtmlObject.cs: track WebApplication's Instance -> PluginHandle
	switch.

	* HtmlPage.cs: same.

2007-07-10  Chris Toshok  <toshok@ximian.com>

	* HtmlTimer.cs: add the Tick event, the OnTick method, and remove
	the NIE from the properties.  the "Digger" silverlight demo uses
	this class, and this change keeps it from at least bringing down
	the browser.

2007-06-14  Atsushi Enomoto  <atsushi@ximian.com>

	* BrowserInformation.cs BrowserRuntimeSettings.cs HtmlDocument.cs
	  HtmlElement.cs HtmlElementCollection.cs HtmlObject.cs HtmlPage.cs
	  ScriptableObject.cs :
	  more impl. based on assumed PInvokes.

2007-06-08  Atsushi Enomoto  <atsushi@ximian.com>

	* HtmlElementCollection.cs :
	  added internal .ctor() and pointer field, not in real use yet.

2007-06-06  Atsushi Enomoto  <atsushi@ximian.com>

	* HtmlElementCollection.cs HtmlDocument.cs : header.
	* HtmlEventArgs.cs : header. fixed inheritance.
	* ScriptableObject.cs : added unmanaged pointer field.
	  added internal InvokeMethod() (practically a stub).
	* HtmlElement.cs : some members can use GetProperty<T>() and
	  InvokeMethod() above.
	* HtmlObject.cs : uncomment some. Added internal .ctor(IntPtr).

2007-06-06  Atsushi Enomoto  <atsushi@ximian.com>

	* HtmlPage.cs : uncomment Document.
	* ScriptableAttribute.cs : more attribute targets.

2007-06-02  Atsushi Enomoto  <atsushi@ximian.com>

	* BrowserRuntimeSettings.cs HtmlDocument.cs HtmlElement.cs
	  HtmlElementCollection.cs HtmlEventArgs.cs HtmlTimer.cs
	  HttpUtility.cs ScriptableAttribute.cs :
	  stubs (not going to implement by myself)

2007-06-01  Sebastien Pouliot  <sebastien@ximian.com>

	* BrowserInformation.cs: New.
	* HtmlObject.cs: New. Incomplete.
	* HtmlPage.cs: New. Incomplete.
	* ScriptableObject.cs: New. Incomplete.
