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

	* plugin.cpp:
	* plugin.h: Renamed MediaElementEmitEndedOnError to RelaxedMediaMode, 
	and rename the init param to 'moonlight-relaxed-media-mode'

	r: kangaroo

2009-02-22  Larry Ewing  <lewing@novell.com>

	* plugin-entry.cpp:
	* plugin.cpp, plugin.h: add extra padding to our NPBool values so
	that buggy browsers don't smash the stack.

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

	* plugin.cpp:
	* plugin.h: Set Surface::SetMediaElementEmitEndedOnError if the Moonlight
	specific __mediaElementEmitEndedOnError argument is passed to NPP_New,
	directing MediaElement to play the next item in a playlist if the current
	item cannot be demuxed; the default behavior is to bail playback

	r: kangaroo

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

	* plugin-class.cpp: Only call NPN_ReleaseObject on callback
	if the object is *not* a string.
	re: toshok

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

	* plugin-class.cpp: Ensure that we convert doubles in the ASCII
	locale, as we attempt to parse in this locale.

	r: toshok

2009-01-10  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (moonlight_authors): Updated.

	r:gnorton

2008-12-03  Larry Ewing  <lewing@novell.com>
 
 	* plugin.cpp: clean up source setting so that the property is
 	always set and we don't accidentally schedule more than one idle
 	call.
 
	r:toshok

2008-11-23  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (map_moon_id_to_event_name): port alp's trunk
	typo fix to the branch.  r: Andreia.

2008-11-10  Jeffrey Stedfast  <fejj@novell.com>

	Fix for bug #442770

	* plugin-debug.cpp (plugin_debug): Connect to surface
	DestroyedEvent to close the debug window so that it won't crash
	when trying to use it once the site has been navigated away from.

	r:toshok

2008-11-06  Stephane Delcroix  <sdelcroix@novell.com>

	* plugin.cpp:
	* plugin-downloader.h|cpp:
	* firefox/browser-http.inc: pass the uri with the finished handler
	for further validation. r:gnorton

2008-10-31  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::CreateWindow): call SetTransparent
	on moon_window instead of the surface.

	* windowless.cpp (MoonWindowless::HandleEvent): pass
	GetTransparent() to Surface::PaintToDrawable here.

2008-10-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Implement EnableRedrawRegions by linking them to
	  RUNTIME_INIT_SHOW_EXPOSE.

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

	* plugin.cpp: Add a row to the Properties dialog informing about the
	  codecs in use.

2008-10-21  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: event listener leak fix v3.0

2008-10-21  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: since I removed the value_dtor
	from xaml_proxies, we need to iterate over it and destroy the
	proxies manually now.  Also, disavow ownership of proxies when we
	call RemoveHandler.

2008-10-20  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightObject::ClearXamlEventProxy): this
	method cannot call RemoveHandler on the proxy.  instead, we return
	the proxy and our callers can do it
	(MoonlightScriptControlObject::SetProperty): here
	(MoonlightContentObject::SetProperty): here
	(MoonlightDependencyObjectObject::SetProperty): and here
	
	(EventListenerProxy::~EventListenerProxy): here we need to clear
	out the xaml/non-xaml proxy regardless of of whether or not it's a
	function.  and make sure to call the right method depending on our
	token.

