in class/System.Windows/Mono:
[moon.git] / plugin / ChangeLog
blob9f39f0927f65ab7f1c99e19386557d6f51211329
1 2009-09-23  Chris Toshok  <toshok@ximian.com>
3         * cbinding.h: regen.
5         r: lewing
7 2009-09-23  Chris Toshok  <toshok@ximian.com>
9         * plugin-accessibility.h (class Accessibility):
10         @ManagedEvents=Manual
12         * cbinding.h: regen.
14         r: spouliot, andriea
16 2009-09-18  Jackson Harper  <jackson@ximian.com>
18         * plugin-class.cpp:
19         * plugin.cpp: Remove the import_default_xmlns stuff, this is
20         handled by flags now.
21         * cbinding.h: regen
23 2009-09-16  Jeffrey Stedfast  <fejj@novell.com>
25         * plugin.cpp (Properties): Display the RuntimeVersion attribute.
27         r:toshok
29 2009-09-14  Chris Toshok  <toshok@ximian.com>
31         * plugin-class.cpp (MoonlightErrorEventArgs::GetProperty): use
32         ErrorEventArgs accessors.
34         * plugin.cpp (PluginInstance::network_error_tickcall): pass a
35         MoonError to the ErrorEventArgs ctor.
36         (PluginInstance::splashscreen_error_tickcall): same.
37         (PluginXamlLoader::TryLoad): same, use accessor.
38         (PluginInstance::ManagedExceptionToErrorEventArgs): same.
40 2009-09-14  Jackson Harper  <jackson@ximian.com>
42         * plugin-debug.cpp: Use foreach instead of gtkiter
44 2009-09-11  Sebastien Pouliot  <sebastien@ximian.com>
46         * plugin.cpp: Fix regression/crash on DRT455 since 
47         splashscreensource is now freed. Add missing g_free on 
48         vm_missing_file
50         r: sde
52 2009-09-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
54         * cbinding.h: Regenerated.
56         r: sde
58 2009-09-10  Jackson Harper  <jackson@ximian.com>
60         * plugin.cpp: Add some namescope info to the debugging tree
62         r: spouliot
64 2009-09-10  Jackson Harper  <jackson@ximian.com>
66         * plugin.cpp|h: Update signature on SetProperty
68 2009-09-09  Chris Toshok  <toshok@ximian.com>
70         * plugin.cpp (PluginInstance::PluginInstance): init
71         culture/uiculture to null.
72         (PluginInstance::~PluginInstance): free culture/uiculture, and
73         also plug a leak by freeing onSourceDownloadProgressChanged,
74         onSourceDownloadComplete, and splashscreensource.
75         (PluginInstance::Initialize): parse culture/uiculture <param>
76         tags.
77         (PluginInstance::InitializePluginAppDomain): track change to
78         InitializeDeployment argcount
79         (PluginInstance::ManagedInitializeDeployment): add
80         culture/uiculture args when calling the managed methods.
82         r: andreia
84 2009-09-03  Stephane Delcroix  <sdelcroix@novell.com>
86         * plugin-class.cpp|.g.cpp.in|.h.in: no longer auto generate bindings
87         for MSI, copy paste the autogenerated from .g.cpp to .cpp. add a 
88         SetProperty method and use to set the UriSource of the DZITS instead
89         of creating a new DZITS everytime.
91         * plugin-class.h|g.cpp: regen
93 2009-09-03  Alan McGovern  <amcgovern@novell.com>
95         * plugin.cpp: It's possible that window will be null, so check
96           it exists before using it. r: toshok
98 2009-08-27  Chris Toshok  <toshok@ximian.com>
100         * plugin.cpp (PluginInstance::NewStream): set the current deployment here.
102         r: kangaroo
103         
104 2009-08-26  Jackson Harper  <jackson@ximian.com>
106         * plugin.cpp: check for the zip file magic instead of using file
107         extension. r: toshok
109 2009-08-26  Alan McGovern  <amcgovern@novell.com>
111         * cbinding.h: regen r: shana
113 2009-08-26  Jackson Harper  <jackson@ximian.com>
115         * plugin.cpp: Use the xaml function for parsing bools so things
116         like enablehtmlaccess=1 are handled properly.
118         r: shana && kangaroo
120 2009-08-24  Sebastien Pouliot  <sebastien@ximian.com>
122         * plugin-class.cpp: Free NPVariant array leaks
124         r: andreia
126 2009-08-16  Chris Toshok  <toshok@ximian.com>
128         * plugin.cpp (plugin_menu_about): we aren't doing previews
129         anymore, we're doing betas.
131         r: andreia
132         
133 2009-08-12  Alan McGovern  <amcgovern@novell.com>
135         * cbinding.h: regen r: toshok
137 2009-07-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
139         * plugin.mdp: Connect the Build command in
140         MonoDevelop with 'make install'.
142 2009-07-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
144         * plugin.mdp: Use Makefile integration.
146 2009-07-23  Sebastien Pouliot  <sebastien at ximian.com>
148         * plugin.cpp: Make sure 'source_original' is set even when scripting
149         is used to initialize source. Remove xdomain warnings from mstv.cz
151 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
153         * plugin-class.cpp:
154         * plugin-class.h.in: Added html_object_retain.
156         * plugin-class.h: Regenerated.
158 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
160         * plugin.mdp: Updated.
162 2009-07-22  Sebastien Pouliot  <sebastien at ximian.com> 
164         * plugin-class.cpp: Fix DEBUG_WARN_NOTIMPLEMENTED macro to output 
165         all related information on the same line. Use NULL_TO_NPVARIANT
166         with MoonId_MethodName (since this is a string).
167         * windowless.cpp: Initialize GdkEventKey correctly (valgrind) and
168         provide a Window pointer so we avoid a SEGSIGV when TextBox calls
169         gtk_im_context_xim_filter_keypress (webide)
171 2009-07-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
173         * plugin-class.cpp: Incorporate significant advances in debugging
174         technology.
176 2009-07-20  Chris Toshok  <toshok@ximian.com>
178         * plugin-class.cpp (MoonlightContentObject::Invoke): pass null for
179         resource_base.
180         (MoonlightContentObject::Invoke): same.
182         * plugin.h|cpp: add resource base parameters to all the XamlLoader
183         calls, and pass stream->url for that value when we have it.
185         * cbinding.h: regen.
186         
187 2009-07-20  Chris Toshok  <toshok@ximian.com>
189         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
190         the fallback findName lookup here, since we removed it from
191         DependencyObject::FindName.
193 2009-07-18  Jackson Harper  <jackson@ximian.com>
195         * plugin-class.cpp:
196         * plugin.h|cpp: Add a flag to import the default xmlns. Basically
197         nothing sets this to true except for the JS CreateFromXaml
198         function.
200 2009-07-17  Larry Ewing  <lewing@novell.com>
202         * plugin.cpp:  get agressive about flushing loaded events to the
203         plugin from splash elements.  Fixes 285,445.
205 2009-07-16  Larry Ewing  <lewing@novell.com>
207         * plugin.cpp, plugin.h: rework the splash logic to handle document
208         fragment references and get closer to emitting the correct events
209         in the correct order.
211         * plugin-class.cpp: use PluginInstance::IsLoaded instead of poking
212         at the surface.
214 2009-07-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
216         * cbinding.h: Regenerated.
218 2009-07-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
220         * plugin.cpp: PluginInstance::UpdateSourceByReference: add a
221         Deployment::SetCurrent.
223 2009-07-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
225         * plugin-entry.cpp: Push/Pop the current deployment on every
226         transition to the browser. Makes MS DRT #2003 not spew a lot
227         of deployment mismatch warnings.
229 2009-07-15  Larry Ewing  <lewing@novell.com>
231         * plugin.cpp: reconnect onload in LoadXAML and LoadXAP so that
232         source changes reset the oneshot call.  Fixes DRT#21.
234 2009-07-13  Sebastien Pouliot  <sebastien at ximian.com> 
236         * plugin.cpp: Check for NULL *and* Empty inside UpdateSource.
237         Gives a bit of progress for DRT#354
239 2009-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
241         * cbinding.h: Regenerated.
243 2009-07-13  Alan McGovern  <amcgovern@novell.com>
245         * plugin-class.h.in: Var should be named
246           'OnSourceDownloadComplete' not 'OnSourceDownloadCompleted'
248 2009-07-13  Alan McGovern  <amcgovern@novell.com>
250         * cbinding.h: Commit the initial implementation of the
251           TabNavigationWalker. Supports the three tabbing modes and
252           also forward/backward tabbing. Passes drt 323 except for a
253           default focusing issue.
255 2009-07-10  Sebastien Pouliot  <sebastien at ximian.com> 
257         * plugin.cpp: Only call EmitSourceDownloadComplete is we needed
258         to download the splashscreen (versus embedded using #)
260 2009-07-10  Sebastien Pouliot  <sebastien at ximian.com>
262         * plugin.cpp|h, plugin-class.cpp|h: Rename 
263         SourceDownloadCompletedEvent to SourceDownloadCompleteEvent
265 2009-07-09  Sebastien Pouliot  <sebastien at ximian.com>
267         * plugin.cpp: Check for redirection each time a new stream
268         is created (i.e. before downloading) using the current URI (not
269         the original one) so we can detect redirection correctly.
271 2009-07-07  Rolf Bjarne Kvinge  <RKvinge@novell.com>
273         * plugin-class.cpp: EventObjectCreateWrapper: return null as the
274         wrapper for a null object.
276 2009-07-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
278         * plugin-downloader.h: Add response getter.
280         * plugin-downloader.cpp: Regenerated.
282         * cbinding.h: Regenerated.
284 2009-07-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
286         * plugin-downloader.cpp: When calling Send, reset the finished
287         field, so that we abort it properly upon destruction if the
288         PluginDownloader has been reused.
290 2009-07-01  Chris Toshok  <toshok@ximian.com>
292         * plugin-proxy.cpp (load): check the return value of
293         dlopen(libmono.so) before we make use of mono_config_parse_memory.
295         * plugin-entry.cpp: remove the moz-sdk includes, since they get
296         pulled in from moonlight.h
298         * plugin-class.h|cpp (MoonlightContentObject::GetProperty): add
299         Accessibility support.
300         (MoonlightContentObject::SetProperty): same.
301         (MoonlightContentObject::~MoonlightContentObject): unref the
302         accessibility object.
304         * moonlight.h: add the moz-sdk/ prefix for the np* headers here.
306         * Makefile.am (libmoonplugin_la_SOURCES): add
307         plugin-accessibility.
308         (INCLUDES): remove the moz-sdk include, and add it the #includes
309         so things work when files are included from the src/ directory.
311         * plugin-accessibility.h|cpp: new DependencyObject subclass to
312         represent the plugin's content.accessibility object.
313         
314         * cbinding.h, plugin-class.h: regen.
316 2009-06-30  Jackson Harper  <jackson@ximian.com>
318         * plugin-class.cpp: Update function signature, add the validate
319         templates param
320         * cbinding.h: regen
322 2009-06-30  Alan McGovern  <amcgovern@novell.com>
324         * plugin-class.cpp: Use SetValueWithError instead of SetValue
325           and propagate the exception back to javascript. Fixes drt
326           638
328 2009-06-29  Sebastien Pouliot  <sebastien@ximian.com>
330         * plugin.cpp: Initialize enable_html_access to true since the value
331         can be queried before anything is loaded (e.g. scripting). Remove
332         failure message from DRT #21 bitmap.
334 2009-06-26  Chris Toshok  <toshok@ximian.com>
336         * plugin-class.h.in|cpp: add support for GridLengths.
338         * plugin-class.h: regen.
340 2009-06-26  Larry Ewing  <lewing@novell.com>
342         * plugin-class.h.in: add MoonlightCornerRadius and MoonIds.
344         * plugin-class.cpp: implement cornerradius foo.
346 2009-06-25  Chris Toshok  <toshok@ximian.com>
348         * plugin-class.cpp (thickness_mapping): fix the mapping of "top"
349         to MoonId_Top, not MoonId_Right.  Fixes drt test 421.
351 2009-06-25  Chris Toshok  <toshok@ximian.com>
353         * plugin.cpp (PluginXamlLoader::SetProperty): track change to
354         xaml_is_valid_event_name.
356 2009-06-25  Chris Toshok  <toshok@ximian.com>
358         * plugin-class.cpp (_set_dependency_property_value): add a
359         MoonError parameter so we can communicate it back to our callers.
360         (MoonlightTextBoxObject::Invoke): use textbox->SelectWithError and
361         throw the exception if it failed.
362         (MoonlightPasswordBoxObject::Invoke): same.
364 2009-06-25  Chris Toshok  <toshok@ximian.com>
366         * plugin-class.cpp (MoonlightCollectionObject::Invoke): add
367         "remove(string)" support for resource dictionaries.
368 2009-06-25  Chris Toshok  <toshok@ximian.com>
370         * plugin-class.cpp (value_to_variant): add support for
371         FontWeight/Style/Stretch here.  Fixes DRT test 94.
373 2009-06-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
375         * cbinding.h: Regenerated.
377 2009-06-25  Sebastien Pouliot  <sebastien@ximian.com>
379         * plugin-class.cpp: Return "" not NULL for empty files (DRT #180)
381 2009-06-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
383         * plugin-class.cpp: proxy_listener_to_javascript: we need to restore
384         the current deployment after returning from javascript, if the
385         javascript did anything which caused firefox to process events,
386         we may have entered any other deployment while processing those
387         events.
389 2009-06-24  Chris Toshok  <toshok@ximian.com>
391         * cbinding.h: regen.
393 2009-06-22  Chris Toshok  <toshok@ximian.com>
395         * plugin-class.h.in|cpp: MediaElements and Images need to subclass
396         from UIElement here instead of DependencyObject, or else we can't
397         call UIElement methods on them.  gets fixture #282 further than
398         the stupid .js error.
400         * plugin-class.h: regen
402 2009-06-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
404         * plugin-class.cpp: Add support for MultiScaleImage methods.
406         * plugin-class.g.cpp.in: Added required header.
408         * plugin-class.g.cpp:
409         * plugin-class.h:
410         * cbinding.h: Regenerated.
412 2009-06-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
414         * plugin.mdp: Updated with new files.
416 2009-06-18  Jeffrey Stedfast  <fejj@novell.com>
418         * plugin-class.cpp (value_to_variant): Handle Type::CHAR by
419         converting to an NPVariant string.
421 2009-06-18  Sebastien Pouliot  <sebastien@ximian.com>
423         * cbinding.cpp|h: regen
424         * plugin.cpp|h: Keep the original location and source (before any
425         redirection can happen) and use them in the check for cross-domain
426         applications. Fixing DRT 955-958
428 2009-06-17  Chris Toshok  <toshok@ximian.com>
430         * plugin-class.h.in, plugin-class.cpp: add textbox and passwordbox
431         types (select and selectAll methods.)
433         * plugin-class.g.*, cbinding.h: regen.
435 2009-06-17  Alan McGovern  <amcgovern@novell.com>
437         * plugin-class.g.cpp.in: We need to include textbox.h 
439 2009-06-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
441         * plugin.cpp: SetXapLocation must be set before 
442         ManagedInitializeDeployment is called, since
443         ManagedInitializeDeployment ends up executing managed code, which
444         may need SetXapLocation to be set (for downloading files). 
445         MS DRT #483 is an example.
447 2009-06-16  Sebastien Pouliot  <sebastien@ximian.com>
449         * plugin.cpp: Set default cross_domain_app to false since using
450         embedded XAML is valid (and not cross domain) and won't trigger
451         a load (to update the value). Should fix XAML #401 test
453 2009-06-15  Sebastien Pouliot  <sebastien@ximian.com>
455         * plugin.cpp|h: Move cross-domain application check to it's own
456         method. Call it once we download the source (it could be later
457         than anticipated). This fix sites using custom scripts like 
458         ASP.NET <asp:Silverlight>
459         * plugin-class.cpp: Don't emit javascript events for cross
460         domain applications.
462 2009-06-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
464         * plugin.cpp: same_site_of_origin: add nre protection. Makes
465         moonlight test #408 not crash.
467 2009-06-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
469         * plugin-class.cpp: Update after MediaElementState -> MediaState 
470         name change.
472 2009-06-13  Sebastien Pouliot  <sebastien@ximian.com>
474         * plugin.cpp|h: Move cross-domain application check earlier to
475         not register the events (e.g. onLoad, onError...) for cross-domain
476         applications. Complete fix for DRT 361, 362, 364, 365 and 370
478 2009-06-12  Sebastien Pouliot  <sebastien@ximian.com>
480         * plugin.cpp|h: Fix 'enableHtmlAccess' to have a different 
481         default value when used for the same 'site of origin' (true)
482         wrt to be used for 'cross-domain' applications (false).
483         * plugin-class.cpp: Add restrictions on cross-domain applications
484         based on the manifest ExternalCallersFromCrossDomain value.
486 2009-06-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
488         * plugin.cpp: Disable the spinner for now, it's breaking a lot of
489         tests.
491 2009-06-10  Larry Ewing  <lewing@novell.com>
493         * plugin.cpp (CreateWindow): add a simple spinner if nothing is
494         specified.
496         * plugin-spinner.h: new simple spinner.
498 2009-06-08  Chris Toshok  <toshok@ximian.com>
500         * plugin.cpp (class PluginClosure): new class to wrap
501         PluginInstance.
502         (PluginInstance::network_error_tickcall): use PluginClosure.
503         (PluginInstance::splashscreen_error_tickcall): use PluginClosure,
504         also don't UpdateSource if the surface is zombified (since the
505         plugin is likely already gone.)
506         (PluginInstance::UrlNotify): use PluginClosure's and add the tick
507         calls directly via the timemanager so we can specify both method
508         and closure.
510         * plugin.h (class PluginInstance): make network_error_tickcall and
511         splashscreen_error_tickcall static methods on PluginInstance.
513 2009-06-08  Jackson Harper  <jackson@ximian.com>
515         * plugin.cpp|h: Update signature for SetProperty
517 2009-06-05  Chris Toshok  <toshok@ximian.com>
519         * plugin.cpp (PluginInstance::UrlNotify): only emit the 2104 error
520         if the network failure was on the XAP itself.  move the
521         Deployment::SetCurrent call a little earlier, and make the splash
522         screen download error async as well.
524 2009-06-04  Chris Toshok  <toshok@ximian.com>
526         * plugin.cpp (PluginInstance::MonoGetPropertyFromName): new
527         method, look up the property on a type and print a nice warning if
528         we fail.
529         (surface_network_error_tickcall): we can't emit the network error
530         from inside UrlNotify, since the handler can remove the plugin at
531         that point, and firefox takes a shit all over itself in that case.
532         (PluginInstance::UrlNotify): if there was a network error
533         downloading the xap, add the tick call to emit the proper error.
534         (PluginInstance::InitializePluginAppDomain): look up the
535         MoonException type and some properties to use when accessing it.
536         (PluginInstance::ManagedExceptionToErrorEventArgs): convert from a
537         managed exception to an ErrorEventArgs which we'll then emit
538         through the surface's ErrorEvent.
539         (PluginInstance::ManagedCreateXamlLoader): check for an exception,
540         and if there was one, emit the error on the surface.
541         (PluginInstance::ManagedInitializeDeployment): same.
542         (PluginInstance::ManagedDestroyApplication): same.
544         * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
545         set the current deployment earlier.  definitely needs to be set
546         before we call the callback :)
548 2009-06-02  Geoff Norton  <gnorton@novell.com>
550         * plugin.cpp: Ensure we dont start downloading the source until we have
551         the splash.  If the splash 404's we need to emit a 2108.
553 2009-06-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
555         * cbinding.h: Regenerated
557 2009-06-01  Chris Toshok  <toshok@ximian.com>
559         * plugin-class.cpp (MoonlightContentObject::Invoke): for
560         createFromXaml make sure we call LoadVM on the XamlLoader so we
561         can access managed types (like StackPanel).
563 2009-06-01  Chris Toshok  <toshok@ximian.com>
565         * plugin-class.cpp|h: add MoonlightThickness* and add
566         Type::THICKNESS to value_to_variant.  this fixes a few instances
567         in the tests where they're accessing margins from javascript.
569 2009-05-28  Jeffrey Stedfast  <fejj@novell.com>
571         * plugin-utils.cpp: New source file which has utility functions
572         such as check_arg_list().
574         * plugin-class.h.in: Removed static impl of check_arg_list() -
575         this was causing compile warnings about unused functions and also
576         bloating up the binary ;-)
578 2009-05-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
580         * plugin.cpp: Sprinkle SetCurrentDeployment.
582 2009-05-27  Geoff Norton  <gnorton@novell.com>
584         * plugin.cpp|h: Ensure we only emit the source progress/completed events
585         on the source, and not on the source splash ourself.  Also, we need to make
586         sure we have a toplevel before emitting otherwise sender is null going to the
587         js event.
589 2009-05-27  Geoff Norton  <gnorton@novell.com>
591         * plugin.cpp|h:
592         * plugin-class.cpp|h|h.in: Support the splash screen progress/completed events
593         * cbinding.h: regen
595 2009-05-27  Geoff Norton  <gnorton@novell.com>
597         * plugin.cpp: Avoid a double-delete of the splash xaml_loader
599 2009-05-27  Geoff Norton  <gnorton@novell.com>
601         * plugin.cpp|h: Support splash screen.
603 2009-05-27  Geoff Norton  <gnorton@novell.com>
605         * plugin.cpp|h: Ensure we spin up a default application for the xaml
606         case as well since <Canvas><StackPanel /></Canvas> works.
608 2009-05-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
610         * plugin-downloader.h:
611         * plugin-downloader.cpp: Add support for retrieving response headers
612           and disable cache.
614         * cbinding.h: Regenerated.
616         * browser-bridge.h: Updated according to downloader API changes.
618         * plugin.mdp: Updated.
620 2009-05-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
622         * plugin-downloader.cpp: Don't hard code the verb.
624 2009-05-25  Chris Toshok  <toshok@ximian.com>
626         * plugin-class.cpp (value_to_variant): robustify this and support
627         NULL Value*'s.  Fixes crash in DRT #485.
629 2009-05-23  Chris Toshok  <toshok@ximian.com>
631         * plugin-class.cpp, plugin-class.h: add a Control plugin class,
632         which exposes "focus".  Should get DRT #250 a little further (and
633         keep it from timing out.)
635 2009-05-21  Rusty Howell  <rhowell@novell.com>
637          * Makefile.am: Changed install dir to DIST_SUBDIRS for make dist
639 2009-05-21  Andreia Gaita  <avidigal@novell.com>
641         * plugin-class.cpp: disable throwing js exceptions on html_object_invoke
642         and html_object_get_property, the exceptions get stuck on firefox and
643         any subsequent eval call will fail
645 2009-05-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
647         * npstream-request.cpp: Fix typo.
649 2009-05-20  Rusty Howell  <rhowell@novell.com>
651          * Makefile.am: Added install dir to SUBDIRS for 'make dist'
653 2009-05-20  Larry Ewing  <lewing@novell.com>
655         * plugin.cpp (TryLoad): update the error string for 2021 to match
656         2.0.
658 2009-05-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
660         * cbinding.cpp|h: Regenerated.
662 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
664         * cbinding.cpp|h: Regenerated.
666 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
668         * cbinding.cpp|h: Regenerated.
670 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
672         * cbinding.cpp|h: Regenerated.
674 2009-05-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
676         * plugin.h: Add a GetBrowserHost which returns a void* to avoid
677         putting NPObject/mozilla headers in the c bindings.
679         * cbinding.cpp|cbinding.h: Regenerated.
681 2009-05-17  Andreia Gaita  <avidigal@novell.com>
683         * plugin-class.cpp: If a managed method called from js returns
684         void, create a valid NPVariant_Void return object
686 2009-05-15  Chris Toshok  <toshok@ximian.com>
688         * plugin-class.cpp (MoonlightCollectionObject::Invoke): for
689         getItem on a resource dictionary, a string parameter (the key)
690         works as well.
692 2009-05-13  Jackson Harper  <jackson@ximian.com>
694         * plugin.cpp|h: Update params for SetProperty.
696 2009-05-12  Larry Ewing  <lewing@novell.com>
698         * plugin-debug.cpp (reflect_value): add output for point.
700 2009-05-11  Larry Ewing  <lewing@novell.com>
702         * plugin-class.cpp: remove UpdateLayout now that it is
703         autogenerated.
705 2009-05-09  Andreia Gaita  <avidigal@novell.com>
707         * plugin-class.h.in, plugin-class.g.cpp.in: Added, used to 
708         generate Moonlight* classes and MoonId types, for automatic
709         js binding with the GenerateJSBinding annotation.
710         plugin-class.cpp has the bulk of the code, plugin-class.g.cpp
711         has the autogenerated implementations.
713         * plugin-class.[h|g.cpp]: regen.
715         * plugin-class.cpp: moved some definitions to the header file,
716         so .g.cpp can use them too. Added uielement class support, which
717         is autogenerated on plugin-class.g.cpp. Removed CaptureMouse and
718         ReleaseMouseCapture, it's handled on uielement on .g.cpp now.
720         * Makefile.am: Added plugin-class.g.cpp
722 2009-05-03  Chris Toshok  <toshok@ximian.com>
724         * plugin-class.h|.cpp (MoonlightDependencyObjectObject::Invoke):
725         add UpdateLayout() as a JS callable function.  fixable a JS error
726         in the MS DRT.
728 2009-05-02  Chris Toshok  <toshok@ximian.com>
730         * plugin-proxy.cpp (load): add RTLD_GLOBAL to real_plugin,
731         otherwise we can't call mono_config_parse_memory from the plugin
732         loader (since it doesn't link to libmono directly).
734 2009-05-02  Rusty Howell  <rhowell@novell.com>
736         * plugin-proxy.cpp: Detect which libmoonloader we are (xpi or sys)
737         and dlopen accordingly
738         * moonlight.h: Remove PLUGIN_INSTALL
739         * plugin-proxy-xpi.cpp: removed from svn
740         * Makefile.am: Added check in user-plugin target.
741         Changed source of libmoonloader back to plugin-proxy.cpp
743 2009-04-22  Chris Toshok  <toshok@ximian.com>
745         * moonlight.h: moon the #include <glib.h> here from windowless so
746         we can guarantee glibconfig.h has been included before we check
747         GLIB_SIZEOF_VOID_P.
749         * windowless.h: drop the include glib.h from here.
751 2009-04-22  Rusty Howell  <rhowell@novell.com>
753         * make builds separate binaries for xpi
754                 libmoonloaderxpi, libmoonpluginxpi
756 2009-04-20  Chris Toshok  <toshok@ximian.com>
758         * plugin.cpp (plugin_menu_about): use a preview link for preview
759         releases.
761 2009-04-18  Chris Toshok  <toshok@ximian.com>
763         * plugin-class.cpp (value_to_variant): add support for FontFamily.
765 2009-04-18  Chris Toshok  <toshok@ximian.com>
767         * plugin-class.cpp (MoonlightStoryboardObject::Invoke): track
768         storyboard changes.
770 2009-04-17  Chris Toshok  <toshok@ximian.com>
772         * plugin.h|.cpp: remove loaded_xap field, and use
773         GetDeployment()->IsLoadedFromXap().  Also, switch from
774         Surface::SetXapLocation to Deployment::SetXapLocation.
776 2009-04-16  Jeffrey Stedfast  <fejj@novell.com>
778         * plugin-debug.cpp (reflect_value): Hush formatter warnings.
780 2009-04-16  Geoff Norton  <gnorton@novell.com>
782         * plugin-debug.cpp: Avoid having a null deployment in remove_destroyed.
784 2009-04-16  Geoff Norton  <gnorton@novell.com>
786         * plugin-debug.cpp: Avoid having a null deployment in selection_changed.
788 2009-04-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
790         * plugin.h:
791         * plugin.cpp:
792         * plugin-class.cpp: Implement some missing js properties.
793           Almost completely fixes MS DRT #21.
795 2009-04-15  Stephane Delcroix  <sdelcroix@novell.com>
797         * plugin.cpp (PluginInstance::LoadXAP): set the surface xap_location
799 2009-04-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
801         * plugin.h:
802         * plugin.cpp:
803         * plugin-class.h: Added @GeneratePInvoke to all methods used
804           in managed code. For C++ methods also generate the
805           corresponding C method.
807         * cbinding.h:
808         * cbinding.cpp: Regenerated.
810 2009-04-10  Jackson Harper  <jackson@ximian.com>
812         * plugin-class.cpp: Instead of unreffing just delete the value.
814 2009-04-09  Jackson Harper  <jackson@ximian.com>
816         * plugin.cpp: Updated method names.
817         * plugin-class.cpp: Update now that we are getting Value*s from
818         xaml.
820 2009-04-08  Geoff Norton  <gnorton@novell.com>
822         * plugin-debug.cpp: Ensure we set the Deployment here too to avoid
823         crashes in the XAML window.
825 2009-04-08  Jeffrey Stedfast  <fejj@novell.com>
827         * plugin*.cpp|h: Use glib integer types rather than stdint.h types
828         especially see as how we aren't including stdint.h anywhere.
830         * plugin-class.cpp: Updated for slight Downloader API changes.
832 2009-04-07  Larry Ewing  <lewing@novell.com>
834         * plugin-debug.cpp (reflect_value): Fix the markup for GRIDLENGTH
835         so that it renders.
837 2009-04-06  Geoff Norton  <gnorton@novell.com>
839         * plugin-debug.cpp: Ensure we set our deployment before poking in
840         the surface
842 2009-04-03  Sebastien Pouliot  <sebastien@ximian.com>
844         * plugin.cpp|h: Parse enablehtmlaccess and allowhtmlpopupwindow
845         from the plugin properties. Add missing properties and C bindings.
847 2009-04-01  Stephane Delcroix  <sdelcroix@novell.com>
849         * plugin-class.cpp: use Uri::ToString instead of originalstring.
850         BitmapImage::GetUriSource never returns a NULL
852 2009-04-01  Andreia Gaita  <avidigal@novell.com>
854         * plugin-class.[cpp|h]: move some declarations to the header
855         so that the bridge code can use it too.
857 2009-03-31  Jb Evain  <jbevain@novell.com>
859         * plugin-class.h: add key_code and char_code parameters
860         to callback_dom_event.
862 2009-03-30  Chris Toshok  <toshok@ximian.com>
864         * plugin.cpp: #include timemanager.h
866 2009-03-29  Geoff Norton  <gnorton@novell.com>
868         * plugin-class.cpp: Ensure that the ImageSource we get is a BitmapImage
869         before treating it as such.
871 2009-03-29  Geoff Norton  <gnorton@novell.com>
873         * plugin-class.cpp: Image.Source is always a BitmapImage
875 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
877         * plugin.cpp|h: Export a new function (get_plugin_dir) that returns
878         the location of the plugin.
879         * plugin-glue.cpp: Initialize the runtime using the plugin location.
881 2009-03-27  Andreia Gaita  <avidigal@novell.com>
883         * plugin.cpp: Don't release return from Eval if they're npobj,
884         client code might reference it later
886 2009-03-25  Chris Toshok  <toshok@ximian.com>
888         * plugin.cpp (PluginInstance::StreamAsFile): use uri accessors.
890         * plugin-class.cpp (MoonlightImageBrushObject::GetProperty): same.
891         (MoonlightImageObject::GetProperty): same.
893         * plugin-debug.cpp (get_common_prefix_len): same.
894         (save_callback): same.
896 2009-03-25  Jeffrey Stedfast  <fejj@novell.com>
898         * plugin-class.cpp (MoonlightObjectType::LookupName): No longer
899         takes an include_sl2 argument.
901         * plugin.cpp (PluginInstance::StreamAsFile): We no longer have
902         IsSilverlight2() so check the filename extension (fixed to not be
903         a gross hack). Also got rid of #if PLUGIN_2_0 confusion, we are no
904         longer supporting a 1.0-only build.
905         (PluginInstance::CreateWindow): Surface.ctor() no longer takes a
906         silverlight2 argument.
908         * plugin-debug.cpp (reflect_value): Don't crash when the
909         DependencyObject is null.
911 2009-03-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
913         * plugin-class.cpp: Move IsVersionSupported implementation to
914           Surface.
916 2009-03-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
918         * plugin.mdp:
919         * cbinding.h:
920         * Makefile.am:
921         * cbinding.cpp: Include generated files in the build.
923 2009-03-23  Chris Toshok  <toshok@ximian.com>
925         * plugin-class.cpp (value_to_variant): getting a Uri in the plugin
926         returns a string.
928 2009-03-21  Andreia Gaita  <avidigal@novell.com>
930         * plugin-class.[h|cpp]: Add html_object_invoke_self
931         (same as _invoke but with no name arg), that uses
932         NPN_InvokeDefault       instead.
934 2009-03-21  Chris Toshok  <toshok@ximian.com>
936         * plugin-class.cpp (MoonlightImageObject::GetProperty):
937         source->GetUriSource() returns a Uri, not a string.
938         (MoonlightImageBrushObject::GetProperty): same.
940 2009-03-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
942         * plugin-downloader.h:
943         * plugin-downloader.cpp: PluginDownloader: follow refcounting
944           laws and ref/unref the response.This fixes a crash where
945           firefox would unref FFxDownloaderResponse causing its
946           destruction, and then PluginDownloader would attempt to use
947           (abort) that response later on.
949 2009-03-10  Chris Toshok  <toshok@ximian.com>
951         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): for
952         DumpNameScope, s/LogicalParent/Parent.
953         (MoonlightDependencyObjectObject::Invoke): for GetParent, make
954         sure the dob is a frameworkelement subclass, and call
955         GetLogicalParent on it.
957 2009-03-10  Jackson Harper  <jackson@ximian.com>
959         * plugin-debug.cpp: COnsistentify method name.
961 2009-03-03  Jackson Harper  <jackson@ximian.com>
963         * plugin.cpp|h: Update signature of SetProperty.
965 2009-03-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
967         * plugin.cpp: Add informational printf.
969 2009-02-23  Chris Toshok  <toshok@ximian.com>
971         * plugin-class.cpp (MoonlightContentObject::Invoke): add better
972         error messages on createFromXaml.
974 2009-02-23  Andreia Gaita  <avidigal@novell.com>
976         * plugin-class.[cpp|h]: Add html_object_has_property so managed code
977         can check for properties before trying to get them. Free scriptable
978         objects hashtables.
980 2009-02-22  Larry Ewing  <lewing@novell.com>
982         * plugin-entry.cpp:
983         * plugin.cpp, plugin.h: add extra padding to our NPBool values so
984         that buggy browsers don't smash the stack.
986 2009-02-19  Andreia Gaita  <avidigal@novell.com>
988         * plugin-class.[cpp|h]: On [Get|Set]Property for scriptable objects,
989         use the property name instead of the handle to call back to the
990         property. This way we can reuse the virtual functions on
991         ScriptObject, and       it's one less GCHandle walking around.
992         Fix exception define to have a block.
994 2009-02-19  Andreia Gaita  <avidigal@novell.com>
996         * plugin-class.cpp: Fix casing lookup
998 2009-02-19  Andreia Gaita  <avidigal@novell.com>
1000         * plugin.cpp: Implement returning values from Evaluate
1001         * plugin-class.[cpp|h]: Expose variant_to_value so Evaluate can
1002         use it to convert values from js
1004 2009-02-17  Jeffrey Stedfast  <fejj@novell.com>
1006         * plugin-debug.cpp: Pass true as the only_changed argument to
1007         DO::GetProperties().
1009 2009-02-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1011         * plugin-class.cpp: Remove case for MediaErrorEventArgs.
1013 2009-02-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1015         * plugin-class.cpp: EventListenerProxy: set our object type
1016           upon construction.
1018 2009-02-16  Andreia Gaita  <avidigal@novell.com>
1020         * plugin-class.cpp: Check return value on GetProperty and throw a js
1021         exception if it wasn't found. Don't lowercase names, scriptable objects
1022         are case sensitive.
1024 2009-02-16  Geoff Norton  <gnorton@novell.com>
1026         * plugin-class.cpp|h: Image(Brush).(Image)Source is the UriSource of the
1027         underlying ImageSource in the javascript API.
1029 2009-02-14  Jeffrey Stedfast  <fejj@novell.com>
1031         * plugin-debug.cpp (reflect_dependency_object_in_tree): Updated to
1032         use DO::GetProperties() instead so that we could get attached
1033         properties as well.
1035 2009-02-14  Jeffrey Stedfast  <fejj@novell.com>
1037         * plugin-debug.cpp (reflect_dependency_object_in_tree): Fixed up
1038         to use Type::GetProperties().
1040 2009-02-11  Andreia Gaita  <avidigal@novell.com>
1042         * plugin-class.cpp: lowercase all method, property and event name
1043         references, they're all added in lowercase
1045 2009-02-11  Andreia Gaita  <avidigal@novell.com>
1047         * plugin-class.cpp (html_object_invoke): Check method invoke return
1048         value and throw an exception if it fails. Add an alternate "static"
1049         version of the js exception throwing macro.
1051 2009-02-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1053         * plugin-class.cpp: Change our static DependencyProperty
1054           backing fields to store an integer id instead of an
1055           instance to a DependencyProperty. This way we can have true
1056           per-deployment dependency properties.
1058 2009-02-10  Jackson Harper  <jackson@ximian.com>
1060         * plugin.cpp|h: Added a param to the SetProperty callback, plugin
1061         doesn't need to use it for anything.
1063 2009-02-05  Geoff Norton  <gnorton@novell.com>
1065         * plugin.cpp: We cannot safely null the deployment here as NPN_GetURLNotify
1066         can sync invoke NPN_URLNotify in the same tick, and we might need the deployment
1067         later as we unwind.
1069 2009-02-05  Jeffrey Stedfast  <fejj@novell.com>
1071         * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
1072         Updated for ReadLocalValue method rename.
1074         * plugin-downloader.cpp (plugin_downloader_create_webrequest):
1075         Don't crash if we don't have a browser bridge.
1077 2009-02-04  Jackson Harper  <jackson@ximian.com>
1079         * plugin.cpp|h: Updated xaml signatures.
1081 2009-02-04  Andreia Gaita  <avidigal@novell.com>
1083         * plugin-class.[cpp|h]: Change Invoke call to take a name parameter,
1084           so that methods can be called by name as well.
1086 2009-02-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1088         * plugin.cpp: PluginInstance::UrlNotify: We need to set the
1089           current deployment here.
1091         * plugin-glue.cpp: NPP_Destroy: We need to set the current
1092           deployment here.
1094 2009-02-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1096         * plugin-class.cpp: Use Type::GetName () instead of accessing
1097           the field directly.
1099 2009-02-03  Fernando Herrera  <fherrera@novell.com>
1101         * plugin.cpp: moonlight_flags is 64bits now.
1103 2009-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1105         * plugin-class.cpp: proxy_listener_to_javascript: we need to set the
1106         current deployment after emitting an event to javascript.
1108 2009-01-29  Geoff Norton  <gnorton@novell.com>
1110         * plugin.cpp:
1111         * plugin-class.cpp: Ensure that we set the correct context when dtoring our
1112         plugin and its js-object instances.
1114 2009-01-29  Geoff Norton  <gnorton@novell.com>
1116         * plugin.cpp: When there are 2 plugins on a page, StreamAsFile can be called
1117         after the deployment has been changed away from this instance.  Ensure we
1118         set our deployment properly in this case.
1120 2009-01-29  Geoff Norton  <gnorton@novell.com>
1121         
1122         * windowless.cpp: Store our creation deployment so we can emit events
1123         in the right deployment.
1125 2009-01-29  Geoff Norton  <gnorton@novell.com>
1127         * plugin.cpp: Register the surface with the Deployment.  Start cleaning
1128         up all the places we pass this around too.  (More to come)
1130 2009-01-29  Geoff Norton  <gnorton@novell.com>
1132         * plugin.cpp: Ensure that we create our Surface and SystemTimeSource
1133         in the correct deployment.
1135 2009-01-29  Larry Ewing  <lewing@novell.com>
1137         * plugin-debug.cpp (reflect_dependency_object_in_tree): restrict
1138         the VisualChild expansion away from Panel and border to keep from
1139         slowing down the tree that Badly.
1141 2009-01-29  Sebastien Pouliot  <sebastien@ximian.com>
1143         * plugin-class.cpp: Only call NPN_ReleaseObject on callback
1144         if the object is *not* a string.
1145         re: toshok
1147 2009-01-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1149         * plugin.cpp: ~PluginInstance: Call Dispose on the deployment and the
1150         surface. PluginXamlLoader::TryLoad: ref any error arguments we emit
1151         but didn't create.
1153 2009-01-28  Larry Ewing  <lewing@novell.com>
1155         * plugin-debug.cpp: show VisualChild on all FEs so that we can
1156         navigate into ContentPresenter.
1158 2009-01-28  Larry Ewing  <lewing@novell.com>
1160         * plugin-debug.cpp (reflect_value): add more value types.
1162 2009-01-28  Sebastien Pouliot  <sebastien@ximian.com>
1164         * plugin-class.cpp: MediaElementState is used as a string inside
1165         Javascript applications but it's an enum (in the managed world).
1167 2009-01-28  Chris Toshok  <toshok@ximian.com>
1169         * plugin-debug.cpp (selection_changed): fix crash.
1170         (reflect_dependency_object_in_tree): add Control handling - put a
1171         "Visual Child" under it that gives the subtree.
1173         * plugin-class.cpp (value_to_variant): not sure what to do here
1174         for UINT32's, since NPVariants only have INT32...
1176 2009-01-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1178         * plugin.cpp: Call Deployment::Initialize in runtime_init.
1180 2009-01-27  Geoff Norton  <gnorton@novell.com>
1182         * plugin.cpp: Use the static overload here.
1184 2009-01-26  Geoff Norton  <gnorton@novell.com>
1186         * plugin.cpp: Ensure we're in the right deployment/domain before we
1187         start poking around in managed land.
1189 2009-01-26 Geoff Norton  <gnorton@novell.com>
1191         * plugin.cpp|h: Clean this stuff up now that our book-keeper is
1192         Deployment* not internally on MonoDomain*.
1193         * plugin-class.cpp: Ensure that we set the tls slot in Deployment
1194         to the Deployment* this plugin owns before transitioning into libmoon
1196 2009-01-26  Jackson Harper  <jackson@ximian.com>
1198         * plugin.cpp|h: SourceLocation for Sl2 xaps is the .xap url.
1200 2009-01-26  Geoff Norton  <gnorton@novell.com>
1202         * plugin.cpp|h: We now go thru Deployment to warm up the application.
1204 2009-01-25  Geoff Norton  <gnorton@novell.com>
1206         * plugin.cpp: We initialize a Deployment for every plugin regardless
1207         of wether its 1.0 or 2.0 context now.
1209 2009-01-25  Chris Toshok  <toshok@ximian.com>
1211         * plugin.cpp (PluginInstance::CreatePluginAppDomain): create/set
1212         the deployment for this plugin before we return, so it's set
1213         before Application.CreateFromXap is called.
1215 2009-01-23  Geoff Norton  <gnorton@novell.com>
1217         * plugin.cpp: Force keep-delegates on in SVN (only if a custom
1218         MONO_DEBUG doesn't already exist in the environment)
1220 2009-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1222         * plugin-debug.cpp: Integrate munxap into our debugging experience.
1224 2009-01-21  Jb Evain  <jbevain@novell.com>
1226         * plugin.cpp|h: remove PluginInstance::GetBrowserInformation
1227         and ::EvaluateToVariant as well as
1228         plugin_instance_get_browser_information which is now implemented
1229         in the managed code.
1231 2009-01-21  Andreia Gaita  <avidigal@novell.com>
1233         * plugin-class.[h|cpp]: Add support for registering objects as a
1234         tree. fix casing on lookups.
1236 2009-01-21  Sebastien Pouliot  <sebastien@ximian.com>
1238         * plugin-class.cpp: Process the difference between SL1/2 default
1239         values on a case-by-case basis. Right now this (re-fix) UIElement::
1240         RenderTransformProperty (wrt null) and FrameworkElement::[Height|
1241         Width]Property (wrt NaN).
1243 2009-01-20  Geoff Norton  <gnorton@novell.com>
1245         * plugin-class.cpp: Ensure that we convert doubles in the ASCII
1246         locale, as we attempt to parse in this locale.
1248         r: toshok
1250 2009-01-20  Sebastien Pouliot  <sebastien@ximian.com>
1252         * plugin-class.cpp: Call GetLocalValue on DO so we don't provide the
1253         default values used in SL2 to SL1 applications. This fix Fox
1254         http://www.silverlight.net/fox/ while allowing to use the (non-null)
1255         default value for UIElement::RenderTransformProperty
1257 2009-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1259         * plugin.mdp: Updated.
1261 2009-01-18  Geoff Norton  <gnorton@novell.com>
1263         * plugin-downloader.cpp: Avoid crashing when the bridge isn't available
1265 2009-01-18  Larry Ewing  <lewing@novell.com>
1267         * plugin-debug.cpp (reflect_foreach_current_value): don't crash if
1268         we can't lookup the owning type.
1270 2009-01-16  Jb Evain  <jbevain@novell.com>
1272         * plugin-class.cpp: move STRDUP_FROM_VARIANT and
1273         STRLEN_FROM_VARIANT to plugin.h
1274         * plugin.h: also define PluginInstance::EvaluateToVariant
1275         * plugin.cpp: implement PluginInstance::GetBrowserInformation
1276         and PluginInstance::EvaluateToVariant.
1278 2009-01-16  Jb Evain  <jbevain@novell.com>
1280         * plugin.cpp|h: remove PluginInstance::LoadUrl.
1282 2009-01-15  Jackson Harper  <jackson@ximian.com>
1284         * plugin.cpp|h: Updated signature for the xaml callbacks.
1286 2009-01-13  Geoff Norton  <gnorton@novell.com>
1288         * plugin.cpp: Fix our MonoDomain cleanup (hopefully) once and for all.
1290 2009-01-13  Geoff Norton  <gnorton@novell.com>
1292         * plugin.cpp: Don't free domain's until we fix the problems on the 
1293         mono side associated with that.
1295 2009-01-13  Geoff Norton  <gnorton@novell.com>
1297         * plugin.cpp: Ensure we finalize the domain before freeing it.
1299 2009-01-13  Jackson Harper  <jackson@ximian.com>
1301         * plugin.cpp|h: Updated xaml callback sig.
1303 2009-01-13  Jb Evain  <jbevain@novell.com>
1305         * plugin.cpp: specify System.Windows's fullname when loading it,
1306         to avoid loading a different version, such as the desktop one.
1308 2009-01-13  Geoff Norton  <gnorton@novell.com>
1310         * plugin.cpp: Update to build appdomains properly isolated for each 
1311         PluginInstance.  Also change the location resolution of System.Windows
1312         slightly.
1314 2009-01-13  Geoff Noton  <gnorton@novell.com>
1316         * plugin.cpp: Find System.Windows.dll a slightly different way
1317         so that we can search in MONO_PATH for it and not just the installed
1318         prefix.  Fixes test runs on the buildbots.
1320 2009-01-12  Jb Evain  <jbevain@novell.com>
1322         * plugin.h, plugin.cpp: remove the need for a moonlight.exe
1323         launcher by calling directly methods in System.Windows. We're
1324         getting the System.Windows relative to the moonlight mscorlib.dll.
1325         * Makefile.am: remove references to moonlight.cs and moonlight.exe.
1326         * moonlight.cs: delete.
1328 2009-01-12  Geoff Norton  <gnorton@novell.com>
1330         * plugin.cpp: Update to reflect changes in the mono embedding API.
1332 2009-01-12  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1334         * plugin.cpp: Unconfuse a bit: initParams is a char*, so use a boolean
1335         value to initialize it.
1337 2009-01-10  Jeffrey Stedfast  <fejj@novell.com>
1339         * plugin.cpp (moonlight_authors): Updated.
1341 2009-01-08  Jeffrey Stedfast  <fejj@novell.com>
1343         * plugin-class.cpp (MoonlightKeyEventArgsObject::GetProperty):
1344         Updated for method name changes.
1346 2008-12-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1348         * plugin.mdp: Updated.
1350 2008-12-18  Chris Toshok  <toshok@ximian.com>
1352         * plugin.h, plugin.cpp: rework the app domain stuff slightly.  we
1353         now only call mono_jit_init_version once (and don't attempt to
1354         unload that room AppDomain), and then call mono_domain_create from
1355         each plugin instance (and we *do* free that AppDomain).
1357 2008-12-17  Chris Toshok  <toshok@ximian.com>
1359         * plugin.cpp (PluginInstance::MonoInit): turns out this wasn't the
1360         domain name, but the version.  it needs to be "moonlight".
1362         * moonlight.cs: remove reference to Helper, as this was only used
1363         to print out the Mono.Moonlight.dll fully qualified name.
1365         * Makefile.am: remove references to Mono.Moonlight.dll.
1367 2008-12-17  Chris Toshok  <toshok@ximian.com>
1369         * plugin.cpp (PluginInstance::MonoInit): supply a function pointer
1370         that actually exists to dladdr when PLUGIN_INSTALL is defined.
1371         Also, use a similar app domain name ("moonlight-%p" where %p is
1372         the PluginInstance*).
1374 2008-12-17  Geoff Norton  <gnorton@novell.com>
1376         * plugin.cpp: gtk_plug_new takes a GdkNativeWindow which has
1377         differing precision on amd64 and i586.
1379 2008-12-16  Chris Toshok  <toshok@ximian.com>
1381         * plugin.h, plugin.cpp: move all the stuff from mono.cpp (and
1382         moon-mono.h) here.  Remove all global variables and make them
1383         instance variables on PluginInstance (of particular importance is
1384         the AppDomain).  This means every PluginInstance gets their own
1385         app domain, their own boot assembly, etc, and we can drop all the
1386         AppDomain stuff from moonlight.cs.
1388         * mono.cpp, moon-mono.h: nuke.
1390         * plugin-glue.cpp: remove include of moon-mono.h
1392         * moonlight.cs: remove all the AppDomain specific stuff here - the
1393         unload handler is gone (replaced by a mono_domain_free call in
1394         plugin.cpp), the Helper calls to create instances and unwrap them
1395         has been replaced with type lookups + Activator.CreateInstance.
1397 2008-12-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1399         * plugin.cpp: SetSource: in case we already have a surface, detach
1400           downloaders from it right away, this should fix the random failures
1401           of ResetCore.
1403 2008-12-03  Larry Ewing  <lewing@novell.com>
1405         * plugin.cpp: clean up source setting so that the property is
1406         always set and we don't accidentally schedule more than one idle
1407         call.
1409 2008-12-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1411         * browser-bridge.h, plugin-class.cpp, plugin-class.h: Rework event
1412           attaching/detaching a bit: html_object_attach_event now takes a
1413           context argument, which is passed to the event callback.
1414           ff2/3-dom.cpp: After removing the event listener we delete the
1415           wrapper.
1417 2008-12-02  Chris Toshok  <toshok@ximian.com>
1419         * plugin-class.cpp (MoonlightScriptControlObject::Invoke): fix
1420         isVersionSupported - i don't like knocking off 2.0 except when
1421         PLUGIN_SL_2_0 is enabled, but it seems like if people are checking
1422         2.0, they'll assume managed code.
1424 2008-11-26  Jackson Harper  <jackson@ximian.com>
1426         * plugin.cpp|h: The parser no longer requires assemblies to be
1427         downloaded, so the mapping stuff is commented out.
1428         - The parser now treats events as properties, so we use
1429         SetProperty instead of HookupEvent.
1431 2008-11-22  Geoff Norton  <gnorton@novell.com>
1433         * windowless.cpp: Revert
1434         * windowless.h: Include glib.h and moonlight.h so that GDK_NATIVE_WINDOW_POINTER
1435         is defined and GdkNativeWindow gets its correct width of 8 bytes to prevent
1436         a stack smash.
1438 2008-11-21  Alp Toker  <alp@nuanti.com>
1440         * plugin-class.cpp: Fix 'DownloadProgressCanged' typo in DOM event
1441         names leading to dropped events.
1443 2008-11-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1445         * plugin-class.cpp: Implement variant<->value conversion for NPObjects.
1446         * plugin.h, plugin.cpp: Added plugin_instance_get_id and
1447           plugin_instance_get_host.
1449 2008-11-10  Jeffrey Stedfast  <fejj@novell.com>
1451         Fix for bug #442770
1453         * plugin-debug.cpp (plugin_debug): Connect to surface
1454         DestroyedEvent to close the debug window so that it won't crash
1455         when trying to use it once the site has been navigated away from.
1457 2008-11-06  Stephane Delcroix  <sdelcroix@novell.com>
1459         * plugin.cpp:
1460         * plugin-downloader.h|cpp:
1461         * firefox/browser-http.inc: pass the uri with the finished handler 
1462         for further validation. r:gnorton
1464 2008-10-31  Chris Toshok  <toshok@ximian.com>
1466         * plugin.cpp (PluginInstance::CreateWindow): call SetTransparent
1467         on moon_window instead of the surface.
1469         * windowless.cpp (MoonWindowless::HandleEvent): pass
1470         GetTransparent() to Surface::PaintToDrawable here.
1472 2008-10-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1474         * plugin.cpp: Implement EnableRedrawRegions by linking them to
1475           RUNTIME_INIT_SHOW_EXPOSE.
1477 2008-10-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1479         * plugin.cpp: Add a row to the Properties dialog informing about the
1480           codecs in use.
1482 2008-10-21  Chris Toshok  <toshok@ximian.com>
1484         * plugin-class.cpp, plugin-class.h: event listener leak fix v3.0
1486 2008-10-21  Chris Toshok  <toshok@ximian.com>
1488         * plugin-class.cpp, plugin-class.h: since I removed the value_dtor
1489         from xaml_proxies, we need to iterate over it and destroy the
1490         proxies manually now.  Also, disavow ownership of proxies when we
1491         call RemoveHandler.
1493 2008-10-20  Chris Toshok  <toshok@ximian.com>
1495         * plugin-class.cpp (MoonlightObject::ClearXamlEventProxy): this
1496         method cannot call RemoveHandler on the proxy.  instead, we return
1497         the proxy and our callers can do it
1498         (MoonlightScriptControlObject::SetProperty): here
1499         (MoonlightContentObject::SetProperty): here
1500         (MoonlightDependencyObjectObject::SetProperty): and here
1501         
1502         (EventListenerProxy::~EventListenerProxy): here we need to clear
1503         out the xaml/non-xaml proxy regardless of of whether or not it's a
1504         function.  and make sure to call the right method depending on our
1505         token.
1507 2008-10-20  Chris Toshok  <toshok@ximian.com>
1509         * plugin-class.cpp, plugin-class.h: Rather complicated lifecycle
1510         sorting out dealing with EventListenerProxies - there was a reason
1511         I was avoiding this :) - fixes bug 436060.
1513         1) if the target (the object on which the proxy calls AddHandler)
1514         is destroyed, the proxy should go away.
1515         
1516         2) if the owner (the MoonlightObject which created the proxy) is
1517         invalidated, the proxy should also be invalidated.
1519         3) if the owner is destroyed, the proxy should call RemoveHandler
1520         on the target.  Note that we shouldn't destroy the proxy here -
1521         it'll be destroyed by virtue of the data_dtor stuff in
1522         EventObject.
1523         
1524         * windowless.h, windowless.cpp: add support for experimental
1525         extension (see mozilla.org bug #430451) for windowless cursors.
1527 2008-10-20  Chris Toshok  <toshok@ximian.com>
1529         * plugin-entry.cpp: get rid of all those CallNPP_* macro uses.
1530         just invoke the damn function.
1532         * plugin-proxy.cpp, moonlight.h: include npfunctions.h instead of npupp.h
1534         * plugin-glue.cpp, plugin.h: fix types.
1535         
1536         * moz-sdk/*: rev to a newer version of the moz-sdk files.
1538 2008-10-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1540         * plugin-class.cpp: proxy_listener_to_javascript: if calldata is null,
1541           only pass 1 argument to javascript. Fixes #426440 partially (mp3s
1542           are now downloaded).
1544 2008-10-16  Jb Evain  <jbevain@novell.com>
1546         * moonlight.h: update SL2 mime type and runtime version.
1548 2008-10-14  Chris Toshok  <toshok@ximian.com>
1550         * windowless.cpp (MoonWindowless::GetGdkWindow): get the
1551         netscapeWindow from our plugin id and return a new GdkWindow for
1552         it.
1554 2008-10-14  Stephane Delcroix  <sdelcroix@novell.com>
1556         * windowless.h|.cpp: implements GetGdkWindow ()
1558 2008-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1560         * plugin-class.cpp: Fix statement order.
1562 2008-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1564         * plugin.cpp, plugin-class.cpp: Add some null checks, found while using
1565           firebug during plugin initialization.
1567 2008-10-07  Larry Ewing  <lewing@novell.com>
1569         * windowless.cpp (MoonWindowless::HandleEvent): set the crossing
1570         mode of our synthetic events to normal.  
1572         Fixes missing mouse leave events for InputHitTst.html (143)
1573         
1574 2008-10-07  Larry Ewing  <lewing@novell.com>
1576         * plugin.cpp: remove a redundant call to SetSurface after creating
1577         a surface, it is handled in the ctor.
1579         Fixes the double render_cb registration problem we were seeing
1580         that caused high framerates and starvation problems. 
1582 2008-10-03  Stephane Delcroix  <sdelcroix@novell.com>
1584         * plugin.cpp: call SetPageURL even for embedded xaml. Makes fixture
1585         145 break, as expected.
1587 2008-09-30  Chris Toshok  <toshok@ximian.com>
1589         * plugin-debug.cpp: more debug window work - it's sorted by name
1590         now, and add support for colors, timespans, and a few other types.
1592 2008-09-30  Chris Toshok  <toshok@ximian.com>
1594         * plugin-debug.cpp: rework the Debug window entirely.  no we don't
1595         just show children, but all property values.
1597 2008-09-28  Chris Toshok  <toshok@ximian.com>
1599         * plugin-class.h,
1600         plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
1601         support for dumpNameScope.
1603 2008-09-26  Fernando Herrera  <fherrera@novell.com>
1605         * mono.cpp: Fix compilation when configured with --with-debug=no
1607 2008-09-25  Jeffrey Stedfast  <fejj@novell.com>
1609         * plugin.cpp (PluginInstance::PluginInstance): Initialize
1610         source_location to NULL - probably the source of the random
1611         crashes we were seeing on the buildbot earlier.
1613 2008-09-25  Stephane Delcroix  <sdelcroix@novell.com>
1615         * plugin.cpp: update the Surface::source_location while setting
1616         the source_location.
1618 2008-09-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1620         * plugin.cpp: Show a item in the right-click menu allowing the ms
1621           codecs to be installed manually.
1623 2008-09-23  Chris Toshok  <toshok@ximian.com>
1625         * plugin.cpp (PluginInstance::CreateWindow): plug some memory
1626         leaks.
1628 2008-09-19  Jeffrey Stedfast  <fejj@novell.com>
1630         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): For
1631         RemoveEventListener(), we don't need to look up the event_id more
1632         than once.
1634         * plugin.cpp (PluginXamlLoader::HookupEvent): Call
1635         event_object_add_xaml_listener() instead of
1636         event_object_add_javascript_handler() since this is happening as a
1637         result of a listener being set in the XAML (which means it has to
1638         have a token value of 0).
1640         * plugin-class.cpp (EventListenerProxy::AddXamlHandler): New method.
1641         (event_object_add_xaml_listener): New.
1643 2008-09-19  Stephane Delcroix  <sdelcroix@gnome.org>
1645         * plugin-class.cpp: use the nex dl->Open interface
1647 2008-09-16  Fernando Herrera  <fherrera@novell.com>
1649         * Makefile.am: Add asf include dir
1651 2008-09-06  Chris Toshok  <toshok@ximian.com>
1653         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): look
1654         up the event here, the DO api is gone.
1655         (EventListenerProxy::~EventListenerProxy): use the DestroyedEvent
1656         id instead of "destroyed".
1658 2008-09-03  Larry Ewing  <lewing@novell.com>
1660         * plugin-class.cpp, plugin-class.h: remove all the ControObject
1661         wrapper foo, Control has the properties we need and this looks
1662         wrong now.
1664 2008-08-28  Chris Toshok  <toshok@ximian.com>
1666         * plugin.cpp, plugin-class.cpp: track move from C-binding to C++
1667         for the xaml_create/hydrate_from* methods.
1669 2008-08-28  Larry Ewing  <lewing@novell.com>
1671         Make a little progress in getting opera to load the plugin
1672         correctly in windowless mode.  Opera is still only minimally
1673         functional but the plugin should come up now.
1674         
1675         * plugin.cpp, plugin.h: don't get the source url via GetProperty
1676         that causes operapluginwrapper to reenter and breaks everything.
1677         Handle a few other operapluginwrapper quirks and pass resizing
1678         through the window not the surface (so that UpdateWindowInfo will
1679         work).
1681         * plugin-glue.cpp: slightly rework the initialization, don't fixup
1682         errors just try to fail early.
1683         
1684         * windowless.cpp (MoonWindowless::UpdateWindowInfo): new function
1685         to copy the needed members of NPWindow that opera is prematurely
1686         destroying.
1688 2008-08-25  Chris Toshok  <toshok@ximian.com>
1690         * plugin-class.cpp, windowless.cpp: track rect change.
1692 2008-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1694         * plugin.cpp: Fix build.
1696 2008-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1698         * plugin-downloader.cpp: Drastically enhance the debugging experience
1699           here.
1701 2008-08-18  Larry Ewing  <lewing@novell.com>
1703         * plugin-class.cpp (MoonlightStrokeCollectionObject::Invoke):
1704         unref the collection we've created.
1706 2008-08-18  Geoff Norton  <gnorton@novell.com>
1708         * plugin-class.cpp: Its possible that we dont have a surface in the
1709         OnError case at this point, guard against this.
1711 2008-08-18  Geoff Norton  <gnorton@novell.com>
1713         * plugin.cpp: Ensure we dont set object.Source to a data mime-type value.
1715 2008-08-18  Geoff Norton  <gnorton@novell.com>
1717         * windowless.cpp: Null the GdkEventKey.string value.
1718         * plugin-class.cpp|h: Rename KeyboardEventArgs->KeyEventArgs, 
1719         but support returning "KeyboardEventArgs" to javacsript toString()
1720         when in 1.0 mode.
1722 2008-08-17  Geoff Norton  <gnorton@novell.com>
1724         * plugin.cpp|h: Add a C binding for GetSourceLocation ()
1726 2008-08-17  Chris Toshok  <toshok@ximian.com>
1728         * plugin.cpp, plugin-class.cpp, mono.cpp, plugin-proxy.cpp,
1729         plugin.h, moonlight.h, moon-mono.h: SL_2_0 -> SL_PLUGIN_2_0.
1731 2008-08-17  Chris Toshok  <toshok@ximian.com>
1733         * Makefile.am: INCLUDE_MONO_RUNTIME ->
1734         INCLUDE_BROWSER_MANAGED_CODE.
1736 2008-08-15  Jeffrey Stedfast  <fejj@novell.com>
1738         * plugin-class.cpp (MoonlightStylusInfoObject::GetProperty): Use
1739         the c++ property accessors for the stylus classes.
1741 2008-08-14  Jackson Harper  <jackson@ximian.com>
1743         * plugin.cpp|h: We now get a 'dest' pointer for hooking up events,
1744         this is basically ignored by the javascript event hookup since
1745         everything is in a global space.
1747 2008-08-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1749         * plugin.h: Don't use base_unref, call unref on the instance.
1751 2008-08-14  Geoff Norton  <gnorton@novell.com>
1753         * plugin.cpp|h: The timeout C bindings are no longer used.
1755 2008-08-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1757         * plugin-class.cpp: Remove spew.
1758         * moonlight.cs: Don't initialize Helper.Agclr here, it's not in the
1759           right AppDomain.
1761 2008-08-13  Geoff Norton  <gnorton@novell.com>
1763         * plugin.cpp|h: Reuse the old html_timer infrastructure for the
1764         intial DispatcherTimer implementation.
1766 2008-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1768         * moonlight.cs: Set Helper.Agclr upon startup.
1770 2008-08-11  Larry Ewing  <lewing@novell.com>
1772         * plugin.cpp (PluginInstance::StreamAsFile): horrible but
1773         temporary hack to load application/x-silverlight objects as sl2
1774         files when .xap is present in the filename.
1776 2008-08-11  Geoff Norton  <gnorton@novell.com>
1778         * moonlight.h:  Some sites are doing an exact string comparison
1779         in Javascript of this value.  Unfortunately we need to drop
1780         out compatability string.
1782 2008-08-08  Chris Toshok  <toshok@ximian.com>
1784         * plugin-class.cpp: add sl2 arguments to the various parser/enum
1785         functions that need them.
1787 2008-08-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1789         * plugin.mdp: Make src and plugin projects build.
1791 2008-08-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1793         * plugin-debug.cpp: Deleted Visual (moved content into UIElement), and
1794           renamed VisualCollection to UIElementCollection.
1796 2008-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1798         * plugin-class.cpp: Use C++ bindings instead of C bindings.
1800 2008-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1802         * plugin.cpp, plugin.h: Implement PluginInstance::Evaluate.
1804 2008-07-26  Chris Toshok  <toshok@ximian.com>
1806         * plugin-class.h, plugin-class.cpp: add MoonlightRoutedEventArgs
1807         stuff between EventArgs and KeyboardEventArgs/MouseEventArgs.
1808         RoutedEventArgs exposes a 2.0-only property ("source"), and both
1809         Keyboard/MouseEventArgs expose a 2.0-only property as
1810         well ("handled").
1812 2008-07-25  Chris Toshok  <toshok@ximian.com>
1814         * plugin-class.h, plugin-class.cpp: add a flags field to the
1815         mapping, so we can start to differentiate the 1.0 and 2.0 JS apis.
1817         * plugin.cpp (PluginInstance::CreateWindow): pass silverlight2 to
1818         the Surface ctor.
1820 2008-07-24  Jeffrey Stedfast  <fejj@novell.com>
1822         * plugin-class.cpp (MoonlightCollectionObject::GetProperty): Use
1823         collection->GetCount() instead of poking at the internal
1824         representation of the data.
1825         (MoonlightCollectionObject::Invoke): Need to add/remove/insert/etc
1826         items as Values now.
1828 2008-07-23  Chris Toshok  <toshok@ximian.com>
1830         * plugin-class.cpp: track DependencyProperty changes.
1832 2008-07-18  Chris Toshok  <toshok@ximian.com>
1834         * windowless.h, windowless.cpp: switch this from being a surface
1835         subclass to being a MoonWindow subclass, which fixes the need for
1836         us to worry about whether we have a widget (for fullscreen) in
1837         windowless code.
1839 2008-07-18  Jb Evain  <jbevain@novell.com>
1841         * moonlight.cs (UnloadDomain): actually call the plugin unload callback.
1843 2008-07-18  Jackson Harper  <jackson@ximian.com>
1845         * plugin-debug.cpp: Use new method for getting content element.
1847 2008-07-17  Jackson Harper  <jackson@ximian.com>
1849         * plugin-debug.cpp: Add the contents of UserControls to the tree too.
1851 2008-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1853         * npstream-request.cpp, plugin-entry.cpp: Add missing #include
1854           <config.h>
1856 2008-07-10  Andrew Jorgensen  <ajorgensen@novell.com>
1858         * plugin-proxy.cpp: Include config.h (which got un-included
1859         from moonlight.h)
1861 2008-07-10  Chris Toshok  <toshok@ximian.com>
1863         * plugin.cpp (PluginInstance::UpdateSourceByReference): rework
1864         this so that it uses the NPN api instead of the bridge-requiring
1865         html_get_element_text.
1867 2008-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1869         * plugin.mdp: Updated.
1871 2008-07-09  Geoff Norton  <gnorton@novell.com>
1873         * plugin.cpp: UrlNotify now calls dl->NotifyFinished() and
1874         StreamAsFile calls SetFilename
1875         * plugin-downloader.cpp: Update for the Downloader changes
1876         to NotifyFinished / SetFilename
1878 2008-07-09  Larry Ewing  <lewing@novell.com>
1880         * windowless.cpp: make sure we proxy events to the fullscreen
1881         widget when we are in fullscreen mode.
1883         Fixes silverlight.net/fox in fullscreen mode.
1884         
1885 2008-07-08  Sebastien Pouliot  <sebastien@ximian.com>
1887         * plugin-class.cpp: Make sure we free (or nullify) before calling
1888         THROW_JS_EXCEPTION
1890 2008-07-07  Jeffrey Stedfast  <fejj@novell.com>
1892         * mono.cpp: Fixed includes.
1894 2008-07-06  Chris Toshok  <toshok@ximian.com>
1896         * windowless.cpp (WindowlessSurface::HandleEvent):
1897         plugin_button_press_callback takes the plugin for user_data, not
1898         the surface.
1900 2008-07-06  Chris Toshok  <toshok@ximian.com>
1902         * plugin.cpp (PluginInstance::Initialize): add a way to override
1903         the windowless setting.  set the MOONLIGHT_NO_WINDOWLESS
1904         environment variable, and plugins will be created windowed,
1905         regardless of the JS.
1907 2008-07-02  Chris Toshok  <toshok@ximian.com>
1909         * Makefile.am (INCLUDES): add src/zip
1911         * plugin.cpp (PluginInstance::StreamAsFile): in the case where the
1912         1.0 version of the plugin is fed a .xap file, show something to
1913         the user saying it's not going to be able to render it.
1915 2008-07-02  Chris Toshok  <toshok@ximian.com>
1917         * plugin.h, plugin.cpp: more clean up in the class decl.
1919         * plugin-class.cpp, plugin-debug.cpp, plugin-glue.cpp: fallout
1920         from the above change.
1922 2008-07-02  Jeffrey Stedfast  <fejj@novell.com>
1924         * plugin.cpp (PluginInstance::Properties): Added a "Show text
1925         boxes" checkbox.
1927 2008-07-02  Chris Toshok  <toshok@ximian.com>
1929         * plugin.h, plugin.cpp: reorder PluginInstance's class decl so
1930         that public: comes before private:, and make "timers" private,
1931         forcing the addition of TimeoutAdd and TimeoutStop instance
1932         methods so that the C binding can call them.  put comments all
1933         over them saying they're obsolete in b2.
1935 2008-07-02  Chris Toshok  <toshok@ximian.com>
1937         * plugin-class.h, plugin-class.cpp (string_to_npvariant): make
1938         public.
1940 2008-07-02  Chris Toshok  <toshok@ximian.com>
1942         * windowless.h, windowless.cpp (WindowlessSurface::HandleEvent):
1943         move the windowless event handling here so it's not cluttering up
1944         plugin.cpp.
1946         * plugin.h, plugin.cpp: add GetWindow() to return the NPWindow,
1947         make plugin_button_press_callback a public static method so
1948         WindowlessSurface can call it, and remove the entire EventHandle
1949         method body (so it can be moved to WindowlessSurface).
1951 2008-07-02  Chris Toshok  <toshok@ximian.com>
1953         * plugin.h, plugin.cpp: remove the old static methods for doing
1954         windowless things, and instead just instantiate a
1955         WindowlessSurface in CreateWindow when windowless == true.
1957         * Makefile.am (libmoonplugin_la_SOURCES): add windowless.{cpp,h}
1959         * windowless.h, windowless.cpp: new WindowlessSurface subclass
1960         which proxies things over to mozilla.
1962 2008-07-02  Chris Toshok  <toshok@ximian.com>
1964         * plugin.cpp (NPN_strdup): just set 1 byte to 0 instead of all of
1965         them :)
1966         (PluginInstance::SetSurfaceCursor): ifdefed out implementation of
1967         a proposed method for setting the cursor in windowless plugins.
1968         (PluginInstance::CreateWindow): hook up SetSurfaceCursor.
1970 2008-06-28  Geoff Norton  <gnorton@novell.com>
1972         * plugin-downloader.(ccp|h): The finished event raises a success condition now
1973         so that we can notify failure on unsuccessful downloads.
1975 2008-06-27  Stephane Delcroix  <sdelcroix@novell.com>
1977         * browser-bridge.h:
1978         * firefox/browser-http.inc:
1979         * firefox/ff2/ff2-bridge.h:
1980         * firefox/ff2/ff2-http.cpp:
1981         * firefox/ff3/ff3-bridge.h:
1982         * firefox/ff3/ff3-http.cpp:
1983         * npstream-request.cpp:
1984         * npstream-request.h:
1985         * plugin-downloader.cpp:
1986         * plugin-downloader.h: move browserrequest/response from the plugin
1987         as downloaderrequest/response.
1989 2008-06-26  Michael Dominic K.  <mdk@mdk.am>
1991         * plugin-class.cpp:
1992         * plugin-class.h: Adding ways/wrapper to access the KeyTime property of
1993         the KeyFrame. Fixes #402370 and #402035.
1995 2008-06-19  Chris Toshok  <toshok@ximian.com>
1997         * plugin.h: add GetHost(), and rename all the "get"/"set" methods
1998         to "Get"/"Set" to match everything else.
2000         * plugin.cpp: fix up the renaming, and abstract out the code used
2001         in a couple of places (getting the NPNVPluginElementNPObject) into
2002         GetHost().
2003         
2004         * npstream-request.cpp (NPStreamRequest::GetResponse): track
2005         renaming.
2007         * plugin-class.cpp: track renaming.
2008         (MoonlightDependencyObjectObject::Invoke): use GetHost().
2010 2008-06-19  Chris Toshok  <toshok@ximian.com>
2012         * plugin-class.cpp (MoonlightScriptControlObject::Invoke): comment
2013         out the version requested spew.
2015         * plugin.cpp (PluginInstance::Initialize): comment some bridge
2016         spew, and make sure to use "else if" for the useragent tests so we
2017         don't end up possibly loading 2 bridges.
2019 2008-06-17  Geoff Norton  <gnorton@novell.com>
2021         * plugin-downloader.cpp: When we are Aborted NULL our request
2022         and response objects so that we dont do a double abort from our
2023         dtor.  Fully fixes the Downloader::Write issue (i hope).
2025 2008-06-17  Geoff Norton  <gnorton@novell.com>
2027         * plugin-downloader.cpp:  Set the finished state regardless of 
2028         wether we have a downloader or not.
2030 2008-06-17  Geoff Norton  <gnorton@novell.com>
2032         * plugin-downloader.cpp:  If we destroy ourselves, ensure that we
2033         abort our request/response so that firefox doesn't call back
2034         into a destroyed object.
2036 2008-06-17  Geoff Norton  <gnorton@novell.com>
2038         * plugin-downloader.cpp, plugin-downloader.h:  Ensure that we dont
2039         attempt to abort a finished stream, as it may have dissappeared from
2040         Firefox already.
2042 2008-06-16  Jeffrey Stedfast  <fejj@novell.com>
2044         * plugin-class.cpp (_set_dependency_property_value): Don't
2045         g_assert() here, it's not necessary plus we want to get rid of
2046         them anyway for bug #335413.
2048 2008-06-10  Chris Toshok  <toshok@ximian.com>
2050         * plugin.cpp, plugin.h: wrap everything 2.0 related with
2051         INCLUDE_MONO_RUNTIME.
2053 2008-06-10  Geoff Norton  <gnorton@novell.com>
2055         * plugin-downloader.cpp, plugin-downloader.h:  Aborted guarding
2056         is handled in the bridge now, as plugin-downloader's might be 
2057         reused.  Also add a null check for Downloader in the Read callback
2059 2008-06-10  Geoff Norton  <gnorton@novell.com>
2060         
2061         * npstream-request.cpp: Return the status of GetResponse.
2063 2008-06-11  Geoff Norton  <gnorton@novell.com>
2065         * plugin-downloader.cpp: Only call into the downloader to Write
2066         if we have a downloader set.  Fixes a crash when navigating away from
2067         live streams.
2069 2008-06-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2071         * plugin-class.h: Replace g_assert with g_warning.
2073 2008-06-09  Geoff Norton  <gnorton@novell.com>
2075         * npstream-request.cpp:  Change the g_asserts to g_warning.
2077 2008-06-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2079         * plugin.mdp: Updated.
2081 2008-06-05  Jeffrey Stedfast  <fejj@novell.com>
2083         * plugin-debug.cpp (save_callback): Modified to save mirror in the
2084         same directory layout as the website.
2086 2008-06-05  Geoff Norton  <gnorton@novell.com>
2088         * plugin-class.cpp: Update to reflect API changes on the downloader
2089         side.
2091 2008-06-05  Geoff Norton  <gnorton@novell.com>
2092         
2093         * plugin-downloader.cpp: Update the debugging outputs.
2095 2008-06-05  Geoff Norton  <gnorton@novell.com>
2097         * http-downloader.cpp, http-downloader.h, mms-downloader.cpp,
2098         mms-downloader.h: Drop from the build in preparation to move
2099         mms logic into libmoon.
2100         * plugin-downloader.cpp, plugin-downloader.h,
2101         browser-bridge.h: Remove the browser downloader and encapsulate
2102         all the logic in a BrowserRequest.
2103         * npstream-request.cpp, npstream-request.h: New BrowserRequest
2104         based NPStream implementation.
2105         * plugin-downloader.cpp: Fix some debugging output. Add a few
2106         NULL guards.
2107         * plugin.cpp: Utilize the new npstream-request class.
2109 2008-06-04  Geoff Norton  <gnorton@novell.com>
2111         * plugin-class.cpp: Fix the argument check for MouseEventArgs
2112         GetPosition regression introduced with check_arg_list changes.
2114 2008-06-04  Geoff Norton  <gnorton@novell.com>
2116         * plugin-class.cpp: Fix the argument check for hitTest
2117         regression introduced with check_arg_list changes.
2119 2008-06-04  Geoff Norton  <gnorton@novell.com>
2121         * plugin-class.cpp: Fix the argument check for setFontSource
2122         regression introduced with check_arg_list changes.
2124 2008-06-04  Jeffrey Stedfast  <fejj@novell.com>
2126         * plugin-class.cpp: Added argument sanity checking in all the
2127         Invoke() methods I could find (may have missed some).
2128         (check_arg_list): New function to sanity-check an NPVariant
2129         argument vector for the correct types and the correct number of
2130         arguments (supports optional args as well).
2132 2008-06-04  Jeffrey Stedfast  <fejj@novell.com>
2134         * plugin-class.cpp (MoonlightDownloaderObject::Invoke): Check the
2135         arg-types for ::Open(). Fixes bug #394943.
2137 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2139         * plugin-downloader.cpp: Don't delete BrowserDownloaders, it causes
2140           crashes for the moment.
2142 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2144         * mms-downloader.cpp: MmsDownloader::Read: only delete the ASFParser
2145           after we've finished with the data it contains.
2146           MmsDownloader::ProcessMetadataPacket: fix parsing quoted strings.
2147         * mms-downloader.h, npstream-downloader.h: Make dtor virtual.
2148         * plugin-downloader.cpp, plugin-downloader.h: Move ctors and dtors into
2149           cpp file, and delete the BrowserDownloader in PluginDownloader's
2150           dtor.
2152 2008-05-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2154         * plugin.mdp: Updated.
2156 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2158         * mms-downloader.cpp: Call Downloader::NotifyFailed when we encounter
2159           an invalid mms source. Parse metadata packets, and set
2160           HttpStreamingFeatures correctly on the downloader.
2161         * plugin-downloader.cpp: Handle rtsp urls.
2163 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2165         * plugin.cpp: Add some debugging foo.
2167 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2169         * npstream-downloader.cpp: If NPN_GetURLNotify fails, notify the
2170           downloader.
2172 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2174         * mms-downloader.cpp, mms-downloader.h: For the broadcast case keep a
2175           count of the number of packets received, and write new packets at
2176           the end of the previous packet. Don't print warnings for MMS_END
2177           and MMS_STREAM_C packets.
2179 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2181         * plugin-downloader.cpp: Return something from
2182           PluginDownloader::GetPlugin.
2184 2008-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2186         * plugin-downloader.cpp: Spaces->Tabs.
2188 2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2190         * mms-downloader.h, mms-downloader.cpp: Move ctor/dtor into cpp file,
2191           add some logging and null out response in Finished, otherwise we
2192           might crash if Abort is called later on.
2194 2008-05-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2196         * http-downloader.cpp: Return something from HttpDownloader::Read.
2198 2008-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2200         * plugin.mdp: Updated.
2202 2008-05-23  Geoff Norton  <gnorton@novell.com>
2204         * browser-bridge.h: Get/SetUri is no longer needed on the BrowserResponse
2205         class
2207 2008-05-23  Geoff Norton  <gnorton@novell.com>
2209         * *-downlodaer.cpp: Add the files to SVN
2211 2008-05-23  Geoff Norton  <gnorton@novell.com>
2213         * browser-bridge.cpp: Refactor to move all the stream processing logic outside
2214         the bridge into the plugin in a generic way.
2215         * plugin.cpp: Cache the source_location.  Needed for http-downlodaer to resolve
2216         relative uri's.
2217         * mmsh-state.*: Merged into mms-downlodaer.cpp
2218         * mms-downloader.cpp: Rewritten to not leak all memory when streaming from a mms
2219         server, plus a lot of readability fixes.
2220         * npstream-downloader.cpp: Hide NPStream related specifics here instead of in
2221         * plugin-downloader.cpp: Direct requests to the BrowserDownloader implementation
2222         for this request.
2224 2008-05-21  Chris Toshok  <toshok@ximian.com>
2226         * plugin.cpp (plugin_button_press_callback): rename
2227         plugin_event_callback to this, and remove all the non-button event
2228         code.
2229         (PluginInstance::CreateWindow): connect to just
2230         "button-press-event", not the more generic "event".  track
2231         renaming.
2232         (PluginInstance::EventHandle): track renaming.
2234 2008-05-19  Larry Ewing  <lewing@novell.com>
2236         * plugin.cpp (PluginInstance::SetPageURL): drop the reference we
2237         were holding to NPNVWindowNPObject.
2239 2008-05-19  Larry Ewing  <lewing@novell.com>
2241         * plugin.cpp (PluginInstance::EventHandle): discard any events
2242         that happen before SetWindow has been called.
2244         Fix for a crash in Silverlight Pad.
2246 2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2248         * plugin-class.cpp: Throw an exception if the downloader doesn't have a
2249           surface when we call Downloader::Send.
2251 2008-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2253         * mmsh-state.h: Surround file with ifdefs, and forward declare
2254           MmshState.
2255         * plugin-downloader.h: Include mmsh-state.h and properly declare
2256           PluginDownloader::state as MmshState.
2258 2008-05-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2260         * plugin.mdp: Updated.
2262 2008-05-15  Larry Ewing  <lewing@novell.com>
2264         * plugin.cpp (PluginInstance::EventHandle): send focus in/out to
2265         the surface.
2267         * plugin-class.cpp, plugin.cpp, plugin.h: capture id parameter and
2268         return it in js.
2270 2008-05-14  Sebastien Pouliot  <sebastien@ximian.com>
2272         * moonlight.h: Start plugin description with Silverlight plugin 
2273         version. The new detection script for sharethelove requires this.
2275 2008-05-13  Larry Ewing  <lewing@novell.com>
2277         * plugin.cpp, plugin-class.cpp: copy all npvariant strings so that
2278         we can null terminate them.  WebKit and Opera don't null terminate
2279         strings it seems.
2281 2008-05-13  Larry Ewing  <lewing@novell.com>
2283         * plugin-glue.cpp (NPP_Initialize): opera needs to have threads
2284         initialized even in the gtk2 case.
2286         * plugin.cpp (PluginInstance::SetWindow): disable this check since
2287         it currently fails on opera 9.5b2.
2289         These changes get the plugin loading in opera 9.5b2 we need to
2290         discuss some of this with them more.
2291         
2292 2008-05-13  Chris Toshok  <toshok@ximian.com>
2294         * plugin.cpp (PluginInstance::Initialize): add an opera case (just
2295         like the webkit case) which references a (for now) nonexistant
2296         bridge.
2298 2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2300         * plugin.cpp: TryLoad: Before parsing any xaml, we need to clear the
2301           current surface, otherwise the xaml we'll be parsing might add tick
2302           callbacks to the timemanager of the previous surface.
2304 2008-05-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2306         * plugin.mdp: Updated.
2308 2008-05-12  Andrew Jorgensen  <ajorgensen@novell.com>
2310         * Makefile.am: Moved the plugin installer code to a subdir (install)
2311         because the firefox bridges must build after the plugin but before the
2312         installer.
2314 2008-05-09  Geoff Norton  <gnorton@novell.com>
2316         * Makefile.am: Add mmsh-state.* to the build.
2317         * plugin-downloader.*: When connecting to a mms server we cannot
2318         immediately start streaming.  We must first query its capabilities
2319         with a Describe request, then select the appropriate streams we 
2320         wish to have available.
2322 2008-05-09  Geoff Norton  <gnorton@novell.com>
2324         * mmsh-state.cpp, mmsh-state.h: New class to keep stream state
2325         for selecting which streams to fetch from a mms:// server.
2327 2008-05-09  Chris Toshok  <toshok@ximian.com>
2329         * ff3/Makefile.am (libmoonplugin_ff3bridge_la_LIBADD): add
2330         libmoonplugin.la
2332 2008-05-09  Chris Toshok  <toshok@ximian.com>
2334         * ff2/Makefile.am (EXTRA_DIST): dist firefox-browsermmsh.inc
2336 2008-05-08  Chris Toshok  <toshok@ximian.com>
2338         * install.rdf.in: track MINVERSION/MAXVERSION ->
2339         MIN_FIREFOX_VERSION/MAX_FIREFOX_VERSION change.
2341         * plugin.cpp (NPN_strdup): make the arg const char* to quiet gcc.
2342         (PluginInstance::PluginInstance): initialize bridge to NULL.
2343         (PluginInstance): delete the bridge.
2344         (PluginInstance::Initialize): try loading a browser specific
2345         bridge using the useragent string (gross, fragile, i know...)
2346         (PluginInstance::TryLoadBridge): new method, dlopen the bridge.
2348         * browser-http.h, browser-http.cpp: nuke.  the C implementation
2349         lives in browser-bridge.cpp, and browser-bridge.h defines
2350         the (purely abstract) base classes that the bridge implementations
2351         subclass from for browser-specific functionality.
2353         * plugin-proxy.cpp: clean up more XP_UNIX stuff - it's always
2354         defined (in moonlight.h) so we don't need ifdefs for it.  Also, it
2355         needs to be defined *before* including npapi/npupp so that
2356         structures we need are defined.
2358         * plugin-class.cpp: remove all HtmlObject implementation code from
2359         here.  it lives in the browser bridge now.  Also, remove all
2360         internal mozilla #includes.
2362         * moonlight.h (XP_UNIX): always define it if it isn't already
2363         there.
2365         * browser-bridge.h: add NPNetscapeFuncs* arg to
2366         CreateBrowserBridge.
2368         * plugin-entry.cpp (NPN_PostURLNotify): correct arg type.
2369         (NPN_MemAlloc): same.
2370         (NPN_MemFlush): same.
2371         (NPN_PostURL): same.
2372         (NP_Initialize): remove the stupid #if XP_UNIX stuff from here.
2373         we're only building on unix, so let's simplify things.  Also,
2374         don't use PR_TRUE/PR_FALSE.  NPBool uses TRUE/FALSE.
2376         * plugin-glue.cpp (NPP_WriteReady): change type to int32 instead
2377         of int32_t so that it matches the prototype.
2378         (NPP_Write): same.
2380         * moz-sdk/npapi.h, moz-sdk/npupp.h: unfuck our npapi headers so
2381         they can be used for either ff2 and ff3 (and without pulling in
2382         nspr).
2384 2008-05-08  Larry Ewing  <lewing@novell.com>
2386         * plugin.cpp (PluginInstance::SetWindow): don't crash if we
2387         weren't able to create a surface.
2389 2008-05-08  Chris Toshok  <toshok@ximian.com>
2391         * ff2/ff2-bridge.cpp: in order to keep from needing to load
2392         libmoonplugin.so with RTLD_GLOBAL (which breaks other plugins), we
2393         need to pass the NPNetscapeFuncs vtable to the bridge, and provide
2394         implementations of all the NPN_ methods here.  That was making
2395         this file a bit busy, so break out the dom and http stuff to
2396         separate files.
2398         * ff2/ff2-dom.cpp: move the dom stuff here.
2400         * ff2/ff2-http.cpp: move the browserhttp stuff herre.
2401         
2402         * ff2/Makefile.am (EXTRA_DIST): make sure we dist
2403         firefox-browserhttp.inc
2405         * ff3/ff3-http.cpp, ff3/ff3-dom.cpp, ff3/ff3-bridge.cpp: same
2406         changes to the ff3 bridge.
2408 2008-05-07  Geoff Norton  <gnorton@novell.com>
2409         
2410         * plugin.cpp, plugin.h: Add NPN_strdup
2411         * plugin-class.cpp: Use NPN_strdup
2412         * plugin-entry.cpp: Dont abort if XEmbed/Gtkv2 aren't found as
2413         some browsers wont lets us NPN_GetValue on a NULL instance.
2415 2008-05-07  Andrew Jorgensen  <ajorgensen@novell.com>
2417         * Makefile.am: Move mono_*dir stuff into Makefile
2419 2008-05-07  Larry Ewing  <lewing@novell.com>
2421         * plugin.cpp (PluginInstance::SetWindow): if SetWindow is called
2422         with the same window this is due to a resize, propogate that
2423         resize to the surface code.
2425         Fixes the plugin side of windowless resizing.  See
2426         http://my.liveatedu.com/ for test case.
2428 2008-05-07  Sebastien Pouliot  <sebastien@ximian.com>
2430         * moonlight.h: Could not find (nor google) the real meaning for SCR,
2431         I suspect "script", nor does it affect any apps I've seen but having 
2432         xaml in it's place is probably not a good idea.
2433         [Fix bug #384373]
2435 2008-05-06  Jeffrey Stedfast  <fejj@novell.com>
2437         * plugin.h (PluginInstance::getNPP): Removed, this just duplicated
2438         the getInstance() method.
2440 2008-05-06  Andrew Jorgensen  <ajorgensen@novell.com>
2442         * install.rdf.in: Use values from configure for min and max versions
2444 2008-05-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2446         * plugin-glue.cpp: shutdown_moonlight: we have to check again if there
2447           are plugins alive, this method is called async, and it's possible
2448           that another plugin has been initialized between adding the timeout
2449           and getting here.
2451 2008-05-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2453         * plugin-class.cpp: Add a missing initialization.
2455 2008-05-04  Miguel de Icaza  <miguel@novell.com>
2457         * moonlight.cs: Add support for XAP file loading. 
2459         * mono.cpp: New methods to create applications based on XAP files,
2460         and shut them down.
2462         * plugin.cpp (PluginInstance::StreamAsFile): If Silverlight2 the
2463         request was for a XAP file, load a XAP file.    This could break
2464         if people embed a Silverlight2 plugin, but pass a XAML file, must
2465         test this. 
2467         * plugin.cpp: Some refactoring to keep the Mono-depending features
2468         together, without having ifdefs inside of functions.
2470         XAP maintenance: Keep track of whether a XAP application has been
2471         loaded, destroy XAP applications on shutdown.
2472         
2474 2008-05-04  Chris Toshok  <toshok@ximian.com>
2476         * plugin.h, plugin.cpp, plugin-class.cpp, plugin-class.h: revert
2477         most of r102288 to move back to the separate Loaded/Load events.
2478         Leave the OneShot behavior for EventListenerProxy's, though, as
2479         that still is useful.
2481 2008-05-01  Larry Ewing  <lewing@novell.com>
2483         * plugin.cpp (plugin_event_callback): fix windowless button
2484         presses so that only button 3 is swallowed by the menu logic.
2486         Fixes zooming on
2487         http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html        
2488 2008-05-02  Andrew Jorgensen  <ajorgensen@novell.com>
2490         * Makefile.am: strip all .sos in XPI (not just ffmpeg)
2491         If we need un un-stripped XPI we'll build one.
2493 2008-05-02  Geoff Norton  <gnorton@novell.com>
2495         * plugin.cpp: reinterpret_cast doesn't work on 64-bit as it
2496         looses precision.
2498 2008-05-01  Chris Toshok  <toshok@ximian.com>
2500         * plugin-class.h, plugin-class.cpp: make EventListenerProxy's
2501         one-shottable (if they're one-shot, they remove themselves
2502         automatically after being invoked.)  Use this with the plugin
2503         onLoad proxy.  The script control object adds it to the surface's
2504         toplevel object's LoadedEvent.
2506         * plugin.h, plugin.cpp: when we create the surface, add a handler
2507         for AttachingEvent so we can notify our
2508         MoonlightScriptControlObject that it should add the onLoad handler
2509         to the toplevel element's LoadedEvent.
2511 2008-04-30  Fernando Herrera  <fherrera@novell.com>
2513         * browser-mmsh.cpp: Abort and NotifyFailed on invalid mms streams,
2514         probably they are plain http file downloads.
2516 2008-04-30  Fernando Herrera  <fherrera@novell.com>
2518         * plugin-debug.cpp: Added utils.h and uri.h.
2520 2008-04-30  Jeffrey Stedfast  <fejj@novell.com>
2522         * moonlight.h: Don't need to include glib.h and gtk.h, gtk.h will
2523         give us glib.h.
2525 2008-04-29  Jeffrey Stedfast  <fejj@novell.com>
2527         * plugin-debug.cpp (foreach_func): Save the files with their
2528         original filenames using the URI's path.
2530 2008-04-28  Sebastien Pouliot  <sebastien@ximian.com>
2532         * moonlight.h: Fix [Moon|Silver]'L'ight capitalization. Add 
2533         Moonlight URL (as HTML) in about:plugins. This enables "Visit 
2534         Home Page" in Firefox 3 "Tools | Add-ons | Plugins".
2536 2008-04-25  Chris Toshok  <toshok@ximian.com>
2538         * plugin-class.cpp (enum PluginPropertyId): add MoonId_OnLoad.
2539         (map_moon_id_to_event_name): handle MoonId_OnLoad.
2540         (MoonlightObjectType::MoonlightObjectType): zero out construct,
2541         just in case.
2542         (scriptable_control_mapping): move onerror here, and add onload.
2543         (MoonlightScriptControlObject): null out both settings and content
2544         here.
2545         (MoonlightScriptControlObject::GetProperty): fix IsLoaded to check
2546         the surface, and add support for OnError/OnLoad here.
2547         (MoonlightScriptControlObject::SetProperty): add support for
2548         OnError/OnLoad here.
2549         (moonlight_content_mapping): remove onerror.
2550         (MoonlightContentObject::GetProperty): remove support for OnError.
2551         (MoonlightContentObject::SetProperty): same.
2553         * plugin.cpp (PluginInstance::CreateWindow): initialize the
2554         onResize/onLoad events in the same way as onError.
2555         (PluginInstance::Initialize): parse the onResize arg.
2556         (PluginInstance::JsRunOnload): nuke.  rejoice.
2557         (PluginInstance::TryLoad): remove the call to JsRunOnload.  The
2558         surface's LoadEvent is responsible for this now.
2560 2008-04-25  Sebastien Pouliot  <sebastien@ximian.com>
2562         * plugin-debug.cpp: Better fix against my previous crash fix (as 
2563         we can get an invalid pointer to the plugin).
2565 2008-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2567         * plugin-downloader.cpp: Added logging.
2569 2008-04-25  Fernando Herrera  <fherrera@novell.com>
2571         * browser-mmsh.cpp: Conditional logging.
2572         * plugin-downloader.cpp: proper error handling at
2573         p_downloader_mmsh_send.
2575 2008-04-24  Andrew Jorgensen  <ajorgensen@novell.com>
2577         * Makefile.am: Add the locally built assemblies to the XPI
2579 2008-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2581         * plugin-debug.cpp: Don't crash if we don't have any sources.
2583 2008-04-24  Fernando Herrera  <fherrera@novell.com>
2585         * Makefile.am: Fix "make -jN" build.
2587 2008-04-23  Sebastien Pouliot  <sebastien@ximian.com>
2589         * plugin-debug.cpp: Don't crash if try to save stuff after changing
2590         web page.
2592 2008-04-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2594         * browser-mmsh.cpp: Parse http streaming metadata/features.
2595         * browser-mmsh.h: AsyncBrowserMmshResponse: Type the context as a
2596           PluginDownloader instead of a generic gpointer.
2598 2008-04-22  Larry Ewing  <lewing@novell.com>
2600         * moonlight.h: use HAVE_LIBXUL_UNSTABLE to determine which symbols
2601         to define.
2603         * browser-http.h, browser-mmsh.h: use HAVE_LIBXUL_UNSTABLE to
2604         determine the include path.
2605         
2607 2008-04-22  Chris Toshok  <toshok@ximian.com>
2609         * plugin.h, plugin.cpp: Add the notion of "cleanup pointers".
2610         It's a horrible name for the following hack.  You register a local
2611         variable pointer with the plugin before making a call during which
2612         you might be destroyed.  If the plugin instance is destroyed, all
2613         cleanup pointers are nulled..  When the all returns, you can't
2614         rely on "this" being valid, but you can rely on your local stack
2615         frame, so you look at the registered pointer.  if it's null,
2616         you're dead.
2617         
2618         * plugin.cpp (PluginInstance::PluginInstance): pass the pluginType
2619         instead of the boolean flag.  C apis should be thin wrappers
2620         around c++ methods.
2621         (PluginInstance::~PluginInstance): zombify the surface and then
2622         unref_delayed it, to allow everything to unwind before actually
2623         freeing that memory.
2624         (PluginInstance::Initialize): use "else" and remove all those damn
2625         "continue"s.
2626         (PluginInstance::TryLoad): use the cleanup pointer hack to check
2627         if we're still alive after the xaml_loader->TryLoad method.
2628         
2629         * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
2630         use cleanup pointers to make sure we don't try to free plugin
2631         objects that have been destroyed by virtue of the plugin going
2632         away while we were in JS.
2634         * plugin-glue.cpp: since we're only destroying surfaces from the
2635         idle loop, we need to delay the shutting down of the moonlight
2636         engine until all surfaces have been destroyed.  Also, take care
2637         not to do it from the DestroyEvent handler, as that is invoked
2638         *before* the object is destroyed (and destruction requires the
2639         engine to be initialized).
2641 2008-04-22  Michael Dominic K.  <mdk@mdk.am>
2643         * plugin-class.cpp: Throw js exception if Storyboard failed to start
2644         properly.
2646 2008-04-21  Jeffrey Stedfast  <fejj@novell.com>
2648         * mono.cpp (vm_init): Don't leak memory in the plugin case. Also
2649         use d() around debug printfs.
2651         * plugin.cpp: Wrap debug printfs with d()
2653 2008-04-20  Miguel de Icaza  <miguel@roxanne.site>
2655         * plugin.h: Add methods to flag Silverlight2, add field Xap that
2656         if not-NULL contains a pointer to the XAP file downloaded.
2658         * plugin-instance.c: If we are dealing with a Silverlight 2
2659         application, use Xap to unpack it.   Does not load the result yet. 
2661         * moonlight.h: Add support for SL2 mime type, clear up VERSION
2663         * plugin-glue.cpp: Tell PluginInstance whether this is an SL1 or
2664         SL2 activation.
2666 2008-04-16  Chris Toshok  <toshok@ximian.com>
2668         * plugin.cpp (PluginInstance::StreamAsFile): use "else if" here,
2669         otherwise the notifydata might be gone.
2671 2008-04-16  Jeffrey Stedfast  <fejj@novell.com>
2673         * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
2674         Just because enums_int_to_str() returns NULL does not mean that
2675         the value was invalid, it could also mean that the property is
2676         simply an Int32 type.
2678 2008-04-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2680         * plugin-class.cpp, plugin-class.h: Comparing a Kind value to another to
2681           determine type hierarchy isn't supported anymore, use Value::Is or
2682           Type::IsSubclassOf, which are doing the right thing.
2684 2008-04-15  Larry Ewing  <lewing@novell.com>
2686         * plugin.cpp (PluginXamlLoader::TryLoad): emit an error if the
2687         root visual type is incorrect.  Fixes one more of the ParserError
2688         tests until we can unfiy js exceptions and parser errors.
2690 2008-04-15  Larry Ewing  <lewing@novell.com>
2692         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
2693         based on RuntimeErrors and
2694         http://msdn2.microsoft.com/en-us/library/bb979718.aspx getParent
2695         only applies to uielement subclasses.
2697         Fixes test that was failing in RuntimeErrors.htm.
2699 2008-04-15  Larry Ewing  <lewing@novell.com>
2701         * plugin-class.cpp: throw an exception for invalid string values.
2703 2008-04-14  Jeffrey Stedfast  <fejj@novell.com>
2705         * plugin.cpp: Got rid of unnecessary uses of keyword 'this'.
2706         (PluginInstance::CreateWindow): Fixed setting of background color.
2708 2008-04-13  Jb Evain  <jbevain@novell.com>
2710         * moonlight.cs: use reflection to initialize the XamlLoader
2711         until we get moonlight.exe to be friend with Mono.Moonlight.
2712         Merged from the Moonlight 2 branch.
2714 2008-04-11  Larry Ewing  <lewing@novell.com>
2716         * plugin.h (class PluginInstance): make setBackground return a
2717         boolean success value.
2719         * plugin-class.cpp (MoonlightSettingsObject::SetProperty): check
2720         the return value of setBackground and throw an exception if it
2721         fails.
2723         * plugin.cpp (PluginInstance::CreateWindow): handle NULL return
2724         values from color_from_string.
2726         Handle the new case where color_from_string might return null.
2728 2008-04-11  Jeffrey Stedfast  <fejj@novell.com>
2730         * plugin-class.cpp (MoonlightTextBlockObject::Invoke):
2731         SetFontSource() now takes a Downloader argument rather than a DOB.
2733 2008-04-11  Andrew Jorgensen  <ajorgensen@novell.com>
2735         * plugin-proxy.cpp: Allow the user to override the location of
2736         libmoonplugin by setting MOON_PLUGIN_DIR so that the test harness
2737         can run without installing first.
2739 2008-04-11  Larry Ewing  <lewing@novell.com>
2741         * plugin.cpp (PluginXamlLoader::TryLoad): Allow controls to be
2742         toplevel elments, drop all surface contents on errors.
2744         Allows Kit 3d to start rendering something in the texture map
2745         case.
2747 2008-04-11  Michael Dominic K.  <mdk@mdk.am>
2749         * plugin-class.cpp: Small debug hint also here when enums invalid.
2751 2008-04-10  Chris Toshok  <toshok@ximian.com>
2753         * plugin-class.cpp (npvariant_is_dependency_object): no reason to
2754         duplicate the logic here - call npobject_is_dependency_object.
2756 2008-04-10  Jeffrey Stedfast  <fejj@novell.com>
2758         * plugin-class.cpp: Cast DOB's to Downloaders when passing to
2759         SetSource().
2761 2008-04-10  Chris Toshok  <toshok@ximian.com>
2763         * plugin-class.cpp, plugin-class.h: use the same "Invalidate
2764         NULL's things out, while the dtor checks for NULL before calling
2765         NPN_ReleaseObject" pattern with event listener proxies.
2767 2008-04-09  Chris Toshok  <toshok@ximian.com>
2769         * plugin.cpp, plugin.h: make PluginInstance::SetSource behave
2770         asynchronously for both #ref and normal url cases.  Fixes bug
2771         376966.
2773 2008-04-08  Jeffrey Stedfast  <fejj@novell.com>
2775         * plugin.cpp (PluginXamlLoader::TryLoad): Print a little more
2776         useful info on error.
2778 2008-04-04  Jeffrey Stedfast  <fejj@novell.com>
2780         * plugin-class.h (EventListenerProxy.dtor): Made virtual... not
2781         sure if this matters or not, but might as well be consistent.
2782         (MoonlightTimeSpan.dtor): Same.
2784 2008-04-04  Chris Toshok  <toshok@ximian.com>
2786         * plugin-class.cpp, plugin-class.h: change our use of
2787         NPType->invalidate.  Firefox docs say this is *only* called when
2788         the browser is shutting down the plugin instance.  So, we
2789         shouldn't access fields that point to other NPObjects here.  Just
2790         break links.  All freeing should be done in the dtor instead,
2791         which most of the various ::Dispose methods have been renamed to.
2792         Also, don't call Dispose in the MoonlightObject dtor.  Lastly,
2793         rename Dispose to Invalidate so we don't again mistake what it
2794         does.
2796 2008-04-03  Larry Ewing  <lewing@novell.com>
2798         (PluginXamlLoader::TryLoad): if the parser has an unknown error
2799         code try the managed loader.
2801 2008-04-03  Larry Ewing  <lewing@novell.com>
2803         * plugin.cpp (PluginXamlLoader::TryLoad): if we get a parser while
2804         loading set attach to a NULL toplevel.
2806 2008-04-02  Larry Ewing  <lewing@novell.com>
2808         * plugin-class.cpp: check number of arguments on getHost throw the
2809         appropriate exception if there are arguments.
2811 2008-04-02  Larry Ewing  <lewing@novell.com>
2813         * plugin-class.cpp: make sure the event name is valid when adding
2814         or removing, throw an exception if not.
2816 2008-04-02  Larry Ewing  <lewing@novell.com>
2818         * plugin-class.cpp: start making the exceptions match the ms
2819         exceptions.  Work around the id string until more is known about
2820         how we should deal with it.
2822 2008-04-02  Jeffrey Stedfast  <fejj@novell.com>
2824         Fixes bug #375277 and maybe other crashers.
2826         * plugin-class.h (MoonlightScriptControlObject::.ctor): Initialize
2827         settings->control and content->control to 'this'.
2828         (MoonlightSettingsObject): Now has a pointer to its owning
2829         MoonlightScriptControlObject so we can protect against Firefox's
2830         aggressive destruction of still-referenced objects when you
2831         navigate away from a Moonlight page and/or close the browser when
2832         a scriptable object is still referenced. Yay Firefox!
2833         (MoonlightContentObject): Same.
2835         * plugin-class.cpp (MoonlightScriptControlObject::Dispose): Set
2836         settings->control to NULL before unreffing the settings
2837         NPObject. Same with content->control.
2838         (MoonlightContentObject::Dispose): If we have a pointer to our
2839         parent control, set control->content to NULL here.
2840         (MoonlightSettingsObject::Dispose): Same as
2841         MoonlightContentObject::Dispose().
2842         (MoonlightEventObjectObject::SetEventObject): Removed, just to be
2843         sure we never reuse these objects.
2844         (EventObjectCreateWrapper): Implement the equivalent of
2845         SetEventObject() here instead, since this is the only place that
2846         should EVER be calling it. Also makes it a lot simpler.
2848 2008-04-02  Larry Ewing  <lewing@novell.com>
2850         * plugin-class.cpp: charposition not charnumber.
2852 2008-04-01  Chris Toshok  <toshok@ximian.com>
2854         * plugin-class.cpp (MoonlightContentObject::Invoke): back out my
2855         SetSurface() stuff from here.
2857 2008-04-01  Jeffrey Stedfast  <fejj@novell.com>
2859         * plugin-class.cpp: Implemented better type-checking. Fixes the
2860         crash mentioned in bug #375921.
2862 2008-04-01  Chris Toshok  <toshok@ximian.com>
2864         * plugin-class.cpp (MoonlightContentObject::Invoke): in
2865         createFromXaml/createFromXamlDownloader, call dep->SetSurface()
2866         after we parse to make sure the thing knows what surface it
2867         belongs to.
2869 2008-04-01  Jeffrey Stedfast  <fejj@novell.com>
2871         * plugin-class.cpp (MoonlightContentObject::Invoke): Properly
2872         nul-terminate the text value.
2873         (MoonlightDownloaderObject::Invoke): Properly nul-terminate the
2874         text value returned here too.
2876 2008-04-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2878         * plugin-class.cpp: Remove Type::NPOBJ, it's not needed.
2880 2008-03-31  Jeffrey Stedfast  <fejj@novell.com>
2882         * plugin-class.cpp (moonlight_downloader_mapping): Got rid of
2883         second ResponseText item.
2884         (MoonlightDownloaderObject::GetProperty): nul-terminate the value
2885         gotten from downloader->GetResponseText() as javascript will use
2886         this string expecting that it is nul-terminated.
2888 2008-04-01  Fernando Herrera  <fherrera@novell.com>
2890         * browser-mmsh.cpp:
2891         * plugin-downloader.h: Support for live streams (not seekable).
2893 2008-03-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2895         * browser-mmsh.cpp: asf_header_parse: Use ASFParser::GetPacketSize instead
2896           of looking in internal fields. Delete parser and unref the source when
2897           done with it.
2899 2008-03-28  Fernando Herrera  <fherrera@novell.com>
2901         * browser-mmsh.cpp:
2902         * browser-mmsh.h:
2903         * plugin-downloader.cpp:
2904         * plugin-downloader.h: Implement server seeking on the mms://
2905         downloader.
2907 2008-03-26  Andrew Jorgensen  <ajorgensen@novell.com>
2909         * mono.cpp: Get correct path for moonlight.exe as well when
2910         enable-user-plugin=yes
2912 2008-03-26  Chris Toshok  <toshok@ximian.com>
2914         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
2915         implement removeEventListener for named callbacks using the new
2916         EventObject::RemoveMatchingHandlers method, and a helper
2917         class (NamedProxyPredicate).
2919         * plugin-class.h: we need to make
2920         EventListenerProxy::proxy_listener_to_javascript public so
2921         NamedProxyPredicate can access it.
2922         
2923 2008-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2925         * browser-mmsh.cpp: Updated according to API changes.
2927 2008-03-25  Andrew Jorgensen  <ajorgensen@novell.com>
2929         * plugin-proxy.cpp: Load libraries relative to the location of
2930         libmoonloader.so if enable-user-plugin=yes
2931         * install.rdf.in: Basic install.rdf for plugin installation
2932         * Makefile.am: Create directory structure for RDF install method
2933         rather than XPInstall JS method
2935 2008-03-20  Jeffrey Stedfast  <fejj@novell.com>
2937         * plugin-class.cpp (MoonlightContentObject::Invoke): Same.
2939         * plugin-downloader.cpp (p_downloader_mmsh_finished): Updated for
2940         Downloader API changes.
2942 2008-03-18  Andrew Jorgensen  <ajorgensen@novell.com>
2944         * plugin-proxy.cpp: Push conditional swscale into user plugin code
2945         and remove avformat dependency
2946         * Makefile.am: Conditionally include swscale and don't include avformat
2947         in user plugin installer
2949 2008-03-17  Larry Ewing  <lewing@novell.com>
2951         * plugin-class.cpp: more rough argument sanity checks.
2953 2008-03-17  Larry Ewing  <lewing@novell.com>
2955         * plugin.cpp (PluginXamlLoader::TryLoad): add a quick check to
2956         avoid a crash.  Better error handling on the way.
2958         * plugin-class.cpp (MoonlightCollectionObject::Invoke): do some
2959         very basic argument type checking.
2961 2008-03-16  Larry Ewing  <lewing@novell.com>
2963         * plugin-class.cpp: make objects chain up to their parent class
2964         rather than simply returning false directly to make the logic
2965         clearer and to allow toplevel handling of tostring.
2967 2008-03-14  Larry Ewing  <lewing@novell.com>
2969         * plugin-class.h, plugin-class.cpp: wrap all EventArg subclasses
2970         as dependencyobjects.
2972         * plugin.cpp: connect to the plugin onerror event.
2974 2008-03-14  Chris Toshok  <toshok@ximian.com>
2976         * plugin-class.h, plugin-class.cpp: wrapped TimeSpan and Duration
2977         objects aren't actually values.  they're references to the
2978         particular DependencyObject/Property we got them from, so doing
2979         something like:
2981         var foo = storyboard.Duration;  foo.seconds=5;
2983         updates the original storyboard's Duration property, not just the
2984         duration contained in the "foo" variable.
2986 2008-03-13  Chris Toshok  <toshok@ximian.com>
2988         * plugin-class.cpp, plugin-class.h: fix up our toString support.
2990 Thu Mar 13 23:13:59 CET 2008 Paolo Molaro <lupus@ximian.com>
2992         * Makefile.am: don't overwrite binary files when installing the
2993         plugin (avoids crashes in the running browser).
2995 2008-03-13  Chris Toshok  <toshok@ximian.com>
2997         * plugin-entry.cpp: fix backward compatibility of the plugin api.
2998         also, use the NPVERS_ defines for feature tests instead of our own
2999         set.  Also, add NPN_Enumerate.
3001 2008-03-13  Andrew Jorgensen  <ajorgensen@novell.com>
3003         * install.js.in: Change the install path so that the plugin
3004         should work in debian (iceweasel)
3006 2008-03-13  Chris Toshok  <toshok@ximian.com>
3008         * moz-sdk/*: import the trunk firefox plugin headers.
3009         
3010         * plugin.cpp (PluginInstance::Initialize): fix the hack I needed
3011         due to xulrunner-1.8.10 headers not having NPNVSupportsWindowless.
3013         * plugin-class.h, plugin-class.cpp (MoonlightObjectType): add
3014         Enumerate, which just iterates over the mapping filling in the
3015         array to return.
3017         * Makefile.am: add dist-hook to copy the moz-sdk headers.
3019         * mono.cpp (vm_init): missed this STACK_DEBUG -> DEBUG change.
3021 2008-03-12  Sebastien Pouliot  <sebastien@ximian.com>
3023         * plugin-downloader.cpp: Fix duplicate g_strdup on pd->uri. 
3025 2008-03-12  Michael Dominic K.  <mdk@mdk.am>
3027         * plugin-downloader.cpp: Adding an extra NULL check. Fixes the
3028         flowers-for-you.com.my website.
3030 2008-03-12  Miguel de Icaza  <miguel@novell.com>
3032         * browser-mmsh.cpp (AsyncBrowserMmshResponse::MmsMetadataParse):
3033         Rewrote this routine to have a regular parser instead of splitting
3034         strings with g_strsplit, copes with commas inside metadata.
3036         Fernando mentioned that most of this code is no longer useful,
3037         except for a few flags.  
3039 2008-03-11  Fernando Herrera  <fherrera@novell.com>
3041         * browser-mmsh.cpp:
3042         * browser-mmsh.h:
3043         * plugin-downloader.cpp: Parse MMS Metadata packet. Get file size and
3044         asf_packet_size from the ASF header.
3046 2008-03-10  Michael Dominic K.  <mdk@mdk.am>
3048         * plugin-class.cpp: Don't scream about the unsupported type when
3049         setting a property to NULL. Instead, pass NULL and let the
3050         SetValue do it's thing (ie. nullable handling). This fixes the 
3051         Animation_CornerCases.htm.
3053 2008-03-08  Geoff Norton  <gnorton@novell.com>
3055         * plugin.cpp:  I suppose I'm one of these for real now.
3057 2008-03-08  Fernando Herrera  <fherrera@novell.com>
3059         * browser-mmsh.cpp:
3060         * browser-mmsh.h:
3061         * plugin-downloader.cpp: Stop properly the mms download.
3063 2008-03-06  Chris Toshok  <toshok@ximian.com>
3065         * plugin.cpp (PluginInstance::Initialize): make sure we look for
3066         the right framerate property name.  the JS is specified using
3067         "framerate", but the plugin has to recognize "maxFramerate"
3068         instead.
3069         (PluginInstance::CreateWindow): use the surface's timemanager.
3070         (PluginInstance::setMaxFrameRate): same.
3072 2008-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3074         * plugin-class.cpp, plugin-class.h: Make our Moonlight*EventArgs mirror the
3075           runtime *EventArgs Updated runtime event handling to receive an
3076           EventArgs* calldata instead of a gpointer. This allows us to create the
3077           correct Moonlight*EventArgs based on the actual type of the runtime
3078           *EventArgs, instead of making a decision based on the event name,
3079           obsoleting all the *_event_wrapper functions.
3080         * plugin-glue.cpp: Set the pdata field of the instance to NULL before
3081           deleting the plugin, this allows us to detect plugin usage during plugin
3082           destruction (we might cause destruction of EventObjects -> events are
3083           raised -> plugin tries to send those events to js -> crash)
3085 2008-03-05  Michael Dominic K.  <mdk@mdk.am>
3087         * plugin-class.cpp: Making the plugin class use the new enum<->str code
3088         for enum getters.
3090 2008-03-03  Chris Toshok  <toshok@ximian.com>
3092         * plugin.cpp (PluginInstance::EventHandle): add
3093         KeyPress/KeyRelease handling.  there are some XXX's involing the
3094         call to gdk_keymap_translate_keyboard_state, but I have no test
3095         case at present to test this stuff against.  Use at your own risk.
3097 2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3099         * plugin-downloader.cpp: Don't call dl->NotifySize with the partial size of
3100           the file, should only be called with the final size of the file.
3102 2008-02-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3104         * plugin.mdp: Updated.
3106 2008-02-28  Jeffrey Stedfast  <fejj@novell.com>
3108         * browser-mmsh.cpp (AsyncBrowserMmshResponse::OnDataAvailable):
3109         'size' needs to be a uint32 so that the comparison is between 2
3110         uint32's rather than a uint32 and an int32.
3112         * browser-mmsh.h (class AsyncBrowserMmshResponse): Fixed a
3113         compiler warning.
3115 2008-02-28  Michael Dominic K.  <mdk@mdk.am>
3117         * plugin/plugin-class.cpp: When getting property value try to resolve it
3118         to string if it's an enum. This way from js we ie. get:
3120         Arc.SweepDirection == "Counterclockwise" 
3122         instead of:
3124         Arc.SweepDirection == 0 (enum int value).
3126         Fixes finally the OM_RemoveClearRemoveAt.htm test (with other collection
3127         fixes) and #353960.
3129 2008-02-28  Fernando Herrera  <fherrera@novell.com>
3131         * Makefile.am:
3132         * browser-mmsh.cpp:
3133         * browser-mmsh.h:
3134         * plugin-downloader.cpp:
3135         * plugin-downloader.h: Add initial mms over http support.
3137 2008-02-26  Chris Toshok  <toshok@ximian.com>
3139         * plugin.cpp (PluginInstance::EventHandle): fix some x64 build
3140         issues.
3141         (PluginInstance::InvalidateSurface): same.
3143 2008-02-26  Chris Toshok  <toshok@ximian.com>
3145         * plugin-proxy.cpp: use RTLD_LAZY, not RTLD_NOW.
3147         * moonlight.h: more #include hackery to get the right members to
3148         be there for NPSetWindowCallbackStruct on X.
3150         * plugin.h (class PluginInstance): add our
3151         RenderSurface/InvalidateSurface methods.
3153         * plugin.cpp (PluginInstance::Initialize): initialize the
3154         windowless stuff if we need it and the browser supports it.
3155         (PluginInstance::RenderSurface): our render method - call
3156         NPN_ForceRedraw.
3157         (PluginInstance::InvalidateSurface): our invalidate method - call
3158         NPN_InvalidateRect.
3159         (PluginInstance::CreateWindow): set our invalidate/render funcs
3160         accordingly, and SetTrans on the surface (err, why?) if we're
3161         windowless, and only do the widget stuff if we aren't windowless.
3162         (PluginInstance::EventHandle): kind of gross, but fill in enough
3163         of the gdk events to fool the surface machinery.  Currently
3164         missing are all key events, GdkDevice support for mouse events,
3165         and Expose event aggregation.
3167 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3169         * plugin/plugin-class.cpp: Throw js exception when object passed to
3170         Collection.Remove is NULL (instead of returning false). Fixes mostly
3171         OM_RemoveClearRemoveAt but still fails because of ArcSweep problem.
3173 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3175         * plugin/plugin-class.cpp: Throw js exception when Collection.Insert
3176         returns -1.
3178 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3180         * plugin/plugin-class.cpp: Throw js exception when Collection.Add returns
3181         -1.
3183 2008-02-26  Michael Dominic K.  <mdk@mdk.am>
3185         * plugin/plugin-class.cpp: Properly return int instead of void for
3186         Colleciton.Add.
3188 2008-02-25  Chris Toshok  <toshok@ximian.com>
3190         * plugin.cpp (PluginInstance::CreateWindow): use GetWidget instead
3191         of GetDrawingArea.
3193 2008-02-25  Chris Toshok  <toshok@ximian.com>
3195         * plugin.cpp: add windowless creation stuff.  move some code
3196         around, and put some in (!windowless) blocks.
3198         * plugin-entry.cpp (NP_Initialize): set handleEvent.
3200         * plugin-glue.cpp (NPP_GetValue): don't handle NeedsXEmbed here -
3201         let PluginInstance::GetValue do it.
3203 2008-02-22  Jackson Harper  <jackson@ximian.com>
3205         * plugin-debug.cpp: mkdir and friends needs sys/stat.h on some
3206         systems.
3208 2008-02-22  Michael Dominic K.  <mdk@mdk.am>
3210         * plugin/plugin.cpp:
3211         * plugin/plugin.h: Add support for the cache-size reporting interface. The
3212         UI now reports cache size when running with
3213         MOONLIGHT_OVERRIDES="cache=show".
3215 2008-02-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3217         * plugin-class.cpp: Add a null check.
3218         * plugin-debug.cpp: Add a Save button to the Sources list, which will save
3219           every source file to a directory in /tmp.
3221 2008-02-21  Michael Dominic K.  <mdk@mdk.am>
3223         * plugin/plugin.cpp: Small fix for table ("Properties") formatting so that
3224         it doesn't expand like crazy because of long URL's in sources.
3226 2008-02-20  Jeffrey Stedfast  <fejj@novell.com>
3228         * plugin-class.cpp (MoonlightTextBlockObject::Invoke): The
3229         downloader argument is allowed to be null.
3231 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3233         * plugin.cpp, plugin.h, plugin-debug.cpp, plugin-debug.h: Add a 'Sources'
3234           entry to the plugin context menu, shows a list of all the files the
3235           plugin has loaded, with the ability to open the files.
3237 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3239         * plugin.mdp: Updated.
3241 2008-02-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3243         * plugin-class.cpp: Fix IsVersionSupported according to tests.  
3245 2008-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3247         * plugin.cpp, plugin-class.cpp, plugin.h: Add MaxFrameRate to the properties
3248           page, and parse windowless and framerate properties during
3249           initialization and store the values on the plugin instance, so that the
3250           property page can show the correct values.
3252 2008-02-15  Chris Toshok  <toshok@ximian.com>
3254         * plugin-class.cpp (MoonlightStoryboardObject::Invoke): the seek
3255         method can take either an integer or a string representing a
3256         timespan.  Fixes the JS errors I mentioned in bug #362380.
3258 2008-02-06  Jackson Harper  <jackson@ximian.com>
3260         * plugin-class.cpp|h: Store all MoonlightDependencyObject classes
3261         in an array so that we can easily check if a type passed in from
3262         JS is actually a DO.
3263         - Add one check to verify that an object is a DO, I am sure we
3264         will need many more.
3266 2008-02-06  Fernando Herrera  <fherrera@novell.com>
3268         * plugin-debug.cpp: set default size and scroll bars policy in the
3269         debug window.
3271 2008-02-05  Chris Toshok  <toshok@ximian.com>
3273         * plugin.h, plugin.cpp: add a label to the properties dialog that
3274         shows the fps message.
3276         * plugin-debug.cpp (selection_changed): invalidate a large enough
3277         rectangle so that the selection disappears.
3279 2008-02-05  Chris Toshok  <toshok@ximian.com>
3281         * Makefile.am (libmoonplugin_la_SOURCES): add plugin-debug.h/cpp
3283         * plugin-debug.h, plugin.cpp: for now, just a gtk treeview with a
3284         snapshot of the xaml hierarchy.  selecting an item in the tree
3285         puts a rectangle around the element in the plugin.
3287         * plugin.cpp (plugin_show_menu): if debug is enabled, add the
3288         debug menu item.
3290 2008-02-05  Chris Toshok  <toshok@ximian.com>
3292         * moonlight.h: don't #define DEBUG here.  it's a config.h deal.
3294 2008-02-04  Jackson Harper  <jackson@ximian.com>
3296         * plugin-class.cpp: Fix some of the parameter checking to match
3297         Silverlight.
3299 2008-01-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3301         * plugin-class.cpp, plugin-class.h: Implement toString method on
3302           MarkerReachedEventArgsObject.
3304 2008-01-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3306         * plugin-class.cpp: Handle the case where js sets Timespan seconds using an
3307           int value.
3309 2008-01-28  Andrew Jorgensen  <ajorgensen@novell.com>
3311         * Makefile.am: added plugin-downloader.h to dist
3313 2008-01-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3315         * downloader.cpp, plugin-downloader.cpp, plugin-downloader.h: Renamed
3316           downloader.cpp to plugin-downloader.cpp and added a header file for it.
3317           Set downloader_shutdown to false upon initialization, makes aborting
3318           actually work. Save the PluginDownloader in the stream, so that we can
3319           inform the PluginDownloader when the stream is destroyed.
3320         * plugin.mdp, Makefile.am: Updated.
3321         * plugin.cpp: Include plugin-downloader.h and remove unnecessary method
3322           declarations. Inform the PluginDownloader when a stream is destroyed.
3323         * plugin-glue.cpp: Include plugin-downloader.h and remove unnecessary method
3324           declarations. 
3326 2008-01-23  Chris Toshok  <toshok@ximian.com>
3328         * plugin-class.cpp (EventListenerProxy::AddHandler): use the event
3329         id instead of the name for the destroyed event, and also don't try
3330         to add an event that doesn't exist for a given type.
3332 2008-10-11  Andrew Jorgensen  <ajorgensen@novell.com>
3334         * plugin-proxy.cpp: Add conditionals for ffmpeg inclusion
3335         * Makefile.am: Respect ffmpeg inclusion in xpi install
3337 2008-01-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3339         * plugin.mdp: Added.
3341 2008-01-09  Chris Toshok  <toshok@ximian.com>
3343         * plugin-class.h, plugin-class.cpp: add two new wrapper types -
3344         one for StrokeCollection and the other for Stroke, so that both of
3345         them can implement their GetBounds and HitTest methods.
3346         
3347 2008-01-09  Chris Toshok  <toshok@ximian.com>
3349         * plugin-class.h, plugin-class.cpp: a few changes with the
3350         MoonlightMouseEventArgsObject.  It now wraps a MouseEventArgs*.
3351         Translate all the property accesses and method calls into
3352         accesses/calls on the actual MouseEventArgs, instead of having the
3353         code live here.  Also, add STYLUSINFO handling to the
3354         EventObjectWrapper method.
3356 2008-01-09  Jeffrey Stedfast  <fejj@novell.com>
3358         * plugin.cpp (Initialize): Use g_ascii_strcasecmp() so that we are
3359         not locale dependent.
3361 2008-01-04  Jeffrey Stedfast  <fejj@novell.com>
3363         Fix for bug #348772
3365         * plugin-class.cpp (EventListenerProxy::AddHandler): Add a handler
3366         for the destroyed event too so that we can clear our target_object
3367         pointer.
3368         (EventListenerProxy::on_target_object_destroyed): New callback to
3369         clear the target_object pointer when it gets destroyed.
3370         (EventListenerProxy::get_wrapper_for_event_name): Use
3371         g_ascii_strcasecmp() instead of g_strcasecmp().
3372         (EventListenerProxy::~EventProxyListener): Disconnect from the
3373         destroyed event and the other event if still hooked up.
3375 2008-01-03  Jeffrey Stedfast  <fejj@novell.com>
3377         * plugin-class.cpp (_set_dependency_property_value): For
3378         non-object variants, we can easily get away with using a static
3379         string buffer rather than using dynamically allocated strings to
3380         hold our temp values.
3382 2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3384         * plugin.cpp: PluginInstance::SetSource: don't check if we're setting the
3385           same source. Fixes #349592.
3387 2007-12-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3389         * plugin-class.cpp: Don't crash if surface->GetTopLevel returns null. Fixes
3390           #349816.
3392 2007-12-20  Sebastien Pouliot  <sebastien@ximian.com>
3394         * plugin-class.cpp|h: Add support for StylusPointCollection since 
3395         it's a special case where a new method, AddStylusPoints, is 
3396         introduced. Fix unit tests for StylusPointCollection but doesn't
3397         solve bugs #349596 and 349598 because we don't capture the mouse
3398         points.
3400 2007-12-20  Jb Evain  <jbevain@novell.com>
3402         * plugin-class.cpp (MoonId_GetStylusPoints): return an
3403         empty StylusPointCollection instead of doing non-sense.
3405 2007-12-20  Jb Evain  <jbevain@novell.com>
3407         * plugin-class.cpp: throw if createObject is called
3408         for something else than Downloader.
3410 2007-12-18  Sebastien Pouliot  <sebastien@ximian.com>
3412         * plugin-class.cpp: The plugin handle Color as an integer (see js 
3413         unit tests).
3415 2007-12-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3417         * plugin-class.cpp: The part parameter of MediaElement::SetSource is the
3418           second parameter, fixes a crash when js calls SetSource. Also removed
3419           some warnings.
3421 2007-12-17  Jb Evain  <jbevain@novell.com>
3423         * plugin-class.cpp: return null instead of undefined
3424         on GetValue is the value is NULL. Fixes a lot of tests
3425         for default values.
3427 2007-12-14  Jeffrey Stedfast  <fejj@novell.com>
3429         * plugin.cpp (PluginInstance::CreateWindow): Set the FPS report
3430         callback.
3431         (PluginInstance::Properties): Added FPS enable/disable properties.
3432         (PluginInstance::ReportFPS): Report the FPS via the browser's
3433         status widget.
3435 2007-12-14  Jeffrey Stedfast  <fejj@novell.com>
3437         * downloader.cpp (p_downloader_abort): Set pd->stream to NULL
3438         after destroying it.
3440         * plugin.cpp (PluginInstance::TryLoad): Added a comment that we
3441         should check for errors returned by NPN_GetURLNotify().
3442         (PluginInstance::UpdateSource): Same.
3443         (PluginInstance::UrlNotify): Removed a printf.
3445 2007-12-12  Jeffrey Stedfast  <fejj@novell.com>
3447         Fixes toward bug #341853
3449         * downloader.cpp (p_downloader_send): Check the return code from
3450         NPN_GetURLNotify() as it will give us an error if the file doesn't
3451         exist.
3453         * plugin.cpp (UrlNotify): Call Downloader::NotifyFailed() on
3454         error.
3456 2007-12-10  Chris Toshok  <toshok@ximian.com>
3458         * plugin-class.h, plugin-class.cpp: more event changes.  return
3459         the integer token for adding a handler, and change
3460         removeEventListener to accept either a string (unsupported at the
3461         moment) or integer second argument.  This allows things like
3462         removeEventListener (..., 0) for removing the event handler that's
3463         registered in xaml.
3465         Also, remove MoonlightEventListener{Type,Object} since we don't
3466         need to return a wrapped object from addEventListener any longer.
3468 2007-12-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3470         * plugin-class.cpp: Plug more leaks.
3472 2007-12-06  Jeffrey Stedfast  <fejj@novell.com>
3474         * plugin-class.cpp (MoonlightCollectionObject::Invoke):
3475         Implemented GetItemByName for MediaAttributeCollections.
3477 2007-12-06  Chris Toshok  <toshok@ximian.com>
3479         * plugin-class.h, plugin-class.cpp: a few changes.  abstract out
3480         all the event-as-property code, so we just add events to objects
3481         as additional properties in their mapping, and the MoonlightObject
3482         code handles it all for us.
3484 2007-12-05  Chris Toshok  <toshok@ximian.com>
3486         * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
3487         implement Equals.
3489 2007-12-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3491         * plugin-class.cpp: Rename DependencyObject::parent/SetParent/GetParent
3492         
3493             to logical_parent/SetLogicalParent/GetLogicalParent.
3495 2007-12-04  Jb Evain  <jbevain@novell.com>
3497         * plugin-class.h: add the definitions of MoonlightStylusInfoType
3498         and MoonlightStylusInfoObject.
3500         * plugin-class.cpp: implement MoonlightStylusInfoType and
3501         MoonlightStylusInfoObject. Add getStylusInfo() and getStylusPoints()
3502         methods on MouseEventArgs.
3504 2007-12-04  Jackson Harper  <jackson@ximian.com>
3506         * plugin-class.cpp: Map in IsLoaded, so HasProperty will return
3507         true for it.
3509 2007-12-03  Jeffrey Stedfast  <fejj@novell.com>
3511         * plugin.cpp (Properties): Added more runtime debug options.
3513 2007-11-29  Jeffrey Stedfast  <fejj@novell.com>
3515         * plugin.cpp (PluginInstance::Properties): Added runtime ability
3516         to enable show-expose regions.
3518 2007-11-20  Jb Evain  <jbevain@novell.com>
3520         * plugin-class.cpp: rename INVOKE_EXCEPTION to
3521         THROW_JS_EXCEPTION. Throw more exceptions where needed.
3523 2007-11-20  Jb Evain  <jbevain@novell.com>
3525         * plugin-class.cpp: throw JS exceptions where SL does.
3527 2007-11-20  Jb Evain  <jbevain@novell.com>
3529         * plugin-class.cpp( MoonlightContentObject::Invoke):
3530                 return null instead of undefined, like SL 1.0 does.
3532 2007-11-20  Jb Evain  <jbevain@novell.com>
3534         * plugin-class.h (html_get_element_text): add a function
3535         to get the `innerText` of an html element from its id.
3536         * plugin-class.cpp (html_get_element_text): implement it.
3537         * plugin.cpp (PluginInstance::UpdateSourceByReference):
3538         use html_get_element_text to get the inline xaml.
3539         Fixes #342349.
3541 2007-11-16  Chris Toshok  <toshok@ximian.com>
3543         * plugin-class.cpp, plugin-class.h: switch
3544         hasProperty,getProperty,setProperty,hasMethod,invoke to object
3545         methods instead of vtable entries on the type.  Also, put the
3546         name->id mapping in MoonlightObject's vtable entries, before the
3547         call to the virtual object methods (so now we only do name lookups
3548         there instead of all over the place) Also, aggregate mappings for
3549         all classes up to the root in the hierarchy when we initialize the
3550         type.  This means only 1 bsearch per LookupName, instead of 1 per
3551         mapping.
3552         
3553 2007-11-15  Jeffrey Stedfast  <fejj@novell.com>
3555         * plugin-class.cpp: Alphabetize all of the mapping tables so that
3556         bsearch works properly.
3558 2007-11-14  Chris Toshok  <toshok@ximian.com>
3560         * plugin-class.h, plugin-class.cpp: substantially rework the way
3561         names are looked up.  remove 90% of the has_method/has_property
3562         code, and move all the invoke/get_property/set_property to using
3563         id's for their work instead of string comparisons.  also make the
3564         string lookups case insensitive.  I don't much like the way
3565         chaining is done (check out MoonlightObjectType::SetBase and
3566         MoonlightObjectType::LookupName), but it's working for now, and
3567         should be substantially faster (and easier to maintain) this way
3568         than the naive conversion to case insensitivity.
3570 2007-11-14  Jeffrey Stedfast  <fejj@novell.com>
3572         Fixes for the Matrix demo.
3574         * plugin-class.cpp (EventListenerProxy): Don't leak the NPObject.
3575         (proxy_listener_to_javascript): Updated printf debugging.
3576         (moonlight_content_invoke): Use the second argument
3577         (create_namescope) and pass that along to xaml_create_from_str().
3579 2007-11-14  Andrew Jorgensen  <ajorgensen@novell.com>
3581         * Makefile.am: strip the ffmpeg libs for the user plugin but do not
3582         strip libmoon and libmono, will either add an option to strip those libs
3583         later or just make that part of the release process.
3584         * install.js.in: Cleaned up error handling and added a call to
3585         refreshPlugins(), should make it so nobody has to restart firefox
3587 2007-11-13  Andrew Jorgensen  <ajorgensen@novell.com>
3589         * Makefile.am: Use the mono_ddldir rather than assuming /usr/lib and
3590         pick up any dlls in the gac that are for the 2.1 profile so that we
3591         don't miss any that should have been symlinked in /usr/lib/mono/2.1 but
3592         for some reason were not.
3594 2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>
3596         * Makefile.am: Add moon.config to EXTRA_DIST
3598 2007-11-12  Andrew Jorgensen  <ajorgensen@novell.com>
3600         * install.js.in: Just add moonlight directory, not individual files.
3601         * mono.cpp: Get moonlight.exe from home dir plugin path.
3602         * plugin-proxy.cpp: dlopen libmono and set it's dirs.
3603         * Makefile.am: Build out the full directory structure for the user
3604         plugin and zip that.
3605         * moon.config: Installed as $sysconfdir/mono/config to tell mono to
3606         use the already dlopened libmoon.so.
3608 2007-11-09  Sebastien Pouliot  <sebastien@ximian.com>
3610         * plugin.cpp: Fix Moonlight URL (#339929) since it didn't work.
3612 2007-11-09  Jb Evain  <jbevain@novell.com>
3614         * browser-http.cpp|h: make browser_http_request_get_async_response
3615         return a boolean.
3618 2007-11-08  Miguel de Icaza  <miguel@novell.com>
3620         * plugin.cpp (PluginInstance::Properties): Spice this bad boy up.
3621         We now can get some info about a XAML surface.
3623 2007-11-08  Jeffrey Stedfast  <fejj@novell.com>
3625         * plugin.cpp (plugin_instance_get_surface): New function needed by
3626         BrowserHost class.
3627         (TryLoad): Removed an unnecessary g_assert() (the code handles the
3628         error case properly).
3630 2007-11-07  Jb Evain  <jbevain@novell.com>
3632         * browser-http.cpp|h: implement a GetStatus method for
3633         BrowserHttpResponse.
3635 2007-11-06  Miguel de Icaza  <miguel@novell.com>
3637         * plugin.cpp (string_to_js): rename from escape_quotes, this helps
3638         because some error messages being thrown from managed code contain
3639         newlines (Sudoku, see #325336).
3641 2007-11-05  Chris Toshok  <toshok@ximian.com>
3643         * plugin-class.cpp (moonlight_content_invoke): don't crash if the
3644         surface hasn't been attached (if we haven't finished loading the
3645         xaml yet).
3647 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3649         * plugin.cpp: Replace PLUGIN_OURVERSION with VERSION (from config.h)
3650         * moonlight.h: Put the version in the description string for the sake
3651         of our QA folks
3653 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3655         * install.js.in: Get the version and the target CPU from configure and
3656         do some error checking, including checking that the platform matches
3658 2007-11-01  Andrew Jorgensen  <ajorgensen@novell.com>
3660         * Makefile.am: Apparently $(builddir) is a newer autotools feature not
3661         available on SuSE 10.1 so we'll just not use it.
3663 2007-11-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3665         * downloader.cpp: Don't keep a ref to the Downloader, it causes a circular
3666           reference.
3668 2007-10-31  Andrew Jorgensen  <ajorgensen@novell.com>
3670         * Makefile.am: Don't link in cairo, pixman, or anything else that we
3671         don't need to libmoonplugin
3673 2007-10-29  Andrew Jorgensen  <ajorgensen@novell.com>
3675         * install.js, plugin-proxy.cpp, Makefile.am: Changes to include ffmpeg
3676         libs in the XPI package
3678 2007-10-27  Jackson Harper  <jackson@ximian.com>
3680         * plugin-class.cpp: Make onError work.
3682 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3684         * plugin-class.cpp, plugin-class.h: Implement emission of MarkerReached
3685           events.
3687 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3689         * mono.cpp: Enable vm stacktraces after mono has been loaded.
3691 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3693         * downloader.cpp: Ref/unref the downloader.
3695 2007-10-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3697         * plugin-class.h: NULL-initialize a variable, fixing a crash.
3699 2007-10-25  Jackson Harper  <jackson@ximian.com>
3701         * plugin-class.h:
3702         * plugin-class.cpp: Add the onError event to the content object.
3704 2007-10-25  Jackson Harper  <jackson@ximian.com>
3706         * plugin-class.cpp: Fix function name.
3708 2007-10-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3710         * plugin-class.cpp: Unref the event object even though the plugin is
3711           deleted.
3713 2007-10-24  Jb Evain  <jbevain@novell.com>
3715         * browser-http.cpp|h: work on asynchronous requests.
3717 2007-10-23  Andrew Jorgensen  <ajorgensen@novell.com>
3719         * install.js: Install the libraries under ~/.mozilla/plugins/moonlight
3720         so that they are not loaded by mozilla
3721         * moonlight.h: Don't define PLUGIN_INSTALL unless it is not defined
3722         * plugin-proxy.cpp: dlopen libmoon.so from the user's
3723         plugins/moonlight directory if we are building the user plugin
3724         * Makefile.am: Use the PLUGIN_INSTALL flag to control building of the
3725         XPI or not
3727 2007-10-23  Jb Evain  <jbevain@novell.com>
3729         * browser-http.cpp|h: Add support for Abort and SetBody.
3731 2007-10-22  Jb Evain  <jbevain@novell.com>
3733         * browser-http.cpp: add browser_http_response_destroy and
3734         browser_http_sync_response_read.
3736 2007-10-22  Jb Evain  <jbevain@novell.com>
3738         * browser-http.cpp|h (SyncBrowserHttpRequest::Read):
3739         do read the entire input stream even if it's a buffered
3740         input stream.
3742 2007-10-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3744         * plugin-class.cpp: If we're leaking NPObjects make sure we don't crash in
3745           invalidate, since FF will call invalidate long after shutting down
3746           moonlight.
3748 2007-10-21  Jb Evain  <jbevain@novell.com>
3750         * browser-http.cpp|h: add the files where the unmanaged
3751         implementation of BrowserHttpRequest will live.
3753         * Makefile.am: add them to the build.
3755 2007-10-18  Chris Toshok  <toshok@ximian.com>
3757         * plugin-class.cpp (moonlight_dependency_object_invoke): make the
3758         debug "printf" method its own method, instead of a hack on
3759         setValue.
3760         (MoonlightEventObjectObject::Dispose): remove the wrapped object
3761         from the cache.
3762         (MoonlightEventObjectObject::SetEventObject): update the cache.
3763         (EventObjectCreateWrapper): check the cache before creating a new
3764         js wrapper object.
3766         * debug.js: convert from
3767                 printf_proxy.setValue ("printf", message);
3768         to
3769                 printf_proxy.printf (message);
3771         * plugin.cpp, plugin.h: add {Add,Remove,Lookup}WrappedObject
3772         methods to cache the JS objects we use for a given EventObject*.
3774 2007-10-17  Chris Toshok  <toshok@ximian.com>
3776         * plugin.cpp (PluginXamlLoader::TryLoad): use ->Attach instead of
3777         surface_attach, and add a comment about element->unref().
3779 2007-10-16  Jb Evain  <jbevain@novell.com>
3781         * plugin.cpp: add plugin_instance_get_browser_runtime_settings.
3783 2007-10-16  Jb Evain  <jbevain@novell.com>
3785         * moonlight.cs: Keep track of all plugin unload callbacks.
3786         Don't use Hashtable and refactor some code.
3788 2007-10-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3790         * plugin.cpp, plugin-proxy.cpp: Remove some const char/char mismatch
3791           warnings.
3792         * plugin-glue.cpp: Fix some const char/char mismatch warnings.
3794 2007-10-10  Chris Toshok  <toshok@ximian.com>
3796         * plugin-class.cpp (EventListenerProxy::~EventListenerProxy):
3797         don't NPN_ReleaseObject the callback.  the browser does this for
3798         us.
3800 2007-10-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3802         * plugin.cpp: Fix e-mail.
3804 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
3806         * Makefile.am: Can't use the -MM (fail if patterns not matched) because it
3807         is a newer feature.
3809 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
3811         * Makefile.am: Make zip fail if one of the files is not found
3813 2007-10-09  Andrew Jorgensen  <ajorgensen@novell.com>
3815         * Makefile.am: Build the firefox xpi plugin installer (unsigned)
3816         * install.js: First draft install script for xpi
3818 2007-10-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3820         * TODO: Update, fullScreen is now implemented.
3822 2007-10-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3824         * plugin.cpp: Set the downloader context of the surface.
3825         * downloader.cpp: Ref/unref the downloader we store. Get the context stored
3826           in the downloader if possible, and use it to get the plugin instance.
3827         * plugin-class.cpp: Use the brand new PluginInstance::CreateDownloader, and
3828           provide xaml loaders for the xaml_create_from* methods.
3829         * plugin.h: Add a CreateDownloader method.
3831 2007-10-04  Zoltan Varga  <vargaz@gmail.com>
3833         * plugin.cpp (LoadUrl): New method to download stuff synchronously using the browser.
3834         (plugin_instance_load_url): C wrapper for the above.
3835         (ReportException): Fix a leak.
3837 2007-10-03  Chris Toshok  <toshok@ximian.com>
3839         * moonlight.h: need to wrap the renamed symbols in an extern "C"
3840         block.
3842 2007-10-03  Chris Toshok  <toshok@ximian.com>
3844         * moonlight.h, plugin-entry.cpp, plugin-proxy.cpp: if we're using
3845         libmoonloader.so, we need to rename the 4 symbols we proxy in
3846         plugin-entry.cpp, and load them up via our mangled names in
3847         plugin-proxy.cpp.  This is so mozilla doesn't try to load
3848         libmoonplugin.so as a plugin itself.  It should only load
3849         libmoonloader.so.  Also, add code in plugin-proxy.cpp to handle
3850         the case where the .so lives in ~/.mozilla/plugins.  This requires
3851         #define PLUGIN_INSTALL 1 to be used, so we should figure out how
3852         to build with that when building the XPI.
3854 2007-10-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3856         * plugin.cpp, plugin.h: Added SetPageURL, updates the Surface' source
3857           location to the url of the current page.
3859 2007-09-30  Zoltan Varga  <vargaz@gmail.com>
3861         * plugin.cpp (ReportException): Handle multiple calls correctly.
3863 2007-09-28  Chris Toshok  <toshok@ximian.com>
3865         * Makefile.am: wrap moonlight.exe stuff in "if
3866         INCLUDE_MONO_RUNTIME" where necessary.
3868 2007-09-28  Chris Toshok  <toshok@ximian.com>
3870         * moonlight.h (INCLUDE_MONO_RUNTIME): remove #define from here.
3871         it's now a configure arg (and the define lives in config.h).
3873 2007-09-28  Zoltan Varga  <vargaz@gmail.com>
3875         * plugin.cpp (UrlNotify): Add some debug messages here.
3876         
3877         * plugin.cpp (ReportException): New helper function to display exception details
3878         using dynamic html above the plugin frame.
3880 2007-09-27  Jeffrey Stedfast  <fejj@novell.com>
3882         * plugin-glue.cpp (NPP_Initialize): Call runtime_init() with
3883         RUNTIME_INIT_BROWSER.
3885 2007-09-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3887         * plugin.cpp: Properly release a MoonlightObject.
3889 2007-09-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3891         * plugin.cpp: PluginInstance::UrlNotify: delete the StreamNotify when we're
3892           done with it. Added plugin_xaml_loader_from_str.
3893         * plugin-class.cpp: moonlight_scriptable_control_invoke: unref the
3894           Downloader we create once the object wrapper has it. Move implementation
3895           of MoonlightEventObjectObject::SetEventObject here.
3896         * plugin.h: StreamNotify: ref the DependencyObject we get, and unref on
3897           destruction. Added plugin_xaml_loader_from_str.
3898         * plugin-class.h: Move implementation of
3899           MoonlightEventObjectObject::SetEventObject to the cpp file.
3901 2007-09-23  Jb Evain  <jbevain@novell.com>
3903         * plugin.cpp: Pride sin, add my name to the contributors.
3905 2007-09-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3907         * plugin.cpp, plugin.h: Add a plugin_unload_callback to PluginInstance, and
3908           call it in the dtor.
3909         * moonlight.cs: Added UnloadDomain: unloads the domain that was loaded for a
3910           specific plugin, and set the corresponding native callback. Keep a hash
3911           table of all created domains so that we know which domain to unload,
3912           Delete some dead code (DisposeXamlLoader, ~Loader, Dispose)
3914 2007-09-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3916         * plugin.cpp: If an assembly already has been downloaded once, don't try to
3917           reload the xaml (otherwise might cause a loop if loading the xaml failed
3918           due to a reason other than that the assembly wasn't already downloaded).
3919           Added PluginXamlLoader::LoadVM.  PluginXamlLoader::TryLoad: don't call
3920           into the vm here, since it might not be loaded yet. Move implementation
3921           of InsertMapping, CreateElement and SetAttribute to XamlLoader.
3922           InitializeLoader: don't create a managed loader if the vm hasn't been
3923           loaded.
3924         * plugin.h: Move implementation of InsertMapping, CreateElement and
3925           SetAttribute to XamlLoader.
3926         * plugin-class.h: Remove unused function declaration.
3927         * mono.cpp, moon-mono.h: Remove all managed methods except moon_load_xaml,
3928           which sets the methods as callbacks on the xaml loader with delegates
3929           now. Guard against loading the vm twice.
3930         * moonlight.cs: Moved code to agclr, just kept a simple stub here that
3931           creates the new AppDomain.
3932         * plugin-glue.cpp: Don't initialize the vm when the plugin is initialized,
3933           it's initialized on demand.
3935 2007-09-19  Zoltan Varga  <vargaz@gmail.com>
3937         * plugin.cpp (plugin_menu_about): Make the close button work on some gtk versions.
3939 2007-09-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3941         * plugin.cpp: Remove a printf.
3942         * plugin-class.cpp, plugin-class.h: Apparently invalidate isn't always
3943           called for our MoonlightObjects (though deallocate is). Create a Dispose
3944           method that does what invalidate did (and call it from Invalidate), and
3945           keep track if it has been called or not (allows deallocate to call it if
3946           invalidate wasn't called by mozilla). Make Dispose virtual so that the
3947           base deallocator can call it for all derived classes (which also means
3948           that we only need the base invalidate method), and add a virtual
3949           destructor so that the base deallocator can also delete the object (and
3950           remove all other *_deallocator methods). proxy_listener_to_javascript:
3951           release objects at the end of the method.
3953 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3955         * plugin.cpp, plugin.h, moonlight.cs: Move callbacks from PluginXamlLoader
3956           back to XamlLoader.
3958 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3960         * downloader.cpp: Removed warning.
3961         * plugin.cpp: Delete the current xaml_loader if we create a new one.
3963 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3965         
3967 2007-09-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3969         [Removed mono dependency for 1.0 moonlight applications. 
3970         We now have a native [Plugin]XamlLoader that is the native counterpart of the 
3971         managed Loader object, the native loader handles xaml loading when the 
3972         mono runtime isn't loaded.]
3974         * plugin.cpp, plugin.h: Added PluginXamlLoader that can forward calls into
3975           the managed loader if the mono runtime is loaded.
3976         * plugin-class.cpp: isVersionSupported: if built without mono runtime
3977           support, we only support 1.0 applications. Update according to API
3978           change.
3979         * moonlight.h, mono.cpp, moon-mono.h: Update according to API change.
3980         * moonlight.cs: Update according to API change. Added Hosting.base_unref and
3981           unref a few objects.
3982         * plugin-glue.cpp: Don't initialize the mono runtime for 1.0 applications.
3984 2007-09-09  Chris Toshok  <toshok@ximian.com>
3986         * plugin-class.cpp (moonlight_content_invoke): implement
3987         content.createFromXamlDownloader.
3989 Thu Sep 6 16:19:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3991         * mono.cpp, moon-mono.h, plugin.cpp, plugin.h: correct use of mono
3992         objects: they can't be stored in unmanaged memory.
3994 Thu Sep 6 15:22:20 CEST 2007 Paolo Molaro <lupus@ximian.com>
3996         * mono.cpp, moon-mono.h: cleanup of some code and localized the mono
3997         runtime calls.
3999 2007-09-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4001         * plugin-class.cpp: Added some special debug code, enabling basic printf
4002           functionality from javascript code. No need to synchronize console
4003           output with firebug output anymore.
4004         * debug.js: Added, a printf function for javascript, specially crafted for
4005           moonlight.
4007 2007-08-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4009         * plugin.cpp: Get the actual size from the surface.
4011 2007-08-31  Michael Hutchinson <m.j.hutchinson@gmail.com>
4013         * plugin.cpp: Fix pointer cast for 64-bit arch. 
4015 2007-08-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4017         * downloader.cpp: Added downloader_destroy.
4018         * plugin-class.cpp, plugin-class.h: Add plugin_destroy_classes, and remove a
4019           duplicate creation of MoonlightPointClass.
4020         * plugin-glue.cpp: Try shutting down everything correctly, if it can be
4021           shutdown, if not, don't initialize twice (vm and gtk).
4023 2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4025         * plugin-class.cpp: Javascript expects the sender of a FullScreenChange
4026           event to be the toplevel canvas, so when the Surface emits this event,
4027           change the sender to the toplevel canvas.
4029 2007-08-29  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4031         * plugin.cpp: Don't delete the surface, unref it.
4032         * plugin-class.cpp, plugin-class.h: Create a MoonlightEventObject* and make
4033           MoonlightDependencyObject* inherit from it. Change all event usage to
4034           the new class, enables events for objects that aren't DependencyObjects
4035           (but are EventObjects, such as Surface). Implement FullScreen support in
4036           the plugin.  Remove the dob field from MoonlightDependencyObject, the
4037           MoonlightEventObject has an eo field that fits the purpose, and
4038           implement a MoonlightDependencyObject.GetDependencyObject () that does
4039           what dob did earlier (and change all usages).
4041 2007-08-24  Jackson Harper  <jackson@ximian.com>
4043         * plugin-class.cpp|h: Add a new EventListenerObject that we can
4044         return from addEventListener.
4045         - Implement removeEventListener.
4047 2007-08-24  Jackson Harper  <jackson@ximian.com>
4049         * plugin-class.cpp|h: Now that getPosition works as intended, we
4050         don't need to store the position as an NPObject on the
4051         MouseEventArgs.
4052         - Eliminate the variant_to_value so that we don't need to do a
4053         bunch of extra casting.
4055 2007-08-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4057         * plugin-class.cpp: mouse_event_invoke (getPosition):
4058         use the argument to calculate the position if provided.
4060 2007-08-23  Jackson Harper  <jackson@ximian.com>
4062         * plugin-class.cpp: We can now hookup to the resize event.
4064 2007-08-23  Jb Evain  <jbevain@novell.com>
4066         * mono.cpp (vm_init): properly initialize the new debugging
4067         code.
4069 2007-08-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4071         * plugin-class.cpp|h: Duration and TimeSpan's seconds property
4072         is a double, so treat is as such. Add moonlight type information
4073         to MoonlightObject (and derived classes), so that the marshalling 
4074         knows how to treat them when they come back from js land.
4075         _set_dependency_property_value: handle values coming from js land
4076         correctly, according to their moonlight type.
4078 2007-08-23  Jb Evain  <jbevain@novell.com>
4080         * mono.cpp (vm_init): use new method name to initialize
4081         the debugger.
4083 2007-08-23  Jb Evain  <jbevain@novell.com>
4085         * Makefile.am: use -pkg:agmonosilver to reference agmono.dll
4087 2007-08-17  Chris Toshok  <toshok@ximian.com>
4089         * plugin-class.cpp|h: add a TimeSpan wrapper object.
4091 2007-08-17  Jb Evain  <jbevain@novell.com>
4093         * mono.cpp (vm_init): small refactoring to get MonoMethods.
4095 2007-08-17  Chris Toshok  <toshok@ximian.com>
4097         * plugin-class.cpp (moonlight_content_has/get/set_property): stub
4098         the onFullScreenChange property, to just warn us about the
4099         unimplemented functionality.
4101 2007-08-17  Jackson Harper  <jackson@ximian.com>
4103         * plugin-class.cpp|h: Add a duration object that is exposed to the
4104         JS.
4105         - Fix the value_to_variant to handle durations, rects and points.
4107 2007-08-17  Chris Toshok  <toshok@ximian.com>
4109         * plugin-class.cpp (moonlight_dependency_object_invoke): add
4110         toString method for DependencyObjects, which just returns the type
4111         name.
4113 2007-08-17  Jackson Harper  <jackson@ximian.com>
4115         * plugin-class.cpp: Properties are allowed to be null, so we still
4116         return true if the value is null.
4118 2007-08-17  Jackson Harper  <jackson@ximian.com>
4120         * plugin-class.cpp: Add the Root property to the content
4121         object. This just returns the top element.
4123 2007-08-17  Jb Evain  <jbevain@novell.com>
4125         * Makefile.am: use smcs to compile moonlight.exe
4126         * mono.cpp (vm_init): force the use of the moonlight profile
4127         by the mono vm.
4129 2007-08-16  Jackson Harper  <jackson@ximian.com>
4131         * plugin.cpp:
4132         * downloader.cpp: Remove my downloader event code, these are
4133         raised elsewhere (they were hidden behind another bug yesterday).
4135 2007-08-16  Jackson Harper  <jackson@ximian.com>
4137         * plugin-class.cpp: Fix cut&paste error that was preventing
4138         GetValue from working (get value only needs one arg).
4140 2007-08-16  Jackson Harper  <jackson@ximian.com>
4142         * plugin-class.cpp: Add removeAt method to collections.
4144 2007-08-15  Jackson Harper  <jackson@ximian.com>
4146         * plugin-class.cpp: Implement ctrl/shift for mouse and keyboard
4147         events.  I didn't use a shared base class, because the
4148         duplicated code is significantly less than the boilerplate code
4149         needed.
4151 2007-08-15  Jackson Harper  <jackson@ximian.com>
4153         * plugin-class.h|cpp: Add support for keyboard arguments in the
4154         keyup/keydown events. TODO: Still need to implement shift and
4155         control, ideally, in a base class for mouse and keyboard events.
4157 2007-08-15  Jackson Harper  <jackson@ximian.com>
4159         * plugin.cpp:
4160         * downloader.cpp: Raise downloading events.
4162 2007-08-13  Jackson Harper  <jackson@ximian.com>
4164         * plugin-class.cpp: findName should only look in the dependency
4165         object's scope.
4167 2007-08-13  Jackson Harper  <jackson@ximian.com>
4169         * plugin-class.cpp: For dependency object strings don't return
4170         null, just return an empty string.
4172 2007-08-11  Miguel de Icaza  <miguel@novell.com>
4174         * moonlight.cs: Use the new Appdomain helper methods too.
4176         Use Ansi here because we only run on Linux not on
4177         Windows and the Auto API is gone from 2.1
4179         * moonligth.cs: Use the new helper method from agmono instead of
4180         duplicating code here.
4182 2007-08-07  Jackson Harper  <jackson@ximian.com>
4184         * moonlight.cs: Add another system library to the do-not-download
4185         list.
4187 2007-08-06  Jackson Harper  <jackson@ximian.com>
4189         * plugin-class.cpp: We don't need to explicitly free the value
4190         because the dtor will for us.
4192 2007-08-06  Jackson Harper  <jackson@ximian.com>
4194         * plugin-class.cpp|h: Add functionality for detaching events and
4195         for releasing object references.
4196         - When looking up on the window object, do not release it.  It
4197         doesn't need to be released because it is never retained.
4198         - Add a new function for creating a browser alert message.
4200 2007-08-03  Chris Toshok  <toshok@ximian.com>
4202         * plugin-class.cpp (moonlight_downloader_*): add
4203         has_property/get_property methods, for the "responseText"
4204         property. not sure if getResponseText() is still around, but the
4205         property definitely is in use by silverlight pad.
4206         
4207 2007-08-03  Jackson Harper  <jackson@ximian.com>
4209         * plugin-class.h|cpp: Add support for mouse events, pass all the
4210         info needed by HtmlEventArgs back in the callback.
4211         - Don't return null or void objects from invoke or get property.
4213 2007-08-03  Jackson Harper  <jackson@ximian.com>
4215         * moonlight.cs: Dont download all the system libraries.
4217 2007-08-03  Jackson Harper  <jackson@ximian.com>
4219         * plugin-class.h|cpp: Add support for attaching properties.
4221 2007-08-02  Chris Toshok  <toshok@ximian.com>
4223         * plugin-class.cpp (moonlight_content_invoke): createFromXaml
4224         doesn't create a control object - it parses the xaml you pass in
4225         and returns the root element, so it can be used for any xaml
4226         content.
4228         * plugin.h, plugin.cpp: add plugin_instance_get_init_params for
4229         use in WebApplication.StartupArgs.
4231 2007-07-29  Chris Toshok  <toshok@ximian.com>
4233         * moonlight.h: track the 1.1 refresh changes.
4235 2007-07-25  Chris Toshok  <toshok@ximian.com>
4237         * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4238         "getParent" correctly - it can return NULL.
4240 2007-07-25  Chris Toshok  <toshok@ximian.com>
4242         * plugin-class.h: implement scriptable events (adding and emitting
4243         them, at least).
4245 2007-07-24  Jackson Harper  <jackson@ximian.com>
4247         * plugin-class.cpp|h: Add function to invoke methods on
4248         htmlobjects from unmanaged code.
4249         
4250 2007-07-24  Chris Toshok  <toshok@ximian.com>
4252         * plugin.cpp (PluginInstance::setBackground): implement.
4253         (PluginInstance::CreateWindow): if our args contained a background
4254         color, set the surface's background.
4256 2007-07-24  Jackson Harper  <jackson@ximian.com>
4258         * plugin-class.cpp: Move the window release up, prevents random
4259         crashing in firefox.
4261 2007-07-24  Chris Toshok  <toshok@ximian.com>
4263         * plugin-class.h, plugin-class.cpp: add wrapper classes for
4264         TextBlocks and ImageBrushes.
4266 2007-07-24  Jackson Harper  <jackson@ximian.com>
4268         * plugin-class.cpp: Implement variants to value on objects. TODO,
4269         add a method to release those objects.
4271 2007-07-24  Chris Toshok  <toshok@ximian.com>
4273         * plugin-class.h, plugin-class.cpp: add a wrapper class for
4274         Images, which implements SetSource. also add SetSource handling
4275         for the MediaElement wrapper.
4277         * moonlight.cs: rework event hookup so that if we fail to hookup
4278         with C#, we assume it's a JS event.  hook it up via the
4279         EventListenerProxy stuff.
4281         * plugin.h, plugin.cpp: MoonlightControl -> MoonlightScriptable
4283         * plugin-class.h, plugin-class.cpp: 
4285         1. rename MoonlightControl* to MoonlightScriptableControl* to
4286         distinguish it from the new MoonlightControl, which is a wrapper
4287         for our Control class.  factor out the _set_dependency_property_value
4289         2. add "getParent", "setValue", and "getValue" methods to the
4290         dependencyobject wrapper.
4292         3. Add a ctor for EventListenerProxy which just takes the callback
4293         name for use in hooking up js events from the parser.
4295 2007-07-24  Jackson Harper  <jackson@ximian.com>
4297         * plugin.h|cpp: Add a getter for the plugin instance
4298         * plugin-class.h|cpp: Property get/setters for html objects.
4300 2007-07-23  Chris Toshok  <toshok@ximian.com>
4302         * plugin-class.h, plugin-class.cpp: include error.h, and start out
4303         some error event args wrapping stuff.
4305 2007-07-23  Miguel de Icaza  <miguel@novell.com>
4307         * plugin.cpp (PluginInstance): track the timers on a linked list
4308         here. 
4310         (~PluginInstance): Remove all the timers for this plugin on
4311         destruction. 
4313         (plugin_html_timer_timeout_add, plugin_html_timer_timeout_stop):
4314         Move these routines here and track all the timers created. 
4316         * moonlight.cs: Use the type from agmono instead of agclr
4318 2007-07-21  Chris Toshok  <toshok@ximian.com>
4320         * plugin-class.cpp (variant_to_value): fix this such that it
4321         doesn't crash due to c++'s not using a copy ctor when you do "foo
4322         = Value()".  the first of the changes are fallout from this.
4324 2007-07-20  Miguel de Icaza  <miguel@novell.com>
4326         * Fix a memory leak.
4328 2007-07-19  Chris Toshok  <toshok@ximian.com>
4330         * plugin-class.h, plugin-class.cpp: factor out the
4331         EventListenerProxy stuff into a separate class.
4333 2007-07-19  Chris Toshok  <toshok@ximian.com>
4335         * plugin-class.cpp (moonlight_control_get_property): Retain the
4336         settings/content objects before returning them.  fixes crash in
4337         silverlight chess.
4339 2007-07-19  Chris Toshok  <toshok@ximian.com>
4341         * plugin.h, plugin.cpp: add getBrowserInformation call, useful for
4342         populating the managed BrowserInformation object.  need to flesh
4343         out how to get the other info.  userAgent is easy.
4345         also, in plugin.cpp, only invoke is onLoad handler if
4346         vm_loader_try doesn't return a missing file.  This fixes the
4347         ordering problem in the silverlight chess demo (where we were
4348         accessing JScriptPlayer before it was created).
4349         
4350 2007-07-19  Chris Toshok  <toshok@ximian.com>
4352         * plugin-class.h: add some scriptable object event stuff.
4354         * plugin-class.cpp: a couple of things.
4356         1) fix the _invalidate and _deallocate methods.  _invalidate
4357         shouldn't release objects.  and _deallocate can now call delete
4358         again, so we don't leak all our wrapper objects.
4360         2) add some initial scriptable object event methods (add/remove),
4361         but they don't actually do much yet.
4362         
4363         * plugin.cpp: fix the refcounting of the rootobject, and remove
4364         some RUNTIME ifdefs.
4366         * plugin-glue.cpp (NPP_Initialize): remove the RUNTIME ifdefs.
4368         * moonlight.h: remove some of the unused ifdefs.  also, we're not
4369         going to ever build this with RUNTIME or SCRIPTING not defined, so
4370         remove them.
4372 2007-07-18  Jackson Harper  <jackson@ximian.com>
4374         * plugin-class.cpp: Build fix.
4376 2007-07-17  Chris Toshok  <toshok@ximian.com>
4378         * plugin-class.cpp (moonlight_scriptable_object_invoke): deal with
4379         function arguments.
4381         * plugin-class.h: change the type of InvokeDelegate - we pass an
4382         array, not an array of pointers.
4384         * plugin.cpp (JsRunOnload): remove redundant call to
4385         surface->GetToplevel().
4387 2007-07-16  Chris Toshok  <toshok@ximian.com>
4389         * moonlight.cs: AppDomain.SetData the plugin instance so
4390         WebApplication can get at it.
4392         * plugin-class.cpp (variant_to_value): pseudo-inverse of
4393         value_to_variant.  used by the scriptable object stuff.
4395         Also, add the first pass at the scriptable object code.  it's
4396         really, really rough at this point.
4397         
4398         * plugin.cpp (PluginInstance::GetValue): switch this to calling
4399         getRootObject().
4400         (PluginInstance::getRootObject): put the old GetValue (create or
4401         retain) logic here.
4403 2007-07-12  Chris Toshok  <toshok@ximian.com>
4405         * plugin-class.cpp: implement support for using a string as the
4406         second arg in addEventListener.  now you can register callbacks
4407         using either:
4409         object.addEventListener ("EventName", method);
4411         or
4413         object.addEventListener ("EventName", "methodName");
4415         fixes SilverlightChess crashing (since we were trying to
4416         InvokeDefault a string.  oops. :)
4418 2007-07-12  Chris Toshok  <toshok@ximian.com>
4420         * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4421         captureMouse/releaseMouseCapture.  going to move these to a
4422         UIElement specific wrapper next.
4424 2007-07-12  Chris Toshok  <toshok@ximian.com>
4426         * plugin-class.cpp, plugin-class.h:  a few things:
4428         refactor the listener proxying stuff to share code.  when creating
4429         a proxy you create the event arg wrapper function, which at
4430         present only the mouse event stuff uses.
4432         wrap Downloader.  events are properly emitted, we should move the
4433         Downloader to using EventHandler's instead of its custom list of
4434         listeners.
4436         when looking up an attached property both (or one, or neither!) of
4437         the names can be capitalized.  like: foo['canvas.top'],
4438         foo['Canvas.Top'], and foo['canvas.Top'].  handle all of them.
4440         in value_to_variant, when setting a property to an object value,
4441         we assume (perhaps incorrectly) that it will be a
4442         MoonlightDependencyObjectObject, and handle it that way.  it seems
4443         to work for the demos at least.  Also in that same method, stop
4444         allocating a 20 byte buffer in the hope that it's enough.  just
4445         use g_strdup/g_strdup_printf.
4446         
4447         add control.createObject support for creating wrapped
4448         downloaders.  also, start on the implementation for
4449         control.onResize, but we need to shift the surface's resize
4450         callback to use an EventHandler.
4452 2007-07-11  Chris Toshok  <toshok@ximian.com>
4454         * plugin-class.cpp, plugin-class.h: fix up the point and rect
4455         wrappings, and implement mouse event proxying.
4457 2007-07-11  Chris Toshok  <toshok@ximian.com>
4459         * plugin-class.cpp, plugin-class.h: wrap the MediaElement enough
4460         to provide the start/stop/pause methods.
4462 2007-07-11  Chris Toshok  <toshok@ximian.com>
4464         * plugin-class.cpp, plugin-class.h, plugin-glue.cpp, plugin.h,
4465         plugin.cpp: I know this looks like a scary change, but 90% of the
4466         code is the same.  I just took advantage of the fact that we
4467         already have structs with all the function pointers in them.
4468         there's no reason to proxy from a function pointer in the struct
4469         to an instance method on a singleton class - just use the function
4470         pointer.
4472         Also, add a binding for Points, which we'll need to wrap mouse
4473         events.
4475 2007-07-11  Chris Toshok  <toshok@ximian.com>
4477         * moonlight.h (DEBUG_WARN_NOTIMPLEMENTED): add this macro so we
4478         can get spew to the console when we hit unimplemented bits.
4480         * plugin-class.cpp: a couple of changes:
4482         1. the case of property names is lax too, it seems.  'Children'
4483         can be used in the js, as well as 'Children'.  so we need to allow
4484         both.
4486         2. Fix a memory corruption issue with value_to_variant - we need
4487         to duplicate the string we give to mozilla, since it'll free it in
4488         NPN_ReleaseVariantValue.
4490         3. Implement proxies between our event handlers and JS event
4491         listeners.  We leak like a sieve here, btw.  need to figure out
4492         the best way to free up these proxies.  This works for any event
4493         that has been Register'ed by an EventObject and which is Emit'ed
4494         from C++.
4496         4. Implement collection.getItem().
4497         
4498 2007-07-11  Chris Toshok  <toshok@ximian.com>
4500         * plugin.h, plugin.cpp: add getRootObject to return the
4501         MoonlightControlObject.
4503         * plugin-class.cpp (MoonlightDependencyObjectClass::Invoke):
4504         implement "getHost" by returning PluginInstance->getRootObject().
4506 2007-07-11  Chris Toshok  <toshok@ximian.com>
4508         * plugin-class.h, plugin-class.cpp: substantially rework this
4509         stuff.  Rename everything Moonlight*Class and Moonlight*Object
4510         instead of Plugin*Class/Object, to make it a little clearer that
4511         these are (almost entirely) wrappers for moonlight objects.
4513         Also clean up the distinction between "Class" and "Object".  for
4514         instance, MoonlightDependencyObjectClass shouldn't have the
4515         DependencyObject*, that should live in the instance -
4516         MoonlightDependencyObjectObject (bad name i know..)
4518         our Objects also need a little bit more inheritance action.
4519         MoonlightObject isn't enough for all cases.  Augment this with
4520         other classes, and override AllocateObject to allocate the right
4521         kind per class.  Also, we need to override InvalidateObject to
4522         clear fields in the MoonlightObject subclasses before it's
4523         deallocated.
4525         Also make all the Class's singletons.  We never need more than one
4526         of each of them.
4527         
4528         * plugin.h, plugin.cpp: we don't need a generate JsExecute method.
4529         besides, it's dangerous to NPN_Evaluate strings we get from the
4530         HTML anyway.  Replace JsExecute with JsRunOnload, which uses
4531         NPN_Invoke to call the specified method.  we also need to pass the
4532         surface's toplevel control as an argument to it.
4534 2007-07-11  Miguel de Icaza  <miguel@novell.com>
4536         * moonlight.cs: Add support for downloading assembly
4537         dependencies. 
4539 2007-07-10  Chris Toshok  <toshok@ximian.com>
4541         * moonlight.cs: add some helpful debug spew.
4543         * plugin.cpp (StreamAsFile): the mapping needs to point to the
4544         filename on disk, not the full uri.  or else we try loading
4545         "http://" off the filesystem, which doesn't really work.  Just to
4546         be thorough, add a mapping from the stream's url to the fname as
4547         well.
4549 2007-07-09  Miguel de Icaza  <miguel@novell.com>
4551         * Makefile.am: install debugging symbols.
4553         * moonlight.cs: try/catch wrappers to prevent exceptions to be
4554         propagated to native code.
4556 2007-07-09  Chris Toshok  <toshok@ximian.com>
4558         * moonlight.cs: copy over the System.Reflection implementation of
4559         set_attribute from XamlReader.  also, track the change to the
4560         xaml_* apis - don't pass the callbacks to the individual methods.
4561         instead register them in a static ctor.
4563 2007-07-09  Miguel de Icaza  <miguel@novell.com>
4565         * moonligh.cs: Invoke the Lookup(Kind, IntPtr) overload, just like
4566         we do in XamlReader. 
4568 2007-07-06  Miguel de Icaza  <miguel@novell.com>
4570         * downloader.cpp: Update to the get-response-text downloader API.
4572 2007-07-03  Miguel de Icaza  <miguel@novell.com>
4574         * plugin.cpp (NewStream): Request that DOWNLOADER downloads be
4575         downloaded as NP_ASFILE, this means: notify us of the progres and
4576         the resulting filename.
4578 2007-06-26  Marek Habersack  <mhabersack@novell.com>
4580         * moonlight.h (GDK_NATIVE_WINDOW_POINTER): define this macro if
4581         we're on a 64-bit platform. Otherwise plugin.cpp will fail to
4582         compile (attempting to convert guint32 to 64-bit pointer).
4584 2007-06-24  Larry Ewing  <lewing@novell.com>
4586         * moonlight.h: include xaml.h so that things build.
4588 2007-06-24  Atsushi Enomoto  <atsushi@ximian.com>
4590         * Makefile.am : we need libmoonplugin.so installed too.
4592 2007-06-23  Miguel de Icaza  <miguel@novell.com>
4594         * plugin-proxy.cpp: This is the new entry point for the plugin
4595         which can be loaded and unloaded as many times as desired, and
4596         will keep the real plugin in $pkgdir/libmoonplugin.so loaded as
4597         well as the Mono VM
4599         This prevents the bugs where the code is unloaded, but we still
4600         have a few places where we are triggering screen updates when the
4601         objects have gone, those must be tracked down.
4603 2007-06-23  Chris Toshok  <toshok@ximian.com>
4605         * Makefile.am: distcheck work.
4607 2007-06-22  Chris Toshok  <toshok@ximian.com>
4609         * README: barebones README to tell people what to do with the
4610         plugin.
4612 2007-06-21  Jackson Harper  <jackson@ximian.com>
4614         * moonlight.cs: Do what I was trying to do with the last commit.
4615         Attach the surface so that events are registed.
4617 2007-06-21  Jackson Harper  <jackson@ximian.com>
4619         * moonlight.cs: Init the surface so that the mouse events are
4620         hookedup.
4622 2007-06-20  Jeffrey Stedfast  <fejj@gnome.org>
4624         * plugin.cpp (plugin_show_menu): Free the menu name after setting
4625         it on the widget.
4627         * mono.cpp (vm_init): Don't need top prefix with "/".
4629 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4631         * plugin.cpp: Add new params to xaml_create_from_file and 
4632         xaml_create_from_str calls to fix compilations problems.
4634 2007-06-20  Chris Toshok  <toshok@ximian.com>
4636         * plugin.cpp (StreamAsFile): don't try to execute onLoad if there
4637         isn't one.
4639 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4641         * plugin.cpp, plugin.h: Implement JsExecute method and use it to call onload
4642         event specified in control creation. onLoad and onError field is also 
4643         created.
4645 2007-06-20  Jackson Harper  <jackson@ximian.com>
4647         * moonlight.cs: Tie into events.
4649 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4651         * plugin-class.cpp: Update DependencyObject setter to work with strings
4652         and some other data types, using xaml_set_property_from_str. Also remove
4653         some debug messages, we have too much.
4655 2007-06-20  Everaldo Canuto  <ecanuto@novell.com>
4657         * plugin.cpp: Uncomment container detroy lines in Finalize method.
4659 2007-06-20  Sebastien Pouliot  <sebastien@ximian.com>
4661         * plugin-class.cpp: Alloc one byte to set it to NULL so we don't
4662         write to unallocated memory.
4664 2007-06-20  Chris Toshok  <toshok@ximian.com>
4666         * plugin.cpp (PluginInstance::Write): it turns out the "offset"
4667         parameter that is passed to us is the offset without the *stream*,
4668         not the buffer.  Always pass 0 for the offset to downloader_write.
4669         This fixes image downloads for images larger than the mozilla
4670         buffer size (those requiring more than 1 write) of 16384.
4672 2007-06-19  Chris Toshok  <toshok@ximian.com>
4674         * plugin-glue.cpp (NPP_Initialize): if we're going to Shutdown()
4675         the TimeManager in NPP_Shutdown, we need to restart it in
4676         NP_Initialize.
4678 2007-06-19  Chris Toshok  <toshok@ximian.com>
4680         * plugin-class.cpp: check in the variant_to_value/value_to_variant
4681         methods, and make GetProperty/SetProperty use them.
4683         * plugin.cpp (UpdateSourceByReference): use g_strlcpy/g_strlcat
4684         instead of strcpy/strcat (which was actually walking off the end
4685         of the string).  also, create the char array of the right size.
4687 2007-06-19  Atsushi Enomoto  <atsushi@ximian.com>
4689         * Makefile.am : we need uninstall-plugin to avoid
4690           possible browser shutdown on browsing sl-enabled sites.
4692 2007-06-19  Everaldo Canuto  <ecanuto@novell.com>
4694         * plugin-class.cpp,  plugin-class.h: Implement DependencyObject properties
4695         getter and setters.
4697 2007-06-19  Everaldo Canuto  <ecanuto@novell.com>
4699         * plugin.cpp: Eliminate remaining canvas field.
4701 2007-06-19  Miguel de Icaza  <miguel@novell.com>
4703         * plugin.h: Eliminate the field canvas, as the managed code can
4704         replace the toplevel and we wont be able to track it.   Access the
4705         field directly from the surface instead.
4707 2007-06-18  Miguel de Icaza  <miguel@novell.com>
4709         * moonlight.cs: Create appdomains to keep applications separate
4710         and to keep the IntPtr to the plugin.
4712         The handle to the plugin is stored in agclr in the BrowserHost
4713         class. 
4715 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
4717         * plugin-class.cpp: Implement maxFrameRate property.
4719 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
4721         * moonlight.h: Just a high value for MAX_STREAM_SIZE.
4723 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
4725         * plugin.cpp, plugin.h: Implement Write and WriteReady to interact with
4726         Downloader functions. It looks to be right but image still dont appears, 
4727         mayeb something in download manager functions. STREAM_NOTIFY macro added to
4728         header file.
4730 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
4732         * downloader.cpp: Fix stream notify data, must be Downloader not 
4733         PluginDownloader.
4735 2007-06-18  Everaldo Canuto  <ecanuto@novell.com>
4737         * plugin-glue.cpp: Remove stream destruction from Write and WriteReady, it
4738         was preventing browser to call our write function.
4740         * moonlight.h: MAX_STREAM_SIZE constant added.
4742 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
4744         * plugin.cpp, plugin.h: Add a new StreamNotifyFlags REQUEST, it is used by
4745         files requested by Mono runtime, the use of notify bring us a more clean
4746         code to controls requested files.
4748         * downloader.cpp: Use StreamNotify and check for existense of instance.
4750 007-06-17  Jackson Harper  <jackson@ximian.com>
4752         * moonlight.cs: Parse type names out of xmns strings. x:Class uses
4753         this slightly different format.
4755 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
4757         * plugin.cpp, plugin.h: Add support for "#" (references) in source urls, it
4758         make possible use embedded xaml files. Also every source updates go to the
4759         UpdateSource and UpdateSourceByReference methods.
4761         * moonlight.cs: Xaml file loader splited in two methods CreateXamlFileLoader
4762         and CreateXamlStrLoader to support embedded files.
4764         * mono.cpp: Wrapper funtions also splited in file loader and str loader.
4766 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
4768         * plugin.cpp: Use setSource to define source in Initialize, it give us only
4769         one place to check set source code. Also prevent setSource to segfault when
4770         source field is null.
4772 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
4774         Fixes browser segfaults related to timemanager when goto another page or 
4775         close browser.
4777         * plugin-glue.cpp: Call runtime_init every time that browser initialize 
4778         plugin, when plugin shutdown just shutdown timemanager since we have 
4779         problems to runtime_shutdown. Some comment added to this implementation
4780         and we must back here when runtime_shutdown is fixed.
4782 2007-06-17  Everaldo Canuto  <ecanuto@novell.com>
4784         * plugin.cpp, plugin.h: Create StreamNotify class to use as notifydata 
4785         parameter in NPN_GetURLNotify function, it gives us better control about
4786         what is downloading. Fixes errors when you try change control source 
4787         property.
4789 2007-06-17  Miguel de Icaza  <miguel@novell.com>
4791         * downloader.cpp (p_downloader_send): Some tidbits for the plugin
4792         download, not complete.
4794 2007-06-16  Jackson Harper  <jackson@ximian.com>
4796         * moonlight.cs: Set custom attributes on xaml elements.
4798 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
4800         * moonlight.h: Include config.h since moonlight.h is included by all files.
4801         Fixes compilation problems.
4803 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
4805         * plugin.cpp, plugin.h: Remove sourceUrl and use NPN_GetURLNotify notifyData
4806         param to inform when download is source.
4808 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
4810         * mono.cpp: Remove debug message cr.
4812         * plugin.cpp, plugin.h, plugin-class.cpp: Windowless property added.
4814 2007-06-16  Jackson Harper  <jackson@ximian.com>
4816         * moonlight.cs: Quick implementation of miguels beautiful new xaml
4817         loading mechanism. We now properly download the assembly and
4818         create the element. The custom.xaml test does work, however you
4819         need to invalidate the canvas to see the red canvas background
4820         showup.
4822 2007-06-16  Miguel de Icaza  <miguel@novell.com>
4824         New mechanism for loading XAML files.
4826         Since XAML files can contain references to external assemblies and
4827         these have to be downloaded using the browser, we have now changed
4828         our previous setup that just called the xaml parser with a setup
4829         that is able to download dependencies.
4831         The system works by attempting repeatedly to parse the XAML file.
4832         The XAML parser needs to return an error condition that includes
4833         the missing dependency.   
4835         For all missing dependencies, we request the file from the
4836         browser, and we re-try the parsing until it works (or it fails due
4837         to other problems). 
4838         
4839         * moonlight.cs: Instead of exposing a CreateFromXaml method, we
4840         now expose a Loader object.
4842         The Loader object can keep track of downloaded assembly
4843         dependencies and calls the parser.
4844         
4845         * plugin.cpp (NewStream): Use a primitive state machine
4846         (vm_missing_url == vm_missing_file) to detect when we have just
4847         requested that a file be downloaded.   This probably is too
4848         primitive. 
4850         (TryLoad): New method.    
4851         
4852         Tries to load the XAML file, the parsing might fail because a
4853         required dependency is not available, so we need to queue the
4854         request to fetch the data.
4856         (LoadFromXaml): Use vm_xaml_loader_new and TryLoad now.
4857         
4858         * mono.cpp (vm_init): We now use a handful of more methods from
4859         moonlight.cs 
4861         (vm_loader_try, vm_insert_mapping): helper functions to call into
4862         the managed wrapper for XAML file loading.
4864 2007-06-16  Everaldo Canuto  <ecanuto@novell.com>
4866         * plugin.cpp, 
4867         * plugin.h, 
4868         * plugin-class.cpp: Implement enableFramerateCounter, enableRedrawRegions
4869         and enableHtmlAccess properties.
4871 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4873         * plugin.cpp, plugin.h, plugin-class.cpp: Background property added.
4875 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4877         * plugin.cpp: Let LoadFromXaml just call load xaml routines.
4879 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4881         * moonlight.cs: Fix surface attachment.
4883 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4885         * plugin-glue.cpp: Prevent multiple runtime and mono vm initialization.
4887 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4889         * plugin.cpp, plugin.h: LoadFromXaml added to host canvas creation.
4891 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4893         * moonlight.h: Turns mono runtime enabled by default.
4895         * mono.cpp: Use of DEBUGMSG macro for debug message.
4897         * moonlight.cs: Fix Canvas kind number.
4899 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4901         * plugin.cpp, plugin.h, plugin-class.cpp: Fix setter for source property.
4903 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4905         * plugin.cpp, plugin.h: Add sourceUrl to get information about base source
4906         url. New Stream also check if request is for source file, if not return
4907         NP_NORMAL to be used later by downloader functions.
4909 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4911         * plugin-class.cpp, plugin-class.h: Remove macro STRING_TO_NPVARIANT, create
4912         method StringToNPVariant and change all reverences from macro to method. 
4913         StringToNPVariant also take care about NULL strings.
4915 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4917         * plugin.cpp, plugin.h, plugin-class.cpp: Implement initParams property.
4919 2007-06-15  Everaldo Canuto  <ecanuto@novell.com>
4921         * plugin-class.cpp: Implement setters for enableFramerateCounter,
4922         enableHtmlAccess and windowless. This fields cant be set after 
4923         initialization so just do nothing and return true.
4925 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4927         * plugin-glue.cpp: After PluginObject changes we can back to release objects
4928         and it fix segfault when browser closes.
4930 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4932         * plugin.cpp,
4933         * plugin-class.cpp,
4934         * plugin-class.h: Remove unneeded instance fields, and contructor, after
4935         implementation of PluginObject we have a better way to get instance 
4936         information.
4938 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4940         * plugin-class.cpp: Change all PluginRootClass properties to use new object
4941         class PluginObject.
4943 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4945         * plugin-class.cpp,
4946         * plugin-class.h: Rename NPObject references to PluginObject, PluginObject 
4947         class theres more useful information like instance and plugin.
4949 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4951         * downloader.cpp,
4952         * downloader.h,
4953         * Makefile.am: Downloader functions added.
4955         * plugin-glue.cpp: On NPP_Initialize call downloader_initialize.
4957 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4959         * plugin-class.cpp: In PluginDependencyObject:: ClassGetProperty return 
4960         false instead of null because funtion is of type boolean. It fix message
4961         warning.
4963 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4965         * plugin.cpp: Move rootclass declaration to plugin-class.
4966         
4967         * plugin.h: Remove inclusion of plugin-class.h.
4969         * plugin-class.h: Introduces PluginObject class inherited from NPObject and 
4970         add rootclass declaration.
4972         * plugin-class.cpp: Uses PluginObject instead of NPObject, also make use of
4973         object in 'source' property getter.
4975 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4977         * plugin.cpp, plugin.h: Add a new member finalize that must be calling 
4978         instead of delete, we must later found a way to fix reload problems.
4980         * plugin-glue.cpp: Call finalize instead of delete.
4982         * TODO: Some notes about this bad implementation.
4984 2007-06-14  Everaldo Canuto  <ecanuto@novell.com>
4986         * plugin-class.cpp: Add setter for control.source property.
4988 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
4990         * plugin.cpp, plugin.h: isLoaded property added.
4992         * plugin-class.cpp: Implement control.isLoaded wrapper.
4994 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
4996         * plugin-class.h: 
4997         - Take some notes on properties that cant be set after initialization.
4998         - Create macho STRING_TO_NPVARIANT to standardize the way how strings are
4999         returned to jscript calls.
5001         * plugin-class.cpp:
5002         - Implement control.source using STRING_TO_NPVARIANT macro.
5003         - Uses STRING_TO_NPVARIANT macho in control.settings.version.
5005         * plugin.h: Add source property.
5007         * plugin.cpp: Set source on initialization.
5009 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5011         * plugin.cpp, plugin.h: 
5012         - Move static rootobject to class field to get working pages with more than
5013         one moonlight control.
5014         - Implement param source for html object elements, this is default way to
5015         tell plugin which xaml it must load.
5017 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5019         * plugin-class.cpp, plugin-class.h:
5020         - Move instance field from PluginRootClass to PluginClass because most
5021         classes can make use of this field, class constructor is also changed to
5022         receive instance as parameter.
5023         - Remove host field from PluginDependencyObject, host can be accessed using
5024         instance field.
5026 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5028         * plugin-class.cpp: Implement "control.content" proeprties.
5030 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5032         * TODO: Added to include information about features that we know that is
5033         not current supported. Can be use for now to take some notes to be read 
5034         after 21th june.
5036 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5038         * plugin-class.h: Add comments about read write/read only on properties.
5040 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5042         * plugin-class.cpp, plugin-class.h: Add SetProperty to PLUGIN_PROPERTIES
5043         and implement it for all classes.
5045 2007-06-13  Everaldo Canuto  <ecanuto@novell.com>
5047         * plugin-class.cpp, plugin-class.h: 
5048         - Fix IndexOf method.
5049         - Create and uses macros PLUGIN_PROPERTIES and PLUGIN_METHODS to define 
5050         properties and methods.
5051         - Uses arrays to define properties and methods.
5052         - Use NPID macro to get string identifier.
5054 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5056         * plugin-class.cpp:  Fix dependency of PLUGINROOTCLASS_PCOUNT in property
5057         array initialization.
5059 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5061         * plugin-class.cpp, plugin-class.h: 
5062         - Implement IndexOf method that uses and array.
5063         - implement properties array.
5064         - ClassHasProperty now uses IndexOf.
5066 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5068         * Makefile.am: Fix LIBADD to include MOON_LIBS instead of two times 
5069         PLUGIN_LIBS.
5071 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5073         * plugin-class.cpp, plugin-class.h: Get content and settings as a plugin
5074         class properties.
5076 2007-06-12  Everaldo Canuto  <ecanuto@novell.com>
5078         * plugin.cpp, plugin.h: PluginContent class added.
5080 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5082         * plugin.cpp, plugin.h: Remove unused CreateDemoControls method.
5084 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5086         * plugin.cpp: Remove unused code and fix function names.
5088         * moonlight.h: Remove ";" on end of PLUGIN_DESCRIPTION define.
5090 2007-06-11  Atsushi Enomoto  <atsushi@ximian.com>
5092         * Makefile.am : build fix. without -f rm fails.
5094 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5096         * plugin-class.cpp, plugin-class.h: Remove unused method ClassAllocate
5097         and fix all debug messages.
5099 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5101         * plugin.cpp: Fix object creation using NPN_RetainObject to increment
5102         reference count as described in Mozilla documentation.
5104         * plugin-class.cpp: On ClassDeallocate uses NPN_ReleaseObject that
5105         checks for references and release object when reference count is equal
5106         zero. It see to be solve all remaining segfault when browser closes.
5108 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5110         [Refactory jscript runtime code]
5112         * plugin-class.cpp, plugin-class.h: Create new class PluginRootClass,
5113         to be a proxy for javascript runtime calls, old code on plugin instance
5114         was moved here and all segfault related to script stuff was gone.
5116         * plugin.cpp, plugin.h: Remove jscript runtime related code and use
5117         PluginRootClass.
5119 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5121         * moon-mono.cpp,
5122         * mono.cpp,
5123         * plugin.h: Fix remaining config.h -> moonlight.h.
5125 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5127         * moonlight.h: Define RUNTIME to enable/disable mono runtime 
5128         integration. Its because right now it fails when open a page with 
5129         script so we can comment /#define RUNTIME to get plugin working in
5130         old way.
5132         * plugin.cpp: Dont call vm_load_xaml when RUNTIME is not defined.
5134         * plugin-glue.cpp: Dont call vm_init when RUNTIME is not defined.
5136 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5138         * moon-plugin.cpp: Renamed to plugin.cpp.
5139         * moon-plugin.h: Renaned to plugin.h.
5140         * config.h: Renaned to moonlight.h.
5142         * plugin-class.h, plugin-glue.cpp: Update includes.
5144 2007-06-11  Miguel de Icaza  <miguel@novell.com>
5146         * Makefile.am: Delete the ~/.mozilla/plugins/libmoon.so in case it
5147         was around, that was the painful bug.
5149         * moon-plugin.cpp (CreateWindow): Do not create a canvas, nor
5150         attach it, let Mono do that. 
5151         (StreamAsFile): Request that the VM loads the file, this will
5152         change to something else later when we use the Silverlight object
5153         embedding API.
5155         * moonlight.cs: Implement some bits, it currently only loads the
5156         XAML file, it needs to create a new appdomain.
5158 2007-06-11  Everaldo Canuto  <ecanuto@novell.com>
5160         * Makefile.am,
5161         * moon-mono.cpp,
5162         * mono.cpp: Rename moon.cpp to moon-mono.cpp.
5164         * moon-mono.h: Add header information.
5166         * plugin-glue.cpp,
5167         * config.h: Add constant MOON_1_0 and MOON_1_1, when 1.1 is define 
5168         compile also mono runtime, it is disabled by default since mono runtime
5169         give us some crashes right now.
5171 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5173         * Makefile.am: config.h added.
5175         * config.h: Added.
5177         * plugin-class.cpp,
5178         * moon-plugin.cpp,
5179         * plugin-class.h,
5180         * plugin-glue.cpp,
5181         * moon-plugin.h: Include config.h and remove unneeded includes.
5183 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5185         * moon-plugin.cpp: Remove DEMO mode and set SCRIPTING mode by default.
5187 2007-06-10  Miguel de Icaza  <miguel@novell.com>
5189         * moonlight.cs: the startup code, will contain the helper classes
5190         to create new AppDomains for each instance create.
5192         * mono.cpp: New file, embeds the Mono VM.
5194 2007-06-10  Everaldo Canuto  <ecanuto@novell.com>
5196         * plugin-glue.cpp: Call plugin instance destructor, now it dont causes
5197         error when you reload page.
5199         * moon-plugin.cpp: Only destroy container widget, if you dont destroy it
5200         when you start with page plugin, go to another page and close browser,
5201         a segfault is emited before browser exits. Now navigating for some time in
5202         silverlight pages looks to dont emit segfault if scripting is disabled.
5204         * plugin-class.cpp: Remove debug message from class constructor.
5206 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5208         [Xaml support]
5210         * moon-plugin.cpp: 
5211         - Read xaml file from src tag and display contents.
5212         - Disable demo box, now we have a better demo under xaml file.
5214 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5216         * Makefile.am: test added to subdirs.
5218 2007-06-09  Everaldo Canuto  <ecanuto@novell.com>
5220         * moon-plugin.cpp,
5221         * plugin-glue.cpp,
5222         * moon-plugin.h: Rename DEBUG to DEBUGMSG.
5224 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5226         * moon-plugin.h,
5227         * moon-plugin.cpp: Change demo code to class method CreateDemoControls.
5229 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5231         * moon-plugin.cpp: Add canvas, connect it to surface and get demo working
5232         back.
5234 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5236         * moon-plugin.h,
5237         * moon-plugin.cpp: Rename CreateControls to CreateWindow.
5239 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5241         * Makefile.am: Add $(MOON_LIBS) to linker options.
5243 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5245         * plugin-glue.cpp: Dont delete plugin object since right now it causes some
5246         segfault when change to another page.
5248         * moon-plugin.cpp: Got scripting mode enabled by default.
5250 2007-06-08  Everaldo Canuto  <ecanuto@novell.com>
5252         * plugin-glue.cpp: Fix plugin destruction.
5253         * moon-plugin.cpp: Change button to gtk label with plugin name and version.
5255 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5257         * plugin-glue.cpp: Set instance data to NULL to prevent error when browser
5258         closes.
5260         * moon-plugin.cpp: 
5261         - Disabled demo mode.
5262         - Enabled Scripting mode.
5263         - Fix runtime object creation, dont user NPN_RetainObject anymore.
5264         - Fix also object properties creation (settings).
5265         - Release object on class destructor.
5267 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5269         * moon-plugin.cpp: Simplify controls creation and add a button when you are
5270         not in demo mode. It is just for now to made some tests.
5272 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5274         * moon-plugin.cpp: Remove runtime initialization because it is wrong place.
5275         * plugin-glue.cpp: Add gtk and runtime initialization to NPP_Initialize.
5277 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5279         * moon-plugin.cpp: Add some initialization code to prevent some segmentation
5280         fault.
5282 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5284         * moon-plugin.cpp: Add SCRIPTING and DEMO macros to make available only
5285         tested features, it mean that developers must uncomment this MACRO lines
5286         before work on scripting and libmoon stuff.
5288 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5290         * moon-plugin.cpp: Fix gtkplug creation fro 64bit systems. 
5292         * Makefile.am: Add -lavformat to link options.
5294         Thanks Grendel for this patches.
5296 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5298         * moon-plugin.h: Change version number 0.99.0, SilverLight scripts searchs 
5299         for version > 0.95.1.
5301         * test/index.html: Small fixes in test page.
5303 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5305         * test/index.html: Add javascript settings test.
5307         * moon-plugin.cpp,
5308         * moon-plugin.h: Implementing Settings class.
5310 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5312         * moon-plugin.cpp,
5313         * moon-plugin.h: Implement runtime properties structure and 'version'
5314         property.
5316 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5318         [PluginClass added to handle script objects]
5320         * plugin-class.cpp,
5321         * plugin-class.h,
5322         * Makefile.am: PluginClass added.
5324         * moon-plugin.cpp, 
5325         * moon-plugin.h: PluginInstance now inherit from PluginClass, also 
5326         scriptclass was removed and "this" is used in NPN_CreateObject. For
5327         NPN_CreateObject we can now always use classes inherited by PluginClass.
5329 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5331         * Makefile.am: Remove idl related code, new object system dont need idl or
5332         xpi files. 
5333         * nsIScriptableMoonPlugin.h: deleted.
5334         * nsIScriptableMoonPlugin.idl: deleted.
5336 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5338         * plugin-glue.cpp: Fix the instance initialization problems, the object 
5339         instance was empty after creation.
5341 2007-06-07  Everaldo Canuto  <ecanuto@novell.com>
5343         * moon-plugin.cpp, 
5344         * moon-plugin.h,
5345         * plugin-glue.cpp: Fix SetValue declaration.
5347         * plugin-entry.cpp: Fix a lot of declarations, support for win and mac,
5348         support for runtime version checking and some other minor fixes.
5350 2007-06-06  Everaldo Canuto  <ecanuto@novell.com>
5352         * moon-plugin.cpp: Comment container destructor to prevent segfault.
5354 2007-06-06  Everaldo Canuto  <ecanuto@novell.com>
5356         * moon-plugin.cpp: Fix API change for Canvas.
5358 2007-06-06  Sebastien Pouliot  <sebastien@ximian.com> 
5360         * moon-plugin.cpp: Fix API change for SolidColorBrush.
5362 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5364         * moon-plugin.h: Add PLUGIN_OURNAME and PLUGIN_OURVERSION constants to 
5365         specify our internal name and version that differs from plugin version 
5366         detected by browser. SilverLight javascripts checks for WPF plugin and
5367         0.8.5.0 version.
5369         * moon-plugin.cpp: Change runtime initialization to CreateControls, before
5370         show demo.
5372         * plugin-glue.cpp: Fix memory allocation problems in NPP_New.
5374 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5376         * plugin-glue.cpp,
5377         * moon-plugin.cpp,
5378         * moon-plugin.h: Add initialization and remove demo transformation.
5380 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5382         [Remove ScriptablePeer code]
5384         * nsScriptablePeer.h, nsScriptablePeer.cpp: Removed.
5386         * plugin-glue.cpp: Fix debugger messages.
5388         * Makefile.am, 
5389         * moon-plugin.cpp,
5390         * moon-plugin.h: Remove ScriptablePeer code since now Mozilla use
5391         another aproach.
5393 2007-06-05  Sebastien Pouliot  <sebastien@ximian.com> 
5395         * moon-plugin.cpp: Fix API change for Rectangle.
5397 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5399         * moon-plugin-glue.cpp: Splited in plugin-glue.cpp and plugin-entry.cpp.
5400         * plugin-glue.cpp: Fix 'undefined symbol' creating NPP_SetValueX.
5402 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5404         * Makefile.am: Add some linker flags, it prevents crash on Epiphany.
5406 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5408         * test/index.html: Add script to demo html page.
5410 2007-06-05  Everaldo Canuto  <ecanuto@novell.com>
5412         * moon-plugin.cpp: Add runtime init to demo code.
5414 2007-06-04  Everaldo Canuto  <ecanuto@novell.com>
5416         * plugin/Makefile.am: Generate and install .xpt for install-plugin target.
5418 2007-06-04  Everaldo Canuto  <ecanuto@novell.com>
5420         [Implement scriptable to plugin]
5422         * plugin/test/index.html: Sample jscript included.
5424         * plugin/Makefile.am: Generates .h from idl file use xpidl.
5426         * plugin/moon-plugin.h,
5427         * plugin/moon-plugin.cpp,
5428         * plugin/moon-plugin-glue.cpp: Implement scriptable and some clean up.
5430         * plugin/nsIScriptableMoonPlugin.h,
5431         * plugin/nsIScriptableMoonPlugin.idl,
5432         * plugin/nsScriptablePeer.cpp,
5433         * plugin/nsScriptablePeer.h: New scriptable classes.
5435 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5437         * moon-plugin-glue.cpp,
5438         * moon-plugin.h,
5439         * moon-plugin.cpp: Fix GetValue and implement SetValue.
5441 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5443         * moon-plugin.h: Change plugin name, version and description to mimic 
5444         SilverLight and can be recognize as a valid plugin.
5446 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5448         * moon-plugin.c: Destroy objects on class destructor to prevent browser
5449         crashes.
5451 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5453         [Clean up demo and make some class fields private ]
5455         * moon-plugin-glue.c,
5456         * moon-plugin.h,
5457         * moon-plugin.c: Now just a surface control is added to plugn container,
5458         some field is now private demo was refactored.
5460 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5462         * Makefile.am: Compile if needed for install-plugin target.
5464 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5466         [Move to c++ based classes ]
5467         
5468         * moon-plugin-glue.c: Fix getvalue to return error when no instance 
5469         available.
5471         * moon-plugin.h,
5472         * moon-plugin.c: Change all function to class methods, also move wrapper
5473         functions to moon-plugin-glue.
5475 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5477         * moon-plugin.h,
5478         * moon-plugin.c,
5479         * moon-plugin-glue.c: Remove moon_plugin_initialize and moon_plugin_shutdown
5480         since whe alread have NP_Initialize and NP_Shutdown. Also change 
5481         PluginInstance structure to class (complete class suppont comming soon).
5483 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5485         * moon-plugin-glue.c: Some comments and stetic changes.
5487 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5489         * moon-plugin.h: Mime type description chage to 'WPFe Plug-In' to handle 
5490         SilverLight objects.
5492 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5494         * moon-plugin.c:
5495         * moon-plugin.h: Remove unused members to provide a clean code.
5497 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5499         * Makefile.am: Fix link options.
5501 2007-06-03  Everaldo Canuto  <ecanuto@novell.com>
5503         * moon-plugin-glue.c:
5504         * moon-plugin.c:
5505         * moon-plugin.h: Rename initialise to initialize.
5507         * Makefile.am: Add libmoon to link and install it on plugin dir.
5509 2007-06-02  Everaldo Canuto  <ecanuto@novell.com>
5511         * moon-plugin-glue.c: Renamed to moon-plugin-glue.cpp.
5512         * moon-plugin.c: Renamed to moon-plugin.cpp.
5513         * Changelog: Create a separated change log for plugin.
5514         * Makefile.am: Renamed to moon-plugin.cpp.
5515         * moon-plugin.h: Renamed to moon-plugin.cpp.
5516         
5517         [Also add a sample to show libmoon features in browser]