2009-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
[moon.git] / plugin / ChangeLog
blob7bf9dabc00980f9e9cae88de864c82f0c742d5e9
1 2009-12-07  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3         * plugin.cpp: Put the "Reinstall media pack" into an DEBUG #ifdef.
4         It causes us to crash if we've already loaded the codecs into the
5         processes.
7 2009-12-03  Larry Ewing  <lewing@novell.com>
9         * moonlight.h: bump up the version of 3.0 we claim to support.
11 2009-11-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
13         * plugin-class.cpp: GetSurface doesn't exist anymore - use IsAttached
14         instead.
16 2009-11-26  Chris Toshok  <toshok@ximian.com>
18         * plugin.cpp (PluginInstance::StreamAsFile): remove the source
19         setting from here because it has to happen both with xaps and xaml
20         files.
21         (PluginInstance::UpdateSource): it needs to happen here.  in the
22         case where we aren't calling SetPageUrl, we need to need to worry
23         about relative/absolute urls.  lots of comments added.  should fix
24         the three different problematic splash scenarios I've found (2
25         telerik demos and the sl3 toolkit demo), and their relative url
26         references.
28 2009-11-26  Chris Toshok  <toshok@ximian.com>
30         * plugin.cpp (PluginInstance::StreamAsFile): set the source
31         location to the xaml file when parsing the splash screen so that
32         urls are resolved correctly for images/etc during the loading
33         process.  Set it back again afterward.
34         (PluginInstance::LoadSplash): when loading the splash we need to
35         allow separators at the end of the urls so that relative urls are
36         resolved correctly.
38 2009-11-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
40         * plugin.mdp: Updated with new files.
42 2009-11-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
44         * cbinding.h: Regenerated.
46         * plugin-class.h.in: Add changes to the .in file too so that the
47         changes survive the generator.
49 2009-11-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
51         * plugin-class.cpp|h: Name change from MarkerReachedEventArgs -> 
52         TimelineMarkerRoutedEventArgs (to better match managed code).
54         * cbinding.h: Regenerated.
56 2009-11-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
58         * cbinding.h: Regenerated.
60 2009-11-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
62         * plugin.cpp: When requesting a codec download, indicate that the user
63         initiated the download.
65 2009-11-12  Jeffrey Stedfast  <fejj@novell.com>
67         * plugin.cpp (UrlNotify): Don't spam the console with printf's if
68         the download was successful.
70 2009-11-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
72         * plugin.cpp:
73         * plugin-debug.cpp:
74         * plugin-class.cpp: Update according to Type / Value API changes.
76 2009-11-06  Chris Toshok  <toshok@ximian.com>
78         * plugin.cpp (PluginInstance::FlushSplash): WalkTreeForLoaded ->
79         WalkTreeForLoadedHandlers, and explicitly emit Loaded
80         synchronously.
82 2009-11-05  Alan McGovern  <amcgovern@novell.com>
84         * cbinding.h: regen. r: toshok
86 2009-11-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
88         * plugin-class.cpp: Don't try to throw js exceptions when returning
89         from js.
91         * plugin-class.h: Remove THROW_JS_EXCEPTION2, not used anymore.
93         r: andreia
95 2009-11-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
97         * plugin.cpp|h: Don't create the window if the splash failed to load - 
98         this fixes a crash with MS DRT #352 where the splash error handler
99         shuts down the browser, causing us to crash later on when we try to
100         create the window.
102         r: spouliot
104 2009-11-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
106         * plugin.cpp|h: Remove all code which handles downloading of assemblies
107         which aren't in the xap, since that can't happen. Some of this code was
108         already commented out.
110         r: spouliot
112 2009-11-02  Alan McGovern  <amcgovern@novell.com>
114         * cbinding.h: regen. r: rolf
116 2009-10-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
118         * plugin.cpp: Add missing Deployment::SetCurrent.
120         r: sde
122 2009-10-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
124         * plugin.cpp: Always show the codec download entry in the right click
125         menu - this allows easy redownload for whatever reason, instead of
126         requiring the user to manually locate and delete the codecs if they're
127         invalid.
129         r: sde
131 2009-10-20  Jeffrey Stedfast  <fejj@novell.com>
133         * plugin.cpp (same_site_of_origin): If either of the urls is null,
134         return true. Fixes drt #329.
136         r: spouliot
138 2009-10-20  Chris Toshok  <toshok@ximian.com>
140         * plugin-class.cpp (MoonlightObject::ClearEventProxies): fix
141         ancient sles-10 build.
143         r: kangaroo
145 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
147         * plugin-glue.cpp: We might need the current plugin (NPP->pdata) during
148         plugin shutdown (to report errors to js in case of any errors).
149         
150         * plugin-class.cpp|h|in.h:
151         Added MoonlightScriptControlObject::[Pre|Post]SwitchPlugin methods: stores
152         the data (event handlers) we need to copy over from one plugin instance to
153         the next when the source changes. Also make sure to delete all current 
154         event handlers / proxies, since the root npobjects are not recreated. 
155         EventListenerProxy: added GetCallback and IsFunc accessors. 
156         MoonlightObject: Add a SetPlugin method that allows moving MoonlightObjects
157         from one PluginInstance to another.
158         
159         * plugin.cpp|h:
160         Added a PluginInstance::Recreate method that recreates the PluginInstance
161         when the source changes. Remove unused parameter to PluginInstance ctor. 
162         Keep track whether the window has been created or not (used to not recreate
163         the window, since it moves from one PluginInstance to another).
165         r: spouliot
167 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
169         * plugin-class.h.in: Update with recent changes to plugin-class.h.
171         r: alan
173 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
175         * plugin-class.[g.]cpp|h: Store a reference to the PluginInstance on
176         all MoonlightObjects instead of the NPP instance, since we'll soon
177         have more than one PluginInstance per NPP instance.
179         r: spouliot
181 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
183         * plugin.cpp|h:
184         * plugin-class.h: Use the proper type for the content and settings
185         objects.
187         r: spouliot
189 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
191         * windowless.cpp: Don't access the deployment field, use the
192         new SetCurrentDeployment method.
194         r: spouliot
196 2009-10-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
198         * plugin.cpp|h: Move all managed code handling to Deployment.
200         r: spouliot
202 2009-10-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
204         * plugin-downloader.cpp: We should never allow downloading with another
205         plugin than the correct one.
207         r: spouliot
209 2009-10-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
211         * plugin.cpp|h: Remove two obsolete and unused methods.
213         r: alan
215 2009-10-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
217         * cbinding.h: Regenerated.
219         r: sde
221 2009-10-08  Chris Toshok  <toshok@ximian.com>
223         * plugin.cpp (PluginInstance::StreamAsFile): Add another cross
224         domain check after loading the splash (and emitting loaded
225         events).
226         (PluginInstance::LoadSplash): substantially bulk up this code to
227         check for all the XDomain splash possibilities defined in drt
228         #283.
230         * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
231         comment out a line of spew that's really really spewing in xdomain
232         tests.
234         r: lewing, kangaroo
236 2009-10-07  Rolf Bjarne Kvinge  <RKvinge@novell.com>
238         * plugin.cpp|h: Make PluginInstance work with async shutdown by using
239         refcounting to only delete the PluginInstance when nobody needs it
240         anymore. Add two flags, HasShutdown and IsShuttingDown informing about
241         the current shutdown status. Destructor: rename to Shutdown and make
242         sure we zero/null out all the fields. Finalize: removed, not used.
243         Also ensure that the PluginInstance is not deleted until the managed
244         appdomain has been unloaded, since managed code has references to it.
245         Maintain a counter of the number of instances alive so that we can detect
246         when they are all deleted.
248         * plugin-class.cpp: Make html_release_object thread-safe by marshalling
249         any calls to the main thread. Also detect if the plugin has shut down
250         when trying to retain or release a npobject, in which case do nothing
251         at all, since firefox has already freed it.
253         * plugin-glue.cpp: Don't delete the plugin instance, call Shutdown
254         instead and unref it. Only shutdown moonlight if all the plugin instances
255         and all the deployments have been destroyed.
257         r: andreia
259 2009-09-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
261         * plugin.cpp: Remove unused variable (fixes compiler warning).
263         r: spouliot
265 2009-09-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
267         * cbinding.h: Regenerated.
269         r: alan, spouliot
271 2009-09-25  Sebastien Pouliot  <sebastien@ximian.com>
273         * plugin-class.cpp|h|h.in: Change html_object_invoke[_self] to 
274         return the boolean representing the invokation result.
276         r: andreia
278 2009-09-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
280         * plugin-debug.cpp: Remove unused variable (fixes compiler warning).
282         r: andreia
284 2009-09-23  Chris Toshok  <toshok@ximian.com>
286         * plugin-class.cpp (EventObjectCreateWrapper): return
287         dependency_object_classes [MOUSE_EVENT_ARGS_CLASS]; for both
288         MOUSEBUTTONEVENTARGS and MOUSEWHEELEVENTARGS.
290         fixes DRT #50 regression.
291         
292         r: lewing
293         
294 2009-09-23  Chris Toshok  <toshok@ximian.com>
296         * cbinding.h: regen.
298         r: lewing
300 2009-09-23  Chris Toshok  <toshok@ximian.com>
302         * plugin-accessibility.h (class Accessibility):
303         @ManagedEvents=Manual
305         * cbinding.h: regen.
307         r: spouliot, andriea
309 2009-09-18  Jackson Harper  <jackson@ximian.com>
311         * plugin-class.cpp:
312         * plugin.cpp: Remove the import_default_xmlns stuff, this is
313         handled by flags now.
314         * cbinding.h: regen
316 2009-09-16  Jeffrey Stedfast  <fejj@novell.com>
318         * plugin.cpp (Properties): Display the RuntimeVersion attribute.
320         r:toshok
322 2009-09-14  Chris Toshok  <toshok@ximian.com>
324         * plugin-class.cpp (MoonlightErrorEventArgs::GetProperty): use
325         ErrorEventArgs accessors.
327         * plugin.cpp (PluginInstance::network_error_tickcall): pass a
328         MoonError to the ErrorEventArgs ctor.
329         (PluginInstance::splashscreen_error_tickcall): same.
330         (PluginXamlLoader::TryLoad): same, use accessor.
331         (PluginInstance::ManagedExceptionToErrorEventArgs): same.
333 2009-09-14  Jackson Harper  <jackson@ximian.com>
335         * plugin-debug.cpp: Use foreach instead of gtkiter
337 2009-09-11  Sebastien Pouliot  <sebastien@ximian.com>
339         * plugin.cpp: Fix regression/crash on DRT455 since 
340         splashscreensource is now freed. Add missing g_free on 
341         vm_missing_file
343         r: sde
345 2009-09-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
347         * cbinding.h: Regenerated.
349         r: sde
351 2009-09-10  Jackson Harper  <jackson@ximian.com>
353         * plugin.cpp: Add some namescope info to the debugging tree
355         r: spouliot
357 2009-09-10  Jackson Harper  <jackson@ximian.com>
359         * plugin.cpp|h: Update signature on SetProperty
361 2009-09-09  Chris Toshok  <toshok@ximian.com>
363         * plugin.cpp (PluginInstance::PluginInstance): init
364         culture/uiculture to null.
365         (PluginInstance::~PluginInstance): free culture/uiculture, and
366         also plug a leak by freeing onSourceDownloadProgressChanged,
367         onSourceDownloadComplete, and splashscreensource.
368         (PluginInstance::Initialize): parse culture/uiculture <param>
369         tags.
370         (PluginInstance::InitializePluginAppDomain): track change to
371         InitializeDeployment argcount
372         (PluginInstance::ManagedInitializeDeployment): add
373         culture/uiculture args when calling the managed methods.
375         r: andreia
377 2009-09-03  Stephane Delcroix  <sdelcroix@novell.com>
379         * plugin-class.cpp|.g.cpp.in|.h.in: no longer auto generate bindings
380         for MSI, copy paste the autogenerated from .g.cpp to .cpp. add a 
381         SetProperty method and use to set the UriSource of the DZITS instead
382         of creating a new DZITS everytime.
384         * plugin-class.h|g.cpp: regen
386 2009-09-03  Alan McGovern  <amcgovern@novell.com>
388         * plugin.cpp: It's possible that window will be null, so check
389           it exists before using it. r: toshok
391 2009-08-27  Chris Toshok  <toshok@ximian.com>
393         * plugin.cpp (PluginInstance::NewStream): set the current deployment here.
395         r: kangaroo
396         
397 2009-08-26  Jackson Harper  <jackson@ximian.com>
399         * plugin.cpp: check for the zip file magic instead of using file
400         extension. r: toshok
402 2009-08-26  Alan McGovern  <amcgovern@novell.com>
404         * cbinding.h: regen r: shana
406 2009-08-26  Jackson Harper  <jackson@ximian.com>
408         * plugin.cpp: Use the xaml function for parsing bools so things
409         like enablehtmlaccess=1 are handled properly.
411         r: shana && kangaroo
413 2009-08-24  Sebastien Pouliot  <sebastien@ximian.com>
415         * plugin-class.cpp: Free NPVariant array leaks
417         r: andreia
419 2009-08-16  Chris Toshok  <toshok@ximian.com>
421         * plugin.cpp (plugin_menu_about): we aren't doing previews
422         anymore, we're doing betas.
424         r: andreia
425         
426 2009-08-12  Alan McGovern  <amcgovern@novell.com>
428         * cbinding.h: regen r: toshok
430 2009-07-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
432         * plugin.mdp: Connect the Build command in
433         MonoDevelop with 'make install'.
435 2009-07-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
437         * plugin.mdp: Use Makefile integration.
439 2009-07-23  Sebastien Pouliot  <sebastien at ximian.com>
441         * plugin.cpp: Make sure 'source_original' is set even when scripting
442         is used to initialize source. Remove xdomain warnings from mstv.cz
444 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
446         * plugin-class.cpp:
447         * plugin-class.h.in: Added html_object_retain.
449         * plugin-class.h: Regenerated.
451 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
453         * plugin.mdp: Updated.
455 2009-07-22  Sebastien Pouliot  <sebastien at ximian.com> 
457         * plugin-class.cpp: Fix DEBUG_WARN_NOTIMPLEMENTED macro to output 
458         all related information on the same line. Use NULL_TO_NPVARIANT
459         with MoonId_MethodName (since this is a string).
460         * windowless.cpp: Initialize GdkEventKey correctly (valgrind) and
461         provide a Window pointer so we avoid a SEGSIGV when TextBox calls
462         gtk_im_context_xim_filter_keypress (webide)
464 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
466         * plugin-class.cpp: Incorporate significant advances in debugging
467         technology.
469 2009-07-20  Chris Toshok  <toshok@ximian.com>
471         * plugin-class.cpp (MoonlightContentObject::Invoke): pass null for
472         resource_base.
473         (MoonlightContentObject::Invoke): same.
475         * plugin.h|cpp: add resource base parameters to all the XamlLoader
476         calls, and pass stream->url for that value when we have it.
478         * cbinding.h: regen.
479         
480 2009-07-20  Chris Toshok  <toshok@ximian.com>
482         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
483         the fallback findName lookup here, since we removed it from
484         DependencyObject::FindName.
486 2009-07-18  Jackson Harper  <jackson@ximian.com>
488         * plugin-class.cpp:
489         * plugin.h|cpp: Add a flag to import the default xmlns. Basically
490         nothing sets this to true except for the JS CreateFromXaml
491         function.
493 2009-07-17  Larry Ewing  <lewing@novell.com>
495         * plugin.cpp:  get agressive about flushing loaded events to the
496         plugin from splash elements.  Fixes 285,445.
498 2009-07-16  Larry Ewing  <lewing@novell.com>
500         * plugin.cpp, plugin.h: rework the splash logic to handle document
501         fragment references and get closer to emitting the correct events
502         in the correct order.
504         * plugin-class.cpp: use PluginInstance::IsLoaded instead of poking
505         at the surface.
507 2009-07-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
509         * cbinding.h: Regenerated.
511 2009-07-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
513         * plugin.cpp: PluginInstance::UpdateSourceByReference: add a
514         Deployment::SetCurrent.
516 2009-07-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
518         * plugin-entry.cpp: Push/Pop the current deployment on every
519         transition to the browser. Makes MS DRT #2003 not spew a lot
520         of deployment mismatch warnings.
522 2009-07-15  Larry Ewing  <lewing@novell.com>
524         * plugin.cpp: reconnect onload in LoadXAML and LoadXAP so that
525         source changes reset the oneshot call.  Fixes DRT#21.
527 2009-07-13  Sebastien Pouliot  <sebastien at ximian.com> 
529         * plugin.cpp: Check for NULL *and* Empty inside UpdateSource.
530         Gives a bit of progress for DRT#354
532 2009-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
534         * cbinding.h: Regenerated.
536 2009-07-13  Alan McGovern  <amcgovern@novell.com>
538         * plugin-class.h.in: Var should be named
539           'OnSourceDownloadComplete' not 'OnSourceDownloadCompleted'
541 2009-07-13  Alan McGovern  <amcgovern@novell.com>
543         * cbinding.h: Commit the initial implementation of the
544           TabNavigationWalker. Supports the three tabbing modes and
545           also forward/backward tabbing. Passes drt 323 except for a
546           default focusing issue.
548 2009-07-10  Sebastien Pouliot  <sebastien at ximian.com> 
550         * plugin.cpp: Only call EmitSourceDownloadComplete is we needed
551         to download the splashscreen (versus embedded using #)
553 2009-07-10  Sebastien Pouliot  <sebastien at ximian.com>
555         * plugin.cpp|h, plugin-class.cpp|h: Rename 
556         SourceDownloadCompletedEvent to SourceDownloadCompleteEvent
558 2009-07-09  Sebastien Pouliot  <sebastien at ximian.com>
560         * plugin.cpp: Check for redirection each time a new stream
561         is created (i.e. before downloading) using the current URI (not
562         the original one) so we can detect redirection correctly.
564 2009-07-07  Rolf Bjarne Kvinge  <RKvinge@novell.com>
566         * plugin-class.cpp: EventObjectCreateWrapper: return null as the
567         wrapper for a null object.
569 2009-07-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
571         * plugin-downloader.h: Add response getter.
573         * plugin-downloader.cpp: Regenerated.
575         * cbinding.h: Regenerated.
577 2009-07-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
579         * plugin-downloader.cpp: When calling Send, reset the finished
580         field, so that we abort it properly upon destruction if the
581         PluginDownloader has been reused.
583 2009-07-01  Chris Toshok  <toshok@ximian.com>
585         * plugin-proxy.cpp (load): check the return value of
586         dlopen(libmono.so) before we make use of mono_config_parse_memory.
588         * plugin-entry.cpp: remove the moz-sdk includes, since they get
589         pulled in from moonlight.h
591         * plugin-class.h|cpp (MoonlightContentObject::GetProperty): add
592         Accessibility support.
593         (MoonlightContentObject::SetProperty): same.
594         (MoonlightContentObject::~MoonlightContentObject): unref the
595         accessibility object.
597         * moonlight.h: add the moz-sdk/ prefix for the np* headers here.
599         * Makefile.am (libmoonplugin_la_SOURCES): add
600         plugin-accessibility.
601         (INCLUDES): remove the moz-sdk include, and add it the #includes
602         so things work when files are included from the src/ directory.
604         * plugin-accessibility.h|cpp: new DependencyObject subclass to
605         represent the plugin's content.accessibility object.
606         
607         * cbinding.h, plugin-class.h: regen.
609 2009-06-30  Jackson Harper  <jackson@ximian.com>
611         * plugin-class.cpp: Update function signature, add the validate
612         templates param
613         * cbinding.h: regen
615 2009-06-30  Alan McGovern  <amcgovern@novell.com>
617         * plugin-class.cpp: Use SetValueWithError instead of SetValue
618           and propagate the exception back to javascript. Fixes drt
619           638
621 2009-06-29  Sebastien Pouliot  <sebastien@ximian.com>
623         * plugin.cpp: Initialize enable_html_access to true since the value
624         can be queried before anything is loaded (e.g. scripting). Remove
625         failure message from DRT #21 bitmap.
627 2009-06-26  Chris Toshok  <toshok@ximian.com>
629         * plugin-class.h.in|cpp: add support for GridLengths.
631         * plugin-class.h: regen.
633 2009-06-26  Larry Ewing  <lewing@novell.com>
635         * plugin-class.h.in: add MoonlightCornerRadius and MoonIds.
637         * plugin-class.cpp: implement cornerradius foo.
639 2009-06-25  Chris Toshok  <toshok@ximian.com>
641         * plugin-class.cpp (thickness_mapping): fix the mapping of "top"
642         to MoonId_Top, not MoonId_Right.  Fixes drt test 421.
644 2009-06-25  Chris Toshok  <toshok@ximian.com>
646         * plugin.cpp (PluginXamlLoader::SetProperty): track change to
647         xaml_is_valid_event_name.
649 2009-06-25  Chris Toshok  <toshok@ximian.com>
651         * plugin-class.cpp (_set_dependency_property_value): add a
652         MoonError parameter so we can communicate it back to our callers.
653         (MoonlightTextBoxObject::Invoke): use textbox->SelectWithError and
654         throw the exception if it failed.
655         (MoonlightPasswordBoxObject::Invoke): same.
657 2009-06-25  Chris Toshok  <toshok@ximian.com>
659         * plugin-class.cpp (MoonlightCollectionObject::Invoke): add
660         "remove(string)" support for resource dictionaries.
661 2009-06-25  Chris Toshok  <toshok@ximian.com>
663         * plugin-class.cpp (value_to_variant): add support for
664         FontWeight/Style/Stretch here.  Fixes DRT test 94.
666 2009-06-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
668         * cbinding.h: Regenerated.
670 2009-06-25  Sebastien Pouliot  <sebastien@ximian.com>
672         * plugin-class.cpp: Return "" not NULL for empty files (DRT #180)
674 2009-06-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
676         * plugin-class.cpp: proxy_listener_to_javascript: we need to restore
677         the current deployment after returning from javascript, if the
678         javascript did anything which caused firefox to process events,
679         we may have entered any other deployment while processing those
680         events.
682 2009-06-24  Chris Toshok  <toshok@ximian.com>
684         * cbinding.h: regen.
686 2009-06-22  Chris Toshok  <toshok@ximian.com>
688         * plugin-class.h.in|cpp: MediaElements and Images need to subclass
689         from UIElement here instead of DependencyObject, or else we can't
690         call UIElement methods on them.  gets fixture #282 further than
691         the stupid .js error.
693         * plugin-class.h: regen
695 2009-06-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
697         * plugin-class.cpp: Add support for MultiScaleImage methods.
699         * plugin-class.g.cpp.in: Added required header.
701         * plugin-class.g.cpp:
702         * plugin-class.h:
703         * cbinding.h: Regenerated.
705 2009-06-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
707         * plugin.mdp: Updated with new files.
709 2009-06-18  Jeffrey Stedfast  <fejj@novell.com>
711         * plugin-class.cpp (value_to_variant): Handle Type::CHAR by
712         converting to an NPVariant string.
714 2009-06-18  Sebastien Pouliot  <sebastien@ximian.com>
716         * cbinding.cpp|h: regen
717         * plugin.cpp|h: Keep the original location and source (before any
718         redirection can happen) and use them in the check for cross-domain
719         applications. Fixing DRT 955-958
721 2009-06-17  Chris Toshok  <toshok@ximian.com>
723         * plugin-class.h.in, plugin-class.cpp: add textbox and passwordbox
724         types (select and selectAll methods.)
726         * plugin-class.g.*, cbinding.h: regen.
728 2009-06-17  Alan McGovern  <amcgovern@novell.com>
730         * plugin-class.g.cpp.in: We need to include textbox.h 
732 2009-06-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
734         * plugin.cpp: SetXapLocation must be set before 
735         ManagedInitializeDeployment is called, since
736         ManagedInitializeDeployment ends up executing managed code, which
737         may need SetXapLocation to be set (for downloading files). 
738         MS DRT #483 is an example.
740 2009-06-16  Sebastien Pouliot  <sebastien@ximian.com>
742         * plugin.cpp: Set default cross_domain_app to false since using
743         embedded XAML is valid (and not cross domain) and won't trigger
744         a load (to update the value). Should fix XAML #401 test
746 2009-06-15  Sebastien Pouliot  <sebastien@ximian.com>
748         * plugin.cpp|h: Move cross-domain application check to it's own
749         method. Call it once we download the source (it could be later
750         than anticipated). This fix sites using custom scripts like 
751         ASP.NET <asp:Silverlight>
752         * plugin-class.cpp: Don't emit javascript events for cross
753         domain applications.
755 2009-06-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
757         * plugin.cpp: same_site_of_origin: add nre protection. Makes
758         moonlight test #408 not crash.
760 2009-06-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
762         * plugin-class.cpp: Update after MediaElementState -> MediaState 
763         name change.
765 2009-06-13  Sebastien Pouliot  <sebastien@ximian.com>
767         * plugin.cpp|h: Move cross-domain application check earlier to
768         not register the events (e.g. onLoad, onError...) for cross-domain
769         applications. Complete fix for DRT 361, 362, 364, 365 and 370
771 2009-06-12  Sebastien Pouliot  <sebastien@ximian.com>
773         * plugin.cpp|h: Fix 'enableHtmlAccess' to have a different 
774         default value when used for the same 'site of origin' (true)
775         wrt to be used for 'cross-domain' applications (false).
776         * plugin-class.cpp: Add restrictions on cross-domain applications
777         based on the manifest ExternalCallersFromCrossDomain value.
779 2009-06-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
781         * plugin.cpp: Disable the spinner for now, it's breaking a lot of
782         tests.
784 2009-06-10  Larry Ewing  <lewing@novell.com>
786         * plugin.cpp (CreateWindow): add a simple spinner if nothing is
787         specified.
789         * plugin-spinner.h: new simple spinner.
791 2009-06-08  Chris Toshok  <toshok@ximian.com>
793         * plugin.cpp (class PluginClosure): new class to wrap
794         PluginInstance.
795         (PluginInstance::network_error_tickcall): use PluginClosure.
796         (PluginInstance::splashscreen_error_tickcall): use PluginClosure,
797         also don't UpdateSource if the surface is zombified (since the
798         plugin is likely already gone.)
799         (PluginInstance::UrlNotify): use PluginClosure's and add the tick
800         calls directly via the timemanager so we can specify both method
801         and closure.
803         * plugin.h (class PluginInstance): make network_error_tickcall and
804         splashscreen_error_tickcall static methods on PluginInstance.
806 2009-06-08  Jackson Harper  <jackson@ximian.com>
808         * plugin.cpp|h: Update signature for SetProperty
810 2009-06-05  Chris Toshok  <toshok@ximian.com>
812         * plugin.cpp (PluginInstance::UrlNotify): only emit the 2104 error
813         if the network failure was on the XAP itself.  move the
814         Deployment::SetCurrent call a little earlier, and make the splash
815         screen download error async as well.
817 2009-06-04  Chris Toshok  <toshok@ximian.com>
819         * plugin.cpp (PluginInstance::MonoGetPropertyFromName): new
820         method, look up the property on a type and print a nice warning if
821         we fail.
822         (surface_network_error_tickcall): we can't emit the network error
823         from inside UrlNotify, since the handler can remove the plugin at
824         that point, and firefox takes a shit all over itself in that case.
825         (PluginInstance::UrlNotify): if there was a network error
826         downloading the xap, add the tick call to emit the proper error.
827         (PluginInstance::InitializePluginAppDomain): look up the
828         MoonException type and some properties to use when accessing it.
829         (PluginInstance::ManagedExceptionToErrorEventArgs): convert from a
830         managed exception to an ErrorEventArgs which we'll then emit
831         through the surface's ErrorEvent.
832         (PluginInstance::ManagedCreateXamlLoader): check for an exception,
833         and if there was one, emit the error on the surface.
834         (PluginInstance::ManagedInitializeDeployment): same.
835         (PluginInstance::ManagedDestroyApplication): same.
837         * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
838         set the current deployment earlier.  definitely needs to be set
839         before we call the callback :)
841 2009-06-02  Geoff Norton  <gnorton@novell.com>
843         * plugin.cpp: Ensure we dont start downloading the source until we have
844         the splash.  If the splash 404's we need to emit a 2108.
846 2009-06-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
848         * cbinding.h: Regenerated
850 2009-06-01  Chris Toshok  <toshok@ximian.com>
852         * plugin-class.cpp (MoonlightContentObject::Invoke): for
853         createFromXaml make sure we call LoadVM on the XamlLoader so we
854         can access managed types (like StackPanel).
856 2009-06-01  Chris Toshok  <toshok@ximian.com>
858         * plugin-class.cpp|h: add MoonlightThickness* and add
859         Type::THICKNESS to value_to_variant.  this fixes a few instances
860         in the tests where they're accessing margins from javascript.
862 2009-05-28  Jeffrey Stedfast  <fejj@novell.com>
864         * plugin-utils.cpp: New source file which has utility functions
865         such as check_arg_list().
867         * plugin-class.h.in: Removed static impl of check_arg_list() -
868         this was causing compile warnings about unused functions and also
869         bloating up the binary ;-)
871 2009-05-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
873         * plugin.cpp: Sprinkle SetCurrentDeployment.
875 2009-05-27  Geoff Norton  <gnorton@novell.com>
877         * plugin.cpp|h: Ensure we only emit the source progress/completed events
878         on the source, and not on the source splash ourself.  Also, we need to make
879         sure we have a toplevel before emitting otherwise sender is null going to the
880         js event.
882 2009-05-27  Geoff Norton  <gnorton@novell.com>
884         * plugin.cpp|h:
885         * plugin-class.cpp|h|h.in: Support the splash screen progress/completed events
886         * cbinding.h: regen
888 2009-05-27  Geoff Norton  <gnorton@novell.com>
890         * plugin.cpp: Avoid a double-delete of the splash xaml_loader
892 2009-05-27  Geoff Norton  <gnorton@novell.com>
894         * plugin.cpp|h: Support splash screen.
896 2009-05-27  Geoff Norton  <gnorton@novell.com>
898         * plugin.cpp|h: Ensure we spin up a default application for the xaml
899         case as well since <Canvas><StackPanel /></Canvas> works.
901 2009-05-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
903         * plugin-downloader.h:
904         * plugin-downloader.cpp: Add support for retrieving response headers
905           and disable cache.
907         * cbinding.h: Regenerated.
909         * browser-bridge.h: Updated according to downloader API changes.
911         * plugin.mdp: Updated.
913 2009-05-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
915         * plugin-downloader.cpp: Don't hard code the verb.
917 2009-05-25  Chris Toshok  <toshok@ximian.com>
919         * plugin-class.cpp (value_to_variant): robustify this and support
920         NULL Value*'s.  Fixes crash in DRT #485.
922 2009-05-23  Chris Toshok  <toshok@ximian.com>
924         * plugin-class.cpp, plugin-class.h: add a Control plugin class,
925         which exposes "focus".  Should get DRT #250 a little further (and
926         keep it from timing out.)
928 2009-05-21  Rusty Howell  <rhowell@novell.com>
930          * Makefile.am: Changed install dir to DIST_SUBDIRS for make dist
932 2009-05-21  Andreia Gaita  <avidigal@novell.com>
934         * plugin-class.cpp: disable throwing js exceptions on html_object_invoke
935         and html_object_get_property, the exceptions get stuck on firefox and
936         any subsequent eval call will fail
938 2009-05-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
940         * npstream-request.cpp: Fix typo.
942 2009-05-20  Rusty Howell  <rhowell@novell.com>
944          * Makefile.am: Added install dir to SUBDIRS for 'make dist'
946 2009-05-20  Larry Ewing  <lewing@novell.com>
948         * plugin.cpp (TryLoad): update the error string for 2021 to match
949         2.0.
951 2009-05-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
953         * cbinding.cpp|h: Regenerated.
955 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
957         * cbinding.cpp|h: Regenerated.
959 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
961         * cbinding.cpp|h: Regenerated.
963 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
965         * cbinding.cpp|h: Regenerated.
967 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
969         * plugin.h: Add a GetBrowserHost which returns a void* to avoid
970         putting NPObject/mozilla headers in the c bindings.
972         * cbinding.cpp|cbinding.h: Regenerated.
974 2009-05-17  Andreia Gaita  <avidigal@novell.com>
976         * plugin-class.cpp: If a managed method called from js returns
977         void, create a valid NPVariant_Void return object
979 2009-05-15  Chris Toshok  <toshok@ximian.com>
981         * plugin-class.cpp (MoonlightCollectionObject::Invoke): for
982         getItem on a resource dictionary, a string parameter (the key)
983         works as well.
985 2009-05-13  Jackson Harper  <jackson@ximian.com>
987         * plugin.cpp|h: Update params for SetProperty.
989 2009-05-12  Larry Ewing  <lewing@novell.com>
991         * plugin-debug.cpp (reflect_value): add output for point.
993 2009-05-11  Larry Ewing  <lewing@novell.com>
995         * plugin-class.cpp: remove UpdateLayout now that it is
996         autogenerated.
998 2009-05-09  Andreia Gaita  <avidigal@novell.com>
1000         * plugin-class.h.in, plugin-class.g.cpp.in: Added, used to 
1001         generate Moonlight* classes and MoonId types, for automatic
1002         js binding with the GenerateJSBinding annotation.
1003         plugin-class.cpp has the bulk of the code, plugin-class.g.cpp
1004         has the autogenerated implementations.
1006         * plugin-class.[h|g.cpp]: regen.
1008         * plugin-class.cpp: moved some definitions to the header file,
1009         so .g.cpp can use them too. Added uielement class support, which
1010         is autogenerated on plugin-class.g.cpp. Removed CaptureMouse and
1011         ReleaseMouseCapture, it's handled on uielement on .g.cpp now.
1013         * Makefile.am: Added plugin-class.g.cpp
1015 2009-05-03  Chris Toshok  <toshok@ximian.com>
1017         * plugin-class.h|.cpp (MoonlightDependencyObjectObject::Invoke):
1018         add UpdateLayout() as a JS callable function.  fixable a JS error
1019         in the MS DRT.
1021 2009-05-02  Chris Toshok  <toshok@ximian.com>
1023         * plugin-proxy.cpp (load): add RTLD_GLOBAL to real_plugin,
1024         otherwise we can't call mono_config_parse_memory from the plugin
1025         loader (since it doesn't link to libmono directly).
1027 2009-05-02  Rusty Howell  <rhowell@novell.com>
1029         * plugin-proxy.cpp: Detect which libmoonloader we are (xpi or sys)
1030         and dlopen accordingly
1031         * moonlight.h: Remove PLUGIN_INSTALL
1032         * plugin-proxy-xpi.cpp: removed from svn
1033         * Makefile.am: Added check in user-plugin target.
1034         Changed source of libmoonloader back to plugin-proxy.cpp
1036 2009-04-22  Chris Toshok  <toshok@ximian.com>
1038         * moonlight.h: moon the #include <glib.h> here from windowless so
1039         we can guarantee glibconfig.h has been included before we check
1040         GLIB_SIZEOF_VOID_P.
1042         * windowless.h: drop the include glib.h from here.
1044 2009-04-22  Rusty Howell  <rhowell@novell.com>
1046         * make builds separate binaries for xpi
1047                 libmoonloaderxpi, libmoonpluginxpi
1049 2009-04-20  Chris Toshok  <toshok@ximian.com>
1051         * plugin.cpp (plugin_menu_about): use a preview link for preview
1052         releases.
1054 2009-04-18  Chris Toshok  <toshok@ximian.com>
1056         * plugin-class.cpp (value_to_variant): add support for FontFamily.
1058 2009-04-18  Chris Toshok  <toshok@ximian.com>
1060         * plugin-class.cpp (MoonlightStoryboardObject::Invoke): track
1061         storyboard changes.
1063 2009-04-17  Chris Toshok  <toshok@ximian.com>
1065         * plugin.h|.cpp: remove loaded_xap field, and use
1066         GetDeployment()->IsLoadedFromXap().  Also, switch from
1067         Surface::SetXapLocation to Deployment::SetXapLocation.
1069 2009-04-16  Jeffrey Stedfast  <fejj@novell.com>
1071         * plugin-debug.cpp (reflect_value): Hush formatter warnings.
1073 2009-04-16  Geoff Norton  <gnorton@novell.com>
1075         * plugin-debug.cpp: Avoid having a null deployment in remove_destroyed.
1077 2009-04-16  Geoff Norton  <gnorton@novell.com>
1079         * plugin-debug.cpp: Avoid having a null deployment in selection_changed.
1081 2009-04-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1083         * plugin.h:
1084         * plugin.cpp:
1085         * plugin-class.cpp: Implement some missing js properties.
1086           Almost completely fixes MS DRT #21.
1088 2009-04-15  Stephane Delcroix  <sdelcroix@novell.com>
1090         * plugin.cpp (PluginInstance::LoadXAP): set the surface xap_location
1092 2009-04-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1094         * plugin.h:
1095         * plugin.cpp:
1096         * plugin-class.h: Added @GeneratePInvoke to all methods used
1097           in managed code. For C++ methods also generate the
1098           corresponding C method.
1100         * cbinding.h:
1101         * cbinding.cpp: Regenerated.
1103 2009-04-10  Jackson Harper  <jackson@ximian.com>
1105         * plugin-class.cpp: Instead of unreffing just delete the value.
1107 2009-04-09  Jackson Harper  <jackson@ximian.com>
1109         * plugin.cpp: Updated method names.
1110         * plugin-class.cpp: Update now that we are getting Value*s from
1111         xaml.
1113 2009-04-08  Geoff Norton  <gnorton@novell.com>
1115         * plugin-debug.cpp: Ensure we set the Deployment here too to avoid
1116         crashes in the XAML window.
1118 2009-04-08  Jeffrey Stedfast  <fejj@novell.com>
1120         * plugin*.cpp|h: Use glib integer types rather than stdint.h types
1121         especially see as how we aren't including stdint.h anywhere.
1123         * plugin-class.cpp: Updated for slight Downloader API changes.
1125 2009-04-07  Larry Ewing  <lewing@novell.com>
1127         * plugin-debug.cpp (reflect_value): Fix the markup for GRIDLENGTH
1128         so that it renders.
1130 2009-04-06  Geoff Norton  <gnorton@novell.com>
1132         * plugin-debug.cpp: Ensure we set our deployment before poking in
1133         the surface
1135 2009-04-03  Sebastien Pouliot  <sebastien@ximian.com>
1137         * plugin.cpp|h: Parse enablehtmlaccess and allowhtmlpopupwindow
1138         from the plugin properties. Add missing properties and C bindings.
1140 2009-04-01  Stephane Delcroix  <sdelcroix@novell.com>
1142         * plugin-class.cpp: use Uri::ToString instead of originalstring.
1143         BitmapImage::GetUriSource never returns a NULL
1145 2009-04-01  Andreia Gaita  <avidigal@novell.com>
1147         * plugin-class.[cpp|h]: move some declarations to the header
1148         so that the bridge code can use it too.
1150 2009-03-31  Jb Evain  <jbevain@novell.com>
1152         * plugin-class.h: add key_code and char_code parameters
1153         to callback_dom_event.
1155 2009-03-30  Chris Toshok  <toshok@ximian.com>
1157         * plugin.cpp: #include timemanager.h
1159 2009-03-29  Geoff Norton  <gnorton@novell.com>
1161         * plugin-class.cpp: Ensure that the ImageSource we get is a BitmapImage
1162         before treating it as such.
1164 2009-03-29  Geoff Norton  <gnorton@novell.com>
1166         * plugin-class.cpp: Image.Source is always a BitmapImage
1168 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1170         * plugin.cpp|h: Export a new function (get_plugin_dir) that returns
1171         the location of the plugin.
1172         * plugin-glue.cpp: Initialize the runtime using the plugin location.
1174 2009-03-27  Andreia Gaita  <avidigal@novell.com>
1176         * plugin.cpp: Don't release return from Eval if they're npobj,
1177         client code might reference it later
1179 2009-03-25  Chris Toshok  <toshok@ximian.com>
1181         * plugin.cpp (PluginInstance::StreamAsFile): use uri accessors.
1183         * plugin-class.cpp (MoonlightImageBrushObject::GetProperty): same.
1184         (MoonlightImageObject::GetProperty): same.
1186         * plugin-debug.cpp (get_common_prefix_len): same.
1187         (save_callback): same.
1189 2009-03-25  Jeffrey Stedfast  <fejj@novell.com>
1191         * plugin-class.cpp (MoonlightObjectType::LookupName): No longer
1192         takes an include_sl2 argument.
1194         * plugin.cpp (PluginInstance::StreamAsFile): We no longer have
1195         IsSilverlight2() so check the filename extension (fixed to not be
1196         a gross hack). Also got rid of #if PLUGIN_2_0 confusion, we are no
1197         longer supporting a 1.0-only build.
1198         (PluginInstance::CreateWindow): Surface.ctor() no longer takes a
1199         silverlight2 argument.
1201         * plugin-debug.cpp (reflect_value): Don't crash when the
1202         DependencyObject is null.
1204 2009-03-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1206         * plugin-class.cpp: Move IsVersionSupported implementation to
1207           Surface.
1209 2009-03-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1211         * plugin.mdp:
1212         * cbinding.h:
1213         * Makefile.am:
1214         * cbinding.cpp: Include generated files in the build.
1216 2009-03-23  Chris Toshok  <toshok@ximian.com>
1218         * plugin-class.cpp (value_to_variant): getting a Uri in the plugin
1219         returns a string.
1221 2009-03-21  Andreia Gaita  <avidigal@novell.com>
1223         * plugin-class.[h|cpp]: Add html_object_invoke_self
1224         (same as _invoke but with no name arg), that uses
1225         NPN_InvokeDefault       instead.
1227 2009-03-21  Chris Toshok  <toshok@ximian.com>
1229         * plugin-class.cpp (MoonlightImageObject::GetProperty):
1230         source->GetUriSource() returns a Uri, not a string.
1231         (MoonlightImageBrushObject::GetProperty): same.
1233 2009-03-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1235         * plugin-downloader.h:
1236         * plugin-downloader.cpp: PluginDownloader: follow refcounting
1237           laws and ref/unref the response.This fixes a crash where
1238           firefox would unref FFxDownloaderResponse causing its
1239           destruction, and then PluginDownloader would attempt to use
1240           (abort) that response later on.
1242 2009-03-10  Chris Toshok  <toshok@ximian.com>
1244         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): for
1245         DumpNameScope, s/LogicalParent/Parent.
1246         (MoonlightDependencyObjectObject::Invoke): for GetParent, make
1247         sure the dob is a frameworkelement subclass, and call
1248         GetLogicalParent on it.
1250 2009-03-10  Jackson Harper  <jackson@ximian.com>
1252         * plugin-debug.cpp: COnsistentify method name.
1254 2009-03-03  Jackson Harper  <jackson@ximian.com>
1256         * plugin.cpp|h: Update signature of SetProperty.
1258 2009-03-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1260         * plugin.cpp: Add informational printf.
1262 2009-02-23  Chris Toshok  <toshok@ximian.com>
1264         * plugin-class.cpp (MoonlightContentObject::Invoke): add better
1265         error messages on createFromXaml.
1267 2009-02-23  Andreia Gaita  <avidigal@novell.com>
1269         * plugin-class.[cpp|h]: Add html_object_has_property so managed code
1270         can check for properties before trying to get them. Free scriptable
1271         objects hashtables.
1273 2009-02-22  Larry Ewing  <lewing@novell.com>
1275         * plugin-entry.cpp:
1276         * plugin.cpp, plugin.h: add extra padding to our NPBool values so
1277         that buggy browsers don't smash the stack.
1279 2009-02-19  Andreia Gaita  <avidigal@novell.com>
1281         * plugin-class.[cpp|h]: On [Get|Set]Property for scriptable objects,
1282         use the property name instead of the handle to call back to the
1283         property. This way we can reuse the virtual functions on
1284         ScriptObject, and       it's one less GCHandle walking around.
1285         Fix exception define to have a block.
1287 2009-02-19  Andreia Gaita  <avidigal@novell.com>
1289         * plugin-class.cpp: Fix casing lookup
1291 2009-02-19  Andreia Gaita  <avidigal@novell.com>
1293         * plugin.cpp: Implement returning values from Evaluate
1294         * plugin-class.[cpp|h]: Expose variant_to_value so Evaluate can
1295         use it to convert values from js
1297 2009-02-17  Jeffrey Stedfast  <fejj@novell.com>
1299         * plugin-debug.cpp: Pass true as the only_changed argument to
1300         DO::GetProperties().
1302 2009-02-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1304         * plugin-class.cpp: Remove case for MediaErrorEventArgs.
1306 2009-02-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1308         * plugin-class.cpp: EventListenerProxy: set our object type
1309           upon construction.
1311 2009-02-16  Andreia Gaita  <avidigal@novell.com>
1313         * plugin-class.cpp: Check return value on GetProperty and throw a js
1314         exception if it wasn't found. Don't lowercase names, scriptable objects
1315         are case sensitive.
1317 2009-02-16  Geoff Norton  <gnorton@novell.com>
1319         * plugin-class.cpp|h: Image(Brush).(Image)Source is the UriSource of the
1320         underlying ImageSource in the javascript API.
1322 2009-02-14  Jeffrey Stedfast  <fejj@novell.com>
1324         * plugin-debug.cpp (reflect_dependency_object_in_tree): Updated to
1325         use DO::GetProperties() instead so that we could get attached
1326         properties as well.
1328 2009-02-14  Jeffrey Stedfast  <fejj@novell.com>
1330         * plugin-debug.cpp (reflect_dependency_object_in_tree): Fixed up
1331         to use Type::GetProperties().
1333 2009-02-11  Andreia Gaita  <avidigal@novell.com>
1335         * plugin-class.cpp: lowercase all method, property and event name
1336         references, they're all added in lowercase
1338 2009-02-11  Andreia Gaita  <avidigal@novell.com>
1340         * plugin-class.cpp (html_object_invoke): Check method invoke return
1341         value and throw an exception if it fails. Add an alternate "static"
1342         version of the js exception throwing macro.
1344 2009-02-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1346         * plugin-class.cpp: Change our static DependencyProperty
1347           backing fields to store an integer id instead of an
1348           instance to a DependencyProperty. This way we can have true
1349           per-deployment dependency properties.
1351 2009-02-10  Jackson Harper  <jackson@ximian.com>
1353         * plugin.cpp|h: Added a param to the SetProperty callback, plugin
1354         doesn't need to use it for anything.
1356 2009-02-05  Geoff Norton  <gnorton@novell.com>
1358         * plugin.cpp: We cannot safely null the deployment here as NPN_GetURLNotify
1359         can sync invoke NPN_URLNotify in the same tick, and we might need the deployment
1360         later as we unwind.
1362 2009-02-05  Jeffrey Stedfast  <fejj@novell.com>
1364         * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
1365         Updated for ReadLocalValue method rename.
1367         * plugin-downloader.cpp (plugin_downloader_create_webrequest):
1368         Don't crash if we don't have a browser bridge.
1370 2009-02-04  Jackson Harper  <jackson@ximian.com>
1372         * plugin.cpp|h: Updated xaml signatures.
1374 2009-02-04  Andreia Gaita  <avidigal@novell.com>
1376         * plugin-class.[cpp|h]: Change Invoke call to take a name parameter,
1377           so that methods can be called by name as well.
1379 2009-02-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1381         * plugin.cpp: PluginInstance::UrlNotify: We need to set the
1382           current deployment here.
1384         * plugin-glue.cpp: NPP_Destroy: We need to set the current
1385           deployment here.
1387 2009-02-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1389         * plugin-class.cpp: Use Type::GetName () instead of accessing
1390           the field directly.
1392 2009-02-03  Fernando Herrera  <fherrera@novell.com>
1394         * plugin.cpp: moonlight_flags is 64bits now.
1396 2009-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1398         * plugin-class.cpp: proxy_listener_to_javascript: we need to set the
1399         current deployment after emitting an event to javascript.
1401 2009-01-29  Geoff Norton  <gnorton@novell.com>
1403         * plugin.cpp:
1404         * plugin-class.cpp: Ensure that we set the correct context when dtoring our
1405         plugin and its js-object instances.
1407 2009-01-29  Geoff Norton  <gnorton@novell.com>
1409         * plugin.cpp: When there are 2 plugins on a page, StreamAsFile can be called
1410         after the deployment has been changed away from this instance.  Ensure we
1411         set our deployment properly in this case.
1413 2009-01-29  Geoff Norton  <gnorton@novell.com>
1414         
1415         * windowless.cpp: Store our creation deployment so we can emit events
1416         in the right deployment.
1418 2009-01-29  Geoff Norton  <gnorton@novell.com>
1420         * plugin.cpp: Register the surface with the Deployment.  Start cleaning
1421         up all the places we pass this around too.  (More to come)
1423 2009-01-29  Geoff Norton  <gnorton@novell.com>
1425         * plugin.cpp: Ensure that we create our Surface and SystemTimeSource
1426         in the correct deployment.
1428 2009-01-29  Larry Ewing  <lewing@novell.com>
1430         * plugin-debug.cpp (reflect_dependency_object_in_tree): restrict
1431         the VisualChild expansion away from Panel and border to keep from
1432         slowing down the tree that Badly.
1434 2009-01-29  Sebastien Pouliot  <sebastien@ximian.com>
1436         * plugin-class.cpp: Only call NPN_ReleaseObject on callback
1437         if the object is *not* a string.
1438         re: toshok
1440 2009-01-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1442         * plugin.cpp: ~PluginInstance: Call Dispose on the deployment and the
1443         surface. PluginXamlLoader::TryLoad: ref any error arguments we emit
1444         but didn't create.
1446 2009-01-28  Larry Ewing  <lewing@novell.com>
1448         * plugin-debug.cpp: show VisualChild on all FEs so that we can
1449         navigate into ContentPresenter.
1451 2009-01-28  Larry Ewing  <lewing@novell.com>
1453         * plugin-debug.cpp (reflect_value): add more value types.
1455 2009-01-28  Sebastien Pouliot  <sebastien@ximian.com>
1457         * plugin-class.cpp: MediaElementState is used as a string inside
1458         Javascript applications but it's an enum (in the managed world).
1460 2009-01-28  Chris Toshok  <toshok@ximian.com>
1462         * plugin-debug.cpp (selection_changed): fix crash.
1463         (reflect_dependency_object_in_tree): add Control handling - put a
1464         "Visual Child" under it that gives the subtree.
1466         * plugin-class.cpp (value_to_variant): not sure what to do here
1467         for UINT32's, since NPVariants only have INT32...
1469 2009-01-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1471         * plugin.cpp: Call Deployment::Initialize in runtime_init.
1473 2009-01-27  Geoff Norton  <gnorton@novell.com>
1475         * plugin.cpp: Use the static overload here.
1477 2009-01-26  Geoff Norton  <gnorton@novell.com>
1479         * plugin.cpp: Ensure we're in the right deployment/domain before we
1480         start poking around in managed land.
1482 2009-01-26 Geoff Norton  <gnorton@novell.com>
1484         * plugin.cpp|h: Clean this stuff up now that our book-keeper is
1485         Deployment* not internally on MonoDomain*.
1486         * plugin-class.cpp: Ensure that we set the tls slot in Deployment
1487         to the Deployment* this plugin owns before transitioning into libmoon
1489 2009-01-26  Jackson Harper  <jackson@ximian.com>
1491         * plugin.cpp|h: SourceLocation for Sl2 xaps is the .xap url.
1493 2009-01-26  Geoff Norton  <gnorton@novell.com>
1495         * plugin.cpp|h: We now go thru Deployment to warm up the application.
1497 2009-01-25  Geoff Norton  <gnorton@novell.com>
1499         * plugin.cpp: We initialize a Deployment for every plugin regardless
1500         of wether its 1.0 or 2.0 context now.
1502 2009-01-25  Chris Toshok  <toshok@ximian.com>
1504         * plugin.cpp (PluginInstance::CreatePluginAppDomain): create/set
1505         the deployment for this plugin before we return, so it's set
1506         before Application.CreateFromXap is called.
1508 2009-01-23  Geoff Norton  <gnorton@novell.com>
1510         * plugin.cpp: Force keep-delegates on in SVN (only if a custom
1511         MONO_DEBUG doesn't already exist in the environment)
1513 2009-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1515         * plugin-debug.cpp: Integrate munxap into our debugging experience.
1517 2009-01-21  Jb Evain  <jbevain@novell.com>
1519         * plugin.cpp|h: remove PluginInstance::GetBrowserInformation
1520         and ::EvaluateToVariant as well as
1521         plugin_instance_get_browser_information which is now implemented
1522         in the managed code.
1524 2009-01-21  Andreia Gaita  <avidigal@novell.com>
1526         * plugin-class.[h|cpp]: Add support for registering objects as a
1527         tree. fix casing on lookups.
1529 2009-01-21  Sebastien Pouliot  <sebastien@ximian.com>
1531         * plugin-class.cpp: Process the difference between SL1/2 default
1532         values on a case-by-case basis. Right now this (re-fix) UIElement::
1533         RenderTransformProperty (wrt null) and FrameworkElement::[Height|
1534         Width]Property (wrt NaN).
1536 2009-01-20  Geoff Norton  <gnorton@novell.com>
1538         * plugin-class.cpp: Ensure that we convert doubles in the ASCII
1539         locale, as we attempt to parse in this locale.
1541         r: toshok
1543 2009-01-20  Sebastien Pouliot  <sebastien@ximian.com>
1545         * plugin-class.cpp: Call GetLocalValue on DO so we don't provide the
1546         default values used in SL2 to SL1 applications. This fix Fox
1547         http://www.silverlight.net/fox/ while allowing to use the (non-null)
1548         default value for UIElement::RenderTransformProperty
1550 2009-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1552         * plugin.mdp: Updated.
1554 2009-01-18  Geoff Norton  <gnorton@novell.com>
1556         * plugin-downloader.cpp: Avoid crashing when the bridge isn't available
1558 2009-01-18  Larry Ewing  <lewing@novell.com>
1560         * plugin-debug.cpp (reflect_foreach_current_value): don't crash if
1561         we can't lookup the owning type.
1563 2009-01-16  Jb Evain  <jbevain@novell.com>
1565         * plugin-class.cpp: move STRDUP_FROM_VARIANT and
1566         STRLEN_FROM_VARIANT to plugin.h
1567         * plugin.h: also define PluginInstance::EvaluateToVariant
1568         * plugin.cpp: implement PluginInstance::GetBrowserInformation
1569         and PluginInstance::EvaluateToVariant.
1571 2009-01-16  Jb Evain  <jbevain@novell.com>
1573         * plugin.cpp|h: remove PluginInstance::LoadUrl.
1575 2009-01-15  Jackson Harper  <jackson@ximian.com>
1577         * plugin.cpp|h: Updated signature for the xaml callbacks.
1579 2009-01-13  Geoff Norton  <gnorton@novell.com>
1581         * plugin.cpp: Fix our MonoDomain cleanup (hopefully) once and for all.
1583 2009-01-13  Geoff Norton  <gnorton@novell.com>
1585         * plugin.cpp: Don't free domain's until we fix the problems on the 
1586         mono side associated with that.
1588 2009-01-13  Geoff Norton  <gnorton@novell.com>
1590         * plugin.cpp: Ensure we finalize the domain before freeing it.
1592 2009-01-13  Jackson Harper  <jackson@ximian.com>
1594         * plugin.cpp|h: Updated xaml callback sig.
1596 2009-01-13  Jb Evain  <jbevain@novell.com>
1598         * plugin.cpp: specify System.Windows's fullname when loading it,
1599         to avoid loading a different version, such as the desktop one.
1601 2009-01-13  Geoff Norton  <gnorton@novell.com>
1603         * plugin.cpp: Update to build appdomains properly isolated for each 
1604         PluginInstance.  Also change the location resolution of System.Windows
1605         slightly.
1607 2009-01-13  Geoff Noton  <gnorton@novell.com>
1609         * plugin.cpp: Find System.Windows.dll a slightly different way
1610         so that we can search in MONO_PATH for it and not just the installed
1611         prefix.  Fixes test runs on the buildbots.
1613 2009-01-12  Jb Evain  <jbevain@novell.com>
1615         * plugin.h, plugin.cpp: remove the need for a moonlight.exe
1616         launcher by calling directly methods in System.Windows. We're
1617         getting the System.Windows relative to the moonlight mscorlib.dll.
1618         * Makefile.am: remove references to moonlight.cs and moonlight.exe.
1619         * moonlight.cs: delete.
1621 2009-01-12  Geoff Norton  <gnorton@novell.com>
1623         * plugin.cpp: Update to reflect changes in the mono embedding API.
1625 2009-01-12  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1627         * plugin.cpp: Unconfuse a bit: initParams is a char*, so use a boolean
1628         value to initialize it.
1630 2009-01-10  Jeffrey Stedfast  <fejj@novell.com>
1632         * plugin.cpp (moonlight_authors): Updated.
1634 2009-01-08  Jeffrey Stedfast  <fejj@novell.com>
1636         * plugin-class.cpp (MoonlightKeyEventArgsObject::GetProperty):
1637         Updated for method name changes.
1639 2008-12-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1641         * plugin.mdp: Updated.
1643 2008-12-18  Chris Toshok  <toshok@ximian.com>
1645         * plugin.h, plugin.cpp: rework the app domain stuff slightly.  we
1646         now only call mono_jit_init_version once (and don't attempt to
1647         unload that room AppDomain), and then call mono_domain_create from
1648         each plugin instance (and we *do* free that AppDomain).
1650 2008-12-17  Chris Toshok  <toshok@ximian.com>
1652         * plugin.cpp (PluginInstance::MonoInit): turns out this wasn't the
1653         domain name, but the version.  it needs to be "moonlight".
1655         * moonlight.cs: remove reference to Helper, as this was only used
1656         to print out the Mono.Moonlight.dll fully qualified name.
1658         * Makefile.am: remove references to Mono.Moonlight.dll.
1660 2008-12-17  Chris Toshok  <toshok@ximian.com>
1662         * plugin.cpp (PluginInstance::MonoInit): supply a function pointer
1663         that actually exists to dladdr when PLUGIN_INSTALL is defined.
1664         Also, use a similar app domain name ("moonlight-%p" where %p is
1665         the PluginInstance*).
1667 2008-12-17  Geoff Norton  <gnorton@novell.com>
1669         * plugin.cpp: gtk_plug_new takes a GdkNativeWindow which has
1670         differing precision on amd64 and i586.
1672 2008-12-16  Chris Toshok  <toshok@ximian.com>
1674         * plugin.h, plugin.cpp: move all the stuff from mono.cpp (and
1675         moon-mono.h) here.  Remove all global variables and make them
1676         instance variables on PluginInstance (of particular importance is
1677         the AppDomain).  This means every PluginInstance gets their own
1678         app domain, their own boot assembly, etc, and we can drop all the
1679         AppDomain stuff from moonlight.cs.
1681         * mono.cpp, moon-mono.h: nuke.
1683         * plugin-glue.cpp: remove include of moon-mono.h
1685         * moonlight.cs: remove all the AppDomain specific stuff here - the
1686         unload handler is gone (replaced by a mono_domain_free call in
1687         plugin.cpp), the Helper calls to create instances and unwrap them
1688         has been replaced with type lookups + Activator.CreateInstance.
1690 2008-12-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1692         * plugin.cpp: SetSource: in case we already have a surface, detach
1693           downloaders from it right away, this should fix the random failures
1694           of ResetCore.
1696 2008-12-03  Larry Ewing  <lewing@novell.com>
1698         * plugin.cpp: clean up source setting so that the property is
1699         always set and we don't accidentally schedule more than one idle
1700         call.
1702 2008-12-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1704         * browser-bridge.h, plugin-class.cpp, plugin-class.h: Rework event
1705           attaching/detaching a bit: html_object_attach_event now takes a
1706           context argument, which is passed to the event callback.
1707           ff2/3-dom.cpp: After removing the event listener we delete the
1708           wrapper.
1710 2008-12-02  Chris Toshok  <toshok@ximian.com>
1712         * plugin-class.cpp (MoonlightScriptControlObject::Invoke): fix
1713         isVersionSupported - i don't like knocking off 2.0 except when
1714         PLUGIN_SL_2_0 is enabled, but it seems like if people are checking
1715         2.0, they'll assume managed code.
1717 2008-11-26  Jackson Harper  <jackson@ximian.com>
1719         * plugin.cpp|h: The parser no longer requires assemblies to be
1720         downloaded, so the mapping stuff is commented out.
1721         - The parser now treats events as properties, so we use
1722         SetProperty instead of HookupEvent.
1724 2008-11-22  Geoff Norton  <gnorton@novell.com>
1726         * windowless.cpp: Revert
1727         * windowless.h: Include glib.h and moonlight.h so that GDK_NATIVE_WINDOW_POINTER
1728         is defined and GdkNativeWindow gets its correct width of 8 bytes to prevent
1729         a stack smash.
1731 2008-11-21  Alp Toker  <alp@nuanti.com>
1733         * plugin-class.cpp: Fix 'DownloadProgressCanged' typo in DOM event
1734         names leading to dropped events.
1736 2008-11-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1738         * plugin-class.cpp: Implement variant<->value conversion for NPObjects.
1739         * plugin.h, plugin.cpp: Added plugin_instance_get_id and
1740           plugin_instance_get_host.
1742 2008-11-10  Jeffrey Stedfast  <fejj@novell.com>
1744         Fix for bug #442770
1746         * plugin-debug.cpp (plugin_debug): Connect to surface
1747         DestroyedEvent to close the debug window so that it won't crash
1748         when trying to use it once the site has been navigated away from.
1750 2008-11-06  Stephane Delcroix  <sdelcroix@novell.com>
1752         * plugin.cpp:
1753         * plugin-downloader.h|cpp:
1754         * firefox/browser-http.inc: pass the uri with the finished handler 
1755         for further validation. r:gnorton
1757 2008-10-31  Chris Toshok  <toshok@ximian.com>
1759         * plugin.cpp (PluginInstance::CreateWindow): call SetTransparent
1760         on moon_window instead of the surface.
1762         * windowless.cpp (MoonWindowless::HandleEvent): pass
1763         GetTransparent() to Surface::PaintToDrawable here.
1765 2008-10-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1767         * plugin.cpp: Implement EnableRedrawRegions by linking them to
1768           RUNTIME_INIT_SHOW_EXPOSE.
1770 2008-10-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1772         * plugin.cpp: Add a row to the Properties dialog informing about the
1773           codecs in use.
1775 2008-10-21  Chris Toshok  <toshok@ximian.com>
1777         * plugin-class.cpp, plugin-class.h: event listener leak fix v3.0
1779 2008-10-21  Chris Toshok  <toshok@ximian.com>
1781         * plugin-class.cpp, plugin-class.h: since I removed the value_dtor
1782         from xaml_proxies, we need to iterate over it and destroy the
1783         proxies manually now.  Also, disavow ownership of proxies when we
1784         call RemoveHandler.
1786 2008-10-20  Chris Toshok  <toshok@ximian.com>
1788         * plugin-class.cpp (MoonlightObject::ClearXamlEventProxy): this
1789         method cannot call RemoveHandler on the proxy.  instead, we return
1790         the proxy and our callers can do it
1791         (MoonlightScriptControlObject::SetProperty): here
1792         (MoonlightContentObject::SetProperty): here
1793         (MoonlightDependencyObjectObject::SetProperty): and here
1794         
1795         (EventListenerProxy::~EventListenerProxy): here we need to clear
1796         out the xaml/non-xaml proxy regardless of of whether or not it's a
1797         function.  and make sure to call the right method depending on our
1798         token.
1800 2008-10-20  Chris Toshok  <toshok@ximian.com>
1802         * plugin-class.cpp, plugin-class.h: Rather complicated lifecycle
1803         sorting out dealing with EventListenerProxies - there was a reason
1804         I was avoiding this :) - fixes bug 436060.
1806         1) if the target (the object on which the proxy calls AddHandler)
1807         is destroyed, the proxy should go away.
1808         
1809         2) if the owner (the MoonlightObject which created the proxy) is
1810         invalidated, the proxy should also be invalidated.
1812         3) if the owner is destroyed, the proxy should call RemoveHandler
1813         on the target.  Note that we shouldn't destroy the proxy here -
1814         it'll be destroyed by virtue of the data_dtor stuff in
1815         EventObject.
1816         
1817         * windowless.h, windowless.cpp: add support for experimental
1818         extension (see mozilla.org bug #430451) for windowless cursors.
1820 2008-10-20  Chris Toshok  <toshok@ximian.com>
1822         * plugin-entry.cpp: get rid of all those CallNPP_* macro uses.
1823         just invoke the damn function.
1825         * plugin-proxy.cpp, moonlight.h: include npfunctions.h instead of npupp.h
1827         * plugin-glue.cpp, plugin.h: fix types.
1828         
1829         * moz-sdk/*: rev to a newer version of the moz-sdk files.
1831 2008-10-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1833         * plugin-class.cpp: proxy_listener_to_javascript: if calldata is null,
1834           only pass 1 argument to javascript. Fixes #426440 partially (mp3s
1835           are now downloaded).
1837 2008-10-16  Jb Evain  <jbevain@novell.com>
1839         * moonlight.h: update SL2 mime type and runtime version.
1841 2008-10-14  Chris Toshok  <toshok@ximian.com>
1843         * windowless.cpp (MoonWindowless::GetGdkWindow): get the
1844         netscapeWindow from our plugin id and return a new GdkWindow for
1845         it.
1847 2008-10-14  Stephane Delcroix  <sdelcroix@novell.com>
1849         * windowless.h|.cpp: implements GetGdkWindow ()
1851 2008-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1853         * plugin-class.cpp: Fix statement order.
1855 2008-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1857         * plugin.cpp, plugin-class.cpp: Add some null checks, found while using
1858           firebug during plugin initialization.
1860 2008-10-07  Larry Ewing  <lewing@novell.com>
1862         * windowless.cpp (MoonWindowless::HandleEvent): set the crossing
1863         mode of our synthetic events to normal.  
1865         Fixes missing mouse leave events for InputHitTst.html (143)
1866         
1867 2008-10-07  Larry Ewing  <lewing@novell.com>
1869         * plugin.cpp: remove a redundant call to SetSurface after creating
1870         a surface, it is handled in the ctor.
1872         Fixes the double render_cb registration problem we were seeing
1873         that caused high framerates and starvation problems. 
1875 2008-10-03  Stephane Delcroix  <sdelcroix@novell.com>
1877         * plugin.cpp: call SetPageURL even for embedded xaml. Makes fixture
1878         145 break, as expected.
1880 2008-09-30  Chris Toshok  <toshok@ximian.com>
1882         * plugin-debug.cpp: more debug window work - it's sorted by name
1883         now, and add support for colors, timespans, and a few other types.
1885 2008-09-30  Chris Toshok  <toshok@ximian.com>
1887         * plugin-debug.cpp: rework the Debug window entirely.  no we don't
1888         just show children, but all property values.
1890 2008-09-28  Chris Toshok  <toshok@ximian.com>
1892         * plugin-class.h,
1893         plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
1894         support for dumpNameScope.
1896 2008-09-26  Fernando Herrera  <fherrera@novell.com>
1898         * mono.cpp: Fix compilation when configured with --with-debug=no
1900 2008-09-25  Jeffrey Stedfast  <fejj@novell.com>
1902         * plugin.cpp (PluginInstance::PluginInstance): Initialize
1903         source_location to NULL - probably the source of the random
1904         crashes we were seeing on the buildbot earlier.
1906 2008-09-25  Stephane Delcroix  <sdelcroix@novell.com>
1908         * plugin.cpp: update the Surface::source_location while setting
1909         the source_location.
1911 2008-09-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1913         * plugin.cpp: Show a item in the right-click menu allowing the ms
1914           codecs to be installed manually.
1916 2008-09-23  Chris Toshok  <toshok@ximian.com>
1918         * plugin.cpp (PluginInstance::CreateWindow): plug some memory
1919         leaks.
1921 2008-09-19  Jeffrey Stedfast  <fejj@novell.com>
1923         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): For
1924         RemoveEventListener(), we don't need to look up the event_id more
1925         than once.
1927         * plugin.cpp (PluginXamlLoader::HookupEvent): Call
1928         event_object_add_xaml_listener() instead of
1929         event_object_add_javascript_handler() since this is happening as a
1930         result of a listener being set in the XAML (which means it has to
1931         have a token value of 0).
1933         * plugin-class.cpp (EventListenerProxy::AddXamlHandler): New method.
1934         (event_object_add_xaml_listener): New.
1936 2008-09-19  Stephane Delcroix  <sdelcroix@gnome.org>
1938         * plugin-class.cpp: use the nex dl->Open interface
1940 2008-09-16  Fernando Herrera  <fherrera@novell.com>
1942         * Makefile.am: Add asf include dir
1944 2008-09-06  Chris Toshok  <toshok@ximian.com>
1946         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): look
1947         up the event here, the DO api is gone.
1948         (EventListenerProxy::~EventListenerProxy): use the DestroyedEvent
1949         id instead of "destroyed".
1951 2008-09-03  Larry Ewing  <lewing@novell.com>
1953         * plugin-class.cpp, plugin-class.h: remove all the ControObject
1954         wrapper foo, Control has the properties we need and this looks
1955         wrong now.
1957 2008-08-28  Chris Toshok  <toshok@ximian.com>
1959         * plugin.cpp, plugin-class.cpp: track move from C-binding to C++
1960         for the xaml_create/hydrate_from* methods.
1962 2008-08-28  Larry Ewing  <lewing@novell.com>
1964         Make a little progress in getting opera to load the plugin
1965         correctly in windowless mode.  Opera is still only minimally
1966         functional but the plugin should come up now.
1967         
1968         * plugin.cpp, plugin.h: don't get the source url via GetProperty
1969         that causes operapluginwrapper to reenter and breaks everything.
1970         Handle a few other operapluginwrapper quirks and pass resizing
1971         through the window not the surface (so that UpdateWindowInfo will
1972         work).
1974         * plugin-glue.cpp: slightly rework the initialization, don't fixup
1975         errors just try to fail early.
1976         
1977         * windowless.cpp (MoonWindowless::UpdateWindowInfo): new function
1978         to copy the needed members of NPWindow that opera is prematurely
1979         destroying.
1981 2008-08-25  Chris Toshok  <toshok@ximian.com>
1983         * plugin-class.cpp, windowless.cpp: track rect change.
1985 2008-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1987         * plugin.cpp: Fix build.
1989 2008-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1991         * plugin-downloader.cpp: Drastically enhance the debugging experience
1992           here.
1994 2008-08-18  Larry Ewing  <lewing@novell.com>
1996         * plugin-class.cpp (MoonlightStrokeCollectionObject::Invoke):
1997         unref the collection we've created.
1999 2008-08-18  Geoff Norton  <gnorton@novell.com>
2001         * plugin-class.cpp: Its possible that we dont have a surface in the
2002         OnError case at this point, guard against this.
2004 2008-08-18  Geoff Norton  <gnorton@novell.com>
2006         * plugin.cpp: Ensure we dont set object.Source to a data mime-type value.
2008 2008-08-18  Geoff Norton  <gnorton@novell.com>
2010         * windowless.cpp: Null the GdkEventKey.string value.
2011         * plugin-class.cpp|h: Rename KeyboardEventArgs->KeyEventArgs, 
2012         but support returning "KeyboardEventArgs" to javacsript toString()
2013         when in 1.0 mode.
2015 2008-08-17  Geoff Norton  <gnorton@novell.com>
2017         * plugin.cpp|h: Add a C binding for GetSourceLocation ()
2019 2008-08-17  Chris Toshok  <toshok@ximian.com>
2021         * plugin.cpp, plugin-class.cpp, mono.cpp, plugin-proxy.cpp,
2022         plugin.h, moonlight.h, moon-mono.h: SL_2_0 -> SL_PLUGIN_2_0.
2024 2008-08-17  Chris Toshok  <toshok@ximian.com>
2026         * Makefile.am: INCLUDE_MONO_RUNTIME ->
2027         INCLUDE_BROWSER_MANAGED_CODE.
2029 2008-08-15  Jeffrey Stedfast  <fejj@novell.com>
2031         * plugin-class.cpp (MoonlightStylusInfoObject::GetProperty): Use
2032         the c++ property accessors for the stylus classes.
2034 2008-08-14  Jackson Harper  <jackson@ximian.com>
2036         * plugin.cpp|h: We now get a 'dest' pointer for hooking up events,
2037         this is basically ignored by the javascript event hookup since
2038         everything is in a global space.
2040 2008-08-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2042         * plugin.h: Don't use base_unref, call unref on the instance.
2044 2008-08-14  Geoff Norton  <gnorton@novell.com>
2046         * plugin.cpp|h: The timeout C bindings are no longer used.
2048 2008-08-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2050         * plugin-class.cpp: Remove spew.
2051         * moonlight.cs: Don't initialize Helper.Agclr here, it's not in the
2052           right AppDomain.
2054 2008-08-13  Geoff Norton  <gnorton@novell.com>
2056         * plugin.cpp|h: Reuse the old html_timer infrastructure for the
2057         intial DispatcherTimer implementation.
2059 2008-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2061         * moonlight.cs: Set Helper.Agclr upon startup.
2063 2008-08-11  Larry Ewing  <lewing@novell.com>
2065         * plugin.cpp (PluginInstance::StreamAsFile): horrible but
2066         temporary hack to load application/x-silverlight objects as sl2
2067         files when .xap is present in the filename.
2069 2008-08-11  Geoff Norton  <gnorton@novell.com>
2071         * moonlight.h:  Some sites are doing an exact string comparison
2072         in Javascript of this value.  Unfortunately we need to drop
2073         out compatability string.
2075 2008-08-08  Chris Toshok  <toshok@ximian.com>
2077         * plugin-class.cpp: add sl2 arguments to the various parser/enum
2078         functions that need them.
2080 2008-08-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2082         * plugin.mdp: Make src and plugin projects build.
2084 2008-08-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2086         * plugin-debug.cpp: Deleted Visual (moved content into UIElement), and
2087           renamed VisualCollection to UIElementCollection.
2089 2008-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2091         * plugin-class.cpp: Use C++ bindings instead of C bindings.
2093 2008-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2095         * plugin.cpp, plugin.h: Implement PluginInstance::Evaluate.
2097 2008-07-26  Chris Toshok  <toshok@ximian.com>
2099         * plugin-class.h, plugin-class.cpp: add MoonlightRoutedEventArgs
2100         stuff between EventArgs and KeyboardEventArgs/MouseEventArgs.
2101         RoutedEventArgs exposes a 2.0-only property ("source"), and both
2102         Keyboard/MouseEventArgs expose a 2.0-only property as
2103         well ("handled").
2105 2008-07-25  Chris Toshok  <toshok@ximian.com>
2107         * plugin-class.h, plugin-class.cpp: add a flags field to the
2108         mapping, so we can start to differentiate the 1.0 and 2.0 JS apis.
2110         * plugin.cpp (PluginInstance::CreateWindow): pass silverlight2 to
2111         the Surface ctor.
2113 2008-07-24  Jeffrey Stedfast  <fejj@novell.com>
2115         * plugin-class.cpp (MoonlightCollectionObject::GetProperty): Use
2116         collection->GetCount() instead of poking at the internal
2117         representation of the data.
2118         (MoonlightCollectionObject::Invoke): Need to add/remove/insert/etc
2119         items as Values now.
2121 2008-07-23  Chris Toshok  <toshok@ximian.com>
2123         * plugin-class.cpp: track DependencyProperty changes.
2125 2008-07-18  Chris Toshok  <toshok@ximian.com>
2127         * windowless.h, windowless.cpp: switch this from being a surface
2128         subclass to being a MoonWindow subclass, which fixes the need for
2129         us to worry about whether we have a widget (for fullscreen) in
2130         windowless code.
2132 2008-07-18  Jb Evain  <jbevain@novell.com>
2134         * moonlight.cs (UnloadDomain): actually call the plugin unload callback.
2136 2008-07-18  Jackson Harper  <jackson@ximian.com>
2138         * plugin-debug.cpp: Use new method for getting content element.
2140 2008-07-17  Jackson Harper  <jackson@ximian.com>
2142         * plugin-debug.cpp: Add the contents of UserControls to the tree too.
2144 2008-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2146         * npstream-request.cpp, plugin-entry.cpp: Add missing #include
2147           <config.h>
2149 2008-07-10  Andrew Jorgensen  <ajorgensen@novell.com>
2151         * plugin-proxy.cpp: Include config.h (which got un-included
2152         from moonlight.h)
2154 2008-07-10  Chris Toshok  <toshok@ximian.com>
2156         * plugin.cpp (PluginInstance::UpdateSourceByReference): rework
2157         this so that it uses the NPN api instead of the bridge-requiring
2158         html_get_element_text.
2160 2008-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2162         * plugin.mdp: Updated.
2164 2008-07-09  Geoff Norton  <gnorton@novell.com>
2166         * plugin.cpp: UrlNotify now calls dl->NotifyFinished() and
2167         StreamAsFile calls SetFilename
2168         * plugin-downloader.cpp: Update for the Downloader changes
2169         to NotifyFinished / SetFilename
2171 2008-07-09  Larry Ewing  <lewing@novell.com>
2173         * windowless.cpp: make sure we proxy events to the fullscreen
2174         widget when we are in fullscreen mode.
2176         Fixes silverlight.net/fox in fullscreen mode.
2177         
2178 2008-07-08  Sebastien Pouliot  <sebastien@ximian.com>
2180         * plugin-class.cpp: Make sure we free (or nullify) before calling
2181         THROW_JS_EXCEPTION
2183 2008-07-07  Jeffrey Stedfast  <fejj@novell.com>
2185         * mono.cpp: Fixed includes.
2187 2008-07-06  Chris Toshok  <toshok@ximian.com>
2189         * windowless.cpp (WindowlessSurface::HandleEvent):
2190         plugin_button_press_callback takes the plugin for user_data, not
2191         the surface.
2193 2008-07-06  Chris Toshok  <toshok@ximian.com>
2195         * plugin.cpp (PluginInstance::Initialize): add a way to override
2196         the windowless setting.  set the MOONLIGHT_NO_WINDOWLESS
2197         environment variable, and plugins will be created windowed,
2198         regardless of the JS.
2200 2008-07-02  Chris Toshok  <toshok@ximian.com>
2202         * Makefile.am (INCLUDES): add src/zip
2204         * plugin.cpp (PluginInstance::StreamAsFile): in the case where the
2205         1.0 version of the plugin is fed a .xap file, show something to
2206         the user saying it's not going to be able to render it.
2208 2008-07-02  Chris Toshok  <toshok@ximian.com>
2210         * plugin.h, plugin.cpp: more clean up in the class decl.
2212         * plugin-class.cpp, plugin-debug.cpp, plugin-glue.cpp: fallout
2213         from the above change.
2215 2008-07-02  Jeffrey Stedfast  <fejj@novell.com>
2217         * plugin.cpp (PluginInstance::Properties): Added a "Show text
2218         boxes" checkbox.
2220 2008-07-02  Chris Toshok  <toshok@ximian.com>
2222         * plugin.h, plugin.cpp: reorder PluginInstance's class decl so
2223         that public: comes before private:, and make "timers" private,
2224         forcing the addition of TimeoutAdd and TimeoutStop instance
2225         methods so that the C binding can call them.  put comments all
2226         over them saying they're obsolete in b2.
2228 2008-07-02  Chris Toshok  <toshok@ximian.com>
2230         * plugin-class.h, plugin-class.cpp (string_to_npvariant): make
2231         public.
2233 2008-07-02  Chris Toshok  <toshok@ximian.com>
2235         * windowless.h, windowless.cpp (WindowlessSurface::HandleEvent):
2236         move the windowless event handling here so it's not cluttering up
2237         plugin.cpp.
2239         * plugin.h, plugin.cpp: add GetWindow() to return the NPWindow,
2240         make plugin_button_press_callback a public static method so
2241         WindowlessSurface can call it, and remove the entire EventHandle
2242         method body (so it can be moved to WindowlessSurface).
2244 2008-07-02  Chris Toshok  <toshok@ximian.com>
2246         * plugin.h, plugin.cpp: remove the old static methods for doing
2247         windowless things, and instead just instantiate a
2248         WindowlessSurface in CreateWindow when windowless == true.
2250         * Makefile.am (libmoonplugin_la_SOURCES): add windowless.{cpp,h}
2252         * windowless.h, windowless.cpp: new WindowlessSurface subclass
2253         which proxies things over to mozilla.
2255 2008-07-02  Chris Toshok  <toshok@ximian.com>
2257         * plugin.cpp (NPN_strdup): just set 1 byte to 0 instead of all of
2258         them :)
2259         (PluginInstance::SetSurfaceCursor): ifdefed out implementation of
2260         a proposed method for setting the cursor in windowless plugins.
2261         (PluginInstance::CreateWindow): hook up SetSurfaceCursor.
2263 2008-06-28  Geoff Norton  <gnorton@novell.com>
2265         * plugin-downloader.(ccp|h): The finished event raises a success condition now
2266         so that we can notify failure on unsuccessful downloads.
2268 2008-06-27  Stephane Delcroix  <sdelcroix@novell.com>
2270         * browser-bridge.h:
2271         * firefox/browser-http.inc:
2272         * firefox/ff2/ff2-bridge.h:
2273         * firefox/ff2/ff2-http.cpp:
2274         * firefox/ff3/ff3-bridge.h:
2275         * firefox/ff3/ff3-http.cpp:
2276         * npstream-request.cpp:
2277         * npstream-request.h:
2278         * plugin-downloader.cpp:
2279         * plugin-downloader.h: move browserrequest/response from the plugin
2280         as downloaderrequest/response.
2282 2008-06-26  Michael Dominic K.  <mdk@mdk.am>
2284         * plugin-class.cpp:
2285         * plugin-class.h: Adding ways/wrapper to access the KeyTime property of
2286         the KeyFrame. Fixes #402370 and #402035.
2288 2008-06-19  Chris Toshok  <toshok@ximian.com>
2290         * plugin.h: add GetHost(), and rename all the "get"/"set" methods
2291         to "Get"/"Set" to match everything else.
2293         * plugin.cpp: fix up the renaming, and abstract out the code used
2294         in a couple of places (getting the NPNVPluginElementNPObject) into
2295         GetHost().
2296         
2297         * npstream-request.cpp (NPStreamRequest::GetResponse): track
2298         renaming.
2300         * plugin-class.cpp: track renaming.
2301         (MoonlightDependencyObjectObject::Invoke): use GetHost().
2303 2008-06-19  Chris Toshok  <toshok@ximian.com>
2305         * plugin-class.cpp (MoonlightScriptControlObject::Invoke): comment
2306         out the version requested spew.
2308         * plugin.cpp (PluginInstance::Initialize): comment some bridge
2309         spew, and make sure to use "else if" for the useragent tests so we
2310         don't end up possibly loading 2 bridges.
2312 2008-06-17  Geoff Norton  <gnorton@novell.com>
2314         * plugin-downloader.cpp: When we are Aborted NULL our request
2315         and response objects so that we dont do a double abort from our
2316         dtor.  Fully fixes the Downloader::Write issue (i hope).
2318 2008-06-17  Geoff Norton  <gnorton@novell.com>
2320         * plugin-downloader.cpp:  Set the finished state regardless of 
2321         wether we have a downloader or not.
2323 2008-06-17  Geoff Norton  <gnorton@novell.com>
2325         * plugin-downloader.cpp:  If we destroy ourselves, ensure that we
2326         abort our request/response so that firefox doesn't call back
2327         into a destroyed object.
2329 2008-06-17  Geoff Norton  <gnorton@novell.com>
2331         * plugin-downloader.cpp, plugin-downloader.h:  Ensure that we dont
2332         attempt to abort a finished stream, as it may have dissappeared from
2333         Firefox already.
2335 2008-06-16  Jeffrey Stedfast  <fejj@novell.com>
2337         * plugin-class.cpp (_set_dependency_property_value): Don't
2338         g_assert() here, it's not necessary plus we want to get rid of
2339         them anyway for bug #335413.
2341 2008-06-10  Chris Toshok  <toshok@ximian.com>
2343         * plugin.cpp, plugin.h: wrap everything 2.0 related with
2344         INCLUDE_MONO_RUNTIME.
2346 2008-06-10  Geoff Norton  <gnorton@novell.com>
2348         * plugin-downloader.cpp, plugin-downloader.h:  Aborted guarding
2349         is handled in the bridge now, as plugin-downloader's might be 
2350         reused.  Also add a null check for Downloader in the Read callback
2352 2008-06-10  Geoff Norton  <gnorton@novell.com>
2353         
2354         * npstream-request.cpp: Return the status of GetResponse.
2356 2008-06-11  Geoff Norton  <gnorton@novell.com>
2358         * plugin-downloader.cpp: Only call into the downloader to Write
2359         if we have a downloader set.  Fixes a crash when navigating away from
2360         live streams.
2362 2008-06-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2364         * plugin-class.h: Replace g_assert with g_warning.
2366 2008-06-09  Geoff Norton  <gnorton@novell.com>
2368         * npstream-request.cpp:  Change the g_asserts to g_warning.
2370 2008-06-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2372         * plugin.mdp: Updated.
2374 2008-06-05  Jeffrey Stedfast  <fejj@novell.com>
2376         * plugin-debug.cpp (save_callback): Modified to save mirror in the
2377         same directory layout as the website.
2379 2008-06-05  Geoff Norton  <gnorton@novell.com>
2381         * plugin-class.cpp: Update to reflect API changes on the downloader
2382         side.
2384 2008-06-05  Geoff Norton  <gnorton@novell.com>
2385         
2386         * plugin-downloader.cpp: Update the debugging outputs.
2388 2008-06-05  Geoff Norton  <gnorton@novell.com>
2390         * http-downloader.cpp, http-downloader.h, mms-downloader.cpp,
2391         mms-downloader.h: Drop from the build in preparation to move
2392         mms logic into libmoon.
2393         * plugin-downloader.cpp, plugin-downloader.h,
2394         browser-bridge.h: Remove the browser downloader and encapsulate
2395         all the logic in a BrowserRequest.
2396         * npstream-request.cpp, npstream-request.h: New BrowserRequest
2397         based NPStream implementation.
2398         * plugin-downloader.cpp: Fix some debugging output. Add a few
2399         NULL guards.
2400         * plugin.cpp: Utilize the new npstream-request class.
2402 2008-06-04  Geoff Norton  <gnorton@novell.com>
2404         * plugin-class.cpp: Fix the argument check for MouseEventArgs
2405         GetPosition regression introduced with check_arg_list changes.
2407 2008-06-04  Geoff Norton  <gnorton@novell.com>
2409         * plugin-class.cpp: Fix the argument check for hitTest
2410         regression introduced with check_arg_list changes.
2412 2008-06-04  Geoff Norton  <gnorton@novell.com>
2414         * plugin-class.cpp: Fix the argument check for setFontSource
2415         regression introduced with check_arg_list changes.
2417 2008-06-04  Jeffrey Stedfast  <fejj@novell.com>
2419         * plugin-class.cpp: Added argument sanity checking in all the
2420         Invoke() methods I could find (may have missed some).
2421         (check_arg_list): New function to sanity-check an NPVariant
2422         argument vector for the correct types and the correct number of
2423         arguments (supports optional args as well).
2425 2008-06-04  Jeffrey Stedfast  <fejj@novell.com>
2427         * plugin-class.cpp (MoonlightDownloaderObject::Invoke): Check the
2428         arg-types for ::Open(). Fixes bug #394943.
2430 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2432         * plugin-downloader.cpp: Don't delete BrowserDownloaders, it causes
2433           crashes for the moment.
2435 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2437         * mms-downloader.cpp: MmsDownloader::Read: only delete the ASFParser
2438           after we've finished with the data it contains.
2439           MmsDownloader::ProcessMetadataPacket: fix parsing quoted strings.
2440         * mms-downloader.h, npstream-downloader.h: Make dtor virtual.
2441         * plugin-downloader.cpp, plugin-downloader.h: Move ctors and dtors into
2442           cpp file, and delete the BrowserDownloader in PluginDownloader's
2443           dtor.
2445 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2447         * plugin.mdp: Updated.
2449 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2451         * mms-downloader.cpp: Call Downloader::NotifyFailed when we encounter
2452           an invalid mms source. Parse metadata packets, and set
2453           HttpStreamingFeatures correctly on the downloader.
2454         * plugin-downloader.cpp: Handle rtsp urls.
2456 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2458         * plugin.cpp: Add some debugging foo.
2460 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2462         * npstream-downloader.cpp: If NPN_GetURLNotify fails, notify the
2463           downloader.
2465 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2467         * mms-downloader.cpp, mms-downloader.h: For the broadcast case keep a
2468           count of the number of packets received, and write new packets at
2469           the end of the previous packet. Don't print warnings for MMS_END
2470           and MMS_STREAM_C packets.
2472 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2474         * plugin-downloader.cpp: Return something from
2475           PluginDownloader::GetPlugin.
2477 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2479         * plugin-downloader.cpp: Spaces->Tabs.
2481 2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2483         * mms-downloader.h, mms-downloader.cpp: Move ctor/dtor into cpp file,
2484           add some logging and null out response in Finished, otherwise we
2485           might crash if Abort is called later on.
2487 2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2489         * http-downloader.cpp: Return something from HttpDownloader::Read.
2491 2008-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2493         * plugin.mdp: Updated.
2495 2008-05-23  Geoff Norton  <gnorton@novell.com>
2497         * browser-bridge.h: Get/SetUri is no longer needed on the BrowserResponse
2498         class
2500 2008-05-23  Geoff Norton  <gnorton@novell.com>
2502         * *-downlodaer.cpp: Add the files to SVN
2504 2008-05-23  Geoff Norton  <gnorton@novell.com>
2506         * browser-bridge.cpp: Refactor to move all the stream processing logic outside
2507         the bridge into the plugin in a generic way.
2508         * plugin.cpp: Cache the source_location.  Needed for http-downlodaer to resolve
2509         relative uri's.
2510         * mmsh-state.*: Merged into mms-downlodaer.cpp
2511         * mms-downloader.cpp: Rewritten to not leak all memory when streaming from a mms
2512         server, plus a lot of readability fixes.
2513         * npstream-downloader.cpp: Hide NPStream related specifics here instead of in
2514         * plugin-downloader.cpp: Direct requests to the BrowserDownloader implementation
2515         for this request.
2517 2008-05-21  Chris Toshok  <toshok@ximian.com>
2519         * plugin.cpp (plugin_button_press_callback): rename
2520         plugin_event_callback to this, and remove all the non-button event
2521         code.
2522         (PluginInstance::CreateWindow): connect to just
2523         "button-press-event", not the more generic "event".  track
2524         renaming.
2525         (PluginInstance::EventHandle): track renaming.
2527 2008-05-19  Larry Ewing  <lewing@novell.com>
2529         * plugin.cpp (PluginInstance::SetPageURL): drop the reference we
2530         were holding to NPNVWindowNPObject.
2532 2008-05-19  Larry Ewing  <lewing@novell.com>
2534         * plugin.cpp (PluginInstance::EventHandle): discard any events
2535         that happen before SetWindow has been called.
2537         Fix for a crash in Silverlight Pad.
2539 2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2541         * plugin-class.cpp: Throw an exception if the downloader doesn't have a
2542           surface when we call Downloader::Send.
2544 2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2546         * mmsh-state.h: Surround file with ifdefs, and forward declare
2547           MmshState.
2548         * plugin-downloader.h: Include mmsh-state.h and properly declare
2549           PluginDownloader::state as MmshState.
2551 2008-05-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2553         * plugin.mdp: Updated.
2555 2008-05-15  Larry Ewing  <lewing@novell.com>
2557         * plugin.cpp (PluginInstance::EventHandle): send focus in/out to
2558         the surface.
2560         * plugin-class.cpp, plugin.cpp, plugin.h: capture id parameter and
2561         return it in js.
2563 2008-05-14  Sebastien Pouliot  <sebastien@ximian.com>
2565         * moonlight.h: Start plugin description with Silverlight plugin 
2566         version. The new detection script for sharethelove requires this.
2568 2008-05-13  Larry Ewing  <lewing@novell.com>
2570         * plugin.cpp, plugin-class.cpp: copy all npvariant strings so that
2571         we can null terminate them.  WebKit and Opera don't null terminate
2572         strings it seems.
2574 2008-05-13  Larry Ewing  <lewing@novell.com>
2576         * plugin-glue.cpp (NPP_Initialize): opera needs to have threads
2577         initialized even in the gtk2 case.
2579         * plugin.cpp (PluginInstance::SetWindow): disable this check since
2580         it currently fails on opera 9.5b2.
2582         These changes get the plugin loading in opera 9.5b2 we need to
2583         discuss some of this with them more.
2584         
2585 2008-05-13  Chris Toshok  <toshok@ximian.com>
2587         * plugin.cpp (PluginInstance::Initialize): add an opera case (just
2588         like the webkit case) which references a (for now) nonexistant
2589         bridge.
2591 2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2593         * plugin.cpp: TryLoad: Before parsing any xaml, we need to clear the
2594           current surface, otherwise the xaml we'll be parsing might add tick
2595           callbacks to the timemanager of the previous surface.
2597 2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2599         * plugin.mdp: Updated.
2601 2008-05-12  Andrew Jorgensen  <ajorgensen@novell.com>
2603         * Makefile.am: Moved the plugin installer code to a subdir (install)
2604         because the firefox bridges must build after the plugin but before the
2605         installer.
2607 2008-05-09  Geoff Norton  <gnorton@novell.com>
2609         * Makefile.am: Add mmsh-state.* to the build.
2610         * plugin-downloader.*: When connecting to a mms server we cannot
2611         immediately start streaming.  We must first query its capabilities
2612         with a Describe request, then select the appropriate streams we 
2613         wish to have available.
2615 2008-05-09  Geoff Norton  <gnorton@novell.com>
2617         * mmsh-state.cpp, mmsh-state.h: New class to keep stream state
2618         for selecting which streams to fetch from a mms:// server.
2620 2008-05-09  Chris Toshok  <toshok@ximian.com>
2622         * ff3/Makefile.am (libmoonplugin_ff3bridge_la_LIBADD): add
2623         libmoonplugin.la
2625 2008-05-09  Chris Toshok  <toshok@ximian.com>
2627         * ff2/Makefile.am (EXTRA_DIST): dist firefox-browsermmsh.inc
2629 2008-05-08  Chris Toshok  <toshok@ximian.com>
2631         * install.rdf.in: track MINVERSION/MAXVERSION ->
2632         MIN_FIREFOX_VERSION/MAX_FIREFOX_VERSION change.
2634         * plugin.cpp (NPN_strdup): make the arg const char* to quiet gcc.
2635         (PluginInstance::PluginInstance): initialize bridge to NULL.
2636         (PluginInstance): delete the bridge.
2637         (PluginInstance::Initialize): try loading a browser specific
2638         bridge using the useragent string (gross, fragile, i know...)
2639         (PluginInstance::TryLoadBridge): new method, dlopen the bridge.
2641         * browser-http.h, browser-http.cpp: nuke.  the C implementation
2642         lives in browser-bridge.cpp, and browser-bridge.h defines
2643         the (purely abstract) base classes that the bridge implementations
2644         subclass from for browser-specific functionality.
2646         * plugin-proxy.cpp: clean up more XP_UNIX stuff - it's always
2647         defined (in moonlight.h) so we don't need ifdefs for it.  Also, it
2648         needs to be defined *before* including npapi/npupp so that
2649         structures we need are defined.
2651         * plugin-class.cpp: remove all HtmlObject implementation code from
2652         here.  it lives in the browser bridge now.  Also, remove all
2653         internal mozilla #includes.
2655         * moonlight.h (XP_UNIX): always define it if it isn't already
2656         there.
2658         * browser-bridge.h: add NPNetscapeFuncs* arg to
2659         CreateBrowserBridge.
2661         * plugin-entry.cpp (NPN_PostURLNotify): correct arg type.
2662         (NPN_MemAlloc): same.
2663         (NPN_MemFlush): same.
2664         (NPN_PostURL): same.
2665         (NP_Initialize): remove the stupid #if XP_UNIX stuff from here.
2666         we're only building on unix, so let's simplify things.  Also,
2667         don't use PR_TRUE/PR_FALSE.  NPBool uses TRUE/FALSE.
2669         * plugin-glue.cpp (NPP_WriteReady): change type to int32 instead
2670         of int32_t so that it matches the prototype.
2671         (NPP_Write): same.
2673         * moz-sdk/npapi.h, moz-sdk/npupp.h: unfuck our npapi headers so
2674         they can be used for either ff2 and ff3 (and without pulling in
2675         nspr).
2677 2008-05-08  Larry Ewing  <lewing@novell.com>
2679         * plugin.cpp (PluginInstance::SetWindow): don't crash if we
2680         weren't able to create a surface.
2682 2008-05-08  Chris Toshok  <toshok@ximian.com>
2684         * ff2/ff2-bridge.cpp: in order to keep from needing to load
2685         libmoonplugin.so with RTLD_GLOBAL (which breaks other plugins), we
2686         need to pass the NPNetscapeFuncs vtable to the bridge, and provide
2687         implementations of all the NPN_ methods here.  That was making
2688         this file a bit busy, so break out the dom and http stuff to
2689         separate files.
2691         * ff2/ff2-dom.cpp: move the dom stuff here.
2693         * ff2/ff2-http.cpp: move the browserhttp stuff herre.
2694         
2695         * ff2/Makefile.am (EXTRA_DIST): make sure we dist
2696         firefox-browserhttp.inc
2698         * ff3/ff3-http.cpp, ff3/ff3-dom.cpp, ff3/ff3-bridge.cpp: same
2699         changes to the ff3 bridge.
2701 2008-05-07  Geoff Norton  <gnorton@novell.com>
2702         
2703         * plugin.cpp, plugin.h: Add NPN_strdup
2704         * plugin-class.cpp: Use NPN_strdup
2705         * plugin-entry.cpp: Dont abort if XEmbed/Gtkv2 aren't found as
2706         some browsers wont lets us NPN_GetValue on a NULL instance.
2708 2008-05-07  Andrew Jorgensen  <ajorgensen@novell.com>
2710         * Makefile.am: Move mono_*dir stuff into Makefile
2712 2008-05-07  Larry Ewing  <lewing@novell.com>
2714         * plugin.cpp (PluginInstance::SetWindow): if SetWindow is called
2715         with the same window this is due to a resize, propogate that
2716         resize to the surface code.
2718         Fixes the plugin side of windowless resizing.  See
2719         http://my.liveatedu.com/ for test case.
2721 2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>
2723         * moonlight.h: Could not find (nor google) the real meaning for SCR,
2724         I suspect "script", nor does it affect any apps I've seen but having 
2725         xaml in it's place is probably not a good idea.
2726         [Fix bug #384373]
2728 2008-05-06  Jeffrey Stedfast  <fejj@novell.com>
2730         * plugin.h (PluginInstance::getNPP): Removed, this just duplicated
2731         the getInstance() method.
2733 2008-05-06  Andrew Jorgensen  <ajorgensen@novell.com>
2735         * install.rdf.in: Use values from configure for min and max versions
2737 2008-05-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2739         * plugin-glue.cpp: shutdown_moonlight: we have to check again if there
2740           are plugins alive, this method is called async, and it's possible
2741           that another plugin has been initialized between adding the timeout
2742           and getting here.
2744 2008-05-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2746         * plugin-class.cpp: Add a missing initialization.
2748 2008-05-04  Miguel de Icaza  <miguel@novell.com>
2750         * moonlight.cs: Add support for XAP file loading. 
2752         * mono.cpp: New methods to create applications based on XAP files,
2753         and shut them down.
2755         * plugin.cpp (PluginInstance::StreamAsFile): If Silverlight2 the
2756         request was for a XAP file, load a XAP file.    This could break
2757         if people embed a Silverlight2 plugin, but pass a XAML file, must
2758         test this. 
2760         * plugin.cpp: Some refactoring to keep the Mono-depending features
2761         together, without having ifdefs inside of functions.
2763         XAP maintenance: Keep track of whether a XAP application has been
2764         loaded, destroy XAP applications on shutdown.
2765         
2767 2008-05-04  Chris Toshok  <toshok@ximian.com>
2769         * plugin.h, plugin.cpp, plugin-class.cpp, plugin-class.h: revert
2770         most of r102288 to move back to the separate Loaded/Load events.
2771         Leave the OneShot behavior for EventListenerProxy's, though, as
2772         that still is useful.
2774 2008-05-01  Larry Ewing  <lewing@novell.com>
2776         * plugin.cpp (plugin_event_callback): fix windowless button
2777         presses so that only button 3 is swallowed by the menu logic.
2779         Fixes zooming on
2780         http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html        
2781 2008-05-02  Andrew Jorgensen  <ajorgensen@novell.com>
2783         * Makefile.am: strip all .sos in XPI (not just ffmpeg)
2784         If we need un un-stripped XPI we'll build one.
2786 2008-05-02  Geoff Norton  <gnorton@novell.com>
2788         * plugin.cpp: reinterpret_cast doesn't work on 64-bit as it
2789         looses precision.
2791 2008-05-01  Chris Toshok  <toshok@ximian.com>
2793         * plugin-class.h, plugin-class.cpp: make EventListenerProxy's
2794         one-shottable (if they're one-shot, they remove themselves
2795         automatically after being invoked.)  Use this with the plugin
2796         onLoad proxy.  The script control object adds it to the surface's
2797         toplevel object's LoadedEvent.
2799         * plugin.h, plugin.cpp: when we create the surface, add a handler
2800         for AttachingEvent so we can notify our
2801         MoonlightScriptControlObject that it should add the onLoad handler
2802         to the toplevel element's LoadedEvent.
2804 2008-04-30  Fernando Herrera  <fherrera@novell.com>
2806         * browser-mmsh.cpp: Abort and NotifyFailed on invalid mms streams,
2807         probably they are plain http file downloads.
2809 2008-04-30  Fernando Herrera  <fherrera@novell.com>
2811         * plugin-debug.cpp: Added utils.h and uri.h.
2813 2008-04-30  Jeffrey Stedfast  <fejj@novell.com>
2815         * moonlight.h: Don't need to include glib.h and gtk.h, gtk.h will
2816         give us glib.h.
2818 2008-04-29  Jeffrey Stedfast  <fejj@novell.com>
2820         * plugin-debug.cpp (foreach_func): Save the files with their
2821         original filenames using the URI's path.
2823 2008-04-28  Sebastien Pouliot  <sebastien@ximian.com>
2825         * moonlight.h: Fix [Moon|Silver]'L'ight capitalization. Add 
2826         Moonlight URL (as HTML) in about:plugins. This enables "Visit 
2827         Home Page" in Firefox 3 "Tools | Add-ons | Plugins".
2829 2008-04-25  Chris Toshok  <toshok@ximian.com>
2831         * plugin-class.cpp (enum PluginPropertyId): add MoonId_OnLoad.
2832         (map_moon_id_to_event_name): handle MoonId_OnLoad.
2833         (MoonlightObjectType::MoonlightObjectType): zero out construct,
2834         just in case.
2835         (scriptable_control_mapping): move onerror here, and add onload.
2836         (MoonlightScriptControlObject): null out both settings and content
2837         here.
2838         (MoonlightScriptControlObject::GetProperty): fix IsLoaded to check
2839         the surface, and add support for OnError/OnLoad here.
2840         (MoonlightScriptControlObject::SetProperty): add support for
2841         OnError/OnLoad here.
2842         (moonlight_content_mapping): remove onerror.
2843         (MoonlightContentObject::GetProperty): remove support for OnError.
2844         (MoonlightContentObject::SetProperty): same.
2846         * plugin.cpp (PluginInstance::CreateWindow): initialize the
2847         onResize/onLoad events in the same way as onError.
2848         (PluginInstance::Initialize): parse the onResize arg.
2849         (PluginInstance::JsRunOnload): nuke.  rejoice.
2850         (PluginInstance::TryLoad): remove the call to JsRunOnload.  The
2851         surface's LoadEvent is responsible for this now.
2853 2008-04-25  Sebastien Pouliot  <sebastien@ximian.com>
2855         * plugin-debug.cpp: Better fix against my previous crash fix (as 
2856         we can get an invalid pointer to the plugin).
2858 2008-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2860         * plugin-downloader.cpp: Added logging.
2862 2008-04-25  Fernando Herrera  <fherrera@novell.com>
2864         * browser-mmsh.cpp: Conditional logging.
2865         * plugin-downloader.cpp: proper error handling at
2866         p_downloader_mmsh_send.
2868 2008-04-24  Andrew Jorgensen  <ajorgensen@novell.com>
2870         * Makefile.am: Add the locally built assemblies to the XPI
2872 2008-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2874         * plugin-debug.cpp: Don't crash if we don't have any sources.
2876 2008-04-24  Fernando Herrera  <fherrera@novell.com>
2878         * Makefile.am: Fix "make -jN" build.
2880 2008-04-23  Sebastien Pouliot  <sebastien@ximian.com>
2882         * plugin-debug.cpp: Don't crash if try to save stuff after changing
2883         web page.
2885 2008-04-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2887         * browser-mmsh.cpp: Parse http streaming metadata/features.
2888         * browser-mmsh.h: AsyncBrowserMmshResponse: Type the context as a
2889           PluginDownloader instead of a generic gpointer.
2891 2008-04-22  Larry Ewing  <lewing@novell.com>
2893         * moonlight.h: use HAVE_LIBXUL_UNSTABLE to determine which symbols
2894         to define.
2896         * browser-http.h, browser-mmsh.h: use HAVE_LIBXUL_UNSTABLE to
2897         determine the include path.
2898         
2900 2008-04-22  Chris Toshok  <toshok@ximian.com>
2902         * plugin.h, plugin.cpp: Add the notion of "cleanup pointers".
2903         It's a horrible name for the following hack.  You register a local
2904         variable pointer with the plugin before making a call during which
2905         you might be destroyed.  If the plugin instance is destroyed, all
2906         cleanup pointers are nulled..  When the all returns, you can't
2907         rely on "this" being valid, but you can rely on your local stack
2908         frame, so you look at the registered pointer.  if it's null,
2909         you're dead.
2910         
2911         * plugin.cpp (PluginInstance::PluginInstance): pass the pluginType
2912         instead of the boolean flag.  C apis should be thin wrappers
2913         around c++ methods.
2914         (PluginInstance::~PluginInstance): zombify the surface and then
2915         unref_delayed it, to allow everything to unwind before actually
2916         freeing that memory.
2917         (PluginInstance::Initialize): use "else" and remove all those damn
2918         "continue"s.
2919         (PluginInstance::TryLoad): use the cleanup pointer hack to check
2920         if we're still alive after the xaml_loader->TryLoad method.
2921         
2922         * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
2923         use cleanup pointers to make sure we don't try to free plugin
2924         objects that have been destroyed by virtue of the plugin going
2925         away while we were in JS.
2927         * plugin-glue.cpp: since we're only destroying surfaces from the
2928         idle loop, we need to delay the shutting down of the moonlight
2929         engine until all surfaces have been destroyed.  Also, take care
2930         not to do it from the DestroyEvent handler, as that is invoked
2931         *before* the object is destroyed (and destruction requires the
2932         engine to be initialized).
2934 2008-04-22  Michael Dominic K.  <mdk@mdk.am>
2936         * plugin-class.cpp: Throw js exception if Storyboard failed to start
2937         properly.
2939 2008-04-21  Jeffrey Stedfast  <fejj@novell.com>
2941         * mono.cpp (vm_init): Don't leak memory in the plugin case. Also
2942         use d() around debug printfs.
2944         * plugin.cpp: Wrap debug printfs with d()
2946 2008-04-20  Miguel de Icaza  <miguel@roxanne.site>
2948         * plugin.h: Add methods to flag Silverlight2, add field Xap that
2949         if not-NULL contains a pointer to the XAP file downloaded.
2951         * plugin-instance.c: If we are dealing with a Silverlight 2
2952         application, use Xap to unpack it.   Does not load the result yet. 
2954         * moonlight.h: Add support for SL2 mime type, clear up VERSION
2956         * plugin-glue.cpp: Tell PluginInstance whether this is an SL1 or
2957         SL2 activation.
2959 2008-04-16  Chris Toshok  <toshok@ximian.com>
2961         * plugin.cpp (PluginInstance::StreamAsFile): use "else if" here,
2962         otherwise the notifydata might be gone.
2964 2008-04-16  Jeffrey Stedfast  <fejj@novell.com>
2966         * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
2967         Just because enums_int_to_str() returns NULL does not mean that
2968         the value was invalid, it could also mean that the property is
2969         simply an Int32 type.
2971 2008-04-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2973         * plugin-class.cpp, plugin-class.h: Comparing a Kind value to another to
2974           determine type hierarchy isn't supported anymore, use Value::Is or
2975           Type::IsSubclassOf, which are doing the right thing.
2977 2008-04-15  Larry Ewing  <lewing@novell.com>
2979         * plugin.cpp (PluginXamlLoader::TryLoad): emit an error if the
2980         root visual type is incorrect.  Fixes one more of the ParserError
2981         tests until we can unfiy js exceptions and parser errors.
2983 2008-04-15  Larry Ewing  <lewing@novell.com>
2985         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
2986         based on RuntimeErrors and
2987         http://msdn2.microsoft.com/en-us/library/bb979718.aspx getParent
2988         only applies to uielement subclasses.
2990         Fixes test that was failing in RuntimeErrors.htm.
2992 2008-04-15  Larry Ewing  <lewing@novell.com>
2994         * plugin-class.cpp: throw an exception for invalid string values.
2996 2008-04-14  Jeffrey Stedfast  <fejj@novell.com>
2998         * plugin.cpp: Got rid of unnecessary uses of keyword 'this'.
2999         (PluginInstance::CreateWindow): Fixed setting of background color.
3001 2008-04-13  Jb Evain  <jbevain@novell.com>
3003         * moonlight.cs: use reflection to initialize the XamlLoader
3004         until we get moonlight.exe to be friend with Mono.Moonlight.
3005         Merged from the Moonlight 2 branch.
3007 2008-04-11  Larry Ewing  <lewing@novell.com>
3009         * plugin.h (class PluginInstance): make setBackground return a
3010         boolean success value.
3012         * plugin-class.cpp (MoonlightSettingsObject::SetProperty): check
3013         the return value of setBackground and throw an exception if it
3014         fails.
3016         * plugin.cpp (PluginInstance::CreateWindow): handle NULL return
3017         values from color_from_string.
3019         Handle the new case where color_from_string might return null.
3021 2008-04-11  Jeffrey Stedfast  <fejj@novell.com>
3023         * plugin-class.cpp (MoonlightTextBlockObject::Invoke):
3024         SetFontSource() now takes a Downloader argument rather than a DOB.
3026 2008-04-11  Andrew Jorgensen  <ajorgensen@novell.com>
3028         * plugin-proxy.cpp: Allow the user to override the location of
3029         libmoonplugin by setting MOON_PLUGIN_DIR so that the test harness
3030         can run without installing first.
3032 2008-04-11  Larry Ewing  <lewing@novell.com>
3034         * plugin.cpp (PluginXamlLoader::TryLoad): Allow controls to be
3035         toplevel elments, drop all surface contents on errors.
3037         Allows Kit 3d to start rendering something in the texture map
3038         case.
3040 2008-04-11  Michael Dominic K.  <mdk@mdk.am>
3042         * plugin-class.cpp: Small debug hint also here when enums invalid.
3044 2008-04-10  Chris Toshok  <toshok@ximian.com>
3046         * plugin-class.cpp (npvariant_is_dependency_object): no reason to
3047         duplicate the logic here - call npobject_is_dependency_object.
3049 2008-04-10  Jeffrey Stedfast  <fejj@novell.com>
3051         * plugin-class.cpp: Cast DOB's to Downloaders when passing to
3052         SetSource().
3054 2008-04-10  Chris Toshok  <toshok@ximian.com>
3056         * plugin-class.cpp, plugin-class.h: use the same "Invalidate
3057         NULL's things out, while the dtor checks for NULL before calling
3058         NPN_ReleaseObject" pattern with event listener proxies.
3060 2008-04-09  Chris Toshok  <toshok@ximian.com>
3062         * plugin.cpp, plugin.h: make PluginInstance::SetSource behave
3063         asynchronously for both #ref and normal url cases.  Fixes bug
3064         376966.
3066 2008-04-08  Jeffrey Stedfast  <fejj@novell.com>
3068         * plugin.cpp (PluginXamlLoader::TryLoad): Print a little more
3069         useful info on error.
3071 2008-04-04  Jeffrey Stedfast  <fejj@novell.com>
3073         * plugin-class.h (EventListenerProxy.dtor): Made virtual... not
3074         sure if this matters or not, but might as well be consistent.
3075         (MoonlightTimeSpan.dtor): Same.
3077 2008-04-04  Chris Toshok  <toshok@ximian.com>
3079         * plugin-class.cpp, plugin-class.h: change our use of
3080         NPType->invalidate.  Firefox docs say this is *only* called when
3081         the browser is shutting down the plugin instance.  So, we
3082         shouldn't access fields that point to other NPObjects here.  Just
3083         break links.  All freeing should be done in the dtor instead,
3084         which most of the various ::Dispose methods have been renamed to.
3085         Also, don't call Dispose in the MoonlightObject dtor.  Lastly,
3086         rename Dispose to Invalidate so we don't again mistake what it
3087         does.
3089 2008-04-03  Larry Ewing  <lewing@novell.com>
3091         (PluginXamlLoader::TryLoad): if the parser has an unknown error
3092         code try the managed loader.
3094 2008-04-03  Larry Ewing  <lewing@novell.com>
3096         * plugin.cpp (PluginXamlLoader::TryLoad): if we get a parser while
3097         loading set attach to a NULL toplevel.
3099 2008-04-02  Larry Ewing  <lewing@novell.com>
3101         * plugin-class.cpp: check number of arguments on getHost throw the
3102         appropriate exception if there are arguments.
3104 2008-04-02  Larry Ewing  <lewing@novell.com>
3106         * plugin-class.cpp: make sure the event name is valid when adding
3107         or removing, throw an exception if not.
3109 2008-04-02  Larry Ewing  <lewing@novell.com>
3111         * plugin-class.cpp: start making the exceptions match the ms
3112         exceptions.  Work around the id string until more is known about
3113         how we should deal with it.
3115 2008-04-02  Jeffrey Stedfast  <fejj@novell.com>
3117         Fixes bug #375277 and maybe other crashers.
3119         * plugin-class.h (MoonlightScriptControlObject::.ctor): Initialize
3120         settings->control and content->control to 'this'.
3121         (MoonlightSettingsObject): Now has a pointer to its owning
3122         MoonlightScriptControlObject so we can protect against Firefox's
3123         aggressive destruction of still-referenced objects when you
3124         navigate away from a Moonlight page and/or close the browser when
3125         a scriptable object is still referenced. Yay Firefox!
3126         (MoonlightContentObject): Same.
3128         * plugin-class.cpp (MoonlightScriptControlObject::Dispose): Set
3129         settings->control to NULL before unreffing the settings
3130         NPObject. Same with content->control.
3131         (MoonlightContentObject::Dispose): If we have a pointer to our
3132         parent control, set control->content to NULL here.
3133         (MoonlightSettingsObject::Dispose): Same as
3134         MoonlightContentObject::Dispose().
3135         (MoonlightEventObjectObject::SetEventObject): Removed, just to be
3136         sure we never reuse these objects.
3137         (EventObjectCreateWrapper): Implement the equivalent of
3138         SetEventObject() here instead, since this is the only place that
3139         should EVER be calling it. Also makes it a lot simpler.
3141 2008-04-02  Larry Ewing  <lewing@novell.com>
3143         * plugin-class.cpp: charposition not charnumber.
3145 2008-04-01  Chris Toshok  <toshok@ximian.com>
3147         * plugin-class.cpp (MoonlightContentObject::Invoke): back out my
3148         SetSurface() stuff from here.
3150 2008-04-01  Jeffrey Stedfast  <fejj@novell.com>
3152         * plugin-class.cpp: Implemented better type-checking. Fixes the
3153         crash mentioned in bug #375921.
3155 2008-04-01  Chris Toshok  <toshok@ximian.com>
3157         * plugin-class.cpp (MoonlightContentObject::Invoke): in
3158         createFromXaml/createFromXamlDownloader, call dep->SetSurface()
3159         after we parse to make sure the thing knows what surface it
3160         belongs to.
3162 2008-04-01  Jeffrey Stedfast  <fejj@novell.com>
3164         * plugin-class.cpp (MoonlightContentObject::Invoke): Properly
3165         nul-terminate the text value.
3166         (MoonlightDownloaderObject::Invoke): Properly nul-terminate the
3167         text value returned here too.
3169 2008-04-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3171         * plugin-class.cpp: Remove Type::NPOBJ, it's not needed.
3173 2008-03-31  Jeffrey Stedfast  <fejj@novell.com>
3175         * plugin-class.cpp (moonlight_downloader_mapping): Got rid of
3176         second ResponseText item.
3177         (MoonlightDownloaderObject::GetProperty): nul-terminate the value
3178         gotten from downloader->GetResponseText() as javascript will use
3179         this string expecting that it is nul-terminated.
3181 2008-04-01  Fernando Herrera  <fherrera@novell.com>
3183         * browser-mmsh.cpp:
3184         * plugin-downloader.h: Support for live streams (not seekable).
3186 2008-03-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3188         * browser-mmsh.cpp: asf_header_parse: Use ASFParser::GetPacketSize instead
3189           of looking in internal fields. Delete parser and unref the source when
3190           done with it.
3192 2008-03-28  Fernando Herrera  <fherrera@novell.com>
3194         * browser-mmsh.cpp:
3195         * browser-mmsh.h:
3196         * plugin-downloader.cpp:
3197         * plugin-downloader.h: Implement server seeking on the mms://
3198         downloader.
3200 2008-03-26  Andrew Jorgensen  <ajorgensen@novell.com>
3202         * mono.cpp: Get correct path for moonlight.exe as well when
3203         enable-user-plugin=yes
3205 2008-03-26  Chris Toshok  <toshok@ximian.com>
3207         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
3208         implement removeEventListener for named callbacks using the new
3209         EventObject::RemoveMatchingHandlers method, and a helper
3210         class (NamedProxyPredicate).
3212         * plugin-class.h: we need to make
3213         EventListenerProxy::proxy_listener_to_javascript public so
3214         NamedProxyPredicate can access it.
3215         
3216 2008-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3218         * browser-mmsh.cpp: Updated according to API changes.
3220 2008-03-25  Andrew Jorgensen  <ajorgensen@novell.com>
3222         * plugin-proxy.cpp: Load libraries relative to the location of
3223         libmoonloader.so if enable-user-plugin=yes
3224         * install.rdf.in: Basic install.rdf for plugin installation
3225         * Makefile.am: Create directory structure for RDF install method
3226         rather than XPInstall JS method
3228 2008-03-20  Jeffrey Stedfast  <fejj@novell.com>
3230         * plugin-class.cpp (MoonlightContentObject::Invoke): Same.
3232         * plugin-downloader.cpp (p_downloader_mmsh_finished): Updated for
3233         Downloader API changes.
3235 2008-03-18  Andrew Jorgensen  <ajorgensen@novell.com>
3237         * plugin-proxy.cpp: Push conditional swscale into user plugin code
3238         and remove avformat dependency
3239         * Makefile.am: Conditionally include swscale and don't include avformat
3240         in user plugin installer
3242 2008-03-17  Larry Ewing  <lewing@novell.com>
3244         * plugin-class.cpp: more rough argument sanity checks.
3246 2008-03-17  Larry Ewing  <lewing@novell.com>
3248         * plugin.cpp (PluginXamlLoader::TryLoad): add a quick check to
3249         avoid a crash.  Better error handling on the way.
3251         * plugin-class.cpp (MoonlightCollectionObject::Invoke): do some
3252         very basic argument type checking.
3254 2008-03-16  Larry Ewing  <lewing@novell.com>
3256         * plugin-class.cpp: make objects chain up to their parent class
3257         rather than simply returning false directly to make the logic
3258         clearer and to allow toplevel handling of tostring.
3260 2008-03-14  Larry Ewing  <lewing@novell.com>
3262         * plugin-class.h, plugin-class.cpp: wrap all EventArg subclasses
3263         as dependencyobjects.
3265         * plugin.cpp: connect to the plugin onerror event.
3267 2008-03-14  Chris Toshok  <toshok@ximian.com>
3269         * plugin-class.h, plugin-class.cpp: wrapped TimeSpan and Duration
3270         objects aren't actually values.  they're references to the
3271         particular DependencyObject/Property we got them from, so doing
3272         something like:
3274         var foo = storyboard.Duration;  foo.seconds=5;
3276         updates the original storyboard's Duration property, not just the
3277         duration contained in the "foo" variable.
3279 2008-03-13  Chris Toshok  <toshok@ximian.com>
3281         * plugin-class.cpp, plugin-class.h: fix up our toString support.
3283 Thu Mar 13 23:13:59 CET 2008 Paolo Molaro <lupus@ximian.com>
3285         * Makefile.am: don't overwrite binary files when installing the
3286         plugin (avoids crashes in the running browser).
3288 2008-03-13  Chris Toshok  <toshok@ximian.com>
3290         * plugin-entry.cpp: fix backward compatibility of the plugin api.
3291         also, use the NPVERS_ defines for feature tests instead of our own
3292         set.  Also, add NPN_Enumerate.
3294 2008-03-13  Andrew Jorgensen  <ajorgensen@novell.com>
3296         * install.js.in: Change the install path so that the plugin
3297         should work in debian (iceweasel)
3299 2008-03-13  Chris Toshok  <toshok@ximian.com>
3301         * moz-sdk/*: import the trunk firefox plugin headers.
3302         
3303         * plugin.cpp (PluginInstance::Initialize): fix the hack I needed
3304         due to xulrunner-1.8.10 headers not having NPNVSupportsWindowless.
3306         * plugin-class.h, plugin-class.cpp (MoonlightObjectType): add
3307         Enumerate, which just iterates over the mapping filling in the
3308         array to return.
3310         * Makefile.am: add dist-hook to copy the moz-sdk headers.
3312         * mono.cpp (vm_init): missed this STACK_DEBUG -> DEBUG change.
3314 2008-03-12  Sebastien Pouliot  <sebastien@ximian.com>
3316         * plugin-downloader.cpp: Fix duplicate g_strdup on pd->uri. 
3318 2008-03-12  Michael Dominic K.  <mdk@mdk.am>
3320         * plugin-downloader.cpp: Adding an extra NULL check. Fixes the
3321         flowers-for-you.com.my website.
3323 2008-03-12  Miguel de Icaza  <miguel@novell.com>
3325         * browser-mmsh.cpp (AsyncBrowserMmshResponse::MmsMetadataParse):
3326         Rewrote this routine to have a regular parser instead of splitting
3327         strings with g_strsplit, copes with commas inside metadata.
3329         Fernando mentioned that most of this code is no longer useful,
3330         except for a few flags.  
3332 2008-03-11  Fernando Herrera  <fherrera@novell.com>
3334         * browser-mmsh.cpp:
3335         * browser-mmsh.h:
3336         * plugin-downloader.cpp: Parse MMS Metadata packet. Get file size and
3337         asf_packet_size from the ASF header.
3339 2008-03-10  Michael Dominic K.  <mdk@mdk.am>
3341         * plugin-class.cpp: Don't scream about the unsupported type when
3342         setting a property to NULL. Instead, pass NULL and let the
3343         SetValue do it's thing (ie. nullable handling). This fixes the 
3344         Animation_CornerCases.htm.
3346 2008-03-08  Geoff Norton  <gnorton@novell.com>
3348         * plugin.cpp:  I suppose I'm one of these for real now.
3350 2008-03-08  Fernando Herrera  <fherrera@novell.com>
3352         * browser-mmsh.cpp:
3353         * browser-mmsh.h:
3354         * plugin-downloader.cpp: Stop properly the mms download.
3356 2008-03-06  Chris Toshok  <toshok@ximian.com>
3358         * plugin.cpp (PluginInstance::Initialize): make sure we look for
3359         the right framerate property name.  the JS is specified using
3360         "framerate", but the plugin has to recognize "maxFramerate"
3361         instead.
3362         (PluginInstance::CreateWindow): use the surface's timemanager.
3363         (PluginInstance::setMaxFrameRate): same.
3365 2008-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3367         * plugin-class.cpp, plugin-class.h: Make our Moonlight*EventArgs mirror the
3368           runtime *EventArgs Updated runtime event handling to receive an
3369           EventArgs* calldata instead of a gpointer. This allows us to create the
3370           correct Moonlight*EventArgs based on the actual type of the runtime
3371           *EventArgs, instead of making a decision based on the event name,
3372           obsoleting all the *_event_wrapper functions.
3373         * plugin-glue.cpp: Set the pdata field of the instance to NULL before
3374           deleting the plugin, this allows us to detect plugin usage during plugin
3375           destruction (we might cause destruction of EventObjects -> events are
3376           raised -> plugin tries to send those events to js -> crash)
3378 2008-03-05  Michael Dominic K.  <mdk@mdk.am>
3380         * plugin-class.cpp: Making the plugin class use the new enum<->str code
3381         for enum getters.
3383 2008-03-03  Chris Toshok  <toshok@ximian.com>
3385         * plugin.cpp (PluginInstance::EventHandle): add
3386         KeyPress/KeyRelease handling.  there are some XXX's involing the
3387         call to gdk_keymap_translate_keyboard_state, but I have no test
3388         case at present to test this stuff against.  Use at your own risk.
3390 2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3392         * plugin-downloader.cpp: Don't call dl->NotifySize with the partial size of
3393           the file, should only be called with the final size of the file.
3395 2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3397         * plugin.mdp: Updated.
3399 2008-02-28  Jeffrey Stedfast  <fejj@novell.com>
3401         * browser-mmsh.cpp (AsyncBrowserMmshResponse::OnDataAvailable):
3402         'size' needs to be a uint32 so that the comparison is between 2
3403         uint32's rather than a uint32 and an int32.
3405         * browser-mmsh.h (class AsyncBrowserMmshResponse): Fixed a
3406         compiler warning.
3408 2008-02-28  Michael Dominic K.  <mdk@mdk.am>
3410         * plugin/plugin-class.cpp: When getting property value try to resolve it
3411         to string if it's an enum. This way from js we ie. get:
3413         Arc.SweepDirection == "Counterclockwise" 
3415         instead of:
3417         Arc.SweepDirection == 0 (enum int value).
3419         Fixes finally the OM_RemoveClearRemoveAt.htm test (with other collection
3420         fixes) and #353960.
3422 2008-02-28  Fernando Herrera  <fherrera@novell.com>
3424         * Makefile.am:
3425         * browser-mmsh.cpp:
3426         * browser-mmsh.h:
3427         * plugin-downloader.cpp:
3428         * plugin-downloader.h: Add initial mms over http support.
3430 2008-02-26  Chris Toshok  <toshok@ximian.com>
3432         * plugin.cpp (PluginInstance::EventHandle): fix some x64 build
3433         issues.
3434         (PluginInstance::InvalidateSurface): same.
3436 2008-02-26  Chris Toshok  <toshok@ximian.com>
3438         * plugin-proxy.cpp: use RTLD_LAZY, not RTLD_NOW.
3440         * moonlight.h: more #include hackery to get the right members to
3441         be there for NPSetWindowCallbackStruct on X.
3443         * plugin.h (class PluginInstance): add our
3444         RenderSurface/InvalidateSurface methods.
3446         * plugin.cpp (PluginInstance::Initialize): initialize the
3447         windowless stuff if we need it and the browser supports it.
3448         (PluginInstance::RenderSurface): our render method - call
3449         NPN_ForceRedraw.
3450         (PluginInstance::InvalidateSurface): our invalidate method - call
3451         NPN_InvalidateRect.
3452         (PluginInstance::CreateWindow): set our invalidate/render funcs
3453         accordingly, and SetTrans on the surface (err, why?) if we're
3454         windowless, and only do the widget stuff if we aren't windowless.
3455         (PluginInstance::EventHandle): kind of gross, but fill in enough
3456         of the gdk events to fool the surface machinery.  Currently
3457         missing are all key events, GdkDevice support for mouse events,
3458         and Expose event aggregation.
3460 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3462         * plugin/plugin-class.cpp: Throw js exception when object passed to
3463         Collection.Remove is NULL (instead of returning false). Fixes mostly
3464         OM_RemoveClearRemoveAt but still fails because of ArcSweep problem.
3466 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3468         * plugin/plugin-class.cpp: Throw js exception when Collection.Insert
3469         returns -1.
3471 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3473         * plugin/plugin-class.cpp: Throw js exception when Collection.Add returns
3474         -1.
3476 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3478         * plugin/plugin-class.cpp: Properly return int instead of void for
3479         Colleciton.Add.
3481 2008-02-25  Chris Toshok  <toshok@ximian.com>
3483         * plugin.cpp (PluginInstance::CreateWindow): use GetWidget instead
3484         of GetDrawingArea.
3486 2008-02-25  Chris Toshok  <toshok@ximian.com>
3488         * plugin.cpp: add windowless creation stuff.  move some code
3489         around, and put some in (!windowless) blocks.
3491         * plugin-entry.cpp (NP_Initialize): set handleEvent.
3493         * plugin-glue.cpp (NPP_GetValue): don't handle NeedsXEmbed here -
3494         let PluginInstance::GetValue do it.
3496 2008-02-22  Jackson Harper  <jackson@ximian.com>
3498         * plugin-debug.cpp: mkdir and friends needs sys/stat.h on some
3499         systems.
3501 2008-02-22  Michael Dominic K.  <mdk@mdk.am>
3503         * plugin/plugin.cpp:
3504         * plugin/plugin.h: Add support for the cache-size reporting interface. The
3505         UI now reports cache size when running with
3506         MOONLIGHT_OVERRIDES="cache=show".
3508 2008-02-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3510         * plugin-class.cpp: Add a null check.
3511         * plugin-debug.cpp: Add a Save button to the Sources list, which will save
3512           every source file to a directory in /tmp.
3514 2008-02-21  Michael Dominic K.  <mdk@mdk.am>
3516         * plugin/plugin.cpp: Small fix for table ("Properties") formatting so that
3517         it doesn't expand like crazy because of long URL's in sources.
3519 2008-02-20  Jeffrey Stedfast  <fejj@novell.com>
3521         * plugin-class.cpp (MoonlightTextBlockObject::Invoke): The
3522         downloader argument is allowed to be null.
3524 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3526         * plugin.cpp, plugin.h, plugin-debug.cpp, plugin-debug.h: Add a 'Sources'
3527           entry to the plugin context menu, shows a list of all the files the
3528           plugin has loaded, with the ability to open the files.
3530 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3532         * plugin.mdp: Updated.
3534 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3536         * plugin-class.cpp: Fix IsVersionSupported according to tests.  
3538 2008-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3540         * plugin.cpp, plugin-class.cpp, plugin.h: Add MaxFrameRate to the properties
3541           page, and parse windowless and framerate properties during
3542           initialization and store the values on the plugin instance, so that the
3543           property page can show the correct values.
3545 2008-02-15  Chris Toshok  <toshok@ximian.com>
3547         * plugin-class.cpp (MoonlightStoryboardObject::Invoke): the seek
3548         method can take either an integer or a string representing a
3549         timespan.  Fixes the JS errors I mentioned in bug #362380.
3551 2008-02-06  Jackson Harper  <jackson@ximian.com>
3553         * plugin-class.cpp|h: Store all MoonlightDependencyObject classes
3554         in an array so that we can easily check if a type passed in from
3555         JS is actually a DO.
3556         - Add one check to verify that an object is a DO, I am sure we
3557         will need many more.
3559 2008-02-06  Fernando Herrera  <fherrera@novell.com>
3561         * plugin-debug.cpp: set default size and scroll bars policy in the
3562         debug window.
3564 2008-02-05  Chris Toshok  <toshok@ximian.com>
3566         * plugin.h, plugin.cpp: add a label to the properties dialog that
3567         shows the fps message.
3569         * plugin-debug.cpp (selection_changed): invalidate a large enough
3570         rectangle so that the selection disappears.
3572 2008-02-05  Chris Toshok  <toshok@ximian.com>
3574         * Makefile.am (libmoonplugin_la_SOURCES): add plugin-debug.h/cpp
3576         * plugin-debug.h, plugin.cpp: for now, just a gtk treeview with a
3577         snapshot of the xaml hierarchy.  selecting an item in the tree
3578         puts a rectangle around the element in the plugin.
3580         * plugin.cpp (plugin_show_menu): if debug is enabled, add the
3581         debug menu item.
3583 2008-02-05  Chris Toshok  <toshok@ximian.com>
3585         * moonlight.h: don't #define DEBUG here.  it's a config.h deal.
3587 2008-02-04  Jackson Harper  <jackson@ximian.com>
3589         * plugin-class.cpp: Fix some of the parameter checking to match
3590         Silverlight.
3592 2008-01-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3594         * plugin-class.cpp, plugin-class.h: Implement toString method on
3595           MarkerReachedEventArgsObject.
3597 2008-01-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3599         * plugin-class.cpp: Handle the case where js sets Timespan seconds using an
3600           int value.
3602 2008-01-28  Andrew Jorgensen  <ajorgensen@novell.com>
3604         * Makefile.am: added plugin-downloader.h to dist
3606 2008-01-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3608         * downloader.cpp, plugin-downloader.cpp, plugin-downloader.h: Renamed
3609           downloader.cpp to plugin-downloader.cpp and added a header file for it.
3610           Set downloader_shutdown to false upon initialization, makes aborting
3611           actually work. Save the PluginDownloader in the stream, so that we can
3612           inform the PluginDownloader when the stream is destroyed.
3613         * plugin.mdp, Makefile.am: Updated.
3614         * plugin.cpp: Include plugin-downloader.h and remove unnecessary method
3615           declarations. Inform the PluginDownloader when a stream is destroyed.
3616         * plugin-glue.cpp: Include plugin-downloader.h and remove unnecessary method
3617           declarations. 
3619 2008-01-23  Chris Toshok  <toshok@ximian.com>
3621         * plugin-class.cpp (EventListenerProxy::AddHandler): use the event
3622         id instead of the name for the destroyed event, and also don't try
3623         to add an event that doesn't exist for a given type.
3625 2008-10-11  Andrew Jorgensen  <ajorgensen@novell.com>
3627         * plugin-proxy.cpp: Add conditionals for ffmpeg inclusion
3628         * Makefile.am: Respect ffmpeg inclusion in xpi install
3630 2008-01-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3632         * plugin.mdp: Added.
3634 2008-01-09  Chris Toshok  <toshok@ximian.com>
3636         * plugin-class.h, plugin-class.cpp: add two new wrapper types -
3637         one for StrokeCollection and the other for Stroke, so that both of
3638         them can implement their GetBounds and HitTest methods.
3639         
3640 2008-01-09  Chris Toshok  <toshok@ximian.com>
3642         * plugin-class.h, plugin-class.cpp: a few changes with the
3643         MoonlightMouseEventArgsObject.  It now wraps a MouseEventArgs*.
3644         Translate all the property accesses and method calls into
3645         accesses/calls on the actual MouseEventArgs, instead of having the
3646         code live here.  Also, add STYLUSINFO handling to the
3647         EventObjectWrapper method.
3649 2008-01-09  Jeffrey Stedfast  <fejj@novell.com>
3651         * plugin.cpp (Initialize): Use g_ascii_strcasecmp() so that we are
3652         not locale dependent.
3654 2008-01-04  Jeffrey Stedfast  <fejj@novell.com>
3656         Fix for bug #348772
3658         * plugin-class.cpp (EventListenerProxy::AddHandler): Add a handler
3659         for the destroyed event too so that we can clear our target_object
3660         pointer.
3661         (EventListenerProxy::on_target_object_destroyed): New callback to
3662         clear the target_object pointer when it gets destroyed.
3663         (EventListenerProxy::get_wrapper_for_event_name): Use
3664         g_ascii_strcasecmp() instead of g_strcasecmp().
3665         (EventListenerProxy::~EventProxyListener): Disconnect from the
3666         destroyed event and the other event if still hooked up.
3668 2008-01-03  Jeffrey Stedfast  <fejj@novell.com>
3670         * plugin-class.cpp (_set_dependency_property_value): For
3671         non-object variants, we can easily get away with using a static
3672         string buffer rather than using dynamically allocated strings to
3673         hold our temp values.
3675 2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3677         * plugin.cpp: PluginInstance::SetSource: don't check if we're setting the
3678           same source. Fixes #349592.
3680 2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3682         * plugin-class.cpp: Don't crash if surface->GetTopLevel returns null. Fixes
3683           #349816.
3685 2007-12-20  Sebastien Pouliot  <sebastien@ximian.com>
3687         * plugin-class.cpp|h: Add support for StylusPointCollection since 
3688         it's a special case where a new method, AddStylusPoints, is 
3689         introduced. Fix unit tests for StylusPointCollection but doesn't
3690         solve bugs #349596 and 349598 because we don't capture the mouse
3691         points.
3693 2007-12-20  Jb Evain  <jbevain@novell.com>
3695         * plugin-class.cpp (MoonId_GetStylusPoints): return an
3696         empty StylusPointCollection instead of doing non-sense.
3698 2007-12-20  Jb Evain  <jbevain@novell.com>
3700         * plugin-class.cpp: throw if createObject is called
3701         for something else than Downloader.
3703 2007-12-18  Sebastien Pouliot  <sebastien@ximian.com>
3705         * plugin-class.cpp: The plugin handle Color as an integer (see js 
3706         unit tests).
3708 2007-12-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3710         * plugin-class.cpp: The part parameter of MediaElement::SetSource is the
3711           second parameter, fixes a crash when js calls SetSource. Also removed
3712           some warnings.
3714 2007-12-17  Jb Evain  <jbevain@novell.com>
3716         * plugin-class.cpp: return null instead of undefined
3717         on GetValue is the value is NULL. Fixes a lot of tests
3718         for default values.
3720 2007-12-14  Jeffrey Stedfast  <fejj@novell.com>
3722         * plugin.cpp (PluginInstance::CreateWindow): Set the FPS report
3723         callback.
3724         (PluginInstance::Properties): Added FPS enable/disable properties.
3725         (PluginInstance::ReportFPS): Report the FPS via the browser's
3726         status widget.
3728 2007-12-14  Jeffrey Stedfast  <fejj@novell.com>
3730         * downloader.cpp (p_downloader_abort): Set pd->stream to NULL
3731         after destroying it.
3733         * plugin.cpp (PluginInstance::TryLoad): Added a comment that we
3734         should check for errors returned by NPN_GetURLNotify().
3735         (PluginInstance::UpdateSource): Same.
3736         (PluginInstance::UrlNotify): Removed a printf.
3738 2007-12-12  Jeffrey Stedfast  <fejj@novell.com>
3740         Fixes toward bug #341853
3742         * downloader.cpp (p_downloader_send): Check the return code from
3743         NPN_GetURLNotify() as it will give us an error if the file doesn't
3744         exist.
3746         * plugin.cpp (UrlNotify): Call Downloader::NotifyFailed() on
3747         error.
3749 2007-12-10  Chris Toshok  <toshok@ximian.com>
3751         * plugin-class.h, plugin-class.cpp: more event changes.  return
3752         the integer token for adding a handler, and change
3753         removeEventListener to accept either a string (unsupported at the
3754         moment) or integer second argument.  This allows things like
3755         removeEventListener (..., 0) for removing the event handler that's
3756         registered in xaml.
3758         Also, remove MoonlightEventListener{Type,Object} since we don't
3759         need to return a wrapped object from addEventListener any longer.
3761 2007-12-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3763         * plugin-class.cpp: Plug more leaks.
3765 2007-12-06  Jeffrey Stedfast  <fejj@novell.com>
3767         * plugin-class.cpp (MoonlightCollectionObject::Invoke):
3768         Implemented GetItemByName for MediaAttributeCollections.
3770 2007-12-06  Chris Toshok  <toshok@ximian.com>
3772         * plugin-class.h, plugin-class.cpp: a few changes.  abstract out
3773         all the event-as-property code, so we just add events to objects
3774         as additional properties in their mapping, and the MoonlightObject
3775         code handles it all for us.
3777 2007-12-05  Chris Toshok  <toshok@ximian.com>
3779         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
3780         implement Equals.
3782 2007-12-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3784         * plugin-class.cpp: Rename DependencyObject::parent/SetParent/GetParent
3785         
3786             to logical_parent/SetLogicalParent/GetLogicalParent.
3788 2007-12-04  Jb Evain  <jbevain@novell.com>
3790         * plugin-class.h: add the definitions of MoonlightStylusInfoType
3791         and MoonlightStylusInfoObject.
3793         * plugin-class.cpp: implement MoonlightStylusInfoType and
3794         MoonlightStylusInfoObject. Add getStylusInfo() and getStylusPoints()
3795         methods on MouseEventArgs.
3797 2007-12-04  Jackson Harper  <jackson@ximian.com>
3799         * plugin-class.cpp: Map in IsLoaded, so HasProperty will return
3800         true for it.
3802 2007-12-03  Jeffrey Stedfast  <fejj@novell.com>
3804         * plugin.cpp (Properties): Added more runtime debug options.
3806 2007-11-29  Jeffrey Stedfast  <fejj@novell.com>
3808         * plugin.cpp (PluginInstance::Properties): Added runtime ability
3809         to enable show-expose regions.
3811 2007-11-20  Jb Evain  <jbevain@novell.com>
3813         * plugin-class.cpp: rename INVOKE_EXCEPTION to
3814         THROW_JS_EXCEPTION. Throw more exceptions where needed.
3816 2007-11-20  Jb Evain  <jbevain@novell.com>
3818         * plugin-class.cpp: throw JS exceptions where SL does.
3820 2007-11-20  Jb Evain  <jbevain@novell.com>
3822         * plugin-class.cpp( MoonlightContentObject::Invoke):
3823                 return null instead of undefined, like SL 1.0 does.
3825 2007-11-20  Jb Evain  <jbevain@novell.com>
3827         * plugin-class.h (html_get_element_text): add a function
3828         to get the `innerText` of an html element from its id.
3829         * plugin-class.cpp (html_get_element_text): implement it.
3830         * plugin.cpp (PluginInstance::UpdateSourceByReference):
3831         use html_get_element_text to get the inline xaml.
3832         Fixes #342349.
3834 2007-11-16  Chris Toshok  <toshok@ximian.com>
3836         * plugin-class.cpp, plugin-class.h: switch
3837         hasProperty,getProperty,setProperty,hasMethod,invoke to object
3838         methods instead of vtable entries on the type.  Also, put the
3839         name->id mapping in MoonlightObject's vtable entries, before the
3840         call to the virtual object methods (so now we only do name lookups
3841         there instead of all over the place) Also, aggregate mappings for
3842         all classes up to the root in the hierarchy when we initialize the
3843         type.  This means only 1 bsearch per LookupName, instead of 1 per
3844         mapping.
3845         
3846 2007-11-15  Jeffrey Stedfast  <fejj@novell.com>
3848         * plugin-class.cpp: Alphabetize all of the mapping tables so that
3849         bsearch works properly.
3851 2007-11-14  Chris Toshok  <toshok@ximian.com>
3853         * plugin-class.h, plugin-class.cpp: substantially rework the way
3854         names are looked up.  remove 90% of the has_method/has_property
3855         code, and move all the invoke/get_property/set_property to using
3856         id's for their work instead of string comparisons.  also make the
3857         string lookups case insensitive.  I don't much like the way
3858         chaining is done (check out MoonlightObjectType::SetBase and
3859         MoonlightObjectType::LookupName), but it's working for now, and
3860         should be substantially faster (and easier to maintain) this way
3861         than the naive conversion to case insensitivity.
3863 2007-11-14  Jeffrey Stedfast  <fejj@novell.com>
3865         Fixes for the Matrix demo.
3867         * plugin-class.cpp (EventListenerProxy): Don't leak the NPObject.
3868         (proxy_listener_to_javascript): Updated printf debugging.
3869         (moonlight_content_invoke): Use the second argument
3870         (create_namescope) and pass that along to xaml_create_from_str().
3872 2007-11-14  Andrew Jorgensen  <ajorgensen@novell.com>
3874         * Makefile.am: strip the ffmpeg libs for the user plugin but do not
3875         strip libmoon and libmono, will either add an option to strip those libs
3876         later or just make that part of the release process.
3877         * install.js.in: Cleaned up error handling and added a call to
3878         refreshPlugins(), should make it so nobody has to restart firefox
3880 2007-11-13  Andrew Jorgensen  <ajorgensen@novell.com>
3882         * Makefile.am: Use the mono_ddldir rather than assuming /usr/lib and
3883         pick up any dlls in the gac that are for the 2.1 profile so that we
3884         don't miss any that should have been symlinked in /usr/lib/mono/2.1 but
3885         for some reason were not.
3887 2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>
3889         * Makefile.am: Add moon.config to EXTRA_DIST
3891 2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>
3893         * install.js.in: Just add moonlight directory, not individual files.
3894         * mono.cpp: Get moonlight.exe from home dir plugin path.
3895         * plugin-proxy.cpp: dlopen libmono and set it's dirs.
3896         * Makefile.am: Build out the full directory structure for the user
3897         plugin and zip that.
3898         * moon.config: Installed as $sysconfdir/mono/config to tell mono to
3899         use the already dlopened libmoon.so.
3901 2007-11-09  Sebastien Pouliot  <sebastien@ximian.com>
3903         * plugin.cpp: Fix Moonlight URL (#339929) since it didn't work.
3905 2007-11-09  Jb Evain  <jbevain@novell.com>
3907         * browser-http.cpp|h: make browser_http_request_get_async_response
3908         return a boolean.
3911 2007-11-08  Miguel de Icaza  <miguel@novell.com>
3913         * plugin.cpp (PluginInstance::Properties): Spice this bad boy up.
3914         We now can get some info about a XAML surface.
3916 2007-11-08  Jeffrey Stedfast  <fejj@novell.com>
3918         * plugin.cpp (plugin_instance_get_surface): New function needed by
3919         BrowserHost class.
3920         (TryLoad): Removed an unnecessary g_assert() (the code handles the
3921         error case properly).
3923 2007-11-07  Jb Evain  <jbevain@novell.com>
3925         * browser-http.cpp|h: implement a GetStatus method for
3926         BrowserHttpResponse.
3928 2007-11-06  Miguel de Icaza  <miguel@novell.com>
3930         * plugin.cpp (string_to_js): rename from escape_quotes, this helps
3931         because some error messages being thrown from managed code contain
3932         newlines (Sudoku, see #325336).
3934 2007-11-05  Chris Toshok  <toshok@ximian.com>
3936         * plugin-class.cpp (moonlight_content_invoke): don't crash if the
3937         surface hasn't been attached (if we haven't finished loading the
3938         xaml yet).
3940 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3942         * plugin.cpp: Replace PLUGIN_OURVERSION with VERSION (from config.h)
3943         * moonlight.h: Put the version in the description string for the sake
3944         of our QA folks
3946 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3948         * install.js.in: Get the version and the target CPU from configure and
3949         do some error checking, including checking that the platform matches
3951 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3953         * Makefile.am: Apparently $(builddir) is a newer autotools feature not
3954         available on SuSE 10.1 so we'll just not use it.
3956 2007-11-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3958         * downloader.cpp: Don't keep a ref to the Downloader, it causes a circular
3959           reference.
3961 2007-10-31  Andrew Jorgensen  <ajorgensen@novell.com>
3963         * Makefile.am: Don't link in cairo, pixman, or anything else that we
3964         don't need to libmoonplugin
3966 2007-10-29  Andrew Jorgensen  <ajorgensen@novell.com>
3968         * install.js, plugin-proxy.cpp, Makefile.am: Changes to include ffmpeg
3969         libs in the XPI package
3971 2007-10-27  Jackson Harper  <jackson@ximian.com>
3973         * plugin-class.cpp: Make onError work.
3975 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3977         * plugin-class.cpp, plugin-class.h: Implement emission of MarkerReached
3978           events.
3980 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3982         * mono.cpp: Enable vm stacktraces after mono has been loaded.
3984 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3986         * downloader.cpp: Ref/unref the downloader.
3988 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3990         * plugin-class.h: NULL-initialize a variable, fixing a crash.
3992 2007-10-25  Jackson Harper  <jackson@ximian.com>
3994         * plugin-class.h:
3995         * plugin-class.cpp: Add the onError event to the content object.
3997 2007-10-25  Jackson Harper  <jackson@ximian.com>
3999         * plugin-class.cpp: Fix function name.
4001 2007-10-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4003         * plugin-class.cpp: Unref the event object even though the plugin is
4004           deleted.
4006 2007-10-24  Jb Evain  <jbevain@novell.com>
4008         * browser-http.cpp|h: work on asynchronous requests.
4010 2007-10-23  Andrew Jorgensen  <ajorgensen@novell.com>
4012         * install.js: Install the libraries under ~/.mozilla/plugins/moonlight
4013         so that they are not loaded by mozilla
4014         * moonlight.h: Don't define PLUGIN_INSTALL unless it is not defined
4015         * plugin-proxy.cpp: dlopen libmoon.so from the user's
4016         plugins/moonlight directory if we are building the user plugin
4017         * Makefile.am: Use the PLUGIN_INSTALL flag to control building of the
4018         XPI or not
4020 2007-10-23  Jb Evain  <jbevain@novell.com>
4022         * browser-http.cpp|h: Add support for Abort and SetBody.
4024 2007-10-22  Jb Evain  <jbevain@novell.com>
4026         * browser-http.cpp: add browser_http_response_destroy and
4027         browser_http_sync_response_read.
4029 2007-10-22  Jb Evain  <jbevain@novell.com>
4031         * browser-http.cpp|h (SyncBrowserHttpRequest::Read):
4032         do read the entire input stream even if it's a buffered
4033         input stream.
4035 2007-10-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4037         * plugin-class.cpp: If we're leaking NPObjects make sure we don't crash in
4038           invalidate, since FF will call invalidate long after shutting down
4039           moonlight.
4041 2007-10-21  Jb Evain  <jbevain@novell.com>
4043         * browser-http.cpp|h: add the files where the unmanaged
4044         implementation of BrowserHttpRequest will live.
4046         * Makefile.am: add them to the build.
4048 2007-10-18  Chris Toshok  <toshok@ximian.com>
4050         * plugin-class.cpp (moonlight_dependency_object_invoke): make the
4051         debug "printf" method its own method, instead of a hack on
4052         setValue.
4053         (MoonlightEventObjectObject::Dispose): remove the wrapped object
4054         from the cache.
4055         (MoonlightEventObjectObject::SetEventObject): update the cache.
4056         (EventObjectCreateWrapper): check the cache before creating a new
4057         js wrapper object.
4059         * debug.js: convert from
4060                 printf_proxy.setValue ("printf", message);
4061         to
4062                 printf_proxy.printf (message);
4064         * plugin.cpp, plugin.h: add {Add,Remove,Lookup}WrappedObject
4065         methods to cache the JS objects we use for a given EventObject*.
4067 2007-10-17  Chris Toshok  <toshok@ximian.com>
4069         * plugin.cpp (PluginXamlLoader::TryLoad): use ->Attach instead of
4070         surface_attach, and add a comment about element->unref().
4072 2007-10-16  Jb Evain  <jbevain@novell.com>
4074         * plugin.cpp: add plugin_instance_get_browser_runtime_settings.
4076 2007-10-16  Jb Evain  <jbevain@novell.com>
4078         * moonlight.cs: Keep track of all plugin unload callbacks.
4079         Don't use Hashtable and refactor some code.
4081 2007-10-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4083         * plugin.cpp, plugin-proxy.cpp: Remove some const char/char mismatch
4084           warnings.
4085         * plugin-glue.cpp: Fix some const char/char mismatch warnings.
4087 2007-10-10  Chris Toshok  <toshok@ximian.com>
4089         * plugin-class.cpp (EventListenerProxy::~EventListenerProxy):
4090         don't NPN_ReleaseObject the callback.  the browser does this for
4091         us.
4093 2007-10-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4095         * plugin.cpp: Fix e-mail.
4097 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
4099         * Makefile.am: Can't use the -MM (fail if patterns not matched) because it
4100         is a newer feature.
4102 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
4104         * Makefile.am: Make zip fail if one of the files is not found
4106 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
4108         * Makefile.am: Build the firefox xpi plugin installer (unsigned)
4109         * install.js: First draft install script for xpi
4111 2007-10-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4113         * TODO: Update, fullScreen is now implemented.
4115 2007-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4117         * plugin.cpp: Set the downloader context of the surface.
4118         * downloader.cpp: Ref/unref the downloader we store. Get the context stored
4119           in the downloader if possible, and use it to get the plugin instance.
4120         * plugin-class.cpp: Use the brand new PluginInstance::CreateDownloader, and
4121           provide xaml loaders for the xaml_create_from* methods.
4122         * plugin.h: Add a CreateDownloader method.
4124 2007-10-04  Zoltan Varga  <vargaz@gmail.com>
4126         * plugin.cpp (LoadUrl): New method to download stuff synchronously using the browser.
4127         (plugin_instance_load_url): C wrapper for the above.
4128         (ReportException): Fix a leak.
4130 2007-10-03  Chris Toshok  <toshok@ximian.com>
4132         * moonlight.h: need to wrap the renamed symbols in an extern "C"
4133         block.
4135 2007-10-03  Chris Toshok  <toshok@ximian.com>
4137         * moonlight.h, plugin-entry.cpp, plugin-proxy.cpp: if we're using
4138         libmoonloader.so, we need to rename the 4 symbols we proxy in
4139         plugin-entry.cpp, and load them up via our mangled names in
4140         plugin-proxy.cpp.  This is so mozilla doesn't try to load
4141         libmoonplugin.so as a plugin itself.  It should only load
4142         libmoonloader.so.  Also, add code in plugin-proxy.cpp to handle
4143         the case where the .so lives in ~/.mozilla/plugins.  This requires
4144         #define PLUGIN_INSTALL 1 to be used, so we should figure out how
4145         to build with that when building the XPI.
4147 2007-10-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4149         * plugin.cpp, plugin.h: Added SetPageURL, updates the Surface' source
4150           location to the url of the current page.
4152 2007-09-30  Zoltan Varga  <vargaz@gmail.com>
4154         * plugin.cpp (ReportException): Handle multiple calls correctly.
4156 2007-09-28  Chris Toshok  <toshok@ximian.com>
4158         * Makefile.am: wrap moonlight.exe stuff in "if
4159         INCLUDE_MONO_RUNTIME" where necessary.
4161 2007-09-28  Chris Toshok  <toshok@ximian.com>
4163         * moonlight.h (INCLUDE_MONO_RUNTIME): remove #define from here.
4164         it's now a configure arg (and the define lives in config.h).
4166 2007-09-28  Zoltan Varga  <vargaz@gmail.com>
4168         * plugin.cpp (UrlNotify): Add some debug messages here.
4169         
4170         * plugin.cpp (ReportException): New helper function to display exception details
4171         using dynamic html above the plugin frame.
4173 2007-09-27  Jeffrey Stedfast  <fejj@novell.com>
4175         * plugin-glue.cpp (NPP_Initialize): Call runtime_init() with
4176         RUNTIME_INIT_BROWSER.
4178 2007-09-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4180         * plugin.cpp: Properly release a MoonlightObject.
4182 2007-09-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4184         * plugin.cpp: PluginInstance::UrlNotify: delete the StreamNotify when we're
4185           done with it. Added plugin_xaml_loader_from_str.
4186         * plugin-class.cpp: moonlight_scriptable_control_invoke: unref the
4187           Downloader we create once the object wrapper has it. Move implementation
4188           of MoonlightEventObjectObject::SetEventObject here.
4189         * plugin.h: StreamNotify: ref the DependencyObject we get, and unref on
4190           destruction. Added plugin_xaml_loader_from_str.
4191         * plugin-class.h: Move implementation of
4192           MoonlightEventObjectObject::SetEventObject to the cpp file.
4194 2007-09-23  Jb Evain  <jbevain@novell.com>
4196         * plugin.cpp: Pride sin, add my name to the contributors.
4198 2007-09-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4200         * plugin.cpp, plugin.h: Add a plugin_unload_callback to PluginInstance, and
4201           call it in the dtor.
4202         * moonlight.cs: Added UnloadDomain: unloads the domain that was loaded for a
4203           specific plugin, and set the corresponding native callback. Keep a hash
4204           table of all created domains so that we know which domain to unload,
4205           Delete some dead code (DisposeXamlLoader, ~Loader, Dispose)
4207 2007-09-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4209         * plugin.cpp: If an assembly already has been downloaded once, don't try to
4210           reload the xaml (otherwise might cause a loop if loading the xaml failed
4211           due to a reason other than that the assembly wasn't already downloaded).
4212           Added PluginXamlLoader::LoadVM.  PluginXamlLoader::TryLoad: don't call
4213           into the vm here, since it might not be loaded yet. Move implementation
4214           of InsertMapping, CreateElement and SetAttribute to XamlLoader.
4215           InitializeLoader: don't create a managed loader if the vm hasn't been
4216           loaded.
4217         * plugin.h: Move implementation of InsertMapping, CreateElement and
4218           SetAttribute to XamlLoader.
4219         * plugin-class.h: Remove unused function declaration.
4220         * mono.cpp, moon-mono.h: Remove all managed methods except moon_load_xaml,
4221           which sets the methods as callbacks on the xaml loader with delegates
4222           now. Guard against loading the vm twice.
4223         * moonlight.cs: Moved code to agclr, just kept a simple stub here that
4224           creates the new AppDomain.
4225         * plugin-glue.cpp: Don't initialize the vm when the plugin is initialized,
4226           it's initialized on demand.
4228 2007-09-19  Zoltan Varga  <vargaz@gmail.com>
4230         * plugin.cpp (plugin_menu_about): Make the close button work on some gtk versions.
4232 2007-09-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4234         * plugin.cpp: Remove a printf.
4235         * plugin-class.cpp, plugin-class.h: Apparently invalidate isn't always
4236           called for our MoonlightObjects (though deallocate is). Create a Dispose
4237           method that does what invalidate did (and call it from Invalidate), and
4238           keep track if it has been called or not (allows deallocate to call it if
4239           invalidate wasn't called by mozilla). Make Dispose virtual so that the
4240           base deallocator can call it for all derived classes (which also means
4241           that we only need the base invalidate method), and add a virtual
4242           destructor so that the base deallocator can also delete the object (and
4243           remove all other *_deallocator methods). proxy_listener_to_javascript:
4244           release objects at the end of the method.
4246 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4248         * plugin.cpp, plugin.h, moonlight.cs: Move callbacks from PluginXamlLoader
4249           back to XamlLoader.
4251 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4253         * downloader.cpp: Removed warning.
4254         * plugin.cpp: Delete the current xaml_loader if we create a new one.
4256 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4258         
4260 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4262         [Removed mono dependency for 1.0 moonlight applications. 
4263         We now have a native [Plugin]XamlLoader that is the native counterpart of the 
4264         managed Loader object, the native loader handles xaml loading when the 
4265         mono runtime isn't loaded.]
4267         * plugin.cpp, plugin.h: Added PluginXamlLoader that can forward calls into
4268           the managed loader if the mono runtime is loaded.
4269         * plugin-class.cpp: isVersionSupported: if built without mono runtime
4270           support, we only support 1.0 applications. Update according to API
4271           change.
4272         * moonlight.h, mono.cpp, moon-mono.h: Update according to API change.
4273         * moonlight.cs: Update according to API change. Added Hosting.base_unref and
4274           unref a few objects.
4275         * plugin-glue.cpp: Don't initialize the mono runtime for 1.0 applications.
4277 2007-09-09  Chris Toshok  <toshok@ximian.com>
4279         * plugin-class.cpp (moonlight_content_invoke): implement
4280         content.createFromXamlDownloader.
4282 Thu Sep 6 16:19:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4284         * mono.cpp, moon-mono.h, plugin.cpp, plugin.h: correct use of mono
4285         objects: they can't be stored in unmanaged memory.
4287 Thu Sep 6 15:22:20 CEST 2007 Paolo Molaro <lupus@ximian.com>
4289         * mono.cpp, moon-mono.h: cleanup of some code and localized the mono
4290         runtime calls.
4292 2007-09-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4294         * plugin-class.cpp: Added some special debug code, enabling basic printf
4295           functionality from javascript code. No need to synchronize console
4296           output with firebug output anymore.
4297         * debug.js: Added, a printf function for javascript, specially crafted for
4298           moonlight.
4300 2007-08-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4302         * plugin.cpp: Get the actual size from the surface.
4304 2007-08-31  Michael Hutchinson <m.j.hutchinson@gmail.com>
4306         * plugin.cpp: Fix pointer cast for 64-bit arch. 
4308 2007-08-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4310         * downloader.cpp: Added downloader_destroy.
4311         * plugin-class.cpp, plugin-class.h: Add plugin_destroy_classes, and remove a
4312           duplicate creation of MoonlightPointClass.
4313         * plugin-glue.cpp: Try shutting down everything correctly, if it can be
4314           shutdown, if not, don't initialize twice (vm and gtk).
4316 2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4318         * plugin-class.cpp: Javascript expects the sender of a FullScreenChange
4319           event to be the toplevel canvas, so when the Surface emits this event,
4320           change the sender to the toplevel canvas.
4322 2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4324         * plugin.cpp: Don't delete the surface, unref it.
4325         * plugin-class.cpp, plugin-class.h: Create a MoonlightEventObject* and make
4326           MoonlightDependencyObject* inherit from it. Change all event usage to
4327           the new class, enables events for objects that aren't DependencyObjects
4328           (but are EventObjects, such as Surface). Implement FullScreen support in
4329           the plugin.  Remove the dob field from MoonlightDependencyObject, the
4330           MoonlightEventObject has an eo field that fits the purpose, and
4331           implement a MoonlightDependencyObject.GetDependencyObject () that does
4332           what dob did earlier (and change all usages).
4334 2007-08-24  Jackson Harper  <jackson@ximian.com>
4336         * plugin-class.cpp|h: Add a new EventListenerObject that we can
4337         return from addEventListener.
4338         - Implement removeEventListener.
4340 2007-08-24  Jackson Harper  <jackson@ximian.com>
4342         * plugin-class.cpp|h: Now that getPosition works as intended, we
4343         don't need to store the position as an NPObject on the
4344         MouseEventArgs.
4345         - Eliminate the variant_to_value so that we don't need to do a
4346         bunch of extra casting.
4348 2007-08-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4350         * plugin-class.cpp: mouse_event_invoke (getPosition):
4351         use the argument to calculate the position if provided.
4353 2007-08-23  Jackson Harper  <jackson@ximian.com>
4355         * plugin-class.cpp: We can now hookup to the resize event.
4357 2007-08-23  Jb Evain  <jbevain@novell.com>
4359         * mono.cpp (vm_init): properly initialize the new debugging
4360         code.
4362 2007-08-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4364         * plugin-class.cpp|h: Duration and TimeSpan's seconds property
4365         is a double, so treat is as such. Add moonlight type information
4366         to MoonlightObject (and derived classes), so that the marshalling 
4367         knows how to treat them when they come back from js land.
4368         _set_dependency_property_value: handle values coming from js land
4369         correctly, according to their moonlight type.
4371 2007-08-23  Jb Evain  <jbevain@novell.com>
4373         * mono.cpp (vm_init): use new method name to initialize
4374         the debugger.
4376 2007-08-23  Jb Evain  <jbevain@novell.com>
4378         * Makefile.am: use -pkg:agmonosilver to reference agmono.dll
4380 2007-08-17  Chris Toshok  <toshok@ximian.com>
4382         * plugin-class.cpp|h: add a TimeSpan wrapper object.
4384 2007-08-17  Jb Evain  <jbevain@novell.com>
4386         * mono.cpp (vm_init): small refactoring to get MonoMethods.
4388 2007-08-17  Chris Toshok  <toshok@ximian.com>
4390         * plugin-class.cpp (moonlight_content_has/get/set_property): stub
4391         the onFullScreenChange property, to just warn us about the
4392         unimplemented functionality.
4394 2007-08-17  Jackson Harper  <jackson@ximian.com>
4396         * plugin-class.cpp|h: Add a duration object that is exposed to the
4397         JS.
4398         - Fix the value_to_variant to handle durations, rects and points.
4400 2007-08-17  Chris Toshok  <toshok@ximian.com>
4402         * plugin-class.cpp (moonlight_dependency_object_invoke): add
4403         toString method for DependencyObjects, which just returns the type
4404         name.
4406 2007-08-17  Jackson Harper  <jackson@ximian.com>
4408         * plugin-class.cpp: Properties are allowed to be null, so we still
4409         return true if the value is null.
4411 2007-08-17  Jackson Harper  <jackson@ximian.com>
4413         * plugin-class.cpp: Add the Root property to the content
4414         object. This just returns the top element.
4416 2007-08-17  Jb Evain  <jbevain@novell.com>
4418         * Makefile.am: use smcs to compile moonlight.exe
4419         * mono.cpp (vm_init): force the use of the moonlight profile
4420         by the mono vm.
4422 2007-08-16  Jackson Harper  <jackson@ximian.com>
4424         * plugin.cpp:
4425         * downloader.cpp: Remove my downloader event code, these are
4426         raised elsewhere (they were hidden behind another bug yesterday).
4428 2007-08-16  Jackson Harper  <jackson@ximian.com>
4430         * plugin-class.cpp: Fix cut&paste error that was preventing
4431         GetValue from working (get value only needs one arg).
4433 2007-08-16  Jackson Harper  <jackson@ximian.com>
4435         * plugin-class.cpp: Add removeAt method to collections.
4437 2007-08-15  Jackson Harper  <jackson@ximian.com>
4439         * plugin-class.cpp: Implement ctrl/shift for mouse and keyboard
4440         events.  I didn't use a shared base class, because the
4441         duplicated code is significantly less than the boilerplate code
4442         needed.
4444 2007-08-15  Jackson Harper  <jackson@ximian.com>
4446         * plugin-class.h|cpp: Add support for keyboard arguments in the
4447         keyup/keydown events. TODO: Still need to implement shift and
4448         control, ideally, in a base class for mouse and keyboard events.
4450 2007-08-15  Jackson Harper  <jackson@ximian.com>
4452         * plugin.cpp:
4453         * downloader.cpp: Raise downloading events.
4455 2007-08-13  Jackson Harper  <jackson@ximian.com>
4457         * plugin-class.cpp: findName should only look in the dependency
4458         object's scope.
4460 2007-08-13  Jackson Harper  <jackson@ximian.com>
4462         * plugin-class.cpp: For dependency object strings don't return
4463         null, just return an empty string.
4465 2007-08-11  Miguel de Icaza  <miguel@novell.com>
4467         * moonlight.cs: Use the new Appdomain helper methods too.
4469         Use Ansi here because we only run on Linux not on
4470         Windows and the Auto API is gone from 2.1
4472         * moonligth.cs: Use the new helper method from agmono instead of
4473         duplicating code here.
4475 2007-08-07  Jackson Harper  <jackson@ximian.com>
4477         * moonlight.cs: Add another system library to the do-not-download
4478         list.
4480 2007-08-06  Jackson Harper  <jackson@ximian.com>
4482         * plugin-class.cpp: We don't need to explicitly free the value
4483         because the dtor will for us.
4485 2007-08-06  Jackson Harper  <jackson@ximian.com>
4487         * plugin-class.cpp|h: Add functionality for detaching events and
4488         for releasing object references.
4489         - When looking up on the window object, do not release it.  It
4490         doesn't need to be released because it is never retained.
4491         - Add a new function for creating a browser alert message.
4493 2007-08-03  Chris Toshok  <toshok@ximian.com>
4495         * plugin-class.cpp (moonlight_downloader_*): add
4496         has_property/get_property methods, for the "responseText"
4497         property. not sure if getResponseText() is still around, but the
4498         property definitely is in use by silverlight pad.
4499         
4500 2007-08-03  Jackson Harper  <jackson@ximian.com>
4502         * plugin-class.h|cpp: Add support for mouse events, pass all the
4503         info needed by HtmlEventArgs back in the callback.
4504         - Don't return null or void objects from invoke or get property.
4506 2007-08-03  Jackson Harper  <jackson@ximian.com>
4508         * moonlight.cs: Dont download all the system libraries.
4510 2007-08-03  Jackson Harper  <jackson@ximian.com>
4512         * plugin-class.h|cpp: Add support for attaching properties.
4514 2007-08-02  Chris Toshok  <toshok@ximian.com>
4516         * plugin-class.cpp (moonlight_content_invoke): createFromXaml
4517         doesn't create a control object - it parses the xaml you pass in
4518         and returns the root element, so it can be used for any xaml
4519         content.
4521         * plugin.h, plugin.cpp: add plugin_instance_get_init_params for
4522         use in WebApplication.StartupArgs.
4524 2007-07-29  Chris Toshok  <toshok@ximian.com>
4526         * moonlight.h: track the 1.1 refresh changes.
4528 2007-07-25  Chris Toshok  <toshok@ximian.com>
4530         * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4531         "getParent" correctly - it can return NULL.
4533 2007-07-25  Chris Toshok  <toshok@ximian.com>
4535         * plugin-class.h: implement scriptable events (adding and emitting
4536         them, at least).
4538 2007-07-24  Jackson Harper  <jackson@ximian.com>
4540         * plugin-class.cpp|h: Add function to invoke methods on
4541         htmlobjects from unmanaged code.
4542         
4543 2007-07-24  Chris Toshok  <toshok@ximian.com>
4545         * plugin.cpp (PluginInstance::setBackground): implement.
4546         (PluginInstance::CreateWindow): if our args contained a background
4547         color, set the surface's background.
4549 2007-07-24  Jackson Harper  <jackson@ximian.com>
4551         * plugin-class.cpp: Move the window release up, prevents random
4552         crashing in firefox.
4554 2007-07-24  Chris Toshok  <toshok@ximian.com>
4556         * plugin-class.h, plugin-class.cpp: add wrapper classes for
4557         TextBlocks and ImageBrushes.
4559 2007-07-24  Jackson Harper  <jackson@ximian.com>
4561         * plugin-class.cpp: Implement variants to value on objects. TODO,
4562         add a method to release those objects.
4564 2007-07-24  Chris Toshok  <toshok@ximian.com>
4566         * plugin-class.h, plugin-class.cpp: add a wrapper class for
4567         Images, which implements SetSource. also add SetSource handling
4568         for the MediaElement wrapper.
4570         * moonlight.cs: rework event hookup so that if we fail to hookup
4571         with C#, we assume it's a JS event.  hook it up via the
4572         EventListenerProxy stuff.
4574         * plugin.h, plugin.cpp: MoonlightControl -> MoonlightScriptable
4576         * plugin-class.h, plugin-class.cpp: 
4578         1. rename MoonlightControl* to MoonlightScriptableControl* to
4579         distinguish it from the new MoonlightControl, which is a wrapper
4580         for our Control class.  factor out the _set_dependency_property_value
4582         2. add "getParent", "setValue", and "getValue" methods to the
4583         dependencyobject wrapper.
4585         3. Add a ctor for EventListenerProxy which just takes the callback
4586         name for use in hooking up js events from the parser.
4588 2007-07-24  Jackson Harper  <jackson@ximian.com>
4590         * plugin.h|cpp: Add a getter for the plugin instance
4591         * plugin-class.h|cpp: Property get/setters for html objects.
4593 2007-07-23  Chris Toshok  <toshok@ximian.com>
4595         * plugin-class.h, plugin-class.cpp: include error.h, and start out
4596         some error event args wrapping stuff.
4598 2007-07-23  Miguel de Icaza  <miguel@novell.com>
4600         * plugin.cpp (PluginInstance): track the timers on a linked list
4601         here. 
4603         (~PluginInstance): Remove all the timers for this plugin on
4604         destruction. 
4606         (plugin_html_timer_timeout_add, plugin_html_timer_timeout_stop):
4607         Move these routines here and track all the timers created. 
4609         * moonlight.cs: Use the type from agmono instead of agclr
4611 2007-07-21  Chris Toshok  <toshok@ximian.com>
4613         * plugin-class.cpp (variant_to_value): fix this such that it
4614         doesn't crash due to c++'s not using a copy ctor when you do "foo
4615         = Value()".  the first of the changes are fallout from this.
4617 2007-07-20  Miguel de Icaza  <miguel@novell.com>
4619         * Fix a memory leak.
4621 2007-07-19  Chris Toshok  <toshok@ximian.com>
4623         * plugin-class.h, plugin-class.cpp: factor out the
4624         EventListenerProxy stuff into a separate class.
4626 2007-07-19  Chris Toshok  <toshok@ximian.com>
4628         * plugin-class.cpp (moonlight_control_get_property): Retain the
4629         settings/content objects before returning them.  fixes crash in
4630         silverlight chess.
4632 2007-07-19  Chris Toshok  <toshok@ximian.com>
4634         * plugin.h, plugin.cpp: add getBrowserInformation call, useful for
4635         populating the managed BrowserInformation object.  need to flesh
4636         out how to get the other info.  userAgent is easy.
4638         also, in plugin.cpp, only invoke is onLoad handler if
4639         vm_loader_try doesn't return a missing file.  This fixes the
4640         ordering problem in the silverlight chess demo (where we were
4641         accessing JScriptPlayer before it was created).
4642         
4643 2007-07-19  Chris Toshok  <toshok@ximian.com>
4645         * plugin-class.h: add some scriptable object event stuff.
4647         * plugin-class.cpp: a couple of things.
4649         1) fix the _invalidate and _deallocate methods.  _invalidate
4650         shouldn't release objects.  and _deallocate can now call delete
4651         again, so we don't leak all our wrapper objects.
4653         2) add some initial scriptable object event methods (add/remove),
4654         but they don't actually do much yet.
4655         
4656         * plugin.cpp: fix the refcounting of the rootobject, and remove
4657         some RUNTIME ifdefs.
4659         * plugin-glue.cpp (NPP_Initialize): remove the RUNTIME ifdefs.
4661         * moonlight.h: remove some of the unused ifdefs.  also, we're not
4662         going to ever build this with RUNTIME or SCRIPTING not defined, so
4663         remove them.
4665 2007-07-18  Jackson Harper  <jackson@ximian.com>
4667         * plugin-class.cpp: Build fix.
4669 2007-07-17  Chris Toshok  <toshok@ximian.com>
4671         * plugin-class.cpp (moonlight_scriptable_object_invoke): deal with
4672         function arguments.
4674         * plugin-class.h: change the type of InvokeDelegate - we pass an
4675         array, not an array of pointers.
4677         * plugin.cpp (JsRunOnload): remove redundant call to
4678         surface->GetToplevel().
4680 2007-07-16  Chris Toshok  <toshok@ximian.com>
4682         * moonlight.cs: AppDomain.SetData the plugin instance so
4683         WebApplication can get at it.
4685         * plugin-class.cpp (variant_to_value): pseudo-inverse of
4686         value_to_variant.  used by the scriptable object stuff.
4688         Also, add the first pass at the scriptable object code.  it's
4689         really, really rough at this point.
4690         
4691         * plugin.cpp (PluginInstance::GetValue): switch this to calling
4692         getRootObject().
4693         (PluginInstance::getRootObject): put the old GetValue (create or
4694         retain) logic here.
4696 2007-07-12  Chris Toshok  <toshok@ximian.com>
4698         * plugin-class.cpp: implement support for using a string as the
4699         second arg in addEventListener.  now you can register callbacks
4700         using either:
4702         object.addEventListener ("EventName", method);
4704         or
4706         object.addEventListener ("EventName", "methodName");
4708         fixes SilverlightChess crashing (since we were trying to
4709         InvokeDefault a string.  oops. :)
4711 2007-07-12  Chris Toshok  <toshok@ximian.com>
4713         * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4714         captureMouse/releaseMouseCapture.  going to move these to a
4715         UIElement specific wrapper next.
4717 2007-07-12  Chris Toshok  <toshok@ximian.com>
4719         * plugin-class.cpp, plugin-class.h:  a few things:
4721         refactor the listener proxying stuff to share code.  when creating
4722         a proxy you create the event arg wrapper function, which at
4723         present only the mouse event stuff uses.
4725         wrap Downloader.  events are properly emitted, we should move the
4726         Downloader to using EventHandler's instead of its custom list of
4727         listeners.
4729         when looking up an attached property both (or one, or neither!) of
4730         the names can be capitalized.  like: foo['canvas.top'],
4731         foo['Canvas.Top'], and foo['canvas.Top'].  handle all of them.
4733         in value_to_variant, when setting a property to an object value,
4734         we assume (perhaps incorrectly) that it will be a
4735         MoonlightDependencyObjectObject, and handle it that way.  it seems
4736         to work for the demos at least.  Also in that same method, stop
4737         allocating a 20 byte buffer in the hope that it's enough.  just
4738         use g_strdup/g_strdup_printf.
4739         
4740         add control.createObject support for creating wrapped
4741         downloaders.  also, start on the implementation for
4742         control.onResize, but we need to shift the surface's resize
4743         callback to use an EventHandler.
4745 2007-07-11  Chris Toshok  <toshok@ximian.com>
4747         * plugin-class.cpp, plugin-class.h: fix up the point and rect
4748         wrappings, and implement mouse event proxying.
4750 2007-07-11  Chris Toshok  <toshok@ximian.com>
4752         * plugin-class.cpp, plugin-class.h: wrap the MediaElement enough
4753         to provide the start/stop/pause methods.
4755 2007-07-11  Chris Toshok  <toshok@ximian.com>
4757         * plugin-class.cpp, plugin-class.h, plugin-glue.cpp, plugin.h,
4758         plugin.cpp: I know this looks like a scary change, but 90% of the
4759         code is the same.  I just took advantage of the fact that we
4760         already have structs with all the function pointers in them.
4761         there's no reason to proxy from a function pointer in the struct
4762         to an instance method on a singleton class - just use the function
4763         pointer.
4765         Also, add a binding for Points, which we'll need to wrap mouse
4766         events.
4768 2007-07-11  Chris Toshok  <toshok@ximian.com>
4770         * moonlight.h (DEBUG_WARN_NOTIMPLEMENTED): add this macro so we
4771         can get spew to the console when we hit unimplemented bits.
4773         * plugin-class.cpp: a couple of changes:
4775         1. the case of property names is lax too, it seems.  'Children'
4776         can be used in the js, as well as 'Children'.  so we need to allow
4777         both.
4779         2. Fix a memory corruption issue with value_to_variant - we need
4780         to duplicate the string we give to mozilla, since it'll free it in
4781         NPN_ReleaseVariantValue.
4783         3. Implement proxies between our event handlers and JS event
4784         listeners.  We leak like a sieve here, btw.  need to figure out
4785         the best way to free up these proxies.  This works for any event
4786         that has been Register'ed by an EventObject and which is Emit'ed
4787         from C++.
4789         4. Implement collection.getItem().
4790         
4791 2007-07-11  Chris Toshok  <toshok@ximian.com>
4793         * plugin.h, plugin.cpp: add getRootObject to return the
4794         MoonlightControlObject.
4796         * plugin-class.cpp (MoonlightDependencyObjectClass::Invoke):
4797         implement "getHost" by returning PluginInstance->getRootObject().
4799 2007-07-11  Chris Toshok  <toshok@ximian.com>
4801         * plugin-class.h, plugin-class.cpp: substantially rework this
4802         stuff.  Rename everything Moonlight*Class and Moonlight*Object
4803         instead of Plugin*Class/Object, to make it a little clearer that
4804         these are (almost entirely) wrappers for moonlight objects.
4806         Also clean up the distinction between "Class" and "Object".  for
4807         instance, MoonlightDependencyObjectClass shouldn't have the
4808         DependencyObject*, that should live in the instance -
4809         MoonlightDependencyObjectObject (bad name i know..)
4811         our Objects also need a little bit more inheritance action.
4812         MoonlightObject isn't enough for all cases.  Augment this with
4813         other classes, and override AllocateObject to allocate the right
4814         kind per class.  Also, we need to override InvalidateObject to
4815         clear fields in the MoonlightObject subclasses before it's
4816         deallocated.
4818         Also make all the Class's singletons.  We never need more than one
4819         of each of them.
4820         
4821         * plugin.h, plugin.cpp: we don't need a generate JsExecute method.
4822         besides, it's dangerous to NPN_Evaluate strings we get from the
4823         HTML anyway.  Replace JsExecute with JsRunOnload, which uses
4824         NPN_Invoke to call the specified method.  we also need to pass the
4825         surface's toplevel control as an argument to it.
4827 2007-07-11  Miguel de Icaza  <miguel@novell.com>
4829         * moonlight.cs: Add support for downloading assembly
4830         dependencies. 
4832 2007-07-10  Chris Toshok  <toshok@ximian.com>
4834         * moonlight.cs: add some helpful debug spew.
4836         * plugin.cpp (StreamAsFile): the mapping needs to point to the
4837         filename on disk, not the full uri.  or else we try loading
4838         "http://" off the filesystem, which doesn't really work.  Just to
4839         be thorough, add a mapping from the stream's url to the fname as
4840         well.
4842 2007-07-09  Miguel de Icaza  <miguel@novell.com>
4844         * Makefile.am: install debugging symbols.
4846         * moonlight.cs: try/catch wrappers to prevent exceptions to be
4847         propagated to native code.
4849 2007-07-09  Chris Toshok  <toshok@ximian.com>
4851         * moonlight.cs: copy over the System.Reflection implementation of
4852         set_attribute from XamlReader.  also, track the change to the
4853         xaml_* apis - don't pass the callbacks to the individual methods.
4854         instead register them in a static ctor.
4856 2007-07-09  Miguel de Icaza  <miguel@novell.com>
4858         * moonligh.cs: Invoke the Lookup(Kind, IntPtr) overload, just like
4859         we do in XamlReader. 
4861 2007-07-06  Miguel de Icaza  <miguel@novell.com>
4863         * downloader.cpp: Update to the get-response-text downloader API.
4865 2007-07-03  Miguel de Icaza  <miguel@novell.com>
4867         * plugin.cpp (NewStream): Request that DOWNLOADER downloads be
4868         downloaded as NP_ASFILE, this means: notify us of the progres and
4869         the resulting filename.
4871 2007-06-26  Marek Habersack  <mhabersack@novell.com>
4873         * moonlight.h (GDK_NATIVE_WINDOW_POINTER): define this macro if
4874         we're on a 64-bit platform. Otherwise plugin.cpp will fail to
4875         compile (attempting to convert guint32 to 64-bit pointer).
4877 2007-06-24  Larry Ewing  <lewing@novell.com>
4879         * moonlight.h: include xaml.h so that things build.
4881 2007-06-24  Atsushi Enomoto  <atsushi@ximian.com>
4883         * Makefile.am : we need libmoonplugin.so installed too.
4885 2007-06-23  Miguel de Icaza  <miguel@novell.com>
4887         * plugin-proxy.cpp: This is the new entry point for the plugin
4888         which can be loaded and unloaded as many times as desired, and
4889         will keep the real plugin in $pkgdir/libmoonplugin.so loaded as
4890         well as the Mono VM
4892         This prevents the bugs where the code is unloaded, but we still
4893         have a few places where we are triggering screen updates when the
4894         objects have gone, those must be tracked down.
4896 2007-06-23  Chris Toshok  <toshok@ximian.com>
4898         * Makefile.am: distcheck work.
4900 2007-06-22  Chris Toshok  <toshok@ximian.com>
4902         * README: barebones README to tell people what to do with the
4903         plugin.
4905 2007-06-21  Jackson Harper  <jackson@ximian.com>
4907         * moonlight.cs: Do what I was trying to do with the last commit.
4908         Attach the surface so that events are registed.
4910 2007-06-21  Jackson Harper  <jackson@ximian.com>
4912         * moonlight.cs: Init the surface so that the mouse events are
4913         hookedup.
4915 2007-06-20  Jeffrey Stedfast  <fejj@gnome.org>
4917         * plugin.cpp (plugin_show_menu): Free the menu name after setting
4918         it on the widget.
4920         * mono.cpp (vm_init): Don't need top prefix with "/".
4922 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4924         * plugin.cpp: Add new params to xaml_create_from_file and 
4925         xaml_create_from_str calls to fix compilations problems.
4927 2007-06-20  Chris Toshok  <toshok@ximian.com>
4929         * plugin.cpp (StreamAsFile): don't try to execute onLoad if there
4930         isn't one.
4932 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4934         * plugin.cpp, plugin.h: Implement JsExecute method and use it to call onload
4935         event specified in control creation. onLoad and onError field is also 
4936         created.
4938 2007-06-20  Jackson Harper  <jackson@ximian.com>
4940         * moonlight.cs: Tie into events.
4942 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4944         * plugin-class.cpp: Update DependencyObject setter to work with strings
4945         and some other data types, using xaml_set_property_from_str. Also remove
4946         some debug messages, we have too much.
4948 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4950         * plugin.cpp: Uncomment container detroy lines in Finalize method.
4952 2007-06-20  Sebastien Pouliot  <sebastien@ximian.com>
4954         * plugin-class.cpp: Alloc one byte to set it to NULL so we don't
4955         write to unallocated memory.
4957 2007-06-20  Chris Toshok  <toshok@ximian.com>
4959         * plugin.cpp (PluginInstance::Write): it turns out the "offset"
4960         parameter that is passed to us is the offset without the *stream*,
4961         not the buffer.  Always pass 0 for the offset to downloader_write.
4962         This fixes image downloads for images larger than the mozilla
4963         buffer size (those requiring more than 1 write) of 16384.
4965 2007-06-19  Chris Toshok  <toshok@ximian.com>
4967         * plugin-glue.cpp (NPP_Initialize): if we're going to Shutdown()
4968         the TimeManager in NPP_Shutdown, we need to restart it in
4969         NP_Initialize.
4971 2007-06-19  Chris Toshok  <toshok@ximian.com>
4973         * plugin-class.cpp: check in the variant_to_value/value_to_variant
4974         methods, and make GetProperty/SetProperty use them.
4976         * plugin.cpp (UpdateSourceByReference): use g_strlcpy/g_strlcat
4977         instead of strcpy/strcat (which was actually walking off the end
4978         of the string).  also, create the char array of the right size.
4980 2007-06-19  Atsushi Enomoto  <atsushi@ximian.com>
4982         * Makefile.am : we need uninstall-plugin to avoid
4983           possible browser shutdown on browsing sl-enabled sites.
4985 2007-06-19  Everaldo Canuto  <ecanuto@novell.com>
4987         * plugin-class.cpp,  plugin-class.h: Implement DependencyObject properties
4988         getter and setters.
4990 2007-06-19  Everaldo Canuto  <ecanuto@novell.com>
4992         * plugin.cpp: Eliminate remaining canvas field.
4994 2007-06-19  Miguel de Icaza  <miguel@novell.com>
4996         * plugin.h: Eliminate the field canvas, as the managed code can
4997         replace the toplevel and we wont be able to track it.   Access the
4998         field directly from the surface instead.
5000 2007-06-18  Miguel de Icaza  <miguel@novell.com>
5002         * moonlight.cs: Create appdomains to keep applications separate
5003         and to keep the IntPtr to the plugin.
5005         The handle to the plugin is stored in agclr in the BrowserHost
5006         class. 
5008 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
5010         * plugin-class.cpp: Implement maxFrameRate property.
5012 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
5014         * moonlight.h: Just a high value for MAX_STREAM_SIZE.
5016 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
5018         * plugin.cpp, plugin.h: Implement Write and WriteReady to interact with
5019         Downloader functions. It looks to be right but image still dont appears, 
5020         mayeb something in download manager functions. STREAM_NOTIFY macro added to
5021         header file.
5023 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
5025         * downloader.cpp: Fix stream notify data, must be Downloader not 
5026         PluginDownloader.
5028 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
5030         * plugin-glue.cpp: Remove stream destruction from Write and WriteReady, it
5031         was preventing browser to call our write function.
5033         * moonlight.h: MAX_STREAM_SIZE constant added.
5035 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
5037         * plugin.cpp, plugin.h: Add a new StreamNotifyFlags REQUEST, it is used by
5038         files requested by Mono runtime, the use of notify bring us a more clean
5039         code to controls requested files.
5041         * downloader.cpp: Use StreamNotify and check for existense of instance.
5043 007-06-17  Jackson Harper  <jackson@ximian.com>
5045         * moonlight.cs: Parse type names out of xmns strings. x:Class uses
5046         this slightly different format.
5048 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
5050         * plugin.cpp, plugin.h: Add support for "#" (references) in source urls, it
5051         make possible use embedded xaml files. Also every source updates go to the
5052         UpdateSource and UpdateSourceByReference methods.
5054         * moonlight.cs: Xaml file loader splited in two methods CreateXamlFileLoader
5055         and CreateXamlStrLoader to support embedded files.
5057         * mono.cpp: Wrapper funtions also splited in file loader and str loader.
5059 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
5061         * plugin.cpp: Use setSource to define source in Initialize, it give us only
5062         one place to check set source code. Also prevent setSource to segfault when
5063         source field is null.
5065 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
5067         Fixes browser segfaults related to timemanager when goto another page or 
5068         close browser.
5070         * plugin-glue.cpp: Call runtime_init every time that browser initialize 
5071         plugin, when plugin shutdown just shutdown timemanager since we have 
5072         problems to runtime_shutdown. Some comment added to this implementation
5073         and we must back here when runtime_shutdown is fixed.
5075 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
5077         * plugin.cpp, plugin.h: Create StreamNotify class to use as notifydata 
5078         parameter in NPN_GetURLNotify function, it gives us better control about
5079         what is downloading. Fixes errors when you try change control source 
5080         property.
5082 2007-06-17  Miguel de Icaza  <miguel@novell.com>
5084         * downloader.cpp (p_downloader_send): Some tidbits for the plugin
5085         download, not complete.
5087 2007-06-16  Jackson Harper  <jackson@ximian.com>
5089         * moonlight.cs: Set custom attributes on xaml elements.
5091 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
5093         * moonlight.h: Include config.h since moonlight.h is included by all files.
5094         Fixes compilation problems.
5096 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
5098         * plugin.cpp, plugin.h: Remove sourceUrl and use NPN_GetURLNotify notifyData
5099         param to inform when download is source.
5101 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
5103         * mono.cpp: Remove debug message cr.
5105         * plugin.cpp, plugin.h, plugin-class.cpp: Windowless property added.
5107 2007-06-16  Jackson Harper  <jackson@ximian.com>
5109         * moonlight.cs: Quick implementation of miguels beautiful new xaml
5110         loading mechanism. We now properly download the assembly and
5111         create the element. The custom.xaml test does work, however you
5112         need to invalidate the canvas to see the red canvas background
5113         showup.
5115 2007-06-16  Miguel de Icaza  <miguel@novell.com>
5117         New mechanism for loading XAML files.
5119         Since XAML files can contain references to external assemblies and
5120         these have to be downloaded using the browser, we have now changed
5121         our previous setup that just called the xaml parser with a setup
5122         that is able to download dependencies.
5124         The system works by attempting repeatedly to parse the XAML file.
5125         The XAML parser needs to return an error condition that includes
5126         the missing dependency.   
5128         For all missing dependencies, we request the file from the
5129         browser, and we re-try the parsing until it works (or it fails due
5130         to other problems). 
5131         
5132         * moonlight.cs: Instead of exposing a CreateFromXaml method, we
5133         now expose a Loader object.
5135         The Loader object can keep track of downloaded assembly
5136         dependencies and calls the parser.
5137         
5138         * plugin.cpp (NewStream): Use a primitive state machine
5139         (vm_missing_url == vm_missing_file) to detect when we have just
5140         requested that a file be downloaded.   This probably is too
5141         primitive. 
5143         (TryLoad): New method.    
5144         
5145         Tries to load the XAML file, the parsing might fail because a
5146         required dependency is not available, so we need to queue the
5147         request to fetch the data.
5149         (LoadFromXaml): Use vm_xaml_loader_new and TryLoad now.
5150         
5151         * mono.cpp (vm_init): We now use a handful of more methods from
5152         moonlight.cs 
5154         (vm_loader_try, vm_insert_mapping): helper functions to call into
5155         the managed wrapper for XAML file loading.
5157 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
5159         * plugin.cpp, 
5160         * plugin.h, 
5161         * plugin-class.cpp: Implement enableFramerateCounter, enableRedrawRegions
5162         and enableHtmlAccess properties.
5164 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5166         * plugin.cpp, plugin.h, plugin-class.cpp: Background property added.
5168 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5170         * plugin.cpp: Let LoadFromXaml just call load xaml routines.
5172 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5174         * moonlight.cs: Fix surface attachment.
5176 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5178         * plugin-glue.cpp: Prevent multiple runtime and mono vm initialization.
5180 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5182         * plugin.cpp, plugin.h: LoadFromXaml added to host canvas creation.
5184 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5186         * moonlight.h: Turns mono runtime enabled by default.
5188         * mono.cpp: Use of DEBUGMSG macro for debug message.
5190         * moonlight.cs: Fix Canvas kind number.
5192 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5194         * plugin.cpp, plugin.h, plugin-class.cpp: Fix setter for source property.
5196 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5198         * plugin.cpp, plugin.h: Add sourceUrl to get information about base source
5199         url. New Stream also check if request is for source file, if not return
5200         NP_NORMAL to be used later by downloader functions.
5202 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5204         * plugin-class.cpp, plugin-class.h: Remove macro STRING_TO_NPVARIANT, create
5205         method StringToNPVariant and change all reverences from macro to method. 
5206         StringToNPVariant also take care about NULL strings.
5208 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5210         * plugin.cpp, plugin.h, plugin-class.cpp: Implement initParams property.
5212 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
5214         * plugin-class.cpp: Implement setters for enableFramerateCounter,
5215         enableHtmlAccess and windowless. This fields cant be set after 
5216         initialization so just do nothing and return true.
5218 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5220         * plugin-glue.cpp: After PluginObject changes we can back to release objects
5221         and it fix segfault when browser closes.
5223 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5225         * plugin.cpp,
5226         * plugin-class.cpp,
5227         * plugin-class.h: Remove unneeded instance fields, and contructor, after
5228         implementation of PluginObject we have a better way to get instance 
5229         information.
5231 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5233         * plugin-class.cpp: Change all PluginRootClass properties to use new object
5234         class PluginObject.
5236 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5238         * plugin-class.cpp,
5239         * plugin-class.h: Rename NPObject references to PluginObject, PluginObject 
5240         class theres more useful information like instance and plugin.
5242 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5244         * downloader.cpp,
5245         * downloader.h,
5246         * Makefile.am: Downloader functions added.
5248         * plugin-glue.cpp: On NPP_Initialize call downloader_initialize.
5250 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5252         * plugin-class.cpp: In PluginDependencyObject:: ClassGetProperty return 
5253         false instead of null because funtion is of type boolean. It fix message
5254         warning.
5256 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5258         * plugin.cpp: Move rootclass declaration to plugin-class.
5259         
5260         * plugin.h: Remove inclusion of plugin-class.h.
5262         * plugin-class.h: Introduces PluginObject class inherited from NPObject and 
5263         add rootclass declaration.
5265         * plugin-class.cpp: Uses PluginObject instead of NPObject, also make use of
5266         object in 'source' property getter.
5268 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5270         * plugin.cpp, plugin.h: Add a new member finalize that must be calling 
5271         instead of delete, we must later found a way to fix reload problems.
5273         * plugin-glue.cpp: Call finalize instead of delete.
5275         * TODO: Some notes about this bad implementation.
5277 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
5279         * plugin-class.cpp: Add setter for control.source property.
5281 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5283         * plugin.cpp, plugin.h: isLoaded property added.
5285         * plugin-class.cpp: Implement control.isLoaded wrapper.
5287 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5289         * plugin-class.h: 
5290         - Take some notes on properties that cant be set after initialization.
5291         - Create macho STRING_TO_NPVARIANT to standardize the way how strings are
5292         returned to jscript calls.
5294         * plugin-class.cpp:
5295         - Implement control.source using STRING_TO_NPVARIANT macro.
5296         - Uses STRING_TO_NPVARIANT macho in control.settings.version.
5298         * plugin.h: Add source property.
5300         * plugin.cpp: Set source on initialization.
5302 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5304         * plugin.cpp, plugin.h: 
5305         - Move static rootobject to class field to get working pages with more than
5306         one moonlight control.
5307         - Implement param source for html object elements, this is default way to
5308         tell plugin which xaml it must load.
5310 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5312         * plugin-class.cpp, plugin-class.h:
5313         - Move instance field from PluginRootClass to PluginClass because most
5314         classes can make use of this field, class constructor is also changed to
5315         receive instance as parameter.
5316         - Remove host field from PluginDependencyObject, host can be accessed using
5317         instance field.
5319 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5321         * plugin-class.cpp: Implement "control.content" proeprties.
5323 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5325         * TODO: Added to include information about features that we know that is
5326         not current supported. Can be use for now to take some notes to be read 
5327         after 21th june.
5329 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5331         * plugin-class.h: Add comments about read write/read only on properties.
5333 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5335         * plugin-class.cpp, plugin-class.h: Add SetProperty to PLUGIN_PROPERTIES
5336         and implement it for all classes.
5338 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5340         * plugin-class.cpp, plugin-class.h: 
5341         - Fix IndexOf method.
5342         - Create and uses macros PLUGIN_PROPERTIES and PLUGIN_METHODS to define 
5343         properties and methods.
5344         - Uses arrays to define properties and methods.
5345         - Use NPID macro to get string identifier.
5347 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5349         * plugin-class.cpp:  Fix dependency of PLUGINROOTCLASS_PCOUNT in property
5350         array initialization.
5352 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5354         * plugin-class.cpp, plugin-class.h: 
5355         - Implement IndexOf method that uses and array.
5356         - implement properties array.
5357         - ClassHasProperty now uses IndexOf.
5359 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5361         * Makefile.am: Fix LIBADD to include MOON_LIBS instead of two times 
5362         PLUGIN_LIBS.
5364 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5366         * plugin-class.cpp, plugin-class.h: Get content and settings as a plugin
5367         class properties.
5369 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5371         * plugin.cpp, plugin.h: PluginContent class added.
5373 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5375         * plugin.cpp, plugin.h: Remove unused CreateDemoControls method.
5377 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5379         * plugin.cpp: Remove unused code and fix function names.
5381         * moonlight.h: Remove ";" on end of PLUGIN_DESCRIPTION define.
5383 2007-06-11  Atsushi Enomoto  <atsushi@ximian.com>
5385         * Makefile.am : build fix. without -f rm fails.
5387 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5389         * plugin-class.cpp, plugin-class.h: Remove unused method ClassAllocate
5390         and fix all debug messages.
5392 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5394         * plugin.cpp: Fix object creation using NPN_RetainObject to increment
5395         reference count as described in Mozilla documentation.
5397         * plugin-class.cpp: On ClassDeallocate uses NPN_ReleaseObject that
5398         checks for references and release object when reference count is equal
5399         zero. It see to be solve all remaining segfault when browser closes.
5401 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5403         [Refactory jscript runtime code]
5405         * plugin-class.cpp, plugin-class.h: Create new class PluginRootClass,
5406         to be a proxy for javascript runtime calls, old code on plugin instance
5407         was moved here and all segfault related to script stuff was gone.
5409         * plugin.cpp, plugin.h: Remove jscript runtime related code and use
5410         PluginRootClass.
5412 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5414         * moon-mono.cpp,
5415         * mono.cpp,
5416         * plugin.h: Fix remaining config.h -> moonlight.h.
5418 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5420         * moonlight.h: Define RUNTIME to enable/disable mono runtime 
5421         integration. Its because right now it fails when open a page with 
5422         script so we can comment /#define RUNTIME to get plugin working in
5423         old way.
5425         * plugin.cpp: Dont call vm_load_xaml when RUNTIME is not defined.
5427         * plugin-glue.cpp: Dont call vm_init when RUNTIME is not defined.
5429 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5431         * moon-plugin.cpp: Renamed to plugin.cpp.
5432         * moon-plugin.h: Renaned to plugin.h.
5433         * config.h: Renaned to moonlight.h.
5435         * plugin-class.h, plugin-glue.cpp: Update includes.
5437 2007-06-11  Miguel de Icaza  <miguel@novell.com>
5439         * Makefile.am: Delete the ~/.mozilla/plugins/libmoon.so in case it
5440         was around, that was the painful bug.
5442         * moon-plugin.cpp (CreateWindow): Do not create a canvas, nor
5443         attach it, let Mono do that. 
5444         (StreamAsFile): Request that the VM loads the file, this will
5445         change to something else later when we use the Silverlight object
5446         embedding API.
5448         * moonlight.cs: Implement some bits, it currently only loads the
5449         XAML file, it needs to create a new appdomain.
5451 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5453         * Makefile.am,
5454         * moon-mono.cpp,
5455         * mono.cpp: Rename moon.cpp to moon-mono.cpp.
5457         * moon-mono.h: Add header information.
5459         * plugin-glue.cpp,
5460         * config.h: Add constant MOON_1_0 and MOON_1_1, when 1.1 is define 
5461         compile also mono runtime, it is disabled by default since mono runtime
5462         give us some crashes right now.
5464 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5466         * Makefile.am: config.h added.
5468         * config.h: Added.
5470         * plugin-class.cpp,
5471         * moon-plugin.cpp,
5472         * plugin-class.h,
5473         * plugin-glue.cpp,
5474         * moon-plugin.h: Include config.h and remove unneeded includes.
5476 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5478         * moon-plugin.cpp: Remove DEMO mode and set SCRIPTING mode by default.
5480 2007-06-10  Miguel de Icaza  <miguel@novell.com>
5482         * moonlight.cs: the startup code, will contain the helper classes
5483         to create new AppDomains for each instance create.
5485         * mono.cpp: New file, embeds the Mono VM.
5487 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5489         * plugin-glue.cpp: Call plugin instance destructor, now it dont causes
5490         error when you reload page.
5492         * moon-plugin.cpp: Only destroy container widget, if you dont destroy it
5493         when you start with page plugin, go to another page and close browser,
5494         a segfault is emited before browser exits. Now navigating for some time in
5495         silverlight pages looks to dont emit segfault if scripting is disabled.
5497         * plugin-class.cpp: Remove debug message from class constructor.
5499 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5501         [Xaml support]
5503         * moon-plugin.cpp: 
5504         - Read xaml file from src tag and display contents.
5505         - Disable demo box, now we have a better demo under xaml file.
5507 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5509         * Makefile.am: test added to subdirs.
5511 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5513         * moon-plugin.cpp,
5514         * plugin-glue.cpp,
5515         * moon-plugin.h: Rename DEBUG to DEBUGMSG.
5517 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5519         * moon-plugin.h,
5520         * moon-plugin.cpp: Change demo code to class method CreateDemoControls.
5522 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5524         * moon-plugin.cpp: Add canvas, connect it to surface and get demo working
5525         back.
5527 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5529         * moon-plugin.h,
5530         * moon-plugin.cpp: Rename CreateControls to CreateWindow.
5532 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5534         * Makefile.am: Add $(MOON_LIBS) to linker options.
5536 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5538         * plugin-glue.cpp: Dont delete plugin object since right now it causes some
5539         segfault when change to another page.
5541         * moon-plugin.cpp: Got scripting mode enabled by default.
5543 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5545         * plugin-glue.cpp: Fix plugin destruction.
5546         * moon-plugin.cpp: Change button to gtk label with plugin name and version.
5548 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5550         * plugin-glue.cpp: Set instance data to NULL to prevent error when browser
5551         closes.
5553         * moon-plugin.cpp: 
5554         - Disabled demo mode.
5555         - Enabled Scripting mode.
5556         - Fix runtime object creation, dont user NPN_RetainObject anymore.
5557         - Fix also object properties creation (settings).
5558         - Release object on class destructor.
5560 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5562         * moon-plugin.cpp: Simplify controls creation and add a button when you are
5563         not in demo mode. It is just for now to made some tests.
5565 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5567         * moon-plugin.cpp: Remove runtime initialization because it is wrong place.
5568         * plugin-glue.cpp: Add gtk and runtime initialization to NPP_Initialize.
5570 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5572         * moon-plugin.cpp: Add some initialization code to prevent some segmentation
5573         fault.
5575 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5577         * moon-plugin.cpp: Add SCRIPTING and DEMO macros to make available only
5578         tested features, it mean that developers must uncomment this MACRO lines
5579         before work on scripting and libmoon stuff.
5581 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5583         * moon-plugin.cpp: Fix gtkplug creation fro 64bit systems. 
5585         * Makefile.am: Add -lavformat to link options.
5587         Thanks Grendel for this patches.
5589 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5591         * moon-plugin.h: Change version number 0.99.0, SilverLight scripts searchs 
5592         for version > 0.95.1.
5594         * test/index.html: Small fixes in test page.
5596 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5598         * test/index.html: Add javascript settings test.
5600         * moon-plugin.cpp,
5601         * moon-plugin.h: Implementing Settings class.
5603 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5605         * moon-plugin.cpp,
5606         * moon-plugin.h: Implement runtime properties structure and 'version'
5607         property.
5609 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5611         [PluginClass added to handle script objects]
5613         * plugin-class.cpp,
5614         * plugin-class.h,
5615         * Makefile.am: PluginClass added.
5617         * moon-plugin.cpp, 
5618         * moon-plugin.h: PluginInstance now inherit from PluginClass, also 
5619         scriptclass was removed and "this" is used in NPN_CreateObject. For
5620         NPN_CreateObject we can now always use classes inherited by PluginClass.
5622 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5624         * Makefile.am: Remove idl related code, new object system dont need idl or
5625         xpi files. 
5626         * nsIScriptableMoonPlugin.h: deleted.
5627         * nsIScriptableMoonPlugin.idl: deleted.
5629 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5631         * plugin-glue.cpp: Fix the instance initialization problems, the object 
5632         instance was empty after creation.
5634 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5636         * moon-plugin.cpp, 
5637         * moon-plugin.h,
5638         * plugin-glue.cpp: Fix SetValue declaration.
5640         * plugin-entry.cpp: Fix a lot of declarations, support for win and mac,
5641         support for runtime version checking and some other minor fixes.
5643 2007-06-06  Everaldo Canuto  <ecanuto@novell.com>
5645         * moon-plugin.cpp: Comment container destructor to prevent segfault.
5647 2007-06-06  Everaldo Canuto  <ecanuto@novell.com>
5649         * moon-plugin.cpp: Fix API change for Canvas.
5651 2007-06-06  Sebastien Pouliot  <sebastien@ximian.com> 
5653         * moon-plugin.cpp: Fix API change for SolidColorBrush.
5655 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5657         * moon-plugin.h: Add PLUGIN_OURNAME and PLUGIN_OURVERSION constants to 
5658         specify our internal name and version that differs from plugin version 
5659         detected by browser. SilverLight javascripts checks for WPF plugin and
5660         0.8.5.0 version.
5662         * moon-plugin.cpp: Change runtime initialization to CreateControls, before
5663         show demo.
5665         * plugin-glue.cpp: Fix memory allocation problems in NPP_New.
5667 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5669         * plugin-glue.cpp,
5670         * moon-plugin.cpp,
5671         * moon-plugin.h: Add initialization and remove demo transformation.
5673 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5675         [Remove ScriptablePeer code]
5677         * nsScriptablePeer.h, nsScriptablePeer.cpp: Removed.
5679         * plugin-glue.cpp: Fix debugger messages.
5681         * Makefile.am, 
5682         * moon-plugin.cpp,
5683         * moon-plugin.h: Remove ScriptablePeer code since now Mozilla use
5684         another aproach.
5686 2007-06-05  Sebastien Pouliot  <sebastien@ximian.com> 
5688         * moon-plugin.cpp: Fix API change for Rectangle.
5690 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5692         * moon-plugin-glue.cpp: Splited in plugin-glue.cpp and plugin-entry.cpp.
5693         * plugin-glue.cpp: Fix 'undefined symbol' creating NPP_SetValueX.
5695 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5697         * Makefile.am: Add some linker flags, it prevents crash on Epiphany.
5699 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5701         * test/index.html: Add script to demo html page.
5703 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5705         * moon-plugin.cpp: Add runtime init to demo code.
5707 2007-06-04  Everaldo Canuto  <ecanuto@novell.com>
5709         * plugin/Makefile.am: Generate and install .xpt for install-plugin target.
5711 2007-06-04  Everaldo Canuto  <ecanuto@novell.com>
5713         [Implement scriptable to plugin]
5715         * plugin/test/index.html: Sample jscript included.
5717         * plugin/Makefile.am: Generates .h from idl file use xpidl.
5719         * plugin/moon-plugin.h,
5720         * plugin/moon-plugin.cpp,
5721         * plugin/moon-plugin-glue.cpp: Implement scriptable and some clean up.
5723         * plugin/nsIScriptableMoonPlugin.h,
5724         * plugin/nsIScriptableMoonPlugin.idl,
5725         * plugin/nsScriptablePeer.cpp,
5726         * plugin/nsScriptablePeer.h: New scriptable classes.
5728 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5730         * moon-plugin-glue.cpp,
5731         * moon-plugin.h,
5732         * moon-plugin.cpp: Fix GetValue and implement SetValue.
5734 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5736         * moon-plugin.h: Change plugin name, version and description to mimic 
5737         SilverLight and can be recognize as a valid plugin.
5739 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5741         * moon-plugin.c: Destroy objects on class destructor to prevent browser
5742         crashes.
5744 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5746         [Clean up demo and make some class fields private ]
5748         * moon-plugin-glue.c,
5749         * moon-plugin.h,
5750         * moon-plugin.c: Now just a surface control is added to plugn container,
5751         some field is now private demo was refactored.
5753 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5755         * Makefile.am: Compile if needed for install-plugin target.
5757 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5759         [Move to c++ based classes ]
5760         
5761         * moon-plugin-glue.c: Fix getvalue to return error when no instance 
5762         available.
5764         * moon-plugin.h,
5765         * moon-plugin.c: Change all function to class methods, also move wrapper
5766         functions to moon-plugin-glue.
5768 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5770         * moon-plugin.h,
5771         * moon-plugin.c,
5772         * moon-plugin-glue.c: Remove moon_plugin_initialize and moon_plugin_shutdown
5773         since whe alread have NP_Initialize and NP_Shutdown. Also change 
5774         PluginInstance structure to class (complete class suppont comming soon).
5776 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5778         * moon-plugin-glue.c: Some comments and stetic changes.
5780 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5782         * moon-plugin.h: Mime type description chage to 'WPFe Plug-In' to handle 
5783         SilverLight objects.
5785 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5787         * moon-plugin.c:
5788         * moon-plugin.h: Remove unused members to provide a clean code.
5790 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5792         * Makefile.am: Fix link options.
5794 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5796         * moon-plugin-glue.c:
5797         * moon-plugin.c:
5798         * moon-plugin.h: Rename initialise to initialize.
5800         * Makefile.am: Add libmoon to link and install it on plugin dir.
5802 2007-06-02  Everaldo Canuto  <ecanuto@novell.com>
5804         * moon-plugin-glue.c: Renamed to moon-plugin-glue.cpp.
5805         * moon-plugin.c: Renamed to moon-plugin.cpp.
5806         * Changelog: Create a separated change log for plugin.
5807         * Makefile.am: Renamed to moon-plugin.cpp.
5808         * moon-plugin.h: Renamed to moon-plugin.cpp.
5809         
5810         [Also add a sample to show libmoon features in browser]