2008-10-20  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: Rather complicated lifecycle
	sorting out dealing with EventListenerProxies - there was a reason
	I was avoiding this :) - fixes bug 436060.

	1) if the target (the object on which the proxy calls AddHandler)
	is destroyed, the proxy should go away.
	
	2) if the owner (the MoonlightObject which created the proxy) is
	invalidated, the proxy should also be invalidated.

	3) if the owner is destroyed, the proxy should call RemoveHandler
	on the target.  Note that we shouldn't destroy the proxy here -
	it'll be destroyed by virtue of the data_dtor stuff in
	EventObject.
	
	* windowless.h, windowless.cpp: add support for experimental
	extension (see mozilla.org bug #430451) for windowless cursors.

2008-10-20  Chris Toshok  <toshok@ximian.com>

	* plugin-entry.cpp: get rid of all those CallNPP_* macro uses.
	just invoke the damn function.

	* plugin-proxy.cpp, moonlight.h: include npfunctions.h instead of npupp.h

	* plugin-glue.cpp, plugin.h: fix types.
	
	* moz-sdk/*: rev to a newer version of the moz-sdk files.

2008-10-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: proxy_listener_to_javascript: if calldata is null,
	  only pass 1 argument to javascript. Fixes #426440 partially (mp3s
	  are now downloaded).

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

	* moonlight.h: update SL2 mime type and runtime version.

2008-10-14  Chris Toshok  <toshok@ximian.com>

	* windowless.cpp (MoonWindowless::GetGdkWindow): get the
	netscapeWindow from our plugin id and return a new GdkWindow for
	it.

2008-10-14  Stephane Delcroix  <sdelcroix@novell.com>

	* windowless.h|.cpp: implements GetGdkWindow ()

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

	* plugin-class.cpp: Fix statement order.

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

	* plugin.cpp, plugin-class.cpp: Add some null checks, found while using
	  firebug during plugin initialization.

2008-10-07  Larry Ewing  <lewing@novell.com>

	* windowless.cpp (MoonWindowless::HandleEvent): set the crossing
	mode of our synthetic events to normal.  

	Fixes missing mouse leave events for InputHitTst.html (143)
	
2008-10-07  Larry Ewing  <lewing@novell.com>

	* plugin.cpp: remove a redundant call to SetSurface after creating
	a surface, it is handled in the ctor.

	Fixes the double render_cb registration problem we were seeing
	that caused high framerates and starvation problems. 

2008-10-03  Stephane Delcroix  <sdelcroix@novell.com>

	* plugin.cpp: call SetPageURL even for embedded xaml. Makes fixture
	145 break, as expected.

2008-09-30  Chris Toshok  <toshok@ximian.com>

	* plugin-debug.cpp: more debug window work - it's sorted by name
	now, and add support for colors, timespans, and a few other types.

2008-09-30  Chris Toshok  <toshok@ximian.com>

	* plugin-debug.cpp: rework the Debug window entirely.  no we don't
	just show children, but all property values.

2008-09-28  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h,
	plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
	support for dumpNameScope.

2008-09-26  Fernando Herrera  <fherrera@novell.com>

	* mono.cpp: Fix compilation when configured with --with-debug=no

2008-09-25  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (PluginInstance::PluginInstance): Initialize
	source_location to NULL - probably the source of the random
	crashes we were seeing on the buildbot earlier.

2008-09-25  Stephane Delcroix  <sdelcroix@novell.com>

	* plugin.cpp: update the Surface::source_location while setting
	the source_location.

2008-09-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Show a item in the right-click menu allowing the ms
	  codecs to be installed manually.

2008-09-23  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::CreateWindow): plug some memory
	leaks.

2008-09-19  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): For
	RemoveEventListener(), we don't need to look up the event_id more
	than once.

	* plugin.cpp (PluginXamlLoader::HookupEvent): Call
	event_object_add_xaml_listener() instead of
	event_object_add_javascript_handler() since this is happening as a
	result of a listener being set in the XAML (which means it has to
	have a token value of 0).

	* plugin-class.cpp (EventListenerProxy::AddXamlHandler): New method.
	(event_object_add_xaml_listener): New.

2008-09-19  Stephane Delcroix  <sdelcroix@gnome.org>

	* plugin-class.cpp: use the nex dl->Open interface

2008-09-16  Fernando Herrera  <fherrera@novell.com>

	* Makefile.am: Add asf include dir

2008-09-06  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): look
	up the event here, the DO api is gone.
	(EventListenerProxy::~EventListenerProxy): use the DestroyedEvent
	id instead of "destroyed".

2008-09-03  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp, plugin-class.h: remove all the ControObject
	wrapper foo, Control has the properties we need and this looks
	wrong now.

2008-08-28  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp, plugin-class.cpp: track move from C-binding to C++
	for the xaml_create/hydrate_from* methods.

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

	Make a little progress in getting opera to load the plugin
	correctly in windowless mode.  Opera is still only minimally
	functional but the plugin should come up now.
	
	* plugin.cpp, plugin.h: don't get the source url via GetProperty
	that causes operapluginwrapper to reenter and breaks everything.
	Handle a few other operapluginwrapper quirks and pass resizing
	through the window not the surface (so that UpdateWindowInfo will
	work).

	* plugin-glue.cpp: slightly rework the initialization, don't fixup
	errors just try to fail early.
	
	* windowless.cpp (MoonWindowless::UpdateWindowInfo): new function
	to copy the needed members of NPWindow that opera is prematurely
	destroying.

2008-08-25  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, windowless.cpp: track rect change.

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

	* plugin.cpp: Fix build.

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

	* plugin-downloader.cpp: Drastically enhance the debugging experience
	  here.

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

	* plugin-class.cpp (MoonlightStrokeCollectionObject::Invoke):
	unref the collection we've created.

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

	* plugin-class.cpp: Its possible that we dont have a surface in the
	OnError case at this point, guard against this.

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

	* plugin.cpp: Ensure we dont set object.Source to a data mime-type value.

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

	* windowless.cpp: Null the GdkEventKey.string value.
	* plugin-class.cpp|h: Rename KeyboardEventArgs->KeyEventArgs, 
	but support returning "KeyboardEventArgs" to javacsript toString()
	when in 1.0 mode.

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

	* plugin.cpp|h: Add a C binding for GetSourceLocation ()

2008-08-17  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp, plugin-class.cpp, mono.cpp, plugin-proxy.cpp,
	plugin.h, moonlight.h, moon-mono.h: SL_2_0 -> SL_PLUGIN_2_0.

2008-08-17  Chris Toshok  <toshok@ximian.com>

	* Makefile.am: INCLUDE_MONO_RUNTIME ->
	INCLUDE_BROWSER_MANAGED_CODE.

2008-08-15  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightStylusInfoObject::GetProperty): Use
	the c++ property accessors for the stylus classes.

2008-08-14  Jackson Harper  <jackson@ximian.com>

	* plugin.cpp|h: We now get a 'dest' pointer for hooking up events,
	this is basically ignored by the javascript event hookup since
	everything is in a global space.

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

	* plugin.h: Don't use base_unref, call unref on the instance.

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

	* plugin.cpp|h: The timeout C bindings are no longer used.

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

	* plugin-class.cpp: Remove spew.
	* moonlight.cs: Don't initialize Helper.Agclr here, it's not in the
	  right AppDomain.

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

	* plugin.cpp|h: Reuse the old html_timer infrastructure for the
	intial DispatcherTimer implementation.

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

	* moonlight.cs: Set Helper.Agclr upon startup.

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

	* plugin.cpp (PluginInstance::StreamAsFile): horrible but
	temporary hack to load application/x-silverlight objects as sl2
	files when .xap is present in the filename.

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

	* moonlight.h:  Some sites are doing an exact string comparison
	in Javascript of this value.  Unfortunately we need to drop
	out compatability string.

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

	* plugin-class.cpp: add sl2 arguments to the various parser/enum
	functions that need them.

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

	* plugin.mdp: Make src and plugin projects build.

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

	* plugin-debug.cpp: Deleted Visual (moved content into UIElement), and
	  renamed VisualCollection to UIElementCollection.

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

	* plugin-class.cpp: Use C++ bindings instead of C bindings.

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

	* plugin.cpp, plugin.h: Implement PluginInstance::Evaluate.

2008-07-26  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: add MoonlightRoutedEventArgs
	stuff between EventArgs and KeyboardEventArgs/MouseEventArgs.
	RoutedEventArgs exposes a 2.0-only property ("source"), and both
	Keyboard/MouseEventArgs expose a 2.0-only property as
	well ("handled").

2008-07-25  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: add a flags field to the
	mapping, so we can start to differentiate the 1.0 and 2.0 JS apis.

	* plugin.cpp (PluginInstance::CreateWindow): pass silverlight2 to
	the Surface ctor.

2008-07-24  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightCollectionObject::GetProperty): Use
	collection->GetCount() instead of poking at the internal
	representation of the data.
	(MoonlightCollectionObject::Invoke): Need to add/remove/insert/etc
	items as Values now.

2008-07-23  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp: track DependencyProperty changes.

2008-07-18  Chris Toshok  <toshok@ximian.com>

	* windowless.h, windowless.cpp: switch this from being a surface
	subclass to being a MoonWindow subclass, which fixes the need for
	us to worry about whether we have a widget (for fullscreen) in
	windowless code.

2008-07-18  Jb Evain  <jbevain@novell.com>

	* moonlight.cs (UnloadDomain): actually call the plugin unload callback.

2008-07-18  Jackson Harper  <jackson@ximian.com>

	* plugin-debug.cpp: Use new method for getting content element.

2008-07-17  Jackson Harper  <jackson@ximian.com>

	* plugin-debug.cpp: Add the contents of UserControls to the tree too.

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

	* npstream-request.cpp, plugin-entry.cpp: Add missing #include
	  <config.h>

2008-07-10  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin-proxy.cpp: Include config.h (which got un-included
	from moonlight.h)

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

	* plugin.cpp (PluginInstance::UpdateSourceByReference): rework
	this so that it uses the NPN api instead of the bridge-requiring
	html_get_element_text.

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

	* plugin.mdp: Updated.

2008-07-09  Geoff Norton  <gnorton@novell.com>

	* plugin.cpp: UrlNotify now calls dl->NotifyFinished() and
	StreamAsFile calls SetFilename
	* plugin-downloader.cpp: Update for the Downloader changes
	to NotifyFinished / SetFilename

2008-07-09  Larry Ewing  <lewing@novell.com>

	* windowless.cpp: make sure we proxy events to the fullscreen
	widget when we are in fullscreen mode.

	Fixes silverlight.net/fox in fullscreen mode.
	
2008-07-08  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-class.cpp: Make sure we free (or nullify) before calling
	THROW_JS_EXCEPTION

2008-07-07  Jeffrey Stedfast  <fejj@novell.com>

	* mono.cpp: Fixed includes.

2008-07-06  Chris Toshok  <toshok@ximian.com>

	* windowless.cpp (WindowlessSurface::HandleEvent):
	plugin_button_press_callback takes the plugin for user_data, not
	the surface.

2008-07-06  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::Initialize): add a way to override
	the windowless setting.  set the MOONLIGHT_NO_WINDOWLESS
	environment variable, and plugins will be created windowed,
	regardless of the JS.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* Makefile.am (INCLUDES): add src/zip

	* plugin.cpp (PluginInstance::StreamAsFile): in the case where the
	1.0 version of the plugin is fed a .xap file, show something to
	the user saying it's not going to be able to render it.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: more clean up in the class decl.

	* plugin-class.cpp, plugin-debug.cpp, plugin-glue.cpp: fallout
	from the above change.

2008-07-02  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (PluginInstance::Properties): Added a "Show text
	boxes" checkbox.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: reorder PluginInstance's class decl so
	that public: comes before private:, and make "timers" private,
	forcing the addition of TimeoutAdd and TimeoutStop instance
	methods so that the C binding can call them.  put comments all
	over them saying they're obsolete in b2.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp (string_to_npvariant): make
	public.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* windowless.h, windowless.cpp (WindowlessSurface::HandleEvent):
	move the windowless event handling here so it's not cluttering up
	plugin.cpp.

	* plugin.h, plugin.cpp: add GetWindow() to return the NPWindow,
	make plugin_button_press_callback a public static method so
	WindowlessSurface can call it, and remove the entire EventHandle
	method body (so it can be moved to WindowlessSurface).

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: remove the old static methods for doing
	windowless things, and instead just instantiate a
	WindowlessSurface in CreateWindow when windowless == true.

	* Makefile.am (libmoonplugin_la_SOURCES): add windowless.{cpp,h}

	* windowless.h, windowless.cpp: new WindowlessSurface subclass
	which proxies things over to mozilla.

2008-07-02  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (NPN_strdup): just set 1 byte to 0 instead of all of
	them :)
	(PluginInstance::SetSurfaceCursor): ifdefed out implementation of
	a proposed method for setting the cursor in windowless plugins.
	(PluginInstance::CreateWindow): hook up SetSurfaceCursor.

2008-06-28  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.(ccp|h): The finished event raises a success condition now
	so that we can notify failure on unsuccessful downloads.

2008-06-27  Stephane Delcroix  <sdelcroix@novell.com>

	* browser-bridge.h:
	* firefox/browser-http.inc:
	* firefox/ff2/ff2-bridge.h:
	* firefox/ff2/ff2-http.cpp:
	* firefox/ff3/ff3-bridge.h:
	* firefox/ff3/ff3-http.cpp:
	* npstream-request.cpp:
	* npstream-request.h:
	* plugin-downloader.cpp:
	* plugin-downloader.h: move browserrequest/response from the plugin
	as downloaderrequest/response.

2008-06-26  Michael Dominic K.  <mdk@mdk.am>

	* plugin-class.cpp:
	* plugin-class.h: Adding ways/wrapper to access the KeyTime property of
	the KeyFrame. Fixes #402370 and #402035.

2008-06-19  Chris Toshok  <toshok@ximian.com>

	* plugin.h: add GetHost(), and rename all the "get"/"set" methods
	to "Get"/"Set" to match everything else.

	* plugin.cpp: fix up the renaming, and abstract out the code used
	in a couple of places (getting the NPNVPluginElementNPObject) into
	GetHost().
	
	* npstream-request.cpp (NPStreamRequest::GetResponse): track
	renaming.

	* plugin-class.cpp: track renaming.
	(MoonlightDependencyObjectObject::Invoke): use GetHost().

2008-06-19  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightScriptControlObject::Invoke): comment
	out the version requested spew.

	* plugin.cpp (PluginInstance::Initialize): comment some bridge
	spew, and make sure to use "else if" for the useragent tests so we
	don't end up possibly loading 2 bridges.

2008-06-17  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp: When we are Aborted NULL our request
	and response objects so that we dont do a double abort from our
	dtor.  Fully fixes the Downloader::Write issue (i hope).

2008-06-17  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp:  Set the finished state regardless of 
	wether we have a downloader or not.

2008-06-17  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp:  If we destroy ourselves, ensure that we
	abort our request/response so that firefox doesn't call back
	into a destroyed object.

2008-06-17  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp, plugin-downloader.h:  Ensure that we dont
	attempt to abort a finished stream, as it may have dissappeared from
	Firefox already.

2008-06-16  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (_set_dependency_property_value): Don't
	g_assert() here, it's not necessary plus we want to get rid of
	them anyway for bug #335413.

2008-06-10  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp, plugin.h: wrap everything 2.0 related with
	INCLUDE_MONO_RUNTIME.

2008-06-10  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp, plugin-downloader.h:  Aborted guarding
	is handled in the bridge now, as plugin-downloader's might be 
	reused.  Also add a null check for Downloader in the Read callback

2008-06-10  Geoff Norton  <gnorton@novell.com>
	
	* npstream-request.cpp: Return the status of GetResponse.

2008-06-11  Geoff Norton  <gnorton@novell.com>

	* plugin-downloader.cpp: Only call into the downloader to Write
	if we have a downloader set.  Fixes a crash when navigating away from
	live streams.

2008-06-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.h: Replace g_assert with g_warning.

2008-06-09  Geoff Norton  <gnorton@novell.com>

	* npstream-request.cpp:  Change the g_asserts to g_warning.

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

	* plugin.mdp: Updated.

2008-06-05  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-debug.cpp (save_callback): Modified to save mirror in the
	same directory layout as the website.

2008-06-05  Geoff Norton  <gnorton@novell.com>

	* plugin-class.cpp: Update to reflect API changes on the downloader
	side.

2008-06-05  Geoff Norton  <gnorton@novell.com>
	
	* plugin-downloader.cpp: Update the debugging outputs.

2008-06-05  Geoff Norton  <gnorton@novell.com>

	* http-downloader.cpp, http-downloader.h, mms-downloader.cpp,
	mms-downloader.h: Drop from the build in preparation to move
	mms logic into libmoon.
	* plugin-downloader.cpp, plugin-downloader.h,
	browser-bridge.h: Remove the browser downloader and encapsulate
	all the logic in a BrowserRequest.
	* npstream-request.cpp, npstream-request.h: New BrowserRequest
	based NPStream implementation.
	* plugin-downloader.cpp: Fix some debugging output. Add a few
	NULL guards.
	* plugin.cpp: Utilize the new npstream-request class.

2008-06-04  Geoff Norton  <gnorton@novell.com>

	* plugin-class.cpp: Fix the argument check for MouseEventArgs
	GetPosition regression introduced with check_arg_list changes.

2008-06-04  Geoff Norton  <gnorton@novell.com>

	* plugin-class.cpp: Fix the argument check for hitTest
	regression introduced with check_arg_list changes.

2008-06-04  Geoff Norton  <gnorton@novell.com>

	* plugin-class.cpp: Fix the argument check for setFontSource
	regression introduced with check_arg_list changes.

2008-06-04  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp: Added argument sanity checking in all the
	Invoke() methods I could find (may have missed some).
	(check_arg_list): New function to sanity-check an NPVariant
	argument vector for the correct types and the correct number of
	arguments (supports optional args as well).

2008-06-04  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightDownloaderObject::Invoke): Check the
	arg-types for ::Open(). Fixes bug #394943.

2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-downloader.cpp: Don't delete BrowserDownloaders, it causes
	  crashes for the moment.

2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mms-downloader.cpp: MmsDownloader::Read: only delete the ASFParser
	  after we've finished with the data it contains.
	  MmsDownloader::ProcessMetadataPacket: fix parsing quoted strings.
	* mms-downloader.h, npstream-downloader.h: Make dtor virtual.
	* plugin-downloader.cpp, plugin-downloader.h: Move ctors and dtors into
	  cpp file, and delete the BrowserDownloader in PluginDownloader's
	  dtor.

2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.mdp: Updated.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mms-downloader.cpp: Call Downloader::NotifyFailed when we encounter
	  an invalid mms source. Parse metadata packets, and set
	  HttpStreamingFeatures correctly on the downloader.
	* plugin-downloader.cpp: Handle rtsp urls.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Add some debugging foo.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* npstream-downloader.cpp: If NPN_GetURLNotify fails, notify the
	  downloader.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mms-downloader.cpp, mms-downloader.h: For the broadcast case keep a
	  count of the number of packets received, and write new packets at
	  the end of the previous packet. Don't print warnings for MMS_END
	  and MMS_STREAM_C packets.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-downloader.cpp: Return something from
	  PluginDownloader::GetPlugin.

2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-downloader.cpp: Spaces->Tabs.

2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mms-downloader.h, mms-downloader.cpp: Move ctor/dtor into cpp file,
	  add some logging and null out response in Finished, otherwise we
	  might crash if Abort is called later on.

2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* http-downloader.cpp: Return something from HttpDownloader::Read.

2008-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.mdp: Updated.

2008-05-23  Geoff Norton  <gnorton@novell.com>

	* browser-bridge.h: Get/SetUri is no longer needed on the BrowserResponse
	class

2008-05-23  Geoff Norton  <gnorton@novell.com>

	* *-downlodaer.cpp: Add the files to SVN

2008-05-23  Geoff Norton  <gnorton@novell.com>

	* browser-bridge.cpp: Refactor to move all the stream processing logic outside
	the bridge into the plugin in a generic way.
	* plugin.cpp: Cache the source_location.  Needed for http-downlodaer to resolve
	relative uri's.
	* mmsh-state.*: Merged into mms-downlodaer.cpp
	* mms-downloader.cpp: Rewritten to not leak all memory when streaming from a mms
	server, plus a lot of readability fixes.
	* npstream-downloader.cpp: Hide NPStream related specifics here instead of in
	* plugin-downloader.cpp: Direct requests to the BrowserDownloader implementation
	for this request.

2008-05-21  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (plugin_button_press_callback): rename
	plugin_event_callback to this, and remove all the non-button event
	code.
	(PluginInstance::CreateWindow): connect to just
	"button-press-event", not the more generic "event".  track
	renaming.
	(PluginInstance::EventHandle): track renaming.

2008-05-19  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginInstance::SetPageURL): drop the reference we
	were holding to NPNVWindowNPObject.

2008-05-19  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginInstance::EventHandle): discard any events
	that happen before SetWindow has been called.

	Fix for a crash in Silverlight Pad.

2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Throw an exception if the downloader doesn't have a
	  surface when we call Downloader::Send.

2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mmsh-state.h: Surround file with ifdefs, and forward declare
	  MmshState.
	* plugin-downloader.h: Include mmsh-state.h and properly declare
	  PluginDownloader::state as MmshState.

2008-05-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.mdp: Updated.

2008-05-15  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginInstance::EventHandle): send focus in/out to
	the surface.

	* plugin-class.cpp, plugin.cpp, plugin.h: capture id parameter and
	return it in js.

2008-05-14  Sebastien Pouliot  <sebastien@ximian.com>

	* moonlight.h: Start plugin description with Silverlight plugin 
	version. The new detection script for sharethelove requires this.

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

	* plugin.cpp, plugin-class.cpp: copy all npvariant strings so that
	we can null terminate them.  WebKit and Opera don't null terminate
	strings it seems.

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

	* plugin-glue.cpp (NPP_Initialize): opera needs to have threads
	initialized even in the gtk2 case.

	* plugin.cpp (PluginInstance::SetWindow): disable this check since
	it currently fails on opera 9.5b2.

	These changes get the plugin loading in opera 9.5b2 we need to
	discuss some of this with them more.
	
2008-05-13  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::Initialize): add an opera case (just
	like the webkit case) which references a (for now) nonexistant
	bridge.

2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: TryLoad: Before parsing any xaml, we need to clear the
	  current surface, otherwise the xaml we'll be parsing might add tick
	  callbacks to the timemanager of the previous surface.

2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.mdp: Updated.

2008-05-12  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Moved the plugin installer code to a subdir (install)
	because the firefox bridges must build after the plugin but before the
	installer.

2008-05-09  Geoff Norton  <gnorton@novell.com>

	* Makefile.am: Add mmsh-state.* to the build.
	* plugin-downloader.*: When connecting to a mms server we cannot
	immediately start streaming.  We must first query its capabilities
	with a Describe request, then select the appropriate streams we 
	wish to have available.

2008-05-09  Geoff Norton  <gnorton@novell.com>

	* mmsh-state.cpp, mmsh-state.h: New class to keep stream state
	for selecting which streams to fetch from a mms:// server.

2008-05-09  Chris Toshok  <toshok@ximian.com>

	* ff3/Makefile.am (libmoonplugin_ff3bridge_la_LIBADD): add
	libmoonplugin.la

2008-05-09  Chris Toshok  <toshok@ximian.com>

	* ff2/Makefile.am (EXTRA_DIST): dist firefox-browsermmsh.inc

2008-05-08  Chris Toshok  <toshok@ximian.com>

	* install.rdf.in: track MINVERSION/MAXVERSION ->
	MIN_FIREFOX_VERSION/MAX_FIREFOX_VERSION change.

	* plugin.cpp (NPN_strdup): make the arg const char* to quiet gcc.
	(PluginInstance::PluginInstance): initialize bridge to NULL.
	(PluginInstance): delete the bridge.
	(PluginInstance::Initialize): try loading a browser specific
	bridge using the useragent string (gross, fragile, i know...)
	(PluginInstance::TryLoadBridge): new method, dlopen the bridge.

	* browser-http.h, browser-http.cpp: nuke.  the C implementation
	lives in browser-bridge.cpp, and browser-bridge.h defines
	the (purely abstract) base classes that the bridge implementations
	subclass from for browser-specific functionality.

	* plugin-proxy.cpp: clean up more XP_UNIX stuff - it's always
	defined (in moonlight.h) so we don't need ifdefs for it.  Also, it
	needs to be defined *before* including npapi/npupp so that
	structures we need are defined.

	* plugin-class.cpp: remove all HtmlObject implementation code from
	here.  it lives in the browser bridge now.  Also, remove all
	internal mozilla #includes.

	* moonlight.h (XP_UNIX): always define it if it isn't already
	there.

	* browser-bridge.h: add NPNetscapeFuncs* arg to
	CreateBrowserBridge.

	* plugin-entry.cpp (NPN_PostURLNotify): correct arg type.
	(NPN_MemAlloc): same.
	(NPN_MemFlush): same.
	(NPN_PostURL): same.
	(NP_Initialize): remove the stupid #if XP_UNIX stuff from here.
	we're only building on unix, so let's simplify things.  Also,
	don't use PR_TRUE/PR_FALSE.  NPBool uses TRUE/FALSE.

	* plugin-glue.cpp (NPP_WriteReady): change type to int32 instead
	of int32_t so that it matches the prototype.
	(NPP_Write): same.

	* moz-sdk/npapi.h, moz-sdk/npupp.h: unfuck our npapi headers so
	they can be used for either ff2 and ff3 (and without pulling in
	nspr).

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

	* plugin.cpp (PluginInstance::SetWindow): don't crash if we
	weren't able to create a surface.

2008-05-08  Chris Toshok  <toshok@ximian.com>

	* ff2/ff2-bridge.cpp: in order to keep from needing to load
	libmoonplugin.so with RTLD_GLOBAL (which breaks other plugins), we
	need to pass the NPNetscapeFuncs vtable to the bridge, and provide
	implementations of all the NPN_ methods here.  That was making
	this file a bit busy, so break out the dom and http stuff to
	separate files.

	* ff2/ff2-dom.cpp: move the dom stuff here.

	* ff2/ff2-http.cpp: move the browserhttp stuff herre.
	
	* ff2/Makefile.am (EXTRA_DIST): make sure we dist
	firefox-browserhttp.inc

	* ff3/ff3-http.cpp, ff3/ff3-dom.cpp, ff3/ff3-bridge.cpp: same
	changes to the ff3 bridge.

2008-05-07  Geoff Norton  <gnorton@novell.com>
	
	* plugin.cpp, plugin.h: Add NPN_strdup
	* plugin-class.cpp: Use NPN_strdup
	* plugin-entry.cpp: Dont abort if XEmbed/Gtkv2 aren't found as
	some browsers wont lets us NPN_GetValue on a NULL instance.

2008-05-07  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Move mono_*dir stuff into Makefile

2008-05-07  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginInstance::SetWindow): if SetWindow is called
	with the same window this is due to a resize, propogate that
	resize to the surface code.

	Fixes the plugin side of windowless resizing.  See
	http://my.liveatedu.com/ for test case.

2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>

	* moonlight.h: Could not find (nor google) the real meaning for SCR,
	I suspect "script", nor does it affect any apps I've seen but having 
	xaml in it's place is probably not a good idea.
	[Fix bug #384373]

2008-05-06  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.h (PluginInstance::getNPP): Removed, this just duplicated
	the getInstance() method.

2008-05-06  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.rdf.in: Use values from configure for min and max versions

2008-05-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-glue.cpp: shutdown_moonlight: we have to check again if there
	  are plugins alive, this method is called async, and it's possible
	  that another plugin has been initialized between adding the timeout
	  and getting here.

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

	* plugin-class.cpp: Add a missing initialization.

2008-05-04  Miguel de Icaza  <miguel@novell.com>

	* moonlight.cs: Add support for XAP file loading. 

	* mono.cpp: New methods to create applications based on XAP files,
	and shut them down.

	* plugin.cpp (PluginInstance::StreamAsFile): If Silverlight2 the
	request was for a XAP file, load a XAP file.    This could break
	if people embed a Silverlight2 plugin, but pass a XAML file, must
	test this. 

	* plugin.cpp: Some refactoring to keep the Mono-depending features
	together, without having ifdefs inside of functions.

	XAP maintenance: Keep track of whether a XAP application has been
	loaded, destroy XAP applications on shutdown.
	

2008-05-04  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp, plugin-class.cpp, plugin-class.h: revert
	most of r102288 to move back to the separate Loaded/Load events.
	Leave the OneShot behavior for EventListenerProxy's, though, as
	that still is useful.

2008-05-01  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (plugin_event_callback): fix windowless button
	presses so that only button 3 is swallowed by the menu logic.

	Fixes zooming on
	http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html	
2008-05-02  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: strip all .sos in XPI (not just ffmpeg)
	If we need un un-stripped XPI we'll build one.

2008-05-02  Geoff Norton  <gnorton@novell.com>

	* plugin.cpp: reinterpret_cast doesn't work on 64-bit as it
	looses precision.

2008-05-01  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: make EventListenerProxy's
	one-shottable (if they're one-shot, they remove themselves
	automatically after being invoked.)  Use this with the plugin
	onLoad proxy.  The script control object adds it to the surface's
	toplevel object's LoadedEvent.

	* plugin.h, plugin.cpp: when we create the surface, add a handler
	for AttachingEvent so we can notify our
	MoonlightScriptControlObject that it should add the onLoad handler
	to the toplevel element's LoadedEvent.

2008-04-30  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp: Abort and NotifyFailed on invalid mms streams,
	probably they are plain http file downloads.

2008-04-30  Fernando Herrera  <fherrera@novell.com>

	* plugin-debug.cpp: Added utils.h and uri.h.

2008-04-30  Jeffrey Stedfast  <fejj@novell.com>

	* moonlight.h: Don't need to include glib.h and gtk.h, gtk.h will
	give us glib.h.

2008-04-29  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-debug.cpp (foreach_func): Save the files with their
	original filenames using the URI's path.

2008-04-28  Sebastien Pouliot  <sebastien@ximian.com>

	* moonlight.h: Fix [Moon|Silver]'L'ight capitalization. Add 
	Moonlight URL (as HTML) in about:plugins. This enables "Visit 
	Home Page" in Firefox 3 "Tools | Add-ons | Plugins".

2008-04-25  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (enum PluginPropertyId): add MoonId_OnLoad.
	(map_moon_id_to_event_name): handle MoonId_OnLoad.
	(MoonlightObjectType::MoonlightObjectType): zero out construct,
	just in case.
	(scriptable_control_mapping): move onerror here, and add onload.
	(MoonlightScriptControlObject): null out both settings and content
	here.
	(MoonlightScriptControlObject::GetProperty): fix IsLoaded to check
	the surface, and add support for OnError/OnLoad here.
	(MoonlightScriptControlObject::SetProperty): add support for
	OnError/OnLoad here.
	(moonlight_content_mapping): remove onerror.
	(MoonlightContentObject::GetProperty): remove support for OnError.
	(MoonlightContentObject::SetProperty): same.

	* plugin.cpp (PluginInstance::CreateWindow): initialize the
	onResize/onLoad events in the same way as onError.
	(PluginInstance::Initialize): parse the onResize arg.
	(PluginInstance::JsRunOnload): nuke.  rejoice.
	(PluginInstance::TryLoad): remove the call to JsRunOnload.  The
	surface's LoadEvent is responsible for this now.

2008-04-25  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-debug.cpp: Better fix against my previous crash fix (as 
	we can get an invalid pointer to the plugin).

2008-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-downloader.cpp: Added logging.

2008-04-25  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp: Conditional logging.
	* plugin-downloader.cpp: proper error handling at
	p_downloader_mmsh_send.

2008-04-24  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Add the locally built assemblies to the XPI

2008-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-debug.cpp: Don't crash if we don't have any sources.

2008-04-24  Fernando Herrera  <fherrera@novell.com>

	* Makefile.am: Fix "make -jN" build.

2008-04-23  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-debug.cpp: Don't crash if try to save stuff after changing
	web page.

2008-04-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* browser-mmsh.cpp: Parse http streaming metadata/features.
	* browser-mmsh.h: AsyncBrowserMmshResponse: Type the context as a
	  PluginDownloader instead of a generic gpointer.

2008-04-22  Larry Ewing  <lewing@novell.com>

	* moonlight.h: use HAVE_LIBXUL_UNSTABLE to determine which symbols
	to define.

	* browser-http.h, browser-mmsh.h: use HAVE_LIBXUL_UNSTABLE to
	determine the include path.
	

2008-04-22  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: Add the notion of "cleanup pointers".
	It's a horrible name for the following hack.  You register a local
	variable pointer with the plugin before making a call during which
	you might be destroyed.  If the plugin instance is destroyed, all
	cleanup pointers are nulled..  When the all returns, you can't
	rely on "this" being valid, but you can rely on your local stack
	frame, so you look at the registered pointer.  if it's null,
	you're dead.
	
	* plugin.cpp (PluginInstance::PluginInstance): pass the pluginType
	instead of the boolean flag.  C apis should be thin wrappers
	around c++ methods.
	(PluginInstance::~PluginInstance): zombify the surface and then
	unref_delayed it, to allow everything to unwind before actually
	freeing that memory.
	(PluginInstance::Initialize): use "else" and remove all those damn
	"continue"s.
	(PluginInstance::TryLoad): use the cleanup pointer hack to check
	if we're still alive after the xaml_loader->TryLoad method.
	
	* plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
	use cleanup pointers to make sure we don't try to free plugin
	objects that have been destroyed by virtue of the plugin going
	away while we were in JS.

	* plugin-glue.cpp: since we're only destroying surfaces from the
	idle loop, we need to delay the shutting down of the moonlight
	engine until all surfaces have been destroyed.  Also, take care
	not to do it from the DestroyEvent handler, as that is invoked
	*before* the object is destroyed (and destruction requires the
	engine to be initialized).

2008-04-22  Michael Dominic K.  <mdk@mdk.am>

	* plugin-class.cpp: Throw js exception if Storyboard failed to start
	properly.

2008-04-21  Jeffrey Stedfast  <fejj@novell.com>

	* mono.cpp (vm_init): Don't leak memory in the plugin case. Also
	use d() around debug printfs.

	* plugin.cpp: Wrap debug printfs with d()

2008-04-20  Miguel de Icaza  <miguel@roxanne.site>

	* plugin.h: Add methods to flag Silverlight2, add field Xap that
	if not-NULL contains a pointer to the XAP file downloaded.

	* plugin-instance.c: If we are dealing with a Silverlight 2
	application, use Xap to unpack it.   Does not load the result yet. 
 
	* moonlight.h: Add support for SL2 mime type, clear up VERSION

	* plugin-glue.cpp: Tell PluginInstance whether this is an SL1 or
	SL2 activation.

2008-04-16  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::StreamAsFile): use "else if" here,
	otherwise the notifydata might be gone.

2008-04-16  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
	Just because enums_int_to_str() returns NULL does not mean that
	the value was invalid, it could also mean that the property is
	simply an Int32 type.

2008-04-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp, plugin-class.h: Comparing a Kind value to another to
	  determine type hierarchy isn't supported anymore, use Value::Is or
	  Type::IsSubclassOf, which are doing the right thing.

2008-04-15  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginXamlLoader::TryLoad): emit an error if the
	root visual type is incorrect.  Fixes one more of the ParserError
	tests until we can unfiy js exceptions and parser errors.

2008-04-15  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
	based on RuntimeErrors and
	http://msdn2.microsoft.com/en-us/library/bb979718.aspx getParent
	only applies to uielement subclasses.

	Fixes test that was failing in RuntimeErrors.htm.

2008-04-15  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: throw an exception for invalid string values.

2008-04-14  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp: Got rid of unnecessary uses of keyword 'this'.
	(PluginInstance::CreateWindow): Fixed setting of background color.

2008-04-13  Jb Evain  <jbevain@novell.com>

	* moonlight.cs: use reflection to initialize the XamlLoader
	until we get moonlight.exe to be friend with Mono.Moonlight.
	Merged from the Moonlight 2 branch.

2008-04-11  Larry Ewing  <lewing@novell.com>

	* plugin.h (class PluginInstance): make setBackground return a
	boolean success value.

	* plugin-class.cpp (MoonlightSettingsObject::SetProperty): check
	the return value of setBackground and throw an exception if it
	fails.

	* plugin.cpp (PluginInstance::CreateWindow): handle NULL return
	values from color_from_string.

	Handle the new case where color_from_string might return null.

2008-04-11  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightTextBlockObject::Invoke):
	SetFontSource() now takes a Downloader argument rather than a DOB.

2008-04-11  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin-proxy.cpp: Allow the user to override the location of
	libmoonplugin by setting MOON_PLUGIN_DIR so that the test harness
	can run without installing first.

2008-04-11  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginXamlLoader::TryLoad): Allow controls to be
	toplevel elments, drop all surface contents on errors.

	Allows Kit 3d to start rendering something in the texture map
	case.

2008-04-11  Michael Dominic K.  <mdk@mdk.am>

	* plugin-class.cpp: Small debug hint also here when enums invalid.

2008-04-10  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (npvariant_is_dependency_object): no reason to
	duplicate the logic here - call npobject_is_dependency_object.

2008-04-10  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp: Cast DOB's to Downloaders when passing to
	SetSource().

2008-04-10  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: use the same "Invalidate
	NULL's things out, while the dtor checks for NULL before calling
	NPN_ReleaseObject" pattern with event listener proxies.

2008-04-09  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp, plugin.h: make PluginInstance::SetSource behave
	asynchronously for both #ref and normal url cases.  Fixes bug
	376966.

2008-04-08  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (PluginXamlLoader::TryLoad): Print a little more
	useful info on error.

2008-04-04  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.h (EventListenerProxy.dtor): Made virtual... not
	sure if this matters or not, but might as well be consistent.
	(MoonlightTimeSpan.dtor): Same.

2008-04-04  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: change our use of
	NPType->invalidate.  Firefox docs say this is *only* called when
	the browser is shutting down the plugin instance.  So, we
	shouldn't access fields that point to other NPObjects here.  Just
	break links.  All freeing should be done in the dtor instead,
	which most of the various ::Dispose methods have been renamed to.
	Also, don't call Dispose in the MoonlightObject dtor.  Lastly,
	rename Dispose to Invalidate so we don't again mistake what it
	does.

2008-04-03  Larry Ewing  <lewing@novell.com>

	(PluginXamlLoader::TryLoad): if the parser has an unknown error
	code try the managed loader.

2008-04-03  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginXamlLoader::TryLoad): if we get a parser while
	loading set attach to a NULL toplevel.

2008-04-02  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: check number of arguments on getHost throw the
	appropriate exception if there are arguments.

2008-04-02  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: make sure the event name is valid when adding
	or removing, throw an exception if not.

2008-04-02  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: start making the exceptions match the ms
	exceptions.  Work around the id string until more is known about
	how we should deal with it.

2008-04-02  Jeffrey Stedfast  <fejj@novell.com>

	Fixes bug #375277 and maybe other crashers.

	* plugin-class.h (MoonlightScriptControlObject::.ctor): Initialize
	settings->control and content->control to 'this'.
	(MoonlightSettingsObject): Now has a pointer to its owning
	MoonlightScriptControlObject so we can protect against Firefox's
	aggressive destruction of still-referenced objects when you
	navigate away from a Moonlight page and/or close the browser when
	a scriptable object is still referenced. Yay Firefox!
	(MoonlightContentObject): Same.

	* plugin-class.cpp (MoonlightScriptControlObject::Dispose): Set
	settings->control to NULL before unreffing the settings
	NPObject. Same with content->control.
	(MoonlightContentObject::Dispose): If we have a pointer to our
	parent control, set control->content to NULL here.
	(MoonlightSettingsObject::Dispose): Same as
	MoonlightContentObject::Dispose().
	(MoonlightEventObjectObject::SetEventObject): Removed, just to be
	sure we never reuse these objects.
	(EventObjectCreateWrapper): Implement the equivalent of
	SetEventObject() here instead, since this is the only place that
	should EVER be calling it. Also makes it a lot simpler.

2008-04-02  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: charposition not charnumber.

2008-04-01  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightContentObject::Invoke): back out my
	SetSurface() stuff from here.

2008-04-01  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp: Implemented better type-checking. Fixes the
	crash mentioned in bug #375921.

2008-04-01  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightContentObject::Invoke): in
	createFromXaml/createFromXamlDownloader, call dep->SetSurface()
	after we parse to make sure the thing knows what surface it
	belongs to.

2008-04-01  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightContentObject::Invoke): Properly
	nul-terminate the text value.
	(MoonlightDownloaderObject::Invoke): Properly nul-terminate the
	text value returned here too.

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

	* plugin-class.cpp: Remove Type::NPOBJ, it's not needed.

2008-03-31  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (moonlight_downloader_mapping): Got rid of
	second ResponseText item.
	(MoonlightDownloaderObject::GetProperty): nul-terminate the value
	gotten from downloader->GetResponseText() as javascript will use
	this string expecting that it is nul-terminated.

2008-04-01  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp:
	* plugin-downloader.h: Support for live streams (not seekable).

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

	* browser-mmsh.cpp: asf_header_parse: Use ASFParser::GetPacketSize instead
	  of looking in internal fields. Delete parser and unref the source when
	  done with it.

2008-03-28  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp:
	* browser-mmsh.h:
	* plugin-downloader.cpp:
	* plugin-downloader.h: Implement server seeking on the mms://
	downloader.

2008-03-26  Andrew Jorgensen  <ajorgensen@novell.com>

	* mono.cpp: Get correct path for moonlight.exe as well when
	enable-user-plugin=yes

2008-03-26  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
	implement removeEventListener for named callbacks using the new
	EventObject::RemoveMatchingHandlers method, and a helper
	class (NamedProxyPredicate).

	* plugin-class.h: we need to make
	EventListenerProxy::proxy_listener_to_javascript public so
	NamedProxyPredicate can access it.
	
2008-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* browser-mmsh.cpp: Updated according to API changes.

2008-03-25  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin-proxy.cpp: Load libraries relative to the location of
	libmoonloader.so if enable-user-plugin=yes
	* install.rdf.in: Basic install.rdf for plugin installation
	* Makefile.am: Create directory structure for RDF install method
	rather than XPInstall JS method

2008-03-20  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightContentObject::Invoke): Same.

	* plugin-downloader.cpp (p_downloader_mmsh_finished): Updated for
	Downloader API changes.

2008-03-18  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin-proxy.cpp: Push conditional swscale into user plugin code
	and remove avformat dependency
	* Makefile.am: Conditionally include swscale and don't include avformat
	in user plugin installer

2008-03-17  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: more rough argument sanity checks.

2008-03-17  Larry Ewing  <lewing@novell.com>

	* plugin.cpp (PluginXamlLoader::TryLoad): add a quick check to
	avoid a crash.  Better error handling on the way.

	* plugin-class.cpp (MoonlightCollectionObject::Invoke): do some
	very basic argument type checking.

2008-03-16  Larry Ewing  <lewing@novell.com>

	* plugin-class.cpp: make objects chain up to their parent class
	rather than simply returning false directly to make the logic
	clearer and to allow toplevel handling of tostring.

2008-03-14  Larry Ewing  <lewing@novell.com>

	* plugin-class.h, plugin-class.cpp: wrap all EventArg subclasses
	as dependencyobjects.

	* plugin.cpp: connect to the plugin onerror event.

2008-03-14  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: wrapped TimeSpan and Duration
	objects aren't actually values.  they're references to the
	particular DependencyObject/Property we got them from, so doing
	something like:

	var foo = storyboard.Duration;  foo.seconds=5;

	updates the original storyboard's Duration property, not just the
	duration contained in the "foo" variable.

2008-03-13  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp, plugin-class.h: fix up our toString support.

Thu Mar 13 23:13:59 CET 2008 Paolo Molaro <lupus@ximian.com>

	* Makefile.am: don't overwrite binary files when installing the
	plugin (avoids crashes in the running browser).

2008-03-13  Chris Toshok  <toshok@ximian.com>

	* plugin-entry.cpp: fix backward compatibility of the plugin api.
	also, use the NPVERS_ defines for feature tests instead of our own
	set.  Also, add NPN_Enumerate.

2008-03-13  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.js.in: Change the install path so that the plugin
	should work in debian (iceweasel)

2008-03-13  Chris Toshok  <toshok@ximian.com>

	* moz-sdk/*: import the trunk firefox plugin headers.
	
	* plugin.cpp (PluginInstance::Initialize): fix the hack I needed
	due to xulrunner-1.8.10 headers not having NPNVSupportsWindowless.

	* plugin-class.h, plugin-class.cpp (MoonlightObjectType): add
	Enumerate, which just iterates over the mapping filling in the
	array to return.

	* Makefile.am: add dist-hook to copy the moz-sdk headers.

	* mono.cpp (vm_init): missed this STACK_DEBUG -> DEBUG change.

2008-03-12  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-downloader.cpp: Fix duplicate g_strdup on pd->uri. 

2008-03-12  Michael Dominic K.  <mdk@mdk.am>

	* plugin-downloader.cpp: Adding an extra NULL check. Fixes the
	flowers-for-you.com.my website.

2008-03-12  Miguel de Icaza  <miguel@novell.com>

	* browser-mmsh.cpp (AsyncBrowserMmshResponse::MmsMetadataParse):
	Rewrote this routine to have a regular parser instead of splitting
	strings with g_strsplit, copes with commas inside metadata.

	Fernando mentioned that most of this code is no longer useful,
	except for a few flags.  

2008-03-11  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp:
	* browser-mmsh.h:
	* plugin-downloader.cpp: Parse MMS Metadata packet. Get file size and
	asf_packet_size from the ASF header.

2008-03-10  Michael Dominic K.  <mdk@mdk.am>

	* plugin-class.cpp: Don't scream about the unsupported type when
	setting a property to NULL. Instead, pass NULL and let the
	SetValue do it's thing (ie. nullable handling). This fixes the 
	Animation_CornerCases.htm.

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

	* plugin.cpp:  I suppose I'm one of these for real now.

2008-03-08  Fernando Herrera  <fherrera@novell.com>

	* browser-mmsh.cpp:
	* browser-mmsh.h:
	* plugin-downloader.cpp: Stop properly the mms download.

2008-03-06  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::Initialize): make sure we look for
	the right framerate property name.  the JS is specified using
	"framerate", but the plugin has to recognize "maxFramerate"
	instead.
	(PluginInstance::CreateWindow): use the surface's timemanager.
	(PluginInstance::setMaxFrameRate): same.

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

	* plugin-class.cpp, plugin-class.h: Make our Moonlight*EventArgs mirror the
	  runtime *EventArgs Updated runtime event handling to receive an
	  EventArgs* calldata instead of a gpointer. This allows us to create the
	  correct Moonlight*EventArgs based on the actual type of the runtime
	  *EventArgs, instead of making a decision based on the event name,
	  obsoleting all the *_event_wrapper functions.
	* plugin-glue.cpp: Set the pdata field of the instance to NULL before
	  deleting the plugin, this allows us to detect plugin usage during plugin
	  destruction (we might cause destruction of EventObjects -> events are
	  raised -> plugin tries to send those events to js -> crash)

2008-03-05  Michael Dominic K.  <mdk@mdk.am>

	* plugin-class.cpp: Making the plugin class use the new enum<->str code
	for enum getters.

2008-03-03  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::EventHandle): add
	KeyPress/KeyRelease handling.  there are some XXX's involing the
	call to gdk_keymap_translate_keyboard_state, but I have no test
	case at present to test this stuff against.  Use at your own risk.

2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-downloader.cpp: Don't call dl->NotifySize with the partial size of
	  the file, should only be called with the final size of the file.

2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.mdp: Updated.

2008-02-28  Jeffrey Stedfast  <fejj@novell.com>

	* browser-mmsh.cpp (AsyncBrowserMmshResponse::OnDataAvailable):
	'size' needs to be a uint32 so that the comparison is between 2
	uint32's rather than a uint32 and an int32.

	* browser-mmsh.h (class AsyncBrowserMmshResponse): Fixed a
	compiler warning.

2008-02-28  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin-class.cpp: When getting property value try to resolve it
	to string if it's an enum. This way from js we ie. get:

	Arc.SweepDirection == "Counterclockwise" 

	instead of:

	Arc.SweepDirection == 0 (enum int value).

	Fixes finally the OM_RemoveClearRemoveAt.htm test (with other collection
	fixes) and #353960.

2008-02-28  Fernando Herrera  <fherrera@novell.com>

	* Makefile.am:
	* browser-mmsh.cpp:
	* browser-mmsh.h:
	* plugin-downloader.cpp:
	* plugin-downloader.h: Add initial mms over http support.

2008-02-26  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::EventHandle): fix some x64 build
	issues.
	(PluginInstance::InvalidateSurface): same.

2008-02-26  Chris Toshok  <toshok@ximian.com>

	* plugin-proxy.cpp: use RTLD_LAZY, not RTLD_NOW.

	* moonlight.h: more #include hackery to get the right members to
	be there for NPSetWindowCallbackStruct on X.

	* plugin.h (class PluginInstance): add our
	RenderSurface/InvalidateSurface methods.

	* plugin.cpp (PluginInstance::Initialize): initialize the
	windowless stuff if we need it and the browser supports it.
	(PluginInstance::RenderSurface): our render method - call
	NPN_ForceRedraw.
	(PluginInstance::InvalidateSurface): our invalidate method - call
	NPN_InvalidateRect.
	(PluginInstance::CreateWindow): set our invalidate/render funcs
	accordingly, and SetTrans on the surface (err, why?) if we're
	windowless, and only do the widget stuff if we aren't windowless.
	(PluginInstance::EventHandle): kind of gross, but fill in enough
	of the gdk events to fool the surface machinery.  Currently
	missing are all key events, GdkDevice support for mouse events,
	and Expose event aggregation.

2008-02-26  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin-class.cpp: Throw js exception when object passed to
	Collection.Remove is NULL (instead of returning false). Fixes mostly
	OM_RemoveClearRemoveAt but still fails because of ArcSweep problem.

2008-02-26  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin-class.cpp: Throw js exception when Collection.Insert
	returns -1.

2008-02-26  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin-class.cpp: Throw js exception when Collection.Add returns
	-1.

2008-02-26  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin-class.cpp: Properly return int instead of void for
	Colleciton.Add.

2008-02-25  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::CreateWindow): use GetWidget instead
	of GetDrawingArea.

2008-02-25  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp: add windowless creation stuff.  move some code
	around, and put some in (!windowless) blocks.

	* plugin-entry.cpp (NP_Initialize): set handleEvent.

	* plugin-glue.cpp (NPP_GetValue): don't handle NeedsXEmbed here -
	let PluginInstance::GetValue do it.

2008-02-22  Jackson Harper  <jackson@ximian.com>

	* plugin-debug.cpp: mkdir and friends needs sys/stat.h on some
	systems.

2008-02-22  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin.cpp:
	* plugin/plugin.h: Add support for the cache-size reporting interface. The
	UI now reports cache size when running with
	MOONLIGHT_OVERRIDES="cache=show".

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

	* plugin-class.cpp: Add a null check.
	* plugin-debug.cpp: Add a Save button to the Sources list, which will save
	  every source file to a directory in /tmp.

2008-02-21  Michael Dominic K.  <mdk@mdk.am>

	* plugin/plugin.cpp: Small fix for table ("Properties") formatting so that
	it doesn't expand like crazy because of long URL's in sources.

2008-02-20  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightTextBlockObject::Invoke): The
	downloader argument is allowed to be null.

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

	* plugin.cpp, plugin.h, plugin-debug.cpp, plugin-debug.h: Add a 'Sources'
	  entry to the plugin context menu, shows a list of all the files the
	  plugin has loaded, with the ability to open the files.

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

	* plugin.mdp: Updated.

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

	* plugin-class.cpp: Fix IsVersionSupported according to tests.	

2008-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp, plugin-class.cpp, plugin.h: Add MaxFrameRate to the properties
	  page, and parse windowless and framerate properties during
	  initialization and store the values on the plugin instance, so that the
	  property page can show the correct values.

2008-02-15  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightStoryboardObject::Invoke): the seek
	method can take either an integer or a string representing a
	timespan.  Fixes the JS errors I mentioned in bug #362380.

2008-02-06  Jackson Harper  <jackson@ximian.com>

	* plugin-class.cpp|h: Store all MoonlightDependencyObject classes
	in an array so that we can easily check if a type passed in from
	JS is actually a DO.
	- Add one check to verify that an object is a DO, I am sure we
	will need many more.

2008-02-06  Fernando Herrera  <fherrera@novell.com>

	* plugin-debug.cpp: set default size and scroll bars policy in the
	debug window.

2008-02-05  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: add a label to the properties dialog that
	shows the fps message.

	* plugin-debug.cpp (selection_changed): invalidate a large enough
	rectangle so that the selection disappears.

2008-02-05  Chris Toshok  <toshok@ximian.com>

	* Makefile.am (libmoonplugin_la_SOURCES): add plugin-debug.h/cpp

	* plugin-debug.h, plugin.cpp: for now, just a gtk treeview with a
	snapshot of the xaml hierarchy.  selecting an item in the tree
	puts a rectangle around the element in the plugin.

	* plugin.cpp (plugin_show_menu): if debug is enabled, add the
	debug menu item.

2008-02-05  Chris Toshok  <toshok@ximian.com>

	* moonlight.h: don't #define DEBUG here.  it's a config.h deal.

2008-02-04  Jackson Harper  <jackson@ximian.com>

	* plugin-class.cpp: Fix some of the parameter checking to match
	Silverlight.

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

	* plugin-class.cpp, plugin-class.h: Implement toString method on
	  MarkerReachedEventArgsObject.

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

	* plugin-class.cpp: Handle the case where js sets Timespan seconds using an
	  int value.

2008-01-28  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: added plugin-downloader.h to dist

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

	* downloader.cpp, plugin-downloader.cpp, plugin-downloader.h: Renamed
	  downloader.cpp to plugin-downloader.cpp and added a header file for it.
	  Set downloader_shutdown to false upon initialization, makes aborting
	  actually work. Save the PluginDownloader in the stream, so that we can
	  inform the PluginDownloader when the stream is destroyed.
	* plugin.mdp, Makefile.am: Updated.
	* plugin.cpp: Include plugin-downloader.h and remove unnecessary method
	  declarations. Inform the PluginDownloader when a stream is destroyed.
	* plugin-glue.cpp: Include plugin-downloader.h and remove unnecessary method
	  declarations. 

2008-01-23  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (EventListenerProxy::AddHandler): use the event
	id instead of the name for the destroyed event, and also don't try
	to add an event that doesn't exist for a given type.

2008-10-11  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin-proxy.cpp: Add conditionals for ffmpeg inclusion
	* Makefile.am: Respect ffmpeg inclusion in xpi install

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

	* plugin.mdp: Added.

2008-01-09  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: add two new wrapper types -
	one for StrokeCollection and the other for Stroke, so that both of
	them can implement their GetBounds and HitTest methods.
	
2008-01-09  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: a few changes with the
	MoonlightMouseEventArgsObject.  It now wraps a MouseEventArgs*.
	Translate all the property accesses and method calls into
	accesses/calls on the actual MouseEventArgs, instead of having the
	code live here.  Also, add STYLUSINFO handling to the
	EventObjectWrapper method.

2008-01-09  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (Initialize): Use g_ascii_strcasecmp() so that we are
	not locale dependent.

2008-01-04  Jeffrey Stedfast  <fejj@novell.com>

	Fix for bug #348772

	* plugin-class.cpp (EventListenerProxy::AddHandler): Add a handler
	for the destroyed event too so that we can clear our target_object
	pointer.
	(EventListenerProxy::on_target_object_destroyed): New callback to
	clear the target_object pointer when it gets destroyed.
	(EventListenerProxy::get_wrapper_for_event_name): Use
	g_ascii_strcasecmp() instead of g_strcasecmp().
	(EventListenerProxy::~EventProxyListener): Disconnect from the
	destroyed event and the other event if still hooked up.

2008-01-03  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (_set_dependency_property_value): For
	non-object variants, we can easily get away with using a static
	string buffer rather than using dynamically allocated strings to
	hold our temp values.

2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: PluginInstance::SetSource: don't check if we're setting the
	  same source. Fixes #349592.

2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Don't crash if surface->GetTopLevel returns null. Fixes
	  #349816.

2007-12-20  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-class.cpp|h: Add support for StylusPointCollection since 
	it's a special case where a new method, AddStylusPoints, is 
	introduced. Fix unit tests for StylusPointCollection but doesn't
	solve bugs #349596 and 349598 because we don't capture the mouse
	points.

2007-12-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp (MoonId_GetStylusPoints): return an
	empty StylusPointCollection instead of doing non-sense.

2007-12-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp: throw if createObject is called
	for something else than Downloader.

2007-12-18  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin-class.cpp: The plugin handle Color as an integer (see js 
	unit tests).

2007-12-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: The part parameter of MediaElement::SetSource is the
	  second parameter, fixes a crash when js calls SetSource. Also removed
	  some warnings.

2007-12-17  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp: return null instead of undefined
	on GetValue is the value is NULL. Fixes a lot of tests
	for default values.

2007-12-14  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (PluginInstance::CreateWindow): Set the FPS report
	callback.
	(PluginInstance::Properties): Added FPS enable/disable properties.
	(PluginInstance::ReportFPS): Report the FPS via the browser's
	status widget.

2007-12-14  Jeffrey Stedfast  <fejj@novell.com>

	* downloader.cpp (p_downloader_abort): Set pd->stream to NULL
	after destroying it.

	* plugin.cpp (PluginInstance::TryLoad): Added a comment that we
	should check for errors returned by NPN_GetURLNotify().
	(PluginInstance::UpdateSource): Same.
	(PluginInstance::UrlNotify): Removed a printf.

2007-12-12  Jeffrey Stedfast  <fejj@novell.com>

	Fixes toward bug #341853

	* downloader.cpp (p_downloader_send): Check the return code from
	NPN_GetURLNotify() as it will give us an error if the file doesn't
	exist.

	* plugin.cpp (UrlNotify): Call Downloader::NotifyFailed() on
	error.

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

	* plugin-class.h, plugin-class.cpp: more event changes.  return
	the integer token for adding a handler, and change
	removeEventListener to accept either a string (unsupported at the
	moment) or integer second argument.  This allows things like
	removeEventListener (..., 0) for removing the event handler that's
	registered in xaml.

	Also, remove MoonlightEventListener{Type,Object} since we don't
	need to return a wrapped object from addEventListener any longer.

2007-12-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Plug more leaks.

2007-12-06  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp (MoonlightCollectionObject::Invoke):
	Implemented GetItemByName for MediaAttributeCollections.

2007-12-06  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: a few changes.  abstract out
	all the event-as-property code, so we just add events to objects
	as additional properties in their mapping, and the MoonlightObject
	code handles it all for us.

2007-12-05  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
	implement Equals.

2007-12-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Rename DependencyObject::parent/SetParent/GetParent
	
	    to logical_parent/SetLogicalParent/GetLogicalParent.

2007-12-04  Jb Evain  <jbevain@novell.com>

	* plugin-class.h: add the definitions of MoonlightStylusInfoType
	and MoonlightStylusInfoObject.

	* plugin-class.cpp: implement MoonlightStylusInfoType and
	MoonlightStylusInfoObject. Add getStylusInfo() and getStylusPoints()
	methods on MouseEventArgs.

2007-12-04  Jackson Harper  <jackson@ximian.com>

	* plugin-class.cpp: Map in IsLoaded, so HasProperty will return
	true for it.

2007-12-03  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (Properties): Added more runtime debug options.

2007-11-29  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (PluginInstance::Properties): Added runtime ability
	to enable show-expose regions.

2007-11-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp: rename INVOKE_EXCEPTION to
	THROW_JS_EXCEPTION. Throw more exceptions where needed.

2007-11-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp: throw JS exceptions where SL does.

2007-11-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.cpp( MoonlightContentObject::Invoke):
		return null instead of undefined, like SL 1.0 does.

2007-11-20  Jb Evain  <jbevain@novell.com>

	* plugin-class.h (html_get_element_text): add a function
	to get the `innerText` of an html element from its id.
	* plugin-class.cpp (html_get_element_text): implement it.
	* plugin.cpp (PluginInstance::UpdateSourceByReference):
	use html_get_element_text to get the inline xaml.
	Fixes #342349.

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

	* plugin-class.cpp, plugin-class.h: switch
	hasProperty,getProperty,setProperty,hasMethod,invoke to object
	methods instead of vtable entries on the type.  Also, put the
	name->id mapping in MoonlightObject's vtable entries, before the
	call to the virtual object methods (so now we only do name lookups
	there instead of all over the place) Also, aggregate mappings for
	all classes up to the root in the hierarchy when we initialize the
	type.  This means only 1 bsearch per LookupName, instead of 1 per
	mapping.
	
2007-11-15  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-class.cpp: Alphabetize all of the mapping tables so that
	bsearch works properly.

2007-11-14  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h, plugin-class.cpp: substantially rework the way
	names are looked up.  remove 90% of the has_method/has_property
	code, and move all the invoke/get_property/set_property to using
	id's for their work instead of string comparisons.  also make the
	string lookups case insensitive.  I don't much like the way
	chaining is done (check out MoonlightObjectType::SetBase and
	MoonlightObjectType::LookupName), but it's working for now, and
	should be substantially faster (and easier to maintain) this way
	than the naive conversion to case insensitivity.

2007-11-14  Jeffrey Stedfast  <fejj@novell.com>

	Fixes for the Matrix demo.

	* plugin-class.cpp (EventListenerProxy): Don't leak the NPObject.
	(proxy_listener_to_javascript): Updated printf debugging.
	(moonlight_content_invoke): Use the second argument
	(create_namescope) and pass that along to xaml_create_from_str().

2007-11-14  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: strip the ffmpeg libs for the user plugin but do not
	strip libmoon and libmono, will either add an option to strip those libs
	later or just make that part of the release process.
	* install.js.in: Cleaned up error handling and added a call to
	refreshPlugins(), should make it so nobody has to restart firefox

2007-11-13  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Use the mono_ddldir rather than assuming /usr/lib and
	pick up any dlls in the gac that are for the 2.1 profile so that we
	don't miss any that should have been symlinked in /usr/lib/mono/2.1 but
	for some reason were not.

2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Add moon.config to EXTRA_DIST

2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.js.in: Just add moonlight directory, not individual files.
	* mono.cpp: Get moonlight.exe from home dir plugin path.
	* plugin-proxy.cpp: dlopen libmono and set it's dirs.
	* Makefile.am: Build out the full directory structure for the user
	plugin and zip that.
	* moon.config: Installed as $sysconfdir/mono/config to tell mono to
	use the	already dlopened libmoon.so.

2007-11-09  Sebastien Pouliot  <sebastien@ximian.com>

	* plugin.cpp: Fix Moonlight URL (#339929) since it didn't work.

2007-11-09  Jb Evain  <jbevain@novell.com>

	* browser-http.cpp|h: make browser_http_request_get_async_response
	return a boolean.


2007-11-08  Miguel de Icaza  <miguel@novell.com>

	* plugin.cpp (PluginInstance::Properties): Spice this bad boy up.
	We now can get some info about a XAML surface.

2007-11-08  Jeffrey Stedfast  <fejj@novell.com>

	* plugin.cpp (plugin_instance_get_surface): New function needed by
	BrowserHost class.
	(TryLoad): Removed an unnecessary g_assert() (the code handles the
	error case properly).

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

	* browser-http.cpp|h: implement a GetStatus method for
	BrowserHttpResponse.

2007-11-06  Miguel de Icaza  <miguel@novell.com>

	* plugin.cpp (string_to_js): rename from escape_quotes, this helps
	because some error messages being thrown from managed code contain
	newlines (Sudoku, see #325336).

2007-11-05  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_content_invoke): don't crash if the
	surface hasn't been attached (if we haven't finished loading the
	xaml yet).

2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>

	* plugin.cpp: Replace PLUGIN_OURVERSION with VERSION (from config.h)
	* moonlight.h: Put the version in the description string for the sake
	of our QA folks

2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.js.in: Get the version and the target CPU from configure and
	do some error checking, including checking that the platform matches

2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Apparently $(builddir) is a newer autotools feature not
	available on SuSE 10.1 so we'll just not use it.

2007-11-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* downloader.cpp: Don't keep a ref to the Downloader, it causes a circular
	  reference.

2007-10-31  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Don't link in cairo, pixman, or anything else that we
	don't need to libmoonplugin

2007-10-29  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.js, plugin-proxy.cpp, Makefile.am: Changes to include ffmpeg
	libs in the XPI package

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

	* plugin-class.cpp: Make onError work.

2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp, plugin-class.h: Implement emission of MarkerReached
	  events.

2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* mono.cpp: Enable vm stacktraces after mono has been loaded.

2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* downloader.cpp: Ref/unref the downloader.

2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.h: NULL-initialize a variable, fixing a crash.

2007-10-25  Jackson Harper  <jackson@ximian.com>

	* plugin-class.h:
	* plugin-class.cpp: Add the onError event to the content object.

2007-10-25  Jackson Harper  <jackson@ximian.com>

	* plugin-class.cpp: Fix function name.

2007-10-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Unref the event object even though the plugin is
	  deleted.

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

	* browser-http.cpp|h: work on asynchronous requests.

2007-10-23  Andrew Jorgensen  <ajorgensen@novell.com>

	* install.js: Install the libraries under ~/.mozilla/plugins/moonlight
	so that they are not loaded by mozilla
	* moonlight.h: Don't define PLUGIN_INSTALL unless it is not defined
	* plugin-proxy.cpp: dlopen libmoon.so from the user's
	plugins/moonlight directory if we are building the user plugin
	* Makefile.am: Use the PLUGIN_INSTALL flag to control building of the
	XPI or not

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

	* browser-http.cpp|h: Add support for Abort and SetBody.

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

	* browser-http.cpp: add browser_http_response_destroy and
	browser_http_sync_response_read.

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

	* browser-http.cpp|h (SyncBrowserHttpRequest::Read):
	do read the entire input stream even if it's a buffered
	input stream.

2007-10-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: If we're leaking NPObjects make sure we don't crash in
	  invalidate, since FF will call invalidate long after shutting down
	  moonlight.

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

	* browser-http.cpp|h: add the files where the unmanaged
	implementation of BrowserHttpRequest will live.

	* Makefile.am: add them to the build.

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

	* plugin-class.cpp (moonlight_dependency_object_invoke): make the
	debug "printf" method its own method, instead of a hack on
	setValue.
	(MoonlightEventObjectObject::Dispose): remove the wrapped object
	from the cache.
	(MoonlightEventObjectObject::SetEventObject): update the cache.
	(EventObjectCreateWrapper): check the cache before creating a new
	js wrapper object.

	* debug.js: convert from
		printf_proxy.setValue ("printf", message);
	to
		printf_proxy.printf (message);

	* plugin.cpp, plugin.h: add {Add,Remove,Lookup}WrappedObject
	methods to cache the JS objects we use for a given EventObject*.

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

	* plugin.cpp (PluginXamlLoader::TryLoad): use ->Attach instead of
	surface_attach, and add a comment about element->unref().

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

	* plugin.cpp: add plugin_instance_get_browser_runtime_settings.

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

	* moonlight.cs: Keep track of all plugin unload callbacks.
	Don't use Hashtable and refactor some code.

2007-10-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp, plugin-proxy.cpp: Remove some const char/char mismatch
	  warnings.
	* plugin-glue.cpp: Fix some const char/char mismatch warnings.

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

	* plugin-class.cpp (EventListenerProxy::~EventListenerProxy):
	don't NPN_ReleaseObject the callback.  the browser does this for
	us.

2007-10-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Fix e-mail.

2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Can't use the -MM (fail if patterns not matched) because it
	is a newer feature.

2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Make zip fail if one of the files is not found

2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>

	* Makefile.am: Build the firefox xpi plugin installer (unsigned)
	* install.js: First draft install script for xpi

2007-10-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* TODO: Update, fullScreen is now implemented.

2007-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Set the downloader context of the surface.
	* downloader.cpp: Ref/unref the downloader we store. Get the context stored
	  in the downloader if possible, and use it to get the plugin instance.
	* plugin-class.cpp: Use the brand new PluginInstance::CreateDownloader, and
	  provide xaml loaders for the xaml_create_from* methods.
	* plugin.h: Add a CreateDownloader method.

2007-10-04  Zoltan Varga  <vargaz@gmail.com>

	* plugin.cpp (LoadUrl): New method to download stuff synchronously using the browser.
	(plugin_instance_load_url): C wrapper for the above.
	(ReportException): Fix a leak.

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

	* moonlight.h: need to wrap the renamed symbols in an extern "C"
	block.

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

	* moonlight.h, plugin-entry.cpp, plugin-proxy.cpp: if we're using
	libmoonloader.so, we need to rename the 4 symbols we proxy in
	plugin-entry.cpp, and load them up via our mangled names in
	plugin-proxy.cpp.  This is so mozilla doesn't try to load
	libmoonplugin.so as a plugin itself.  It should only load
	libmoonloader.so.  Also, add code in plugin-proxy.cpp to handle
	the case where the .so lives in ~/.mozilla/plugins.  This requires
	#define PLUGIN_INSTALL 1 to be used, so we should figure out how
	to build with that when building the XPI.

2007-10-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp, plugin.h: Added SetPageURL, updates the Surface' source
	  location to the url of the current page.

2007-09-30  Zoltan Varga  <vargaz@gmail.com>

	* plugin.cpp (ReportException): Handle multiple calls correctly.

2007-09-28  Chris Toshok  <toshok@ximian.com>

	* Makefile.am: wrap moonlight.exe stuff in "if
	INCLUDE_MONO_RUNTIME" where necessary.

2007-09-28  Chris Toshok  <toshok@ximian.com>

	* moonlight.h (INCLUDE_MONO_RUNTIME): remove #define from here.
	it's now a configure arg (and the define lives in config.h).

2007-09-28  Zoltan Varga  <vargaz@gmail.com>

	* plugin.cpp (UrlNotify): Add some debug messages here.
	
	* plugin.cpp (ReportException): New helper function to display exception details
	using dynamic html above the plugin frame.

2007-09-27  Jeffrey Stedfast  <fejj@novell.com>

	* plugin-glue.cpp (NPP_Initialize): Call runtime_init() with
	RUNTIME_INIT_BROWSER.

2007-09-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Properly release a MoonlightObject.

2007-09-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: PluginInstance::UrlNotify: delete the StreamNotify when we're
	  done with it. Added plugin_xaml_loader_from_str.
	* plugin-class.cpp: moonlight_scriptable_control_invoke: unref the
	  Downloader we create once the object wrapper has it. Move implementation
	  of MoonlightEventObjectObject::SetEventObject here.
	* plugin.h: StreamNotify: ref the DependencyObject we get, and unref on
	  destruction. Added plugin_xaml_loader_from_str.
	* plugin-class.h: Move implementation of
	  MoonlightEventObjectObject::SetEventObject to the cpp file.

2007-09-23  Jb Evain  <jbevain@novell.com>

	* plugin.cpp: Pride sin, add my name to the contributors.

2007-09-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp, plugin.h: Add a plugin_unload_callback to PluginInstance, and
	  call it in the dtor.
	* moonlight.cs: Added UnloadDomain: unloads the domain that was loaded for a
	  specific plugin, and set the corresponding native callback. Keep a hash
	  table of all created domains so that we know which domain to unload,
	  Delete some dead code (DisposeXamlLoader, ~Loader, Dispose)

2007-09-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: If an assembly already has been downloaded once, don't try to
	  reload the xaml (otherwise might cause a loop if loading the xaml failed
	  due to a reason other than that the assembly wasn't already downloaded).
	  Added PluginXamlLoader::LoadVM.  PluginXamlLoader::TryLoad: don't call
	  into the vm here, since it might not be loaded yet. Move implementation
	  of InsertMapping, CreateElement and SetAttribute to XamlLoader.
	  InitializeLoader: don't create a managed loader if the vm hasn't been
	  loaded.
	* plugin.h: Move implementation of InsertMapping, CreateElement and
	  SetAttribute to XamlLoader.
	* plugin-class.h: Remove unused function declaration.
	* mono.cpp, moon-mono.h: Remove all managed methods except moon_load_xaml,
	  which sets the methods as callbacks on the xaml loader with delegates
	  now. Guard against loading the vm twice.
	* moonlight.cs: Moved code to agclr, just kept a simple stub here that
	  creates the new AppDomain.
	* plugin-glue.cpp: Don't initialize the vm when the plugin is initialized,
	  it's initialized on demand.

2007-09-19  Zoltan Varga  <vargaz@gmail.com>

	* plugin.cpp (plugin_menu_about): Make the close button work on some gtk versions.

2007-09-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Remove a printf.
	* plugin-class.cpp, plugin-class.h: Apparently invalidate isn't always
	  called for our MoonlightObjects (though deallocate is). Create a Dispose
	  method that does what invalidate did (and call it from Invalidate), and
	  keep track if it has been called or not (allows deallocate to call it if
	  invalidate wasn't called by mozilla). Make Dispose virtual so that the
	  base deallocator can call it for all derived classes (which also means
	  that we only need the base invalidate method), and add a virtual
	  destructor so that the base deallocator can also delete the object (and
	  remove all other *_deallocator methods). proxy_listener_to_javascript:
	  release objects at the end of the method.

2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp, plugin.h, moonlight.cs: Move callbacks from PluginXamlLoader
	  back to XamlLoader.

2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* downloader.cpp: Removed warning.
	* plugin.cpp: Delete the current xaml_loader if we create a new one.

2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	

2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	[Removed mono dependency for 1.0 moonlight applications. 
	We now have a native [Plugin]XamlLoader that is the native counterpart of the 
	managed Loader object, the native loader handles xaml loading when the 
	mono runtime isn't loaded.]

	* plugin.cpp, plugin.h: Added PluginXamlLoader that can forward calls into
	  the managed loader if the mono runtime is loaded.
	* plugin-class.cpp: isVersionSupported: if built without mono runtime
	  support, we only support 1.0 applications. Update according to API
	  change.
	* moonlight.h, mono.cpp, moon-mono.h: Update according to API change.
	* moonlight.cs: Update according to API change. Added Hosting.base_unref and
	  unref a few objects.
	* plugin-glue.cpp: Don't initialize the mono runtime for 1.0 applications.

2007-09-09  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_content_invoke): implement
	content.createFromXamlDownloader.

Thu Sep 6 16:19:58 CEST 2007 Paolo Molaro <lupus@ximian.com>

	* mono.cpp, moon-mono.h, plugin.cpp, plugin.h: correct use of mono
	objects: they can't be stored in unmanaged memory.

Thu Sep 6 15:22:20 CEST 2007 Paolo Molaro <lupus@ximian.com>

	* mono.cpp, moon-mono.h: cleanup of some code and localized the mono
	runtime calls.

2007-09-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Added some special debug code, enabling basic printf
	  functionality from javascript code. No need to synchronize console
	  output with firebug output anymore.
	* debug.js: Added, a printf function for javascript, specially crafted for
	  moonlight.

2007-08-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Get the actual size from the surface.

2007-08-31  Michael Hutchinson <m.j.hutchinson@gmail.com>

	* plugin.cpp: Fix pointer cast for 64-bit arch. 

2007-08-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* downloader.cpp: Added downloader_destroy.
	* plugin-class.cpp, plugin-class.h: Add plugin_destroy_classes, and remove a
	  duplicate creation of MoonlightPointClass.
	* plugin-glue.cpp: Try shutting down everything correctly, if it can be
	  shutdown, if not, don't initialize twice (vm and gtk).

2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin-class.cpp: Javascript expects the sender of a FullScreenChange
	  event to be the toplevel canvas, so when the Surface emits this event,
	  change the sender to the toplevel canvas.

2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 

	* plugin.cpp: Don't delete the surface, unref it.
	* plugin-class.cpp, plugin-class.h: Create a MoonlightEventObject* and make
	  MoonlightDependencyObject* inherit from it. Change all event usage to
	  the new class, enables events for objects that aren't DependencyObjects
	  (but are EventObjects, such as Surface). Implement FullScreen support in
	  the plugin.  Remove the dob field from MoonlightDependencyObject, the
	  MoonlightEventObject has an eo field that fits the purpose, and
	  implement a MoonlightDependencyObject.GetDependencyObject () that does
	  what dob did earlier (and change all usages).

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

	* plugin-class.cpp|h: Add a new EventListenerObject that we can
	return from addEventListener.
	- Implement removeEventListener.

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

	* plugin-class.cpp|h: Now that getPosition works as intended, we
	don't need to store the position as an NPObject on the
	MouseEventArgs.
	- Eliminate the variant_to_value so that we don't need to do a
	bunch of extra casting.

2007-08-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* plugin-class.cpp: mouse_event_invoke (getPosition):
	use the argument to calculate the position if provided.

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

	* plugin-class.cpp: We can now hookup to the resize event.

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

	* mono.cpp (vm_init): properly initialize the new debugging
	code.

2007-08-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* plugin-class.cpp|h: Duration and TimeSpan's seconds property
	is a double, so treat is as such. Add moonlight type information
	to MoonlightObject (and derived classes), so that the marshalling 
	knows how to treat them when they come back from js land.
	_set_dependency_property_value: handle values coming from js land
	correctly, according to their moonlight type.

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

	* mono.cpp (vm_init): use new method name to initialize
	the debugger.

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

	* Makefile.am: use -pkg:agmonosilver to reference agmono.dll

2007-08-17  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp|h: add a TimeSpan wrapper object.

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

	* mono.cpp (vm_init): small refactoring to get MonoMethods.

2007-08-17  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_content_has/get/set_property): stub
	the onFullScreenChange property, to just warn us about the
	unimplemented functionality.

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

	* plugin-class.cpp|h: Add a duration object that is exposed to the
	JS.
	- Fix the value_to_variant to handle durations, rects and points.

2007-08-17  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_dependency_object_invoke): add
	toString method for DependencyObjects, which just returns the type
	name.

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

	* plugin-class.cpp: Properties are allowed to be null, so we still
	return true if the value is null.

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

	* plugin-class.cpp: Add the Root property to the content
	object. This just returns the top element.

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

	* Makefile.am: use smcs to compile moonlight.exe
	* mono.cpp (vm_init): force the use of the moonlight profile
	by the mono vm.

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

	* plugin.cpp:
	* downloader.cpp: Remove my downloader event code, these are
	raised elsewhere (they were hidden behind another bug yesterday).

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

	* plugin-class.cpp: Fix cut&paste error that was preventing
	GetValue from working (get value only needs one arg).

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

	* plugin-class.cpp: Add removeAt method to collections.

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

	* plugin-class.cpp: Implement ctrl/shift for mouse and keyboard
	events.  I didn't use a shared base class, because the
	duplicated code is significantly less than the boilerplate code
	needed.

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

	* plugin-class.h|cpp: Add support for keyboard arguments in the
	keyup/keydown events. TODO: Still need to implement shift and
	control, ideally, in a base class for mouse and keyboard events.

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

	* plugin.cpp:
	* downloader.cpp: Raise downloading events.

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

	* plugin-class.cpp: findName should only look in the dependency
	object's scope.

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

	* plugin-class.cpp: For dependency object strings don't return
	null, just return an empty string.

2007-08-11  Miguel de Icaza  <miguel@novell.com>

	* moonlight.cs: Use the new Appdomain helper methods too.

	Use Ansi here because we only run on Linux not on
	Windows and the Auto API is gone from 2.1

	* moonligth.cs: Use the new helper method from agmono instead of
	duplicating code here.

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

	* moonlight.cs: Add another system library to the do-not-download
	list.

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

	* plugin-class.cpp: We don't need to explicitly free the value
	because the dtor will for us.

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

	* plugin-class.cpp|h: Add functionality for detaching events and
	for releasing object references.
	- When looking up on the window object, do not release it.  It
	doesn't need to be released because it is never retained.
	- Add a new function for creating a browser alert message.

2007-08-03  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_downloader_*): add
	has_property/get_property methods, for the "responseText"
	property. not sure if getResponseText() is still around, but the
	property definitely is in use by silverlight pad.
	
2007-08-03  Jackson Harper  <jackson@ximian.com>

	* plugin-class.h|cpp: Add support for mouse events, pass all the
	info needed by HtmlEventArgs back in the callback.
	- Don't return null or void objects from invoke or get property.

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

	* moonlight.cs: Dont download all the system libraries.

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

	* plugin-class.h|cpp: Add support for attaching properties.

2007-08-02  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp (moonlight_content_invoke): createFromXaml
	doesn't create a control object - it parses the xaml you pass in
	and returns the root element, so it can be used for any xaml
	content.

	* plugin.h, plugin.cpp: add plugin_instance_get_init_params for
	use in WebApplication.StartupArgs.

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

	* moonlight.h: track the 1.1 refresh changes.

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

	* plugin-class.cpp (moonlight_dependency_object_invoke): implement
	"getParent" correctly - it can return NULL.

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

	* plugin-class.h: implement scriptable events (adding and emitting
	them, at least).

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

	* plugin-class.cpp|h: Add function to invoke methods on
	htmlobjects from unmanaged code.
	
2007-07-24  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::setBackground): implement.
	(PluginInstance::CreateWindow): if our args contained a background
	color, set the surface's background.

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

	* plugin-class.cpp: Move the window release up, prevents random
	crashing in firefox.

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

	* plugin-class.h, plugin-class.cpp: add wrapper classes for
	TextBlocks and ImageBrushes.

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

	* plugin-class.cpp: Implement variants to value on objects. TODO,
	add a method to release those objects.

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

	* plugin-class.h, plugin-class.cpp: add a wrapper class for
	Images, which implements SetSource. also add SetSource handling
	for the MediaElement wrapper.

	* moonlight.cs: rework event hookup so that if we fail to hookup
	with C#, we assume it's a JS event.  hook it up via the
	EventListenerProxy stuff.

	* plugin.h, plugin.cpp: MoonlightControl -> MoonlightScriptable

	* plugin-class.h, plugin-class.cpp: 

	1. rename MoonlightControl* to MoonlightScriptableControl* to
	distinguish it from the new MoonlightControl, which is a wrapper
	for our Control class.  factor out the _set_dependency_property_value

	2. add "getParent", "setValue", and "getValue" methods to the
	dependencyobject wrapper.

	3. Add a ctor for EventListenerProxy which just takes the callback
	name for use in hooking up js events from the parser.

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

	* plugin.h|cpp: Add a getter for the plugin instance
	* plugin-class.h|cpp: Property get/setters for html objects.

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

	* plugin-class.h, plugin-class.cpp: include error.h, and start out
	some error event args wrapping stuff.

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

	* plugin.cpp (PluginInstance): track the timers on a linked list
	here. 

	(~PluginInstance): Remove all the timers for this plugin on
	destruction. 

	(plugin_html_timer_timeout_add, plugin_html_timer_timeout_stop):
	Move these routines here and track all the timers created. 

	* moonlight.cs: Use the type from agmono instead of agclr

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

	* plugin-class.cpp (variant_to_value): fix this such that it
	doesn't crash due to c++'s not using a copy ctor when you do "foo
	= Value()".  the first of the changes are fallout from this.

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

	* Fix a memory leak.

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

	* plugin-class.h, plugin-class.cpp: factor out the
	EventListenerProxy stuff into a separate class.

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

	* plugin-class.cpp (moonlight_control_get_property): Retain the
	settings/content objects before returning them.  fixes crash in
	silverlight chess.

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

	* plugin.h, plugin.cpp: add getBrowserInformation call, useful for
	populating the managed BrowserInformation object.  need to flesh
	out how to get the other info.  userAgent is easy.

	also, in plugin.cpp, only invoke is onLoad handler if
	vm_loader_try doesn't return a missing file.  This fixes the
	ordering problem in the silverlight chess demo (where we were
	accessing JScriptPlayer before it was created).
	
2007-07-19  Chris Toshok  <toshok@ximian.com>

	* plugin-class.h: add some scriptable object event stuff.

	* plugin-class.cpp: a couple of things.

	1) fix the _invalidate and _deallocate methods.  _invalidate
	shouldn't release objects.  and _deallocate can now call delete
	again, so we don't leak all our wrapper objects.

	2) add some initial scriptable object event methods (add/remove),
	but they don't actually do much yet.
	
	* plugin.cpp: fix the refcounting of the rootobject, and remove
	some RUNTIME ifdefs.

	* plugin-glue.cpp (NPP_Initialize): remove the RUNTIME ifdefs.

	* moonlight.h: remove some of the unused ifdefs.  also, we're not
	going to ever build this with RUNTIME or SCRIPTING not defined, so
	remove them.

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

	* plugin-class.cpp: Build fix.

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

	* plugin-class.cpp (moonlight_scriptable_object_invoke): deal with
	function arguments.

	* plugin-class.h: change the type of InvokeDelegate - we pass an
	array, not an array of pointers.

	* plugin.cpp (JsRunOnload): remove redundant call to
	surface->GetToplevel().

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

	* moonlight.cs: AppDomain.SetData the plugin instance so
	WebApplication can get at it.

	* plugin-class.cpp (variant_to_value): pseudo-inverse of
	value_to_variant.  used by the scriptable object stuff.

	Also, add the first pass at the scriptable object code.  it's
	really, really rough at this point.
	
	* plugin.cpp (PluginInstance::GetValue): switch this to calling
	getRootObject().
	(PluginInstance::getRootObject): put the old GetValue (create or
	retain) logic here.

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

	* plugin-class.cpp: implement support for using a string as the
	second arg in addEventListener.  now you can register callbacks
	using either:

	object.addEventListener ("EventName", method);

	or

	object.addEventListener ("EventName", "methodName");

	fixes SilverlightChess crashing (since we were trying to
	InvokeDefault a string.  oops. :)

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

	* plugin-class.cpp (moonlight_dependency_object_invoke): implement
	captureMouse/releaseMouseCapture.  going to move these to a
	UIElement specific wrapper next.

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

	* plugin-class.cpp, plugin-class.h:  a few things:

	refactor the listener proxying stuff to share code.  when creating
	a proxy you create the event arg wrapper function, which at
	present only the mouse event stuff uses.

	wrap Downloader.  events are properly emitted, we should move the
	Downloader to using EventHandler's instead of its custom list of
	listeners.

	when looking up an attached property both (or one, or neither!) of
	the names can be capitalized.  like: foo['canvas.top'],
	foo['Canvas.Top'], and foo['canvas.Top'].  handle all of them.

	in value_to_variant, when setting a property to an object value,
	we assume (perhaps incorrectly) that it will be a
	MoonlightDependencyObjectObject, and handle it that way.  it seems
	to work for the demos at least.  Also in that same method, stop
	allocating a 20 byte buffer in the hope that it's enough.  just
	use g_strdup/g_strdup_printf.
	
	add control.createObject support for creating wrapped
	downloaders.  also, start on the implementation for
	control.onResize, but we need to shift the surface's resize
	callback to use an EventHandler.

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

	* plugin-class.cpp, plugin-class.h: fix up the point and rect
	wrappings, and implement mouse event proxying.

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

	* plugin-class.cpp, plugin-class.h: wrap the MediaElement enough
	to provide the start/stop/pause methods.

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

	* plugin-class.cpp, plugin-class.h, plugin-glue.cpp, plugin.h,
	plugin.cpp: I know this looks like a scary change, but 90% of the
	code is the same.  I just took advantage of the fact that we
	already have structs with all the function pointers in them.
	there's no reason to proxy from a function pointer in the struct
	to an instance method on a singleton class - just use the function
	pointer.

	Also, add a binding for Points, which we'll need to wrap mouse
	events.

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

	* moonlight.h (DEBUG_WARN_NOTIMPLEMENTED): add this macro so we
	can get spew to the console when we hit unimplemented bits.

	* plugin-class.cpp: a couple of changes:

	1. the case of property names is lax too, it seems.  'Children'
	can be used in the js, as well as 'Children'.  so we need to allow
	both.

	2. Fix a memory corruption issue with value_to_variant - we need
	to duplicate the string we give to mozilla, since it'll free it in
	NPN_ReleaseVariantValue.

	3. Implement proxies between our event handlers and JS event
	listeners.  We leak like a sieve here, btw.  need to figure out
	the best way to free up these proxies.  This works for any event
	that has been Register'ed by an EventObject and which is Emit'ed
	from C++.

	4. Implement collection.getItem().
	
2007-07-11  Chris Toshok  <toshok@ximian.com>

	* plugin.h, plugin.cpp: add getRootObject to return the
	MoonlightControlObject.

	* plugin-class.cpp (MoonlightDependencyObjectClass::Invoke):
	implement "getHost" by returning PluginInstance->getRootObject().

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

	* plugin-class.h, plugin-class.cpp: substantially rework this
	stuff.  Rename everything Moonlight*Class and Moonlight*Object
	instead of Plugin*Class/Object, to make it a little clearer that
	these are (almost entirely) wrappers for moonlight objects.

	Also clean up the distinction between "Class" and "Object".  for
	instance, MoonlightDependencyObjectClass shouldn't have the
	DependencyObject*, that should live in the instance -
	MoonlightDependencyObjectObject (bad name i know..)

	our Objects also need a little bit more inheritance action.
	MoonlightObject isn't enough for all cases.  Augment this with
	other classes, and override AllocateObject to allocate the right
	kind per class.  Also, we need to override InvalidateObject to
	clear fields in the MoonlightObject subclasses before it's
	deallocated.

	Also make all the Class's singletons.  We never need more than one
	of each of them.
	
	* plugin.h, plugin.cpp: we don't need a generate JsExecute method.
	besides, it's dangerous to NPN_Evaluate strings we get from the
	HTML anyway.  Replace JsExecute with JsRunOnload, which uses
	NPN_Invoke to call the specified method.  we also need to pass the
	surface's toplevel control as an argument to it.

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

	* moonlight.cs: Add support for downloading assembly
	dependencies. 

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

	* moonlight.cs: add some helpful debug spew.

	* plugin.cpp (StreamAsFile): the mapping needs to point to the
	filename on disk, not the full uri.  or else we try loading
	"http://" off the filesystem, which doesn't really work.  Just to
	be thorough, add a mapping from the stream's url to the fname as
	well.

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

	* Makefile.am: install debugging symbols.

	* moonlight.cs: try/catch wrappers to prevent exceptions to be
	propagated to native code.

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

	* moonlight.cs: copy over the System.Reflection implementation of
	set_attribute from XamlReader.  also, track the change to the
	xaml_* apis - don't pass the callbacks to the individual methods.
	instead register them in a static ctor.

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

	* moonligh.cs: Invoke the Lookup(Kind, IntPtr) overload, just like
	we do in XamlReader. 

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

	* downloader.cpp: Update to the get-response-text downloader API.

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

	* plugin.cpp (NewStream): Request that DOWNLOADER downloads be
	downloaded as NP_ASFILE, this means: notify us of the progres and
	the resulting filename.

2007-06-26  Marek Habersack  <mhabersack@novell.com>

	* moonlight.h (GDK_NATIVE_WINDOW_POINTER): define this macro if
	we're on a 64-bit platform. Otherwise plugin.cpp will fail to
	compile (attempting to convert guint32 to 64-bit pointer).

2007-06-24  Larry Ewing  <lewing@novell.com>

	* moonlight.h: include xaml.h so that things build.

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

	* Makefile.am : we need libmoonplugin.so installed too.

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

	* plugin-proxy.cpp: This is the new entry point for the plugin
	which can be loaded and unloaded as many times as desired, and
	will keep the real plugin in $pkgdir/libmoonplugin.so loaded as
	well as the Mono VM

	This prevents the bugs where the code is unloaded, but we still
	have a few places where we are triggering screen updates when the
	objects have gone, those must be tracked down.

2007-06-23  Chris Toshok  <toshok@ximian.com>

	* Makefile.am: distcheck work.

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

	* README: barebones README to tell people what to do with the
	plugin.

2007-06-21  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Do what I was trying to do with the last commit.
	Attach the surface so that events are registed.

2007-06-21  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Init the surface so that the mouse events are
	hookedup.

2007-06-20  Jeffrey Stedfast  <fejj@gnome.org>

	* plugin.cpp (plugin_show_menu): Free the menu name after setting
	it on the widget.

	* mono.cpp (vm_init): Don't need top prefix with "/".

2007-06-20  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Add new params to xaml_create_from_file and 
	xaml_create_from_str calls to fix compilations problems.

2007-06-20  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (StreamAsFile): don't try to execute onLoad if there
	isn't one.

2007-06-20  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Implement JsExecute method and use it to call onload
	event specified in control creation. onLoad and onError field is also 
	created.

2007-06-20  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Tie into events.

2007-06-20  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Update DependencyObject setter to work with strings
	and some other data types, using xaml_set_property_from_str. Also remove
	some debug messages, we have too much.

2007-06-20  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Uncomment container detroy lines in Finalize method.

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

	* plugin-class.cpp: Alloc one byte to set it to NULL so we don't
	write to unallocated memory.

2007-06-20  Chris Toshok  <toshok@ximian.com>

	* plugin.cpp (PluginInstance::Write): it turns out the "offset"
	parameter that is passed to us is the offset without the *stream*,
	not the buffer.  Always pass 0 for the offset to downloader_write.
	This fixes image downloads for images larger than the mozilla
	buffer size (those requiring more than 1 write) of 16384.

2007-06-19  Chris Toshok  <toshok@ximian.com>

	* plugin-glue.cpp (NPP_Initialize): if we're going to Shutdown()
	the TimeManager in NPP_Shutdown, we need to restart it in
	NP_Initialize.

2007-06-19  Chris Toshok  <toshok@ximian.com>

	* plugin-class.cpp: check in the variant_to_value/value_to_variant
	methods, and make GetProperty/SetProperty use them.

	* plugin.cpp (UpdateSourceByReference): use g_strlcpy/g_strlcat
	instead of strcpy/strcat (which was actually walking off the end
	of the string).  also, create the char array of the right size.

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

	* Makefile.am : we need uninstall-plugin to avoid
	  possible browser shutdown on browsing sl-enabled sites.

2007-06-19  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp,  plugin-class.h: Implement DependencyObject properties
	getter and setters.

2007-06-19  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Eliminate remaining canvas field.

2007-06-19  Miguel de Icaza  <miguel@novell.com>

	* plugin.h: Eliminate the field canvas, as the managed code can
	replace the toplevel and we wont be able to track it.   Access the
	field directly from the surface instead.

2007-06-18  Miguel de Icaza  <miguel@novell.com>

	* moonlight.cs: Create appdomains to keep applications separate
	and to keep the IntPtr to the plugin.

	The handle to the plugin is stored in agclr in the BrowserHost
	class. 

2007-06-18  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Implement maxFrameRate property.

2007-06-18  Everaldo Canuto  <ecanuto@novell.com>

	* moonlight.h: Just a high value for MAX_STREAM_SIZE.

2007-06-18  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Implement Write and WriteReady to interact with
	Downloader functions. It looks to be right but image still dont appears, 
	mayeb something in download manager functions. STREAM_NOTIFY macro added to
	header file.

2007-06-18  Everaldo Canuto  <ecanuto@novell.com>

	* downloader.cpp: Fix stream notify data, must be Downloader not 
	PluginDownloader.

2007-06-18  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Remove stream destruction from Write and WriteReady, it
	was preventing browser to call our write function.

	* moonlight.h: MAX_STREAM_SIZE constant added.

2007-06-17  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Add a new StreamNotifyFlags REQUEST, it is used by
	files requested by Mono runtime, the use of notify bring us a more clean
	code to controls requested files.

	* downloader.cpp: Use StreamNotify and check for existense of instance.

007-06-17  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Parse type names out of xmns strings. x:Class uses
	this slightly different format.

2007-06-17  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Add support for "#" (references) in source urls, it
	make possible use embedded xaml files. Also every source updates go to the
	UpdateSource and UpdateSourceByReference methods.

	* moonlight.cs: Xaml file loader splited in two methods CreateXamlFileLoader
	and CreateXamlStrLoader to support embedded files.

	* mono.cpp: Wrapper funtions also splited in file loader and str loader.

2007-06-17  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Use setSource to define source in Initialize, it give us only
	one place to check set source code. Also prevent setSource to segfault when
	source field is null.

2007-06-17  Everaldo Canuto  <ecanuto@novell.com>

	Fixes browser segfaults related to timemanager when goto another page or 
	close browser.

	* plugin-glue.cpp: Call runtime_init every time that browser initialize 
	plugin, when plugin shutdown just shutdown timemanager since we have 
	problems to runtime_shutdown. Some comment added to this implementation
	and we must back here when runtime_shutdown is fixed.

2007-06-17  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Create StreamNotify class to use as notifydata 
	parameter in NPN_GetURLNotify function, it gives us better control about
	what is downloading. Fixes errors when you try change control source 
	property.

2007-06-17  Miguel de Icaza  <miguel@novell.com>

	* downloader.cpp (p_downloader_send): Some tidbits for the plugin
	download, not complete.

2007-06-16  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Set custom attributes on xaml elements.

2007-06-16  Everaldo Canuto  <ecanuto@novell.com>

	* moonlight.h: Include config.h since moonlight.h is included by all files.
	Fixes compilation problems.

2007-06-16  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Remove sourceUrl and use NPN_GetURLNotify notifyData
	param to inform when download is source.

2007-06-16  Everaldo Canuto  <ecanuto@novell.com>

	* mono.cpp: Remove debug message cr.

	* plugin.cpp, plugin.h, plugin-class.cpp: Windowless property added.

2007-06-16  Jackson Harper  <jackson@ximian.com>

	* moonlight.cs: Quick implementation of miguels beautiful new xaml
	loading mechanism. We now properly download the assembly and
	create the element. The custom.xaml test does work, however you
	need to invalidate the canvas to see the red canvas background
	showup.

2007-06-16  Miguel de Icaza  <miguel@novell.com>

	New mechanism for loading XAML files.

	Since XAML files can contain references to external assemblies and
	these have to be downloaded using the browser, we have now changed
	our previous setup that just called the xaml parser with a setup
	that is able to download dependencies.

	The system works by attempting repeatedly to parse the XAML file.
	The XAML parser needs to return an error condition that includes
	the missing dependency.   

	For all missing dependencies, we request the file from the
	browser, and we re-try the parsing until it works (or it fails due
	to other problems). 
	
	* moonlight.cs: Instead of exposing a CreateFromXaml method, we
	now expose a Loader object.

	The Loader object can keep track of downloaded assembly
	dependencies and calls the parser.
	
	* plugin.cpp (NewStream): Use a primitive state machine
	(vm_missing_url == vm_missing_file) to detect when we have just
	requested that a file be downloaded.   This probably is too
	primitive. 

	(TryLoad): New method.    
	
	Tries to load the XAML file, the parsing might fail because a
	required dependency is not available, so we need to queue the
	request to fetch the data.

	(LoadFromXaml): Use vm_xaml_loader_new and TryLoad now.
	
	* mono.cpp (vm_init): We now use a handful of more methods from
	moonlight.cs 

	(vm_loader_try, vm_insert_mapping): helper functions to call into
	the managed wrapper for XAML file loading.

2007-06-16  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, 
	* plugin.h, 
	* plugin-class.cpp: Implement enableFramerateCounter, enableRedrawRegions
	and enableHtmlAccess properties.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h, plugin-class.cpp: Background property added.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Let LoadFromXaml just call load xaml routines.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* moonlight.cs: Fix surface attachment.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Prevent multiple runtime and mono vm initialization.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: LoadFromXaml added to host canvas creation.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* moonlight.h: Turns mono runtime enabled by default.

	* mono.cpp: Use of DEBUGMSG macro for debug message.

	* moonlight.cs: Fix Canvas kind number.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h, plugin-class.cpp: Fix setter for source property.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Add sourceUrl to get information about base source
	url. New Stream also check if request is for source file, if not return
	NP_NORMAL to be used later by downloader functions.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: Remove macro STRING_TO_NPVARIANT, create
	method StringToNPVariant and change all reverences from macro to method. 
	StringToNPVariant also take care about NULL strings.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h, plugin-class.cpp: Implement initParams property.

2007-06-15  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Implement setters for enableFramerateCounter,
	enableHtmlAccess and windowless. This fields cant be set after 
	initialization so just do nothing and return true.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: After PluginObject changes we can back to release objects
	and it fix segfault when browser closes.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp,
	* plugin-class.cpp,
	* plugin-class.h: Remove unneeded instance fields, and contructor, after
	implementation of PluginObject we have a better way to get instance 
	information.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Change all PluginRootClass properties to use new object
	class PluginObject.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp,
	* plugin-class.h: Rename NPObject references to PluginObject, PluginObject 
	class theres more useful information like instance and plugin.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* downloader.cpp,
	* downloader.h,
	* Makefile.am: Downloader functions added.

	* plugin-glue.cpp: On NPP_Initialize call downloader_initialize.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: In PluginDependencyObject:: ClassGetProperty return 
	false instead of null because funtion is of type boolean. It fix message
	warning.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Move rootclass declaration to plugin-class.
	
	* plugin.h: Remove inclusion of plugin-class.h.

	* plugin-class.h: Introduces PluginObject class inherited from NPObject and 
	add rootclass declaration.

	* plugin-class.cpp: Uses PluginObject instead of NPObject, also make use of
	object in 'source' property getter.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Add a new member finalize that must be calling 
	instead of delete, we must later found a way to fix reload problems.

	* plugin-glue.cpp: Call finalize instead of delete.

	* TODO: Some notes about this bad implementation.

2007-06-14  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Add setter for control.source property.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: isLoaded property added.

	* plugin-class.cpp: Implement control.isLoaded wrapper.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.h: 
	- Take some notes on properties that cant be set after initialization.
	- Create macho STRING_TO_NPVARIANT to standardize the way how strings are
	returned to jscript calls.

	* plugin-class.cpp:
	- Implement control.source using STRING_TO_NPVARIANT macro.
	- Uses STRING_TO_NPVARIANT macho in control.settings.version.

	* plugin.h: Add source property.

	* plugin.cpp: Set source on initialization.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: 
	- Move static rootobject to class field to get working pages with more than
	one moonlight control.
	- Implement param source for html object elements, this is default way to
	tell plugin which xaml it must load.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h:
	- Move instance field from PluginRootClass to PluginClass because most
	classes can make use of this field, class constructor is also changed to
	receive instance as parameter.
	- Remove host field from PluginDependencyObject, host can be accessed using
	instance field.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp: Implement "control.content" proeprties.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* TODO: Added to include information about features that we know that is
	not current supported. Can be use for now to take some notes to be read 
	after 21th june.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.h: Add comments about read write/read only on properties.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: Add SetProperty to PLUGIN_PROPERTIES
	and implement it for all classes.

2007-06-13  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: 
	- Fix IndexOf method.
	- Create and uses macros PLUGIN_PROPERTIES and PLUGIN_METHODS to define 
	properties and methods.
	- Uses arrays to define properties and methods.
	- Use NPID macro to get string identifier.

2007-06-12  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp:  Fix dependency of PLUGINROOTCLASS_PCOUNT in property
	array initialization.

2007-06-12  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: 
	- Implement IndexOf method that uses and array.
	- implement properties array.
	- ClassHasProperty now uses IndexOf.

2007-06-12  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Fix LIBADD to include MOON_LIBS instead of two times 
	PLUGIN_LIBS.

2007-06-12  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: Get content and settings as a plugin
	class properties.

2007-06-12  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: PluginContent class added.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp, plugin.h: Remove unused CreateDemoControls method.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Remove unused code and fix function names.

	* moonlight.h: Remove ";" on end of PLUGIN_DESCRIPTION define.

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

	* Makefile.am : build fix. without -f rm fails.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-class.cpp, plugin-class.h: Remove unused method ClassAllocate
	and fix all debug messages.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* plugin.cpp: Fix object creation using NPN_RetainObject to increment
	reference count as described in Mozilla documentation.

	* plugin-class.cpp: On ClassDeallocate uses NPN_ReleaseObject that
	checks for references and release object when reference count is equal
	zero. It see to be solve all remaining segfault when browser closes.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	[Refactory jscript runtime code]

	* plugin-class.cpp, plugin-class.h: Create new class PluginRootClass,
	to be a proxy for javascript runtime calls, old code on plugin instance
	was moved here and all segfault related to script stuff was gone.

	* plugin.cpp, plugin.h: Remove jscript runtime related code and use
	PluginRootClass.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* moon-mono.cpp,
	* mono.cpp,
	* plugin.h: Fix remaining config.h -> moonlight.h.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* moonlight.h: Define RUNTIME to enable/disable mono runtime 
	integration. Its because right now it fails when open a page with 
	script so we can comment /#define RUNTIME to get plugin working in
	old way.

	* plugin.cpp: Dont call vm_load_xaml when RUNTIME is not defined.

	* plugin-glue.cpp: Dont call vm_init when RUNTIME is not defined.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Renamed to plugin.cpp.
	* moon-plugin.h: Renaned to plugin.h.
	* config.h: Renaned to moonlight.h.

	* plugin-class.h, plugin-glue.cpp: Update includes.

2007-06-11  Miguel de Icaza  <miguel@novell.com>

	* Makefile.am: Delete the ~/.mozilla/plugins/libmoon.so in case it
	was around, that was the painful bug.

	* moon-plugin.cpp (CreateWindow): Do not create a canvas, nor
	attach it, let Mono do that. 
	(StreamAsFile): Request that the VM loads the file, this will
	change to something else later when we use the Silverlight object
	embedding API.

	* moonlight.cs: Implement some bits, it currently only loads the
	XAML file, it needs to create a new appdomain.

2007-06-11  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am,
	* moon-mono.cpp,
	* mono.cpp: Rename moon.cpp to moon-mono.cpp.

	* moon-mono.h: Add header information.

	* plugin-glue.cpp,
	* config.h: Add constant MOON_1_0 and MOON_1_1, when 1.1 is define 
	compile also mono runtime, it is disabled by default since mono runtime
	give us some crashes right now.

2007-06-10  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: config.h added.

	* config.h: Added.

	* plugin-class.cpp,
	* moon-plugin.cpp,
	* plugin-class.h,
	* plugin-glue.cpp,
	* moon-plugin.h: Include config.h and remove unneeded includes.

2007-06-10  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Remove DEMO mode and set SCRIPTING mode by default.

2007-06-10  Miguel de Icaza  <miguel@novell.com>

	* moonlight.cs: the startup code, will contain the helper classes
	to create new AppDomains for each instance create.

	* mono.cpp: New file, embeds the Mono VM.

2007-06-10  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Call plugin instance destructor, now it dont causes
	error when you reload page.

	* moon-plugin.cpp: Only destroy container widget, if you dont destroy it
	when you start with page plugin, go to another page and close browser,
	a segfault is emited before browser exits. Now navigating for some time in
	silverlight pages looks to dont emit segfault if scripting is disabled.

	* plugin-class.cpp: Remove debug message from class constructor.

2007-06-09  Everaldo Canuto  <ecanuto@novell.com>

	[Xaml support]

	* moon-plugin.cpp: 
	- Read xaml file from src tag and display contents.
	- Disable demo box, now we have a better demo under xaml file.

2007-06-09  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: test added to subdirs.

2007-06-09  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp,
	* plugin-glue.cpp,
	* moon-plugin.h: Rename DEBUG to DEBUGMSG.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h,
	* moon-plugin.cpp: Change demo code to class method CreateDemoControls.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Add canvas, connect it to surface and get demo working
	back.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h,
	* moon-plugin.cpp: Rename CreateControls to CreateWindow.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Add $(MOON_LIBS) to linker options.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Dont delete plugin object since right now it causes some
	segfault when change to another page.

	* moon-plugin.cpp: Got scripting mode enabled by default.

2007-06-08  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Fix plugin destruction.
	* moon-plugin.cpp: Change button to gtk label with plugin name and version.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Set instance data to NULL to prevent error when browser
	closes.

	* moon-plugin.cpp: 
	- Disabled demo mode.
	- Enabled Scripting mode.
	- Fix runtime object creation, dont user NPN_RetainObject anymore.
	- Fix also object properties creation (settings).
	- Release object on class destructor.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Simplify controls creation and add a button when you are
	not in demo mode. It is just for now to made some tests.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Remove runtime initialization because it is wrong place.
	* plugin-glue.cpp: Add gtk and runtime initialization to NPP_Initialize.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Add some initialization code to prevent some segmentation
	fault.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Add SCRIPTING and DEMO macros to make available only
	tested features, it mean that developers must uncomment this MACRO lines
	before work on scripting and libmoon stuff.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Fix gtkplug creation fro 64bit systems. 

	* Makefile.am: Add -lavformat to link options.

	Thanks Grendel for this patches.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h: Change version number 0.99.0, SilverLight scripts searchs 
	for version > 0.95.1.

	* test/index.html: Small fixes in test page.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* test/index.html: Add javascript settings test.

	* moon-plugin.cpp,
	* moon-plugin.h: Implementing Settings class.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp,
	* moon-plugin.h: Implement runtime properties structure and 'version'
	property.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	[PluginClass added to handle script objects]

	* plugin-class.cpp,
	* plugin-class.h,
	* Makefile.am: PluginClass added.

	* moon-plugin.cpp, 
	* moon-plugin.h: PluginInstance now inherit from PluginClass, also 
	scriptclass was removed and "this" is used in NPN_CreateObject. For
	NPN_CreateObject we can now always use classes inherited by PluginClass.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Remove idl related code, new object system dont need idl or
	xpi files. 
	* nsIScriptableMoonPlugin.h: deleted.
	* nsIScriptableMoonPlugin.idl: deleted.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp: Fix the instance initialization problems, the object 
	instance was empty after creation.

2007-06-07  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp, 
	* moon-plugin.h,
	* plugin-glue.cpp: Fix SetValue declaration.

	* plugin-entry.cpp: Fix a lot of declarations, support for win and mac,
	support for runtime version checking and some other minor fixes.

2007-06-06  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Comment container destructor to prevent segfault.

2007-06-06  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Fix API change for Canvas.

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

	* moon-plugin.cpp: Fix API change for SolidColorBrush.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h: Add PLUGIN_OURNAME and PLUGIN_OURVERSION constants to 
	specify our internal name and version that differs from plugin version 
	detected by browser. SilverLight javascripts checks for WPF plugin and
	0.8.5.0 version.

	* moon-plugin.cpp: Change runtime initialization to CreateControls, before
	show demo.

	* plugin-glue.cpp: Fix memory allocation problems in NPP_New.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* plugin-glue.cpp,
	* moon-plugin.cpp,
	* moon-plugin.h: Add initialization and remove demo transformation.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	[Remove ScriptablePeer code]

	* nsScriptablePeer.h, nsScriptablePeer.cpp: Removed.

	* plugin-glue.cpp: Fix debugger messages.

	* Makefile.am, 
	* moon-plugin.cpp,
	* moon-plugin.h: Remove ScriptablePeer code since now Mozilla use
	another aproach.

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

	* moon-plugin.cpp: Fix API change for Rectangle.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin-glue.cpp: Splited in plugin-glue.cpp and plugin-entry.cpp.
	* plugin-glue.cpp: Fix 'undefined symbol' creating NPP_SetValueX.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Add some linker flags, it prevents crash on Epiphany.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* test/index.html: Add script to demo html page.

2007-06-05  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.cpp: Add runtime init to demo code.

2007-06-04  Everaldo Canuto  <ecanuto@novell.com>

	* plugin/Makefile.am: Generate and install .xpt for install-plugin target.

2007-06-04  Everaldo Canuto  <ecanuto@novell.com>

	[Implement scriptable to plugin]

	* plugin/test/index.html: Sample jscript included.

	* plugin/Makefile.am: Generates .h from idl file use xpidl.

	* plugin/moon-plugin.h,
	* plugin/moon-plugin.cpp,
	* plugin/moon-plugin-glue.cpp: Implement scriptable and some clean up.

	* plugin/nsIScriptableMoonPlugin.h,
	* plugin/nsIScriptableMoonPlugin.idl,
	* plugin/nsScriptablePeer.cpp,
	* plugin/nsScriptablePeer.h: New scriptable classes.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin-glue.cpp,
	* moon-plugin.h,
	* moon-plugin.cpp: Fix GetValue and implement SetValue.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h: Change plugin name, version and description to mimic 
	SilverLight and can be recognize as a valid plugin.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.c: Destroy objects on class destructor to prevent browser
	crashes.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	[Clean up demo and make some class fields private ]

	* moon-plugin-glue.c,
	* moon-plugin.h,
	* moon-plugin.c: Now just a surface control is added to plugn container,
	some field is now private demo was refactored.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Compile if needed for install-plugin target.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	[Move to c++ based classes ]
	
	* moon-plugin-glue.c: Fix getvalue to return error when no instance 
	available.

	* moon-plugin.h,
	* moon-plugin.c: Change all function to class methods, also move wrapper
	functions to moon-plugin-glue.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h,
	* moon-plugin.c,
	* moon-plugin-glue.c: Remove moon_plugin_initialize and moon_plugin_shutdown
	since whe alread have NP_Initialize and NP_Shutdown. Also change 
	PluginInstance structure to class (complete class suppont comming soon).

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin-glue.c: Some comments and stetic changes.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.h: Mime type description chage to 'WPFe Plug-In' to handle 
	SilverLight objects.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin.c:
	* moon-plugin.h: Remove unused members to provide a clean code.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* Makefile.am: Fix link options.

2007-06-03  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin-glue.c:
	* moon-plugin.c:
	* moon-plugin.h: Rename initialise to initialize.

	* Makefile.am: Add libmoon to link and install it on plugin dir.

2007-06-02  Everaldo Canuto  <ecanuto@novell.com>

	* moon-plugin-glue.c: Renamed to moon-plugin-glue.cpp.
	* moon-plugin.c: Renamed to moon-plugin.cpp.
	* Changelog: Create a separated change log for plugin.
	* Makefile.am: Renamed to moon-plugin.cpp.
	* moon-plugin.h: Renamed to moon-plugin.cpp.
	
	[Also add a sample to show libmoon features in browser]
