1 2009-12-03 Larry Ewing <lewing@novell.com>
3 * moonlight.h: bump up the version of 3.0 we claim to support.
5 2009-11-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
7 * plugin-class.cpp: GetSurface doesn't exist anymore - use IsAttached
10 2009-11-26 Chris Toshok <toshok@ximian.com>
12 * plugin.cpp (PluginInstance::StreamAsFile): remove the source
13 setting from here because it has to happen both with xaps and xaml
15 (PluginInstance::UpdateSource): it needs to happen here. in the
16 case where we aren't calling SetPageUrl, we need to need to worry
17 about relative/absolute urls. lots of comments added. should fix
18 the three different problematic splash scenarios I've found (2
19 telerik demos and the sl3 toolkit demo), and their relative url
22 2009-11-26 Chris Toshok <toshok@ximian.com>
24 * plugin.cpp (PluginInstance::StreamAsFile): set the source
25 location to the xaml file when parsing the splash screen so that
26 urls are resolved correctly for images/etc during the loading
27 process. Set it back again afterward.
28 (PluginInstance::LoadSplash): when loading the splash we need to
29 allow separators at the end of the urls so that relative urls are
32 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
34 * plugin.mdp: Updated with new files.
36 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
38 * cbinding.h: Regenerated.
40 * plugin-class.h.in: Add changes to the .in file too so that the
41 changes survive the generator.
43 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
45 * plugin-class.cpp|h: Name change from MarkerReachedEventArgs ->
46 TimelineMarkerRoutedEventArgs (to better match managed code).
48 * cbinding.h: Regenerated.
50 2009-11-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
52 * cbinding.h: Regenerated.
54 2009-11-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
56 * plugin.cpp: When requesting a codec download, indicate that the user
57 initiated the download.
59 2009-11-12 Jeffrey Stedfast <fejj@novell.com>
61 * plugin.cpp (UrlNotify): Don't spam the console with printf's if
62 the download was successful.
64 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
68 * plugin-class.cpp: Update according to Type / Value API changes.
70 2009-11-06 Chris Toshok <toshok@ximian.com>
72 * plugin.cpp (PluginInstance::FlushSplash): WalkTreeForLoaded ->
73 WalkTreeForLoadedHandlers, and explicitly emit Loaded
76 2009-11-05 Alan McGovern <amcgovern@novell.com>
78 * cbinding.h: regen. r: toshok
80 2009-11-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
82 * plugin-class.cpp: Don't try to throw js exceptions when returning
85 * plugin-class.h: Remove THROW_JS_EXCEPTION2, not used anymore.
89 2009-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
91 * plugin.cpp|h: Don't create the window if the splash failed to load -
92 this fixes a crash with MS DRT #352 where the splash error handler
93 shuts down the browser, causing us to crash later on when we try to
98 2009-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
100 * plugin.cpp|h: Remove all code which handles downloading of assemblies
101 which aren't in the xap, since that can't happen. Some of this code was
102 already commented out.
106 2009-11-02 Alan McGovern <amcgovern@novell.com>
108 * cbinding.h: regen. r: rolf
110 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
112 * plugin.cpp: Add missing Deployment::SetCurrent.
116 2009-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
118 * plugin.cpp: Always show the codec download entry in the right click
119 menu - this allows easy redownload for whatever reason, instead of
120 requiring the user to manually locate and delete the codecs if they're
125 2009-10-20 Jeffrey Stedfast <fejj@novell.com>
127 * plugin.cpp (same_site_of_origin): If either of the urls is null,
128 return true. Fixes drt #329.
132 2009-10-20 Chris Toshok <toshok@ximian.com>
134 * plugin-class.cpp (MoonlightObject::ClearEventProxies): fix
135 ancient sles-10 build.
139 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
141 * plugin-glue.cpp: We might need the current plugin (NPP->pdata) during
142 plugin shutdown (to report errors to js in case of any errors).
144 * plugin-class.cpp|h|in.h:
145 Added MoonlightScriptControlObject::[Pre|Post]SwitchPlugin methods: stores
146 the data (event handlers) we need to copy over from one plugin instance to
147 the next when the source changes. Also make sure to delete all current
148 event handlers / proxies, since the root npobjects are not recreated.
149 EventListenerProxy: added GetCallback and IsFunc accessors.
150 MoonlightObject: Add a SetPlugin method that allows moving MoonlightObjects
151 from one PluginInstance to another.
154 Added a PluginInstance::Recreate method that recreates the PluginInstance
155 when the source changes. Remove unused parameter to PluginInstance ctor.
156 Keep track whether the window has been created or not (used to not recreate
157 the window, since it moves from one PluginInstance to another).
161 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
163 * plugin-class.h.in: Update with recent changes to plugin-class.h.
167 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
169 * plugin-class.[g.]cpp|h: Store a reference to the PluginInstance on
170 all MoonlightObjects instead of the NPP instance, since we'll soon
171 have more than one PluginInstance per NPP instance.
175 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
178 * plugin-class.h: Use the proper type for the content and settings
183 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
185 * windowless.cpp: Don't access the deployment field, use the
186 new SetCurrentDeployment method.
190 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
192 * plugin.cpp|h: Move all managed code handling to Deployment.
196 2009-10-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
198 * plugin-downloader.cpp: We should never allow downloading with another
199 plugin than the correct one.
203 2009-10-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
205 * plugin.cpp|h: Remove two obsolete and unused methods.
209 2009-10-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
211 * cbinding.h: Regenerated.
215 2009-10-08 Chris Toshok <toshok@ximian.com>
217 * plugin.cpp (PluginInstance::StreamAsFile): Add another cross
218 domain check after loading the splash (and emitting loaded
220 (PluginInstance::LoadSplash): substantially bulk up this code to
221 check for all the XDomain splash possibilities defined in drt
224 * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
225 comment out a line of spew that's really really spewing in xdomain
230 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
232 * plugin.cpp|h: Make PluginInstance work with async shutdown by using
233 refcounting to only delete the PluginInstance when nobody needs it
234 anymore. Add two flags, HasShutdown and IsShuttingDown informing about
235 the current shutdown status. Destructor: rename to Shutdown and make
236 sure we zero/null out all the fields. Finalize: removed, not used.
237 Also ensure that the PluginInstance is not deleted until the managed
238 appdomain has been unloaded, since managed code has references to it.
239 Maintain a counter of the number of instances alive so that we can detect
240 when they are all deleted.
242 * plugin-class.cpp: Make html_release_object thread-safe by marshalling
243 any calls to the main thread. Also detect if the plugin has shut down
244 when trying to retain or release a npobject, in which case do nothing
245 at all, since firefox has already freed it.
247 * plugin-glue.cpp: Don't delete the plugin instance, call Shutdown
248 instead and unref it. Only shutdown moonlight if all the plugin instances
249 and all the deployments have been destroyed.
253 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
255 * plugin.cpp: Remove unused variable (fixes compiler warning).
259 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
261 * cbinding.h: Regenerated.
265 2009-09-25 Sebastien Pouliot <sebastien@ximian.com>
267 * plugin-class.cpp|h|h.in: Change html_object_invoke[_self] to
268 return the boolean representing the invokation result.
272 2009-09-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
274 * plugin-debug.cpp: Remove unused variable (fixes compiler warning).
278 2009-09-23 Chris Toshok <toshok@ximian.com>
280 * plugin-class.cpp (EventObjectCreateWrapper): return
281 dependency_object_classes [MOUSE_EVENT_ARGS_CLASS]; for both
282 MOUSEBUTTONEVENTARGS and MOUSEWHEELEVENTARGS.
284 fixes DRT #50 regression.
288 2009-09-23 Chris Toshok <toshok@ximian.com>
294 2009-09-23 Chris Toshok <toshok@ximian.com>
296 * plugin-accessibility.h (class Accessibility):
297 @ManagedEvents=Manual
303 2009-09-18 Jackson Harper <jackson@ximian.com>
306 * plugin.cpp: Remove the import_default_xmlns stuff, this is
307 handled by flags now.
310 2009-09-16 Jeffrey Stedfast <fejj@novell.com>
312 * plugin.cpp (Properties): Display the RuntimeVersion attribute.
316 2009-09-14 Chris Toshok <toshok@ximian.com>
318 * plugin-class.cpp (MoonlightErrorEventArgs::GetProperty): use
319 ErrorEventArgs accessors.
321 * plugin.cpp (PluginInstance::network_error_tickcall): pass a
322 MoonError to the ErrorEventArgs ctor.
323 (PluginInstance::splashscreen_error_tickcall): same.
324 (PluginXamlLoader::TryLoad): same, use accessor.
325 (PluginInstance::ManagedExceptionToErrorEventArgs): same.
327 2009-09-14 Jackson Harper <jackson@ximian.com>
329 * plugin-debug.cpp: Use foreach instead of gtkiter
331 2009-09-11 Sebastien Pouliot <sebastien@ximian.com>
333 * plugin.cpp: Fix regression/crash on DRT455 since
334 splashscreensource is now freed. Add missing g_free on
339 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
341 * cbinding.h: Regenerated.
345 2009-09-10 Jackson Harper <jackson@ximian.com>
347 * plugin.cpp: Add some namescope info to the debugging tree
351 2009-09-10 Jackson Harper <jackson@ximian.com>
353 * plugin.cpp|h: Update signature on SetProperty
355 2009-09-09 Chris Toshok <toshok@ximian.com>
357 * plugin.cpp (PluginInstance::PluginInstance): init
358 culture/uiculture to null.
359 (PluginInstance::~PluginInstance): free culture/uiculture, and
360 also plug a leak by freeing onSourceDownloadProgressChanged,
361 onSourceDownloadComplete, and splashscreensource.
362 (PluginInstance::Initialize): parse culture/uiculture <param>
364 (PluginInstance::InitializePluginAppDomain): track change to
365 InitializeDeployment argcount
366 (PluginInstance::ManagedInitializeDeployment): add
367 culture/uiculture args when calling the managed methods.
371 2009-09-03 Stephane Delcroix <sdelcroix@novell.com>
373 * plugin-class.cpp|.g.cpp.in|.h.in: no longer auto generate bindings
374 for MSI, copy paste the autogenerated from .g.cpp to .cpp. add a
375 SetProperty method and use to set the UriSource of the DZITS instead
376 of creating a new DZITS everytime.
378 * plugin-class.h|g.cpp: regen
380 2009-09-03 Alan McGovern <amcgovern@novell.com>
382 * plugin.cpp: It's possible that window will be null, so check
383 it exists before using it. r: toshok
385 2009-08-27 Chris Toshok <toshok@ximian.com>
387 * plugin.cpp (PluginInstance::NewStream): set the current deployment here.
391 2009-08-26 Jackson Harper <jackson@ximian.com>
393 * plugin.cpp: check for the zip file magic instead of using file
396 2009-08-26 Alan McGovern <amcgovern@novell.com>
398 * cbinding.h: regen r: shana
400 2009-08-26 Jackson Harper <jackson@ximian.com>
402 * plugin.cpp: Use the xaml function for parsing bools so things
403 like enablehtmlaccess=1 are handled properly.
407 2009-08-24 Sebastien Pouliot <sebastien@ximian.com>
409 * plugin-class.cpp: Free NPVariant array leaks
413 2009-08-16 Chris Toshok <toshok@ximian.com>
415 * plugin.cpp (plugin_menu_about): we aren't doing previews
416 anymore, we're doing betas.
420 2009-08-12 Alan McGovern <amcgovern@novell.com>
422 * cbinding.h: regen r: toshok
424 2009-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
426 * plugin.mdp: Connect the Build command in
427 MonoDevelop with 'make install'.
429 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
431 * plugin.mdp: Use Makefile integration.
433 2009-07-23 Sebastien Pouliot <sebastien at ximian.com>
435 * plugin.cpp: Make sure 'source_original' is set even when scripting
436 is used to initialize source. Remove xdomain warnings from mstv.cz
438 2009-07-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
441 * plugin-class.h.in: Added html_object_retain.
443 * plugin-class.h: Regenerated.
445 2009-07-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
447 * plugin.mdp: Updated.
449 2009-07-22 Sebastien Pouliot <sebastien at ximian.com>
451 * plugin-class.cpp: Fix DEBUG_WARN_NOTIMPLEMENTED macro to output
452 all related information on the same line. Use NULL_TO_NPVARIANT
453 with MoonId_MethodName (since this is a string).
454 * windowless.cpp: Initialize GdkEventKey correctly (valgrind) and
455 provide a Window pointer so we avoid a SEGSIGV when TextBox calls
456 gtk_im_context_xim_filter_keypress (webide)
458 2009-07-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
460 * plugin-class.cpp: Incorporate significant advances in debugging
463 2009-07-20 Chris Toshok <toshok@ximian.com>
465 * plugin-class.cpp (MoonlightContentObject::Invoke): pass null for
467 (MoonlightContentObject::Invoke): same.
469 * plugin.h|cpp: add resource base parameters to all the XamlLoader
470 calls, and pass stream->url for that value when we have it.
474 2009-07-20 Chris Toshok <toshok@ximian.com>
476 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
477 the fallback findName lookup here, since we removed it from
478 DependencyObject::FindName.
480 2009-07-18 Jackson Harper <jackson@ximian.com>
483 * plugin.h|cpp: Add a flag to import the default xmlns. Basically
484 nothing sets this to true except for the JS CreateFromXaml
487 2009-07-17 Larry Ewing <lewing@novell.com>
489 * plugin.cpp: get agressive about flushing loaded events to the
490 plugin from splash elements. Fixes 285,445.
492 2009-07-16 Larry Ewing <lewing@novell.com>
494 * plugin.cpp, plugin.h: rework the splash logic to handle document
495 fragment references and get closer to emitting the correct events
496 in the correct order.
498 * plugin-class.cpp: use PluginInstance::IsLoaded instead of poking
501 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
503 * cbinding.h: Regenerated.
505 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
507 * plugin.cpp: PluginInstance::UpdateSourceByReference: add a
508 Deployment::SetCurrent.
510 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
512 * plugin-entry.cpp: Push/Pop the current deployment on every
513 transition to the browser. Makes MS DRT #2003 not spew a lot
514 of deployment mismatch warnings.
516 2009-07-15 Larry Ewing <lewing@novell.com>
518 * plugin.cpp: reconnect onload in LoadXAML and LoadXAP so that
519 source changes reset the oneshot call. Fixes DRT#21.
521 2009-07-13 Sebastien Pouliot <sebastien at ximian.com>
523 * plugin.cpp: Check for NULL *and* Empty inside UpdateSource.
524 Gives a bit of progress for DRT#354
526 2009-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
528 * cbinding.h: Regenerated.
530 2009-07-13 Alan McGovern <amcgovern@novell.com>
532 * plugin-class.h.in: Var should be named
533 'OnSourceDownloadComplete' not 'OnSourceDownloadCompleted'
535 2009-07-13 Alan McGovern <amcgovern@novell.com>
537 * cbinding.h: Commit the initial implementation of the
538 TabNavigationWalker. Supports the three tabbing modes and
539 also forward/backward tabbing. Passes drt 323 except for a
540 default focusing issue.
542 2009-07-10 Sebastien Pouliot <sebastien at ximian.com>
544 * plugin.cpp: Only call EmitSourceDownloadComplete is we needed
545 to download the splashscreen (versus embedded using #)
547 2009-07-10 Sebastien Pouliot <sebastien at ximian.com>
549 * plugin.cpp|h, plugin-class.cpp|h: Rename
550 SourceDownloadCompletedEvent to SourceDownloadCompleteEvent
552 2009-07-09 Sebastien Pouliot <sebastien at ximian.com>
554 * plugin.cpp: Check for redirection each time a new stream
555 is created (i.e. before downloading) using the current URI (not
556 the original one) so we can detect redirection correctly.
558 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
560 * plugin-class.cpp: EventObjectCreateWrapper: return null as the
561 wrapper for a null object.
563 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
565 * plugin-downloader.h: Add response getter.
567 * plugin-downloader.cpp: Regenerated.
569 * cbinding.h: Regenerated.
571 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
573 * plugin-downloader.cpp: When calling Send, reset the finished
574 field, so that we abort it properly upon destruction if the
575 PluginDownloader has been reused.
577 2009-07-01 Chris Toshok <toshok@ximian.com>
579 * plugin-proxy.cpp (load): check the return value of
580 dlopen(libmono.so) before we make use of mono_config_parse_memory.
582 * plugin-entry.cpp: remove the moz-sdk includes, since they get
583 pulled in from moonlight.h
585 * plugin-class.h|cpp (MoonlightContentObject::GetProperty): add
586 Accessibility support.
587 (MoonlightContentObject::SetProperty): same.
588 (MoonlightContentObject::~MoonlightContentObject): unref the
589 accessibility object.
591 * moonlight.h: add the moz-sdk/ prefix for the np* headers here.
593 * Makefile.am (libmoonplugin_la_SOURCES): add
594 plugin-accessibility.
595 (INCLUDES): remove the moz-sdk include, and add it the #includes
596 so things work when files are included from the src/ directory.
598 * plugin-accessibility.h|cpp: new DependencyObject subclass to
599 represent the plugin's content.accessibility object.
601 * cbinding.h, plugin-class.h: regen.
603 2009-06-30 Jackson Harper <jackson@ximian.com>
605 * plugin-class.cpp: Update function signature, add the validate
609 2009-06-30 Alan McGovern <amcgovern@novell.com>
611 * plugin-class.cpp: Use SetValueWithError instead of SetValue
612 and propagate the exception back to javascript. Fixes drt
615 2009-06-29 Sebastien Pouliot <sebastien@ximian.com>
617 * plugin.cpp: Initialize enable_html_access to true since the value
618 can be queried before anything is loaded (e.g. scripting). Remove
619 failure message from DRT #21 bitmap.
621 2009-06-26 Chris Toshok <toshok@ximian.com>
623 * plugin-class.h.in|cpp: add support for GridLengths.
625 * plugin-class.h: regen.
627 2009-06-26 Larry Ewing <lewing@novell.com>
629 * plugin-class.h.in: add MoonlightCornerRadius and MoonIds.
631 * plugin-class.cpp: implement cornerradius foo.
633 2009-06-25 Chris Toshok <toshok@ximian.com>
635 * plugin-class.cpp (thickness_mapping): fix the mapping of "top"
636 to MoonId_Top, not MoonId_Right. Fixes drt test 421.
638 2009-06-25 Chris Toshok <toshok@ximian.com>
640 * plugin.cpp (PluginXamlLoader::SetProperty): track change to
641 xaml_is_valid_event_name.
643 2009-06-25 Chris Toshok <toshok@ximian.com>
645 * plugin-class.cpp (_set_dependency_property_value): add a
646 MoonError parameter so we can communicate it back to our callers.
647 (MoonlightTextBoxObject::Invoke): use textbox->SelectWithError and
648 throw the exception if it failed.
649 (MoonlightPasswordBoxObject::Invoke): same.
651 2009-06-25 Chris Toshok <toshok@ximian.com>
653 * plugin-class.cpp (MoonlightCollectionObject::Invoke): add
654 "remove(string)" support for resource dictionaries.
655 2009-06-25 Chris Toshok <toshok@ximian.com>
657 * plugin-class.cpp (value_to_variant): add support for
658 FontWeight/Style/Stretch here. Fixes DRT test 94.
660 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
662 * cbinding.h: Regenerated.
664 2009-06-25 Sebastien Pouliot <sebastien@ximian.com>
666 * plugin-class.cpp: Return "" not NULL for empty files (DRT #180)
668 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
670 * plugin-class.cpp: proxy_listener_to_javascript: we need to restore
671 the current deployment after returning from javascript, if the
672 javascript did anything which caused firefox to process events,
673 we may have entered any other deployment while processing those
676 2009-06-24 Chris Toshok <toshok@ximian.com>
680 2009-06-22 Chris Toshok <toshok@ximian.com>
682 * plugin-class.h.in|cpp: MediaElements and Images need to subclass
683 from UIElement here instead of DependencyObject, or else we can't
684 call UIElement methods on them. gets fixture #282 further than
685 the stupid .js error.
687 * plugin-class.h: regen
689 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
691 * plugin-class.cpp: Add support for MultiScaleImage methods.
693 * plugin-class.g.cpp.in: Added required header.
695 * plugin-class.g.cpp:
697 * cbinding.h: Regenerated.
699 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
701 * plugin.mdp: Updated with new files.
703 2009-06-18 Jeffrey Stedfast <fejj@novell.com>
705 * plugin-class.cpp (value_to_variant): Handle Type::CHAR by
706 converting to an NPVariant string.
708 2009-06-18 Sebastien Pouliot <sebastien@ximian.com>
710 * cbinding.cpp|h: regen
711 * plugin.cpp|h: Keep the original location and source (before any
712 redirection can happen) and use them in the check for cross-domain
713 applications. Fixing DRT 955-958
715 2009-06-17 Chris Toshok <toshok@ximian.com>
717 * plugin-class.h.in, plugin-class.cpp: add textbox and passwordbox
718 types (select and selectAll methods.)
720 * plugin-class.g.*, cbinding.h: regen.
722 2009-06-17 Alan McGovern <amcgovern@novell.com>
724 * plugin-class.g.cpp.in: We need to include textbox.h
726 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
728 * plugin.cpp: SetXapLocation must be set before
729 ManagedInitializeDeployment is called, since
730 ManagedInitializeDeployment ends up executing managed code, which
731 may need SetXapLocation to be set (for downloading files).
732 MS DRT #483 is an example.
734 2009-06-16 Sebastien Pouliot <sebastien@ximian.com>
736 * plugin.cpp: Set default cross_domain_app to false since using
737 embedded XAML is valid (and not cross domain) and won't trigger
738 a load (to update the value). Should fix XAML #401 test
740 2009-06-15 Sebastien Pouliot <sebastien@ximian.com>
742 * plugin.cpp|h: Move cross-domain application check to it's own
743 method. Call it once we download the source (it could be later
744 than anticipated). This fix sites using custom scripts like
745 ASP.NET <asp:Silverlight>
746 * plugin-class.cpp: Don't emit javascript events for cross
749 2009-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
751 * plugin.cpp: same_site_of_origin: add nre protection. Makes
752 moonlight test #408 not crash.
754 2009-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
756 * plugin-class.cpp: Update after MediaElementState -> MediaState
759 2009-06-13 Sebastien Pouliot <sebastien@ximian.com>
761 * plugin.cpp|h: Move cross-domain application check earlier to
762 not register the events (e.g. onLoad, onError...) for cross-domain
763 applications. Complete fix for DRT 361, 362, 364, 365 and 370
765 2009-06-12 Sebastien Pouliot <sebastien@ximian.com>
767 * plugin.cpp|h: Fix 'enableHtmlAccess' to have a different
768 default value when used for the same 'site of origin' (true)
769 wrt to be used for 'cross-domain' applications (false).
770 * plugin-class.cpp: Add restrictions on cross-domain applications
771 based on the manifest ExternalCallersFromCrossDomain value.
773 2009-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
775 * plugin.cpp: Disable the spinner for now, it's breaking a lot of
778 2009-06-10 Larry Ewing <lewing@novell.com>
780 * plugin.cpp (CreateWindow): add a simple spinner if nothing is
783 * plugin-spinner.h: new simple spinner.
785 2009-06-08 Chris Toshok <toshok@ximian.com>
787 * plugin.cpp (class PluginClosure): new class to wrap
789 (PluginInstance::network_error_tickcall): use PluginClosure.
790 (PluginInstance::splashscreen_error_tickcall): use PluginClosure,
791 also don't UpdateSource if the surface is zombified (since the
792 plugin is likely already gone.)
793 (PluginInstance::UrlNotify): use PluginClosure's and add the tick
794 calls directly via the timemanager so we can specify both method
797 * plugin.h (class PluginInstance): make network_error_tickcall and
798 splashscreen_error_tickcall static methods on PluginInstance.
800 2009-06-08 Jackson Harper <jackson@ximian.com>
802 * plugin.cpp|h: Update signature for SetProperty
804 2009-06-05 Chris Toshok <toshok@ximian.com>
806 * plugin.cpp (PluginInstance::UrlNotify): only emit the 2104 error
807 if the network failure was on the XAP itself. move the
808 Deployment::SetCurrent call a little earlier, and make the splash
809 screen download error async as well.
811 2009-06-04 Chris Toshok <toshok@ximian.com>
813 * plugin.cpp (PluginInstance::MonoGetPropertyFromName): new
814 method, look up the property on a type and print a nice warning if
816 (surface_network_error_tickcall): we can't emit the network error
817 from inside UrlNotify, since the handler can remove the plugin at
818 that point, and firefox takes a shit all over itself in that case.
819 (PluginInstance::UrlNotify): if there was a network error
820 downloading the xap, add the tick call to emit the proper error.
821 (PluginInstance::InitializePluginAppDomain): look up the
822 MoonException type and some properties to use when accessing it.
823 (PluginInstance::ManagedExceptionToErrorEventArgs): convert from a
824 managed exception to an ErrorEventArgs which we'll then emit
825 through the surface's ErrorEvent.
826 (PluginInstance::ManagedCreateXamlLoader): check for an exception,
827 and if there was one, emit the error on the surface.
828 (PluginInstance::ManagedInitializeDeployment): same.
829 (PluginInstance::ManagedDestroyApplication): same.
831 * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
832 set the current deployment earlier. definitely needs to be set
833 before we call the callback :)
835 2009-06-02 Geoff Norton <gnorton@novell.com>
837 * plugin.cpp: Ensure we dont start downloading the source until we have
838 the splash. If the splash 404's we need to emit a 2108.
840 2009-06-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
842 * cbinding.h: Regenerated
844 2009-06-01 Chris Toshok <toshok@ximian.com>
846 * plugin-class.cpp (MoonlightContentObject::Invoke): for
847 createFromXaml make sure we call LoadVM on the XamlLoader so we
848 can access managed types (like StackPanel).
850 2009-06-01 Chris Toshok <toshok@ximian.com>
852 * plugin-class.cpp|h: add MoonlightThickness* and add
853 Type::THICKNESS to value_to_variant. this fixes a few instances
854 in the tests where they're accessing margins from javascript.
856 2009-05-28 Jeffrey Stedfast <fejj@novell.com>
858 * plugin-utils.cpp: New source file which has utility functions
859 such as check_arg_list().
861 * plugin-class.h.in: Removed static impl of check_arg_list() -
862 this was causing compile warnings about unused functions and also
863 bloating up the binary ;-)
865 2009-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
867 * plugin.cpp: Sprinkle SetCurrentDeployment.
869 2009-05-27 Geoff Norton <gnorton@novell.com>
871 * plugin.cpp|h: Ensure we only emit the source progress/completed events
872 on the source, and not on the source splash ourself. Also, we need to make
873 sure we have a toplevel before emitting otherwise sender is null going to the
876 2009-05-27 Geoff Norton <gnorton@novell.com>
879 * plugin-class.cpp|h|h.in: Support the splash screen progress/completed events
882 2009-05-27 Geoff Norton <gnorton@novell.com>
884 * plugin.cpp: Avoid a double-delete of the splash xaml_loader
886 2009-05-27 Geoff Norton <gnorton@novell.com>
888 * plugin.cpp|h: Support splash screen.
890 2009-05-27 Geoff Norton <gnorton@novell.com>
892 * plugin.cpp|h: Ensure we spin up a default application for the xaml
893 case as well since <Canvas><StackPanel /></Canvas> works.
895 2009-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
897 * plugin-downloader.h:
898 * plugin-downloader.cpp: Add support for retrieving response headers
901 * cbinding.h: Regenerated.
903 * browser-bridge.h: Updated according to downloader API changes.
905 * plugin.mdp: Updated.
907 2009-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
909 * plugin-downloader.cpp: Don't hard code the verb.
911 2009-05-25 Chris Toshok <toshok@ximian.com>
913 * plugin-class.cpp (value_to_variant): robustify this and support
914 NULL Value*'s. Fixes crash in DRT #485.
916 2009-05-23 Chris Toshok <toshok@ximian.com>
918 * plugin-class.cpp, plugin-class.h: add a Control plugin class,
919 which exposes "focus". Should get DRT #250 a little further (and
920 keep it from timing out.)
922 2009-05-21 Rusty Howell <rhowell@novell.com>
924 * Makefile.am: Changed install dir to DIST_SUBDIRS for make dist
926 2009-05-21 Andreia Gaita <avidigal@novell.com>
928 * plugin-class.cpp: disable throwing js exceptions on html_object_invoke
929 and html_object_get_property, the exceptions get stuck on firefox and
930 any subsequent eval call will fail
932 2009-05-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
934 * npstream-request.cpp: Fix typo.
936 2009-05-20 Rusty Howell <rhowell@novell.com>
938 * Makefile.am: Added install dir to SUBDIRS for 'make dist'
940 2009-05-20 Larry Ewing <lewing@novell.com>
942 * plugin.cpp (TryLoad): update the error string for 2021 to match
945 2009-05-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
947 * cbinding.cpp|h: Regenerated.
949 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
951 * cbinding.cpp|h: Regenerated.
953 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
955 * cbinding.cpp|h: Regenerated.
957 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
959 * cbinding.cpp|h: Regenerated.
961 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
963 * plugin.h: Add a GetBrowserHost which returns a void* to avoid
964 putting NPObject/mozilla headers in the c bindings.
966 * cbinding.cpp|cbinding.h: Regenerated.
968 2009-05-17 Andreia Gaita <avidigal@novell.com>
970 * plugin-class.cpp: If a managed method called from js returns
971 void, create a valid NPVariant_Void return object
973 2009-05-15 Chris Toshok <toshok@ximian.com>
975 * plugin-class.cpp (MoonlightCollectionObject::Invoke): for
976 getItem on a resource dictionary, a string parameter (the key)
979 2009-05-13 Jackson Harper <jackson@ximian.com>
981 * plugin.cpp|h: Update params for SetProperty.
983 2009-05-12 Larry Ewing <lewing@novell.com>
985 * plugin-debug.cpp (reflect_value): add output for point.
987 2009-05-11 Larry Ewing <lewing@novell.com>
989 * plugin-class.cpp: remove UpdateLayout now that it is
992 2009-05-09 Andreia Gaita <avidigal@novell.com>
994 * plugin-class.h.in, plugin-class.g.cpp.in: Added, used to
995 generate Moonlight* classes and MoonId types, for automatic
996 js binding with the GenerateJSBinding annotation.
997 plugin-class.cpp has the bulk of the code, plugin-class.g.cpp
998 has the autogenerated implementations.
1000 * plugin-class.[h|g.cpp]: regen.
1002 * plugin-class.cpp: moved some definitions to the header file,
1003 so .g.cpp can use them too. Added uielement class support, which
1004 is autogenerated on plugin-class.g.cpp. Removed CaptureMouse and
1005 ReleaseMouseCapture, it's handled on uielement on .g.cpp now.
1007 * Makefile.am: Added plugin-class.g.cpp
1009 2009-05-03 Chris Toshok <toshok@ximian.com>
1011 * plugin-class.h|.cpp (MoonlightDependencyObjectObject::Invoke):
1012 add UpdateLayout() as a JS callable function. fixable a JS error
1015 2009-05-02 Chris Toshok <toshok@ximian.com>
1017 * plugin-proxy.cpp (load): add RTLD_GLOBAL to real_plugin,
1018 otherwise we can't call mono_config_parse_memory from the plugin
1019 loader (since it doesn't link to libmono directly).
1021 2009-05-02 Rusty Howell <rhowell@novell.com>
1023 * plugin-proxy.cpp: Detect which libmoonloader we are (xpi or sys)
1024 and dlopen accordingly
1025 * moonlight.h: Remove PLUGIN_INSTALL
1026 * plugin-proxy-xpi.cpp: removed from svn
1027 * Makefile.am: Added check in user-plugin target.
1028 Changed source of libmoonloader back to plugin-proxy.cpp
1030 2009-04-22 Chris Toshok <toshok@ximian.com>
1032 * moonlight.h: moon the #include <glib.h> here from windowless so
1033 we can guarantee glibconfig.h has been included before we check
1036 * windowless.h: drop the include glib.h from here.
1038 2009-04-22 Rusty Howell <rhowell@novell.com>
1040 * make builds separate binaries for xpi
1041 libmoonloaderxpi, libmoonpluginxpi
1043 2009-04-20 Chris Toshok <toshok@ximian.com>
1045 * plugin.cpp (plugin_menu_about): use a preview link for preview
1048 2009-04-18 Chris Toshok <toshok@ximian.com>
1050 * plugin-class.cpp (value_to_variant): add support for FontFamily.
1052 2009-04-18 Chris Toshok <toshok@ximian.com>
1054 * plugin-class.cpp (MoonlightStoryboardObject::Invoke): track
1057 2009-04-17 Chris Toshok <toshok@ximian.com>
1059 * plugin.h|.cpp: remove loaded_xap field, and use
1060 GetDeployment()->IsLoadedFromXap(). Also, switch from
1061 Surface::SetXapLocation to Deployment::SetXapLocation.
1063 2009-04-16 Jeffrey Stedfast <fejj@novell.com>
1065 * plugin-debug.cpp (reflect_value): Hush formatter warnings.
1067 2009-04-16 Geoff Norton <gnorton@novell.com>
1069 * plugin-debug.cpp: Avoid having a null deployment in remove_destroyed.
1071 2009-04-16 Geoff Norton <gnorton@novell.com>
1073 * plugin-debug.cpp: Avoid having a null deployment in selection_changed.
1075 2009-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
1079 * plugin-class.cpp: Implement some missing js properties.
1080 Almost completely fixes MS DRT #21.
1082 2009-04-15 Stephane Delcroix <sdelcroix@novell.com>
1084 * plugin.cpp (PluginInstance::LoadXAP): set the surface xap_location
1086 2009-04-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
1090 * plugin-class.h: Added @GeneratePInvoke to all methods used
1091 in managed code. For C++ methods also generate the
1092 corresponding C method.
1095 * cbinding.cpp: Regenerated.
1097 2009-04-10 Jackson Harper <jackson@ximian.com>
1099 * plugin-class.cpp: Instead of unreffing just delete the value.
1101 2009-04-09 Jackson Harper <jackson@ximian.com>
1103 * plugin.cpp: Updated method names.
1104 * plugin-class.cpp: Update now that we are getting Value*s from
1107 2009-04-08 Geoff Norton <gnorton@novell.com>
1109 * plugin-debug.cpp: Ensure we set the Deployment here too to avoid
1110 crashes in the XAML window.
1112 2009-04-08 Jeffrey Stedfast <fejj@novell.com>
1114 * plugin*.cpp|h: Use glib integer types rather than stdint.h types
1115 especially see as how we aren't including stdint.h anywhere.
1117 * plugin-class.cpp: Updated for slight Downloader API changes.
1119 2009-04-07 Larry Ewing <lewing@novell.com>
1121 * plugin-debug.cpp (reflect_value): Fix the markup for GRIDLENGTH
1124 2009-04-06 Geoff Norton <gnorton@novell.com>
1126 * plugin-debug.cpp: Ensure we set our deployment before poking in
1129 2009-04-03 Sebastien Pouliot <sebastien@ximian.com>
1131 * plugin.cpp|h: Parse enablehtmlaccess and allowhtmlpopupwindow
1132 from the plugin properties. Add missing properties and C bindings.
1134 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
1136 * plugin-class.cpp: use Uri::ToString instead of originalstring.
1137 BitmapImage::GetUriSource never returns a NULL
1139 2009-04-01 Andreia Gaita <avidigal@novell.com>
1141 * plugin-class.[cpp|h]: move some declarations to the header
1142 so that the bridge code can use it too.
1144 2009-03-31 Jb Evain <jbevain@novell.com>
1146 * plugin-class.h: add key_code and char_code parameters
1147 to callback_dom_event.
1149 2009-03-30 Chris Toshok <toshok@ximian.com>
1151 * plugin.cpp: #include timemanager.h
1153 2009-03-29 Geoff Norton <gnorton@novell.com>
1155 * plugin-class.cpp: Ensure that the ImageSource we get is a BitmapImage
1156 before treating it as such.
1158 2009-03-29 Geoff Norton <gnorton@novell.com>
1160 * plugin-class.cpp: Image.Source is always a BitmapImage
1162 2009-03-28 Sebastien Pouliot <sebastien@ximian.com>
1164 * plugin.cpp|h: Export a new function (get_plugin_dir) that returns
1165 the location of the plugin.
1166 * plugin-glue.cpp: Initialize the runtime using the plugin location.
1168 2009-03-27 Andreia Gaita <avidigal@novell.com>
1170 * plugin.cpp: Don't release return from Eval if they're npobj,
1171 client code might reference it later
1173 2009-03-25 Chris Toshok <toshok@ximian.com>
1175 * plugin.cpp (PluginInstance::StreamAsFile): use uri accessors.
1177 * plugin-class.cpp (MoonlightImageBrushObject::GetProperty): same.
1178 (MoonlightImageObject::GetProperty): same.
1180 * plugin-debug.cpp (get_common_prefix_len): same.
1181 (save_callback): same.
1183 2009-03-25 Jeffrey Stedfast <fejj@novell.com>
1185 * plugin-class.cpp (MoonlightObjectType::LookupName): No longer
1186 takes an include_sl2 argument.
1188 * plugin.cpp (PluginInstance::StreamAsFile): We no longer have
1189 IsSilverlight2() so check the filename extension (fixed to not be
1190 a gross hack). Also got rid of #if PLUGIN_2_0 confusion, we are no
1191 longer supporting a 1.0-only build.
1192 (PluginInstance::CreateWindow): Surface.ctor() no longer takes a
1193 silverlight2 argument.
1195 * plugin-debug.cpp (reflect_value): Don't crash when the
1196 DependencyObject is null.
1198 2009-03-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1200 * plugin-class.cpp: Move IsVersionSupported implementation to
1203 2009-03-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1208 * cbinding.cpp: Include generated files in the build.
1210 2009-03-23 Chris Toshok <toshok@ximian.com>
1212 * plugin-class.cpp (value_to_variant): getting a Uri in the plugin
1215 2009-03-21 Andreia Gaita <avidigal@novell.com>
1217 * plugin-class.[h|cpp]: Add html_object_invoke_self
1218 (same as _invoke but with no name arg), that uses
1219 NPN_InvokeDefault instead.
1221 2009-03-21 Chris Toshok <toshok@ximian.com>
1223 * plugin-class.cpp (MoonlightImageObject::GetProperty):
1224 source->GetUriSource() returns a Uri, not a string.
1225 (MoonlightImageBrushObject::GetProperty): same.
1227 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
1229 * plugin-downloader.h:
1230 * plugin-downloader.cpp: PluginDownloader: follow refcounting
1231 laws and ref/unref the response.This fixes a crash where
1232 firefox would unref FFxDownloaderResponse causing its
1233 destruction, and then PluginDownloader would attempt to use
1234 (abort) that response later on.
1236 2009-03-10 Chris Toshok <toshok@ximian.com>
1238 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): for
1239 DumpNameScope, s/LogicalParent/Parent.
1240 (MoonlightDependencyObjectObject::Invoke): for GetParent, make
1241 sure the dob is a frameworkelement subclass, and call
1242 GetLogicalParent on it.
1244 2009-03-10 Jackson Harper <jackson@ximian.com>
1246 * plugin-debug.cpp: COnsistentify method name.
1248 2009-03-03 Jackson Harper <jackson@ximian.com>
1250 * plugin.cpp|h: Update signature of SetProperty.
1252 2009-03-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1254 * plugin.cpp: Add informational printf.
1256 2009-02-23 Chris Toshok <toshok@ximian.com>
1258 * plugin-class.cpp (MoonlightContentObject::Invoke): add better
1259 error messages on createFromXaml.
1261 2009-02-23 Andreia Gaita <avidigal@novell.com>
1263 * plugin-class.[cpp|h]: Add html_object_has_property so managed code
1264 can check for properties before trying to get them. Free scriptable
1267 2009-02-22 Larry Ewing <lewing@novell.com>
1270 * plugin.cpp, plugin.h: add extra padding to our NPBool values so
1271 that buggy browsers don't smash the stack.
1273 2009-02-19 Andreia Gaita <avidigal@novell.com>
1275 * plugin-class.[cpp|h]: On [Get|Set]Property for scriptable objects,
1276 use the property name instead of the handle to call back to the
1277 property. This way we can reuse the virtual functions on
1278 ScriptObject, and it's one less GCHandle walking around.
1279 Fix exception define to have a block.
1281 2009-02-19 Andreia Gaita <avidigal@novell.com>
1283 * plugin-class.cpp: Fix casing lookup
1285 2009-02-19 Andreia Gaita <avidigal@novell.com>
1287 * plugin.cpp: Implement returning values from Evaluate
1288 * plugin-class.[cpp|h]: Expose variant_to_value so Evaluate can
1289 use it to convert values from js
1291 2009-02-17 Jeffrey Stedfast <fejj@novell.com>
1293 * plugin-debug.cpp: Pass true as the only_changed argument to
1294 DO::GetProperties().
1296 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1298 * plugin-class.cpp: Remove case for MediaErrorEventArgs.
1300 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1302 * plugin-class.cpp: EventListenerProxy: set our object type
1305 2009-02-16 Andreia Gaita <avidigal@novell.com>
1307 * plugin-class.cpp: Check return value on GetProperty and throw a js
1308 exception if it wasn't found. Don't lowercase names, scriptable objects
1311 2009-02-16 Geoff Norton <gnorton@novell.com>
1313 * plugin-class.cpp|h: Image(Brush).(Image)Source is the UriSource of the
1314 underlying ImageSource in the javascript API.
1316 2009-02-14 Jeffrey Stedfast <fejj@novell.com>
1318 * plugin-debug.cpp (reflect_dependency_object_in_tree): Updated to
1319 use DO::GetProperties() instead so that we could get attached
1322 2009-02-14 Jeffrey Stedfast <fejj@novell.com>
1324 * plugin-debug.cpp (reflect_dependency_object_in_tree): Fixed up
1325 to use Type::GetProperties().
1327 2009-02-11 Andreia Gaita <avidigal@novell.com>
1329 * plugin-class.cpp: lowercase all method, property and event name
1330 references, they're all added in lowercase
1332 2009-02-11 Andreia Gaita <avidigal@novell.com>
1334 * plugin-class.cpp (html_object_invoke): Check method invoke return
1335 value and throw an exception if it fails. Add an alternate "static"
1336 version of the js exception throwing macro.
1338 2009-02-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1340 * plugin-class.cpp: Change our static DependencyProperty
1341 backing fields to store an integer id instead of an
1342 instance to a DependencyProperty. This way we can have true
1343 per-deployment dependency properties.
1345 2009-02-10 Jackson Harper <jackson@ximian.com>
1347 * plugin.cpp|h: Added a param to the SetProperty callback, plugin
1348 doesn't need to use it for anything.
1350 2009-02-05 Geoff Norton <gnorton@novell.com>
1352 * plugin.cpp: We cannot safely null the deployment here as NPN_GetURLNotify
1353 can sync invoke NPN_URLNotify in the same tick, and we might need the deployment
1356 2009-02-05 Jeffrey Stedfast <fejj@novell.com>
1358 * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
1359 Updated for ReadLocalValue method rename.
1361 * plugin-downloader.cpp (plugin_downloader_create_webrequest):
1362 Don't crash if we don't have a browser bridge.
1364 2009-02-04 Jackson Harper <jackson@ximian.com>
1366 * plugin.cpp|h: Updated xaml signatures.
1368 2009-02-04 Andreia Gaita <avidigal@novell.com>
1370 * plugin-class.[cpp|h]: Change Invoke call to take a name parameter,
1371 so that methods can be called by name as well.
1373 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1375 * plugin.cpp: PluginInstance::UrlNotify: We need to set the
1376 current deployment here.
1378 * plugin-glue.cpp: NPP_Destroy: We need to set the current
1381 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1383 * plugin-class.cpp: Use Type::GetName () instead of accessing
1386 2009-02-03 Fernando Herrera <fherrera@novell.com>
1388 * plugin.cpp: moonlight_flags is 64bits now.
1390 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
1392 * plugin-class.cpp: proxy_listener_to_javascript: we need to set the
1393 current deployment after emitting an event to javascript.
1395 2009-01-29 Geoff Norton <gnorton@novell.com>
1398 * plugin-class.cpp: Ensure that we set the correct context when dtoring our
1399 plugin and its js-object instances.
1401 2009-01-29 Geoff Norton <gnorton@novell.com>
1403 * plugin.cpp: When there are 2 plugins on a page, StreamAsFile can be called
1404 after the deployment has been changed away from this instance. Ensure we
1405 set our deployment properly in this case.
1407 2009-01-29 Geoff Norton <gnorton@novell.com>
1409 * windowless.cpp: Store our creation deployment so we can emit events
1410 in the right deployment.
1412 2009-01-29 Geoff Norton <gnorton@novell.com>
1414 * plugin.cpp: Register the surface with the Deployment. Start cleaning
1415 up all the places we pass this around too. (More to come)
1417 2009-01-29 Geoff Norton <gnorton@novell.com>
1419 * plugin.cpp: Ensure that we create our Surface and SystemTimeSource
1420 in the correct deployment.
1422 2009-01-29 Larry Ewing <lewing@novell.com>
1424 * plugin-debug.cpp (reflect_dependency_object_in_tree): restrict
1425 the VisualChild expansion away from Panel and border to keep from
1426 slowing down the tree that Badly.
1428 2009-01-29 Sebastien Pouliot <sebastien@ximian.com>
1430 * plugin-class.cpp: Only call NPN_ReleaseObject on callback
1431 if the object is *not* a string.
1434 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1436 * plugin.cpp: ~PluginInstance: Call Dispose on the deployment and the
1437 surface. PluginXamlLoader::TryLoad: ref any error arguments we emit
1440 2009-01-28 Larry Ewing <lewing@novell.com>
1442 * plugin-debug.cpp: show VisualChild on all FEs so that we can
1443 navigate into ContentPresenter.
1445 2009-01-28 Larry Ewing <lewing@novell.com>
1447 * plugin-debug.cpp (reflect_value): add more value types.
1449 2009-01-28 Sebastien Pouliot <sebastien@ximian.com>
1451 * plugin-class.cpp: MediaElementState is used as a string inside
1452 Javascript applications but it's an enum (in the managed world).
1454 2009-01-28 Chris Toshok <toshok@ximian.com>
1456 * plugin-debug.cpp (selection_changed): fix crash.
1457 (reflect_dependency_object_in_tree): add Control handling - put a
1458 "Visual Child" under it that gives the subtree.
1460 * plugin-class.cpp (value_to_variant): not sure what to do here
1461 for UINT32's, since NPVariants only have INT32...
1463 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
1465 * plugin.cpp: Call Deployment::Initialize in runtime_init.
1467 2009-01-27 Geoff Norton <gnorton@novell.com>
1469 * plugin.cpp: Use the static overload here.
1471 2009-01-26 Geoff Norton <gnorton@novell.com>
1473 * plugin.cpp: Ensure we're in the right deployment/domain before we
1474 start poking around in managed land.
1476 2009-01-26 Geoff Norton <gnorton@novell.com>
1478 * plugin.cpp|h: Clean this stuff up now that our book-keeper is
1479 Deployment* not internally on MonoDomain*.
1480 * plugin-class.cpp: Ensure that we set the tls slot in Deployment
1481 to the Deployment* this plugin owns before transitioning into libmoon
1483 2009-01-26 Jackson Harper <jackson@ximian.com>
1485 * plugin.cpp|h: SourceLocation for Sl2 xaps is the .xap url.
1487 2009-01-26 Geoff Norton <gnorton@novell.com>
1489 * plugin.cpp|h: We now go thru Deployment to warm up the application.
1491 2009-01-25 Geoff Norton <gnorton@novell.com>
1493 * plugin.cpp: We initialize a Deployment for every plugin regardless
1494 of wether its 1.0 or 2.0 context now.
1496 2009-01-25 Chris Toshok <toshok@ximian.com>
1498 * plugin.cpp (PluginInstance::CreatePluginAppDomain): create/set
1499 the deployment for this plugin before we return, so it's set
1500 before Application.CreateFromXap is called.
1502 2009-01-23 Geoff Norton <gnorton@novell.com>
1504 * plugin.cpp: Force keep-delegates on in SVN (only if a custom
1505 MONO_DEBUG doesn't already exist in the environment)
1507 2009-01-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
1509 * plugin-debug.cpp: Integrate munxap into our debugging experience.
1511 2009-01-21 Jb Evain <jbevain@novell.com>
1513 * plugin.cpp|h: remove PluginInstance::GetBrowserInformation
1514 and ::EvaluateToVariant as well as
1515 plugin_instance_get_browser_information which is now implemented
1516 in the managed code.
1518 2009-01-21 Andreia Gaita <avidigal@novell.com>
1520 * plugin-class.[h|cpp]: Add support for registering objects as a
1521 tree. fix casing on lookups.
1523 2009-01-21 Sebastien Pouliot <sebastien@ximian.com>
1525 * plugin-class.cpp: Process the difference between SL1/2 default
1526 values on a case-by-case basis. Right now this (re-fix) UIElement::
1527 RenderTransformProperty (wrt null) and FrameworkElement::[Height|
1528 Width]Property (wrt NaN).
1530 2009-01-20 Geoff Norton <gnorton@novell.com>
1532 * plugin-class.cpp: Ensure that we convert doubles in the ASCII
1533 locale, as we attempt to parse in this locale.
1537 2009-01-20 Sebastien Pouliot <sebastien@ximian.com>
1539 * plugin-class.cpp: Call GetLocalValue on DO so we don't provide the
1540 default values used in SL2 to SL1 applications. This fix Fox
1541 http://www.silverlight.net/fox/ while allowing to use the (non-null)
1542 default value for UIElement::RenderTransformProperty
1544 2009-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
1546 * plugin.mdp: Updated.
1548 2009-01-18 Geoff Norton <gnorton@novell.com>
1550 * plugin-downloader.cpp: Avoid crashing when the bridge isn't available
1552 2009-01-18 Larry Ewing <lewing@novell.com>
1554 * plugin-debug.cpp (reflect_foreach_current_value): don't crash if
1555 we can't lookup the owning type.
1557 2009-01-16 Jb Evain <jbevain@novell.com>
1559 * plugin-class.cpp: move STRDUP_FROM_VARIANT and
1560 STRLEN_FROM_VARIANT to plugin.h
1561 * plugin.h: also define PluginInstance::EvaluateToVariant
1562 * plugin.cpp: implement PluginInstance::GetBrowserInformation
1563 and PluginInstance::EvaluateToVariant.
1565 2009-01-16 Jb Evain <jbevain@novell.com>
1567 * plugin.cpp|h: remove PluginInstance::LoadUrl.
1569 2009-01-15 Jackson Harper <jackson@ximian.com>
1571 * plugin.cpp|h: Updated signature for the xaml callbacks.
1573 2009-01-13 Geoff Norton <gnorton@novell.com>
1575 * plugin.cpp: Fix our MonoDomain cleanup (hopefully) once and for all.
1577 2009-01-13 Geoff Norton <gnorton@novell.com>
1579 * plugin.cpp: Don't free domain's until we fix the problems on the
1580 mono side associated with that.
1582 2009-01-13 Geoff Norton <gnorton@novell.com>
1584 * plugin.cpp: Ensure we finalize the domain before freeing it.
1586 2009-01-13 Jackson Harper <jackson@ximian.com>
1588 * plugin.cpp|h: Updated xaml callback sig.
1590 2009-01-13 Jb Evain <jbevain@novell.com>
1592 * plugin.cpp: specify System.Windows's fullname when loading it,
1593 to avoid loading a different version, such as the desktop one.
1595 2009-01-13 Geoff Norton <gnorton@novell.com>
1597 * plugin.cpp: Update to build appdomains properly isolated for each
1598 PluginInstance. Also change the location resolution of System.Windows
1601 2009-01-13 Geoff Noton <gnorton@novell.com>
1603 * plugin.cpp: Find System.Windows.dll a slightly different way
1604 so that we can search in MONO_PATH for it and not just the installed
1605 prefix. Fixes test runs on the buildbots.
1607 2009-01-12 Jb Evain <jbevain@novell.com>
1609 * plugin.h, plugin.cpp: remove the need for a moonlight.exe
1610 launcher by calling directly methods in System.Windows. We're
1611 getting the System.Windows relative to the moonlight mscorlib.dll.
1612 * Makefile.am: remove references to moonlight.cs and moonlight.exe.
1613 * moonlight.cs: delete.
1615 2009-01-12 Geoff Norton <gnorton@novell.com>
1617 * plugin.cpp: Update to reflect changes in the mono embedding API.
1619 2009-01-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
1621 * plugin.cpp: Unconfuse a bit: initParams is a char*, so use a boolean
1622 value to initialize it.
1624 2009-01-10 Jeffrey Stedfast <fejj@novell.com>
1626 * plugin.cpp (moonlight_authors): Updated.
1628 2009-01-08 Jeffrey Stedfast <fejj@novell.com>
1630 * plugin-class.cpp (MoonlightKeyEventArgsObject::GetProperty):
1631 Updated for method name changes.
1633 2008-12-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
1635 * plugin.mdp: Updated.
1637 2008-12-18 Chris Toshok <toshok@ximian.com>
1639 * plugin.h, plugin.cpp: rework the app domain stuff slightly. we
1640 now only call mono_jit_init_version once (and don't attempt to
1641 unload that room AppDomain), and then call mono_domain_create from
1642 each plugin instance (and we *do* free that AppDomain).
1644 2008-12-17 Chris Toshok <toshok@ximian.com>
1646 * plugin.cpp (PluginInstance::MonoInit): turns out this wasn't the
1647 domain name, but the version. it needs to be "moonlight".
1649 * moonlight.cs: remove reference to Helper, as this was only used
1650 to print out the Mono.Moonlight.dll fully qualified name.
1652 * Makefile.am: remove references to Mono.Moonlight.dll.
1654 2008-12-17 Chris Toshok <toshok@ximian.com>
1656 * plugin.cpp (PluginInstance::MonoInit): supply a function pointer
1657 that actually exists to dladdr when PLUGIN_INSTALL is defined.
1658 Also, use a similar app domain name ("moonlight-%p" where %p is
1659 the PluginInstance*).
1661 2008-12-17 Geoff Norton <gnorton@novell.com>
1663 * plugin.cpp: gtk_plug_new takes a GdkNativeWindow which has
1664 differing precision on amd64 and i586.
1666 2008-12-16 Chris Toshok <toshok@ximian.com>
1668 * plugin.h, plugin.cpp: move all the stuff from mono.cpp (and
1669 moon-mono.h) here. Remove all global variables and make them
1670 instance variables on PluginInstance (of particular importance is
1671 the AppDomain). This means every PluginInstance gets their own
1672 app domain, their own boot assembly, etc, and we can drop all the
1673 AppDomain stuff from moonlight.cs.
1675 * mono.cpp, moon-mono.h: nuke.
1677 * plugin-glue.cpp: remove include of moon-mono.h
1679 * moonlight.cs: remove all the AppDomain specific stuff here - the
1680 unload handler is gone (replaced by a mono_domain_free call in
1681 plugin.cpp), the Helper calls to create instances and unwrap them
1682 has been replaced with type lookups + Activator.CreateInstance.
1684 2008-12-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
1686 * plugin.cpp: SetSource: in case we already have a surface, detach
1687 downloaders from it right away, this should fix the random failures
1690 2008-12-03 Larry Ewing <lewing@novell.com>
1692 * plugin.cpp: clean up source setting so that the property is
1693 always set and we don't accidentally schedule more than one idle
1696 2008-12-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1698 * browser-bridge.h, plugin-class.cpp, plugin-class.h: Rework event
1699 attaching/detaching a bit: html_object_attach_event now takes a
1700 context argument, which is passed to the event callback.
1701 ff2/3-dom.cpp: After removing the event listener we delete the
1704 2008-12-02 Chris Toshok <toshok@ximian.com>
1706 * plugin-class.cpp (MoonlightScriptControlObject::Invoke): fix
1707 isVersionSupported - i don't like knocking off 2.0 except when
1708 PLUGIN_SL_2_0 is enabled, but it seems like if people are checking
1709 2.0, they'll assume managed code.
1711 2008-11-26 Jackson Harper <jackson@ximian.com>
1713 * plugin.cpp|h: The parser no longer requires assemblies to be
1714 downloaded, so the mapping stuff is commented out.
1715 - The parser now treats events as properties, so we use
1716 SetProperty instead of HookupEvent.
1718 2008-11-22 Geoff Norton <gnorton@novell.com>
1720 * windowless.cpp: Revert
1721 * windowless.h: Include glib.h and moonlight.h so that GDK_NATIVE_WINDOW_POINTER
1722 is defined and GdkNativeWindow gets its correct width of 8 bytes to prevent
1725 2008-11-21 Alp Toker <alp@nuanti.com>
1727 * plugin-class.cpp: Fix 'DownloadProgressCanged' typo in DOM event
1728 names leading to dropped events.
1730 2008-11-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
1732 * plugin-class.cpp: Implement variant<->value conversion for NPObjects.
1733 * plugin.h, plugin.cpp: Added plugin_instance_get_id and
1734 plugin_instance_get_host.
1736 2008-11-10 Jeffrey Stedfast <fejj@novell.com>
1740 * plugin-debug.cpp (plugin_debug): Connect to surface
1741 DestroyedEvent to close the debug window so that it won't crash
1742 when trying to use it once the site has been navigated away from.
1744 2008-11-06 Stephane Delcroix <sdelcroix@novell.com>
1747 * plugin-downloader.h|cpp:
1748 * firefox/browser-http.inc: pass the uri with the finished handler
1749 for further validation. r:gnorton
1751 2008-10-31 Chris Toshok <toshok@ximian.com>
1753 * plugin.cpp (PluginInstance::CreateWindow): call SetTransparent
1754 on moon_window instead of the surface.
1756 * windowless.cpp (MoonWindowless::HandleEvent): pass
1757 GetTransparent() to Surface::PaintToDrawable here.
1759 2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
1761 * plugin.cpp: Implement EnableRedrawRegions by linking them to
1762 RUNTIME_INIT_SHOW_EXPOSE.
1764 2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
1766 * plugin.cpp: Add a row to the Properties dialog informing about the
1769 2008-10-21 Chris Toshok <toshok@ximian.com>
1771 * plugin-class.cpp, plugin-class.h: event listener leak fix v3.0
1773 2008-10-21 Chris Toshok <toshok@ximian.com>
1775 * plugin-class.cpp, plugin-class.h: since I removed the value_dtor
1776 from xaml_proxies, we need to iterate over it and destroy the
1777 proxies manually now. Also, disavow ownership of proxies when we
1780 2008-10-20 Chris Toshok <toshok@ximian.com>
1782 * plugin-class.cpp (MoonlightObject::ClearXamlEventProxy): this
1783 method cannot call RemoveHandler on the proxy. instead, we return
1784 the proxy and our callers can do it
1785 (MoonlightScriptControlObject::SetProperty): here
1786 (MoonlightContentObject::SetProperty): here
1787 (MoonlightDependencyObjectObject::SetProperty): and here
1789 (EventListenerProxy::~EventListenerProxy): here we need to clear
1790 out the xaml/non-xaml proxy regardless of of whether or not it's a
1791 function. and make sure to call the right method depending on our
1794 2008-10-20 Chris Toshok <toshok@ximian.com>
1796 * plugin-class.cpp, plugin-class.h: Rather complicated lifecycle
1797 sorting out dealing with EventListenerProxies - there was a reason
1798 I was avoiding this :) - fixes bug 436060.
1800 1) if the target (the object on which the proxy calls AddHandler)
1801 is destroyed, the proxy should go away.
1803 2) if the owner (the MoonlightObject which created the proxy) is
1804 invalidated, the proxy should also be invalidated.
1806 3) if the owner is destroyed, the proxy should call RemoveHandler
1807 on the target. Note that we shouldn't destroy the proxy here -
1808 it'll be destroyed by virtue of the data_dtor stuff in
1811 * windowless.h, windowless.cpp: add support for experimental
1812 extension (see mozilla.org bug #430451) for windowless cursors.
1814 2008-10-20 Chris Toshok <toshok@ximian.com>
1816 * plugin-entry.cpp: get rid of all those CallNPP_* macro uses.
1817 just invoke the damn function.
1819 * plugin-proxy.cpp, moonlight.h: include npfunctions.h instead of npupp.h
1821 * plugin-glue.cpp, plugin.h: fix types.
1823 * moz-sdk/*: rev to a newer version of the moz-sdk files.
1825 2008-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1827 * plugin-class.cpp: proxy_listener_to_javascript: if calldata is null,
1828 only pass 1 argument to javascript. Fixes #426440 partially (mp3s
1829 are now downloaded).
1831 2008-10-16 Jb Evain <jbevain@novell.com>
1833 * moonlight.h: update SL2 mime type and runtime version.
1835 2008-10-14 Chris Toshok <toshok@ximian.com>
1837 * windowless.cpp (MoonWindowless::GetGdkWindow): get the
1838 netscapeWindow from our plugin id and return a new GdkWindow for
1841 2008-10-14 Stephane Delcroix <sdelcroix@novell.com>
1843 * windowless.h|.cpp: implements GetGdkWindow ()
1845 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1847 * plugin-class.cpp: Fix statement order.
1849 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1851 * plugin.cpp, plugin-class.cpp: Add some null checks, found while using
1852 firebug during plugin initialization.
1854 2008-10-07 Larry Ewing <lewing@novell.com>
1856 * windowless.cpp (MoonWindowless::HandleEvent): set the crossing
1857 mode of our synthetic events to normal.
1859 Fixes missing mouse leave events for InputHitTst.html (143)
1861 2008-10-07 Larry Ewing <lewing@novell.com>
1863 * plugin.cpp: remove a redundant call to SetSurface after creating
1864 a surface, it is handled in the ctor.
1866 Fixes the double render_cb registration problem we were seeing
1867 that caused high framerates and starvation problems.
1869 2008-10-03 Stephane Delcroix <sdelcroix@novell.com>
1871 * plugin.cpp: call SetPageURL even for embedded xaml. Makes fixture
1872 145 break, as expected.
1874 2008-09-30 Chris Toshok <toshok@ximian.com>
1876 * plugin-debug.cpp: more debug window work - it's sorted by name
1877 now, and add support for colors, timespans, and a few other types.
1879 2008-09-30 Chris Toshok <toshok@ximian.com>
1881 * plugin-debug.cpp: rework the Debug window entirely. no we don't
1882 just show children, but all property values.
1884 2008-09-28 Chris Toshok <toshok@ximian.com>
1887 plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): add
1888 support for dumpNameScope.
1890 2008-09-26 Fernando Herrera <fherrera@novell.com>
1892 * mono.cpp: Fix compilation when configured with --with-debug=no
1894 2008-09-25 Jeffrey Stedfast <fejj@novell.com>
1896 * plugin.cpp (PluginInstance::PluginInstance): Initialize
1897 source_location to NULL - probably the source of the random
1898 crashes we were seeing on the buildbot earlier.
1900 2008-09-25 Stephane Delcroix <sdelcroix@novell.com>
1902 * plugin.cpp: update the Surface::source_location while setting
1903 the source_location.
1905 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1907 * plugin.cpp: Show a item in the right-click menu allowing the ms
1908 codecs to be installed manually.
1910 2008-09-23 Chris Toshok <toshok@ximian.com>
1912 * plugin.cpp (PluginInstance::CreateWindow): plug some memory
1915 2008-09-19 Jeffrey Stedfast <fejj@novell.com>
1917 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): For
1918 RemoveEventListener(), we don't need to look up the event_id more
1921 * plugin.cpp (PluginXamlLoader::HookupEvent): Call
1922 event_object_add_xaml_listener() instead of
1923 event_object_add_javascript_handler() since this is happening as a
1924 result of a listener being set in the XAML (which means it has to
1925 have a token value of 0).
1927 * plugin-class.cpp (EventListenerProxy::AddXamlHandler): New method.
1928 (event_object_add_xaml_listener): New.
1930 2008-09-19 Stephane Delcroix <sdelcroix@gnome.org>
1932 * plugin-class.cpp: use the nex dl->Open interface
1934 2008-09-16 Fernando Herrera <fherrera@novell.com>
1936 * Makefile.am: Add asf include dir
1938 2008-09-06 Chris Toshok <toshok@ximian.com>
1940 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke): look
1941 up the event here, the DO api is gone.
1942 (EventListenerProxy::~EventListenerProxy): use the DestroyedEvent
1943 id instead of "destroyed".
1945 2008-09-03 Larry Ewing <lewing@novell.com>
1947 * plugin-class.cpp, plugin-class.h: remove all the ControObject
1948 wrapper foo, Control has the properties we need and this looks
1951 2008-08-28 Chris Toshok <toshok@ximian.com>
1953 * plugin.cpp, plugin-class.cpp: track move from C-binding to C++
1954 for the xaml_create/hydrate_from* methods.
1956 2008-08-28 Larry Ewing <lewing@novell.com>
1958 Make a little progress in getting opera to load the plugin
1959 correctly in windowless mode. Opera is still only minimally
1960 functional but the plugin should come up now.
1962 * plugin.cpp, plugin.h: don't get the source url via GetProperty
1963 that causes operapluginwrapper to reenter and breaks everything.
1964 Handle a few other operapluginwrapper quirks and pass resizing
1965 through the window not the surface (so that UpdateWindowInfo will
1968 * plugin-glue.cpp: slightly rework the initialization, don't fixup
1969 errors just try to fail early.
1971 * windowless.cpp (MoonWindowless::UpdateWindowInfo): new function
1972 to copy the needed members of NPWindow that opera is prematurely
1975 2008-08-25 Chris Toshok <toshok@ximian.com>
1977 * plugin-class.cpp, windowless.cpp: track rect change.
1979 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1981 * plugin.cpp: Fix build.
1983 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1985 * plugin-downloader.cpp: Drastically enhance the debugging experience
1988 2008-08-18 Larry Ewing <lewing@novell.com>
1990 * plugin-class.cpp (MoonlightStrokeCollectionObject::Invoke):
1991 unref the collection we've created.
1993 2008-08-18 Geoff Norton <gnorton@novell.com>
1995 * plugin-class.cpp: Its possible that we dont have a surface in the
1996 OnError case at this point, guard against this.
1998 2008-08-18 Geoff Norton <gnorton@novell.com>
2000 * plugin.cpp: Ensure we dont set object.Source to a data mime-type value.
2002 2008-08-18 Geoff Norton <gnorton@novell.com>
2004 * windowless.cpp: Null the GdkEventKey.string value.
2005 * plugin-class.cpp|h: Rename KeyboardEventArgs->KeyEventArgs,
2006 but support returning "KeyboardEventArgs" to javacsript toString()
2009 2008-08-17 Geoff Norton <gnorton@novell.com>
2011 * plugin.cpp|h: Add a C binding for GetSourceLocation ()
2013 2008-08-17 Chris Toshok <toshok@ximian.com>
2015 * plugin.cpp, plugin-class.cpp, mono.cpp, plugin-proxy.cpp,
2016 plugin.h, moonlight.h, moon-mono.h: SL_2_0 -> SL_PLUGIN_2_0.
2018 2008-08-17 Chris Toshok <toshok@ximian.com>
2020 * Makefile.am: INCLUDE_MONO_RUNTIME ->
2021 INCLUDE_BROWSER_MANAGED_CODE.
2023 2008-08-15 Jeffrey Stedfast <fejj@novell.com>
2025 * plugin-class.cpp (MoonlightStylusInfoObject::GetProperty): Use
2026 the c++ property accessors for the stylus classes.
2028 2008-08-14 Jackson Harper <jackson@ximian.com>
2030 * plugin.cpp|h: We now get a 'dest' pointer for hooking up events,
2031 this is basically ignored by the javascript event hookup since
2032 everything is in a global space.
2034 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2036 * plugin.h: Don't use base_unref, call unref on the instance.
2038 2008-08-14 Geoff Norton <gnorton@novell.com>
2040 * plugin.cpp|h: The timeout C bindings are no longer used.
2042 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2044 * plugin-class.cpp: Remove spew.
2045 * moonlight.cs: Don't initialize Helper.Agclr here, it's not in the
2048 2008-08-13 Geoff Norton <gnorton@novell.com>
2050 * plugin.cpp|h: Reuse the old html_timer infrastructure for the
2051 intial DispatcherTimer implementation.
2053 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
2055 * moonlight.cs: Set Helper.Agclr upon startup.
2057 2008-08-11 Larry Ewing <lewing@novell.com>
2059 * plugin.cpp (PluginInstance::StreamAsFile): horrible but
2060 temporary hack to load application/x-silverlight objects as sl2
2061 files when .xap is present in the filename.
2063 2008-08-11 Geoff Norton <gnorton@novell.com>
2065 * moonlight.h: Some sites are doing an exact string comparison
2066 in Javascript of this value. Unfortunately we need to drop
2067 out compatability string.
2069 2008-08-08 Chris Toshok <toshok@ximian.com>
2071 * plugin-class.cpp: add sl2 arguments to the various parser/enum
2072 functions that need them.
2074 2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
2076 * plugin.mdp: Make src and plugin projects build.
2078 2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
2080 * plugin-debug.cpp: Deleted Visual (moved content into UIElement), and
2081 renamed VisualCollection to UIElementCollection.
2083 2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
2085 * plugin-class.cpp: Use C++ bindings instead of C bindings.
2087 2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
2089 * plugin.cpp, plugin.h: Implement PluginInstance::Evaluate.
2091 2008-07-26 Chris Toshok <toshok@ximian.com>
2093 * plugin-class.h, plugin-class.cpp: add MoonlightRoutedEventArgs
2094 stuff between EventArgs and KeyboardEventArgs/MouseEventArgs.
2095 RoutedEventArgs exposes a 2.0-only property ("source"), and both
2096 Keyboard/MouseEventArgs expose a 2.0-only property as
2099 2008-07-25 Chris Toshok <toshok@ximian.com>
2101 * plugin-class.h, plugin-class.cpp: add a flags field to the
2102 mapping, so we can start to differentiate the 1.0 and 2.0 JS apis.
2104 * plugin.cpp (PluginInstance::CreateWindow): pass silverlight2 to
2107 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
2109 * plugin-class.cpp (MoonlightCollectionObject::GetProperty): Use
2110 collection->GetCount() instead of poking at the internal
2111 representation of the data.
2112 (MoonlightCollectionObject::Invoke): Need to add/remove/insert/etc
2113 items as Values now.
2115 2008-07-23 Chris Toshok <toshok@ximian.com>
2117 * plugin-class.cpp: track DependencyProperty changes.
2119 2008-07-18 Chris Toshok <toshok@ximian.com>
2121 * windowless.h, windowless.cpp: switch this from being a surface
2122 subclass to being a MoonWindow subclass, which fixes the need for
2123 us to worry about whether we have a widget (for fullscreen) in
2126 2008-07-18 Jb Evain <jbevain@novell.com>
2128 * moonlight.cs (UnloadDomain): actually call the plugin unload callback.
2130 2008-07-18 Jackson Harper <jackson@ximian.com>
2132 * plugin-debug.cpp: Use new method for getting content element.
2134 2008-07-17 Jackson Harper <jackson@ximian.com>
2136 * plugin-debug.cpp: Add the contents of UserControls to the tree too.
2138 2008-07-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
2140 * npstream-request.cpp, plugin-entry.cpp: Add missing #include
2143 2008-07-10 Andrew Jorgensen <ajorgensen@novell.com>
2145 * plugin-proxy.cpp: Include config.h (which got un-included
2148 2008-07-10 Chris Toshok <toshok@ximian.com>
2150 * plugin.cpp (PluginInstance::UpdateSourceByReference): rework
2151 this so that it uses the NPN api instead of the bridge-requiring
2152 html_get_element_text.
2154 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
2156 * plugin.mdp: Updated.
2158 2008-07-09 Geoff Norton <gnorton@novell.com>
2160 * plugin.cpp: UrlNotify now calls dl->NotifyFinished() and
2161 StreamAsFile calls SetFilename
2162 * plugin-downloader.cpp: Update for the Downloader changes
2163 to NotifyFinished / SetFilename
2165 2008-07-09 Larry Ewing <lewing@novell.com>
2167 * windowless.cpp: make sure we proxy events to the fullscreen
2168 widget when we are in fullscreen mode.
2170 Fixes silverlight.net/fox in fullscreen mode.
2172 2008-07-08 Sebastien Pouliot <sebastien@ximian.com>
2174 * plugin-class.cpp: Make sure we free (or nullify) before calling
2177 2008-07-07 Jeffrey Stedfast <fejj@novell.com>
2179 * mono.cpp: Fixed includes.
2181 2008-07-06 Chris Toshok <toshok@ximian.com>
2183 * windowless.cpp (WindowlessSurface::HandleEvent):
2184 plugin_button_press_callback takes the plugin for user_data, not
2187 2008-07-06 Chris Toshok <toshok@ximian.com>
2189 * plugin.cpp (PluginInstance::Initialize): add a way to override
2190 the windowless setting. set the MOONLIGHT_NO_WINDOWLESS
2191 environment variable, and plugins will be created windowed,
2192 regardless of the JS.
2194 2008-07-02 Chris Toshok <toshok@ximian.com>
2196 * Makefile.am (INCLUDES): add src/zip
2198 * plugin.cpp (PluginInstance::StreamAsFile): in the case where the
2199 1.0 version of the plugin is fed a .xap file, show something to
2200 the user saying it's not going to be able to render it.
2202 2008-07-02 Chris Toshok <toshok@ximian.com>
2204 * plugin.h, plugin.cpp: more clean up in the class decl.
2206 * plugin-class.cpp, plugin-debug.cpp, plugin-glue.cpp: fallout
2207 from the above change.
2209 2008-07-02 Jeffrey Stedfast <fejj@novell.com>
2211 * plugin.cpp (PluginInstance::Properties): Added a "Show text
2214 2008-07-02 Chris Toshok <toshok@ximian.com>
2216 * plugin.h, plugin.cpp: reorder PluginInstance's class decl so
2217 that public: comes before private:, and make "timers" private,
2218 forcing the addition of TimeoutAdd and TimeoutStop instance
2219 methods so that the C binding can call them. put comments all
2220 over them saying they're obsolete in b2.
2222 2008-07-02 Chris Toshok <toshok@ximian.com>
2224 * plugin-class.h, plugin-class.cpp (string_to_npvariant): make
2227 2008-07-02 Chris Toshok <toshok@ximian.com>
2229 * windowless.h, windowless.cpp (WindowlessSurface::HandleEvent):
2230 move the windowless event handling here so it's not cluttering up
2233 * plugin.h, plugin.cpp: add GetWindow() to return the NPWindow,
2234 make plugin_button_press_callback a public static method so
2235 WindowlessSurface can call it, and remove the entire EventHandle
2236 method body (so it can be moved to WindowlessSurface).
2238 2008-07-02 Chris Toshok <toshok@ximian.com>
2240 * plugin.h, plugin.cpp: remove the old static methods for doing
2241 windowless things, and instead just instantiate a
2242 WindowlessSurface in CreateWindow when windowless == true.
2244 * Makefile.am (libmoonplugin_la_SOURCES): add windowless.{cpp,h}
2246 * windowless.h, windowless.cpp: new WindowlessSurface subclass
2247 which proxies things over to mozilla.
2249 2008-07-02 Chris Toshok <toshok@ximian.com>
2251 * plugin.cpp (NPN_strdup): just set 1 byte to 0 instead of all of
2253 (PluginInstance::SetSurfaceCursor): ifdefed out implementation of
2254 a proposed method for setting the cursor in windowless plugins.
2255 (PluginInstance::CreateWindow): hook up SetSurfaceCursor.
2257 2008-06-28 Geoff Norton <gnorton@novell.com>
2259 * plugin-downloader.(ccp|h): The finished event raises a success condition now
2260 so that we can notify failure on unsuccessful downloads.
2262 2008-06-27 Stephane Delcroix <sdelcroix@novell.com>
2265 * firefox/browser-http.inc:
2266 * firefox/ff2/ff2-bridge.h:
2267 * firefox/ff2/ff2-http.cpp:
2268 * firefox/ff3/ff3-bridge.h:
2269 * firefox/ff3/ff3-http.cpp:
2270 * npstream-request.cpp:
2271 * npstream-request.h:
2272 * plugin-downloader.cpp:
2273 * plugin-downloader.h: move browserrequest/response from the plugin
2274 as downloaderrequest/response.
2276 2008-06-26 Michael Dominic K. <mdk@mdk.am>
2279 * plugin-class.h: Adding ways/wrapper to access the KeyTime property of
2280 the KeyFrame. Fixes #402370 and #402035.
2282 2008-06-19 Chris Toshok <toshok@ximian.com>
2284 * plugin.h: add GetHost(), and rename all the "get"/"set" methods
2285 to "Get"/"Set" to match everything else.
2287 * plugin.cpp: fix up the renaming, and abstract out the code used
2288 in a couple of places (getting the NPNVPluginElementNPObject) into
2291 * npstream-request.cpp (NPStreamRequest::GetResponse): track
2294 * plugin-class.cpp: track renaming.
2295 (MoonlightDependencyObjectObject::Invoke): use GetHost().
2297 2008-06-19 Chris Toshok <toshok@ximian.com>
2299 * plugin-class.cpp (MoonlightScriptControlObject::Invoke): comment
2300 out the version requested spew.
2302 * plugin.cpp (PluginInstance::Initialize): comment some bridge
2303 spew, and make sure to use "else if" for the useragent tests so we
2304 don't end up possibly loading 2 bridges.
2306 2008-06-17 Geoff Norton <gnorton@novell.com>
2308 * plugin-downloader.cpp: When we are Aborted NULL our request
2309 and response objects so that we dont do a double abort from our
2310 dtor. Fully fixes the Downloader::Write issue (i hope).
2312 2008-06-17 Geoff Norton <gnorton@novell.com>
2314 * plugin-downloader.cpp: Set the finished state regardless of
2315 wether we have a downloader or not.
2317 2008-06-17 Geoff Norton <gnorton@novell.com>
2319 * plugin-downloader.cpp: If we destroy ourselves, ensure that we
2320 abort our request/response so that firefox doesn't call back
2321 into a destroyed object.
2323 2008-06-17 Geoff Norton <gnorton@novell.com>
2325 * plugin-downloader.cpp, plugin-downloader.h: Ensure that we dont
2326 attempt to abort a finished stream, as it may have dissappeared from
2329 2008-06-16 Jeffrey Stedfast <fejj@novell.com>
2331 * plugin-class.cpp (_set_dependency_property_value): Don't
2332 g_assert() here, it's not necessary plus we want to get rid of
2333 them anyway for bug #335413.
2335 2008-06-10 Chris Toshok <toshok@ximian.com>
2337 * plugin.cpp, plugin.h: wrap everything 2.0 related with
2338 INCLUDE_MONO_RUNTIME.
2340 2008-06-10 Geoff Norton <gnorton@novell.com>
2342 * plugin-downloader.cpp, plugin-downloader.h: Aborted guarding
2343 is handled in the bridge now, as plugin-downloader's might be
2344 reused. Also add a null check for Downloader in the Read callback
2346 2008-06-10 Geoff Norton <gnorton@novell.com>
2348 * npstream-request.cpp: Return the status of GetResponse.
2350 2008-06-11 Geoff Norton <gnorton@novell.com>
2352 * plugin-downloader.cpp: Only call into the downloader to Write
2353 if we have a downloader set. Fixes a crash when navigating away from
2356 2008-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
2358 * plugin-class.h: Replace g_assert with g_warning.
2360 2008-06-09 Geoff Norton <gnorton@novell.com>
2362 * npstream-request.cpp: Change the g_asserts to g_warning.
2364 2008-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
2366 * plugin.mdp: Updated.
2368 2008-06-05 Jeffrey Stedfast <fejj@novell.com>
2370 * plugin-debug.cpp (save_callback): Modified to save mirror in the
2371 same directory layout as the website.
2373 2008-06-05 Geoff Norton <gnorton@novell.com>
2375 * plugin-class.cpp: Update to reflect API changes on the downloader
2378 2008-06-05 Geoff Norton <gnorton@novell.com>
2380 * plugin-downloader.cpp: Update the debugging outputs.
2382 2008-06-05 Geoff Norton <gnorton@novell.com>
2384 * http-downloader.cpp, http-downloader.h, mms-downloader.cpp,
2385 mms-downloader.h: Drop from the build in preparation to move
2386 mms logic into libmoon.
2387 * plugin-downloader.cpp, plugin-downloader.h,
2388 browser-bridge.h: Remove the browser downloader and encapsulate
2389 all the logic in a BrowserRequest.
2390 * npstream-request.cpp, npstream-request.h: New BrowserRequest
2391 based NPStream implementation.
2392 * plugin-downloader.cpp: Fix some debugging output. Add a few
2394 * plugin.cpp: Utilize the new npstream-request class.
2396 2008-06-04 Geoff Norton <gnorton@novell.com>
2398 * plugin-class.cpp: Fix the argument check for MouseEventArgs
2399 GetPosition regression introduced with check_arg_list changes.
2401 2008-06-04 Geoff Norton <gnorton@novell.com>
2403 * plugin-class.cpp: Fix the argument check for hitTest
2404 regression introduced with check_arg_list changes.
2406 2008-06-04 Geoff Norton <gnorton@novell.com>
2408 * plugin-class.cpp: Fix the argument check for setFontSource
2409 regression introduced with check_arg_list changes.
2411 2008-06-04 Jeffrey Stedfast <fejj@novell.com>
2413 * plugin-class.cpp: Added argument sanity checking in all the
2414 Invoke() methods I could find (may have missed some).
2415 (check_arg_list): New function to sanity-check an NPVariant
2416 argument vector for the correct types and the correct number of
2417 arguments (supports optional args as well).
2419 2008-06-04 Jeffrey Stedfast <fejj@novell.com>
2421 * plugin-class.cpp (MoonlightDownloaderObject::Invoke): Check the
2422 arg-types for ::Open(). Fixes bug #394943.
2424 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2426 * plugin-downloader.cpp: Don't delete BrowserDownloaders, it causes
2427 crashes for the moment.
2429 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2431 * mms-downloader.cpp: MmsDownloader::Read: only delete the ASFParser
2432 after we've finished with the data it contains.
2433 MmsDownloader::ProcessMetadataPacket: fix parsing quoted strings.
2434 * mms-downloader.h, npstream-downloader.h: Make dtor virtual.
2435 * plugin-downloader.cpp, plugin-downloader.h: Move ctors and dtors into
2436 cpp file, and delete the BrowserDownloader in PluginDownloader's
2439 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2441 * plugin.mdp: Updated.
2443 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2445 * mms-downloader.cpp: Call Downloader::NotifyFailed when we encounter
2446 an invalid mms source. Parse metadata packets, and set
2447 HttpStreamingFeatures correctly on the downloader.
2448 * plugin-downloader.cpp: Handle rtsp urls.
2450 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2452 * plugin.cpp: Add some debugging foo.
2454 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2456 * npstream-downloader.cpp: If NPN_GetURLNotify fails, notify the
2459 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2461 * mms-downloader.cpp, mms-downloader.h: For the broadcast case keep a
2462 count of the number of packets received, and write new packets at
2463 the end of the previous packet. Don't print warnings for MMS_END
2464 and MMS_STREAM_C packets.
2466 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2468 * plugin-downloader.cpp: Return something from
2469 PluginDownloader::GetPlugin.
2471 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2473 * plugin-downloader.cpp: Spaces->Tabs.
2475 2008-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
2477 * mms-downloader.h, mms-downloader.cpp: Move ctor/dtor into cpp file,
2478 add some logging and null out response in Finished, otherwise we
2479 might crash if Abort is called later on.
2481 2008-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
2483 * http-downloader.cpp: Return something from HttpDownloader::Read.
2485 2008-05-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
2487 * plugin.mdp: Updated.
2489 2008-05-23 Geoff Norton <gnorton@novell.com>
2491 * browser-bridge.h: Get/SetUri is no longer needed on the BrowserResponse
2494 2008-05-23 Geoff Norton <gnorton@novell.com>
2496 * *-downlodaer.cpp: Add the files to SVN
2498 2008-05-23 Geoff Norton <gnorton@novell.com>
2500 * browser-bridge.cpp: Refactor to move all the stream processing logic outside
2501 the bridge into the plugin in a generic way.
2502 * plugin.cpp: Cache the source_location. Needed for http-downlodaer to resolve
2504 * mmsh-state.*: Merged into mms-downlodaer.cpp
2505 * mms-downloader.cpp: Rewritten to not leak all memory when streaming from a mms
2506 server, plus a lot of readability fixes.
2507 * npstream-downloader.cpp: Hide NPStream related specifics here instead of in
2508 * plugin-downloader.cpp: Direct requests to the BrowserDownloader implementation
2511 2008-05-21 Chris Toshok <toshok@ximian.com>
2513 * plugin.cpp (plugin_button_press_callback): rename
2514 plugin_event_callback to this, and remove all the non-button event
2516 (PluginInstance::CreateWindow): connect to just
2517 "button-press-event", not the more generic "event". track
2519 (PluginInstance::EventHandle): track renaming.
2521 2008-05-19 Larry Ewing <lewing@novell.com>
2523 * plugin.cpp (PluginInstance::SetPageURL): drop the reference we
2524 were holding to NPNVWindowNPObject.
2526 2008-05-19 Larry Ewing <lewing@novell.com>
2528 * plugin.cpp (PluginInstance::EventHandle): discard any events
2529 that happen before SetWindow has been called.
2531 Fix for a crash in Silverlight Pad.
2533 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2535 * plugin-class.cpp: Throw an exception if the downloader doesn't have a
2536 surface when we call Downloader::Send.
2538 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2540 * mmsh-state.h: Surround file with ifdefs, and forward declare
2542 * plugin-downloader.h: Include mmsh-state.h and properly declare
2543 PluginDownloader::state as MmshState.
2545 2008-05-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
2547 * plugin.mdp: Updated.
2549 2008-05-15 Larry Ewing <lewing@novell.com>
2551 * plugin.cpp (PluginInstance::EventHandle): send focus in/out to
2554 * plugin-class.cpp, plugin.cpp, plugin.h: capture id parameter and
2557 2008-05-14 Sebastien Pouliot <sebastien@ximian.com>
2559 * moonlight.h: Start plugin description with Silverlight plugin
2560 version. The new detection script for sharethelove requires this.
2562 2008-05-13 Larry Ewing <lewing@novell.com>
2564 * plugin.cpp, plugin-class.cpp: copy all npvariant strings so that
2565 we can null terminate them. WebKit and Opera don't null terminate
2568 2008-05-13 Larry Ewing <lewing@novell.com>
2570 * plugin-glue.cpp (NPP_Initialize): opera needs to have threads
2571 initialized even in the gtk2 case.
2573 * plugin.cpp (PluginInstance::SetWindow): disable this check since
2574 it currently fails on opera 9.5b2.
2576 These changes get the plugin loading in opera 9.5b2 we need to
2577 discuss some of this with them more.
2579 2008-05-13 Chris Toshok <toshok@ximian.com>
2581 * plugin.cpp (PluginInstance::Initialize): add an opera case (just
2582 like the webkit case) which references a (for now) nonexistant
2585 2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
2587 * plugin.cpp: TryLoad: Before parsing any xaml, we need to clear the
2588 current surface, otherwise the xaml we'll be parsing might add tick
2589 callbacks to the timemanager of the previous surface.
2591 2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
2593 * plugin.mdp: Updated.
2595 2008-05-12 Andrew Jorgensen <ajorgensen@novell.com>
2597 * Makefile.am: Moved the plugin installer code to a subdir (install)
2598 because the firefox bridges must build after the plugin but before the
2601 2008-05-09 Geoff Norton <gnorton@novell.com>
2603 * Makefile.am: Add mmsh-state.* to the build.
2604 * plugin-downloader.*: When connecting to a mms server we cannot
2605 immediately start streaming. We must first query its capabilities
2606 with a Describe request, then select the appropriate streams we
2607 wish to have available.
2609 2008-05-09 Geoff Norton <gnorton@novell.com>
2611 * mmsh-state.cpp, mmsh-state.h: New class to keep stream state
2612 for selecting which streams to fetch from a mms:// server.
2614 2008-05-09 Chris Toshok <toshok@ximian.com>
2616 * ff3/Makefile.am (libmoonplugin_ff3bridge_la_LIBADD): add
2619 2008-05-09 Chris Toshok <toshok@ximian.com>
2621 * ff2/Makefile.am (EXTRA_DIST): dist firefox-browsermmsh.inc
2623 2008-05-08 Chris Toshok <toshok@ximian.com>
2625 * install.rdf.in: track MINVERSION/MAXVERSION ->
2626 MIN_FIREFOX_VERSION/MAX_FIREFOX_VERSION change.
2628 * plugin.cpp (NPN_strdup): make the arg const char* to quiet gcc.
2629 (PluginInstance::PluginInstance): initialize bridge to NULL.
2630 (PluginInstance): delete the bridge.
2631 (PluginInstance::Initialize): try loading a browser specific
2632 bridge using the useragent string (gross, fragile, i know...)
2633 (PluginInstance::TryLoadBridge): new method, dlopen the bridge.
2635 * browser-http.h, browser-http.cpp: nuke. the C implementation
2636 lives in browser-bridge.cpp, and browser-bridge.h defines
2637 the (purely abstract) base classes that the bridge implementations
2638 subclass from for browser-specific functionality.
2640 * plugin-proxy.cpp: clean up more XP_UNIX stuff - it's always
2641 defined (in moonlight.h) so we don't need ifdefs for it. Also, it
2642 needs to be defined *before* including npapi/npupp so that
2643 structures we need are defined.
2645 * plugin-class.cpp: remove all HtmlObject implementation code from
2646 here. it lives in the browser bridge now. Also, remove all
2647 internal mozilla #includes.
2649 * moonlight.h (XP_UNIX): always define it if it isn't already
2652 * browser-bridge.h: add NPNetscapeFuncs* arg to
2653 CreateBrowserBridge.
2655 * plugin-entry.cpp (NPN_PostURLNotify): correct arg type.
2656 (NPN_MemAlloc): same.
2657 (NPN_MemFlush): same.
2658 (NPN_PostURL): same.
2659 (NP_Initialize): remove the stupid #if XP_UNIX stuff from here.
2660 we're only building on unix, so let's simplify things. Also,
2661 don't use PR_TRUE/PR_FALSE. NPBool uses TRUE/FALSE.
2663 * plugin-glue.cpp (NPP_WriteReady): change type to int32 instead
2664 of int32_t so that it matches the prototype.
2667 * moz-sdk/npapi.h, moz-sdk/npupp.h: unfuck our npapi headers so
2668 they can be used for either ff2 and ff3 (and without pulling in
2671 2008-05-08 Larry Ewing <lewing@novell.com>
2673 * plugin.cpp (PluginInstance::SetWindow): don't crash if we
2674 weren't able to create a surface.
2676 2008-05-08 Chris Toshok <toshok@ximian.com>
2678 * ff2/ff2-bridge.cpp: in order to keep from needing to load
2679 libmoonplugin.so with RTLD_GLOBAL (which breaks other plugins), we
2680 need to pass the NPNetscapeFuncs vtable to the bridge, and provide
2681 implementations of all the NPN_ methods here. That was making
2682 this file a bit busy, so break out the dom and http stuff to
2685 * ff2/ff2-dom.cpp: move the dom stuff here.
2687 * ff2/ff2-http.cpp: move the browserhttp stuff herre.
2689 * ff2/Makefile.am (EXTRA_DIST): make sure we dist
2690 firefox-browserhttp.inc
2692 * ff3/ff3-http.cpp, ff3/ff3-dom.cpp, ff3/ff3-bridge.cpp: same
2693 changes to the ff3 bridge.
2695 2008-05-07 Geoff Norton <gnorton@novell.com>
2697 * plugin.cpp, plugin.h: Add NPN_strdup
2698 * plugin-class.cpp: Use NPN_strdup
2699 * plugin-entry.cpp: Dont abort if XEmbed/Gtkv2 aren't found as
2700 some browsers wont lets us NPN_GetValue on a NULL instance.
2702 2008-05-07 Andrew Jorgensen <ajorgensen@novell.com>
2704 * Makefile.am: Move mono_*dir stuff into Makefile
2706 2008-05-07 Larry Ewing <lewing@novell.com>
2708 * plugin.cpp (PluginInstance::SetWindow): if SetWindow is called
2709 with the same window this is due to a resize, propogate that
2710 resize to the surface code.
2712 Fixes the plugin side of windowless resizing. See
2713 http://my.liveatedu.com/ for test case.
2715 2008-05-07 Sebastien Pouliot <sebastien@ximian.com>
2717 * moonlight.h: Could not find (nor google) the real meaning for SCR,
2718 I suspect "script", nor does it affect any apps I've seen but having
2719 xaml in it's place is probably not a good idea.
2722 2008-05-06 Jeffrey Stedfast <fejj@novell.com>
2724 * plugin.h (PluginInstance::getNPP): Removed, this just duplicated
2725 the getInstance() method.
2727 2008-05-06 Andrew Jorgensen <ajorgensen@novell.com>
2729 * install.rdf.in: Use values from configure for min and max versions
2731 2008-05-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
2733 * plugin-glue.cpp: shutdown_moonlight: we have to check again if there
2734 are plugins alive, this method is called async, and it's possible
2735 that another plugin has been initialized between adding the timeout
2738 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
2740 * plugin-class.cpp: Add a missing initialization.
2742 2008-05-04 Miguel de Icaza <miguel@novell.com>
2744 * moonlight.cs: Add support for XAP file loading.
2746 * mono.cpp: New methods to create applications based on XAP files,
2749 * plugin.cpp (PluginInstance::StreamAsFile): If Silverlight2 the
2750 request was for a XAP file, load a XAP file. This could break
2751 if people embed a Silverlight2 plugin, but pass a XAML file, must
2754 * plugin.cpp: Some refactoring to keep the Mono-depending features
2755 together, without having ifdefs inside of functions.
2757 XAP maintenance: Keep track of whether a XAP application has been
2758 loaded, destroy XAP applications on shutdown.
2761 2008-05-04 Chris Toshok <toshok@ximian.com>
2763 * plugin.h, plugin.cpp, plugin-class.cpp, plugin-class.h: revert
2764 most of r102288 to move back to the separate Loaded/Load events.
2765 Leave the OneShot behavior for EventListenerProxy's, though, as
2766 that still is useful.
2768 2008-05-01 Larry Ewing <lewing@novell.com>
2770 * plugin.cpp (plugin_event_callback): fix windowless button
2771 presses so that only button 3 is swallowed by the menu logic.
2774 http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html
2775 2008-05-02 Andrew Jorgensen <ajorgensen@novell.com>
2777 * Makefile.am: strip all .sos in XPI (not just ffmpeg)
2778 If we need un un-stripped XPI we'll build one.
2780 2008-05-02 Geoff Norton <gnorton@novell.com>
2782 * plugin.cpp: reinterpret_cast doesn't work on 64-bit as it
2785 2008-05-01 Chris Toshok <toshok@ximian.com>
2787 * plugin-class.h, plugin-class.cpp: make EventListenerProxy's
2788 one-shottable (if they're one-shot, they remove themselves
2789 automatically after being invoked.) Use this with the plugin
2790 onLoad proxy. The script control object adds it to the surface's
2791 toplevel object's LoadedEvent.
2793 * plugin.h, plugin.cpp: when we create the surface, add a handler
2794 for AttachingEvent so we can notify our
2795 MoonlightScriptControlObject that it should add the onLoad handler
2796 to the toplevel element's LoadedEvent.
2798 2008-04-30 Fernando Herrera <fherrera@novell.com>
2800 * browser-mmsh.cpp: Abort and NotifyFailed on invalid mms streams,
2801 probably they are plain http file downloads.
2803 2008-04-30 Fernando Herrera <fherrera@novell.com>
2805 * plugin-debug.cpp: Added utils.h and uri.h.
2807 2008-04-30 Jeffrey Stedfast <fejj@novell.com>
2809 * moonlight.h: Don't need to include glib.h and gtk.h, gtk.h will
2812 2008-04-29 Jeffrey Stedfast <fejj@novell.com>
2814 * plugin-debug.cpp (foreach_func): Save the files with their
2815 original filenames using the URI's path.
2817 2008-04-28 Sebastien Pouliot <sebastien@ximian.com>
2819 * moonlight.h: Fix [Moon|Silver]'L'ight capitalization. Add
2820 Moonlight URL (as HTML) in about:plugins. This enables "Visit
2821 Home Page" in Firefox 3 "Tools | Add-ons | Plugins".
2823 2008-04-25 Chris Toshok <toshok@ximian.com>
2825 * plugin-class.cpp (enum PluginPropertyId): add MoonId_OnLoad.
2826 (map_moon_id_to_event_name): handle MoonId_OnLoad.
2827 (MoonlightObjectType::MoonlightObjectType): zero out construct,
2829 (scriptable_control_mapping): move onerror here, and add onload.
2830 (MoonlightScriptControlObject): null out both settings and content
2832 (MoonlightScriptControlObject::GetProperty): fix IsLoaded to check
2833 the surface, and add support for OnError/OnLoad here.
2834 (MoonlightScriptControlObject::SetProperty): add support for
2835 OnError/OnLoad here.
2836 (moonlight_content_mapping): remove onerror.
2837 (MoonlightContentObject::GetProperty): remove support for OnError.
2838 (MoonlightContentObject::SetProperty): same.
2840 * plugin.cpp (PluginInstance::CreateWindow): initialize the
2841 onResize/onLoad events in the same way as onError.
2842 (PluginInstance::Initialize): parse the onResize arg.
2843 (PluginInstance::JsRunOnload): nuke. rejoice.
2844 (PluginInstance::TryLoad): remove the call to JsRunOnload. The
2845 surface's LoadEvent is responsible for this now.
2847 2008-04-25 Sebastien Pouliot <sebastien@ximian.com>
2849 * plugin-debug.cpp: Better fix against my previous crash fix (as
2850 we can get an invalid pointer to the plugin).
2852 2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
2854 * plugin-downloader.cpp: Added logging.
2856 2008-04-25 Fernando Herrera <fherrera@novell.com>
2858 * browser-mmsh.cpp: Conditional logging.
2859 * plugin-downloader.cpp: proper error handling at
2860 p_downloader_mmsh_send.
2862 2008-04-24 Andrew Jorgensen <ajorgensen@novell.com>
2864 * Makefile.am: Add the locally built assemblies to the XPI
2866 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
2868 * plugin-debug.cpp: Don't crash if we don't have any sources.
2870 2008-04-24 Fernando Herrera <fherrera@novell.com>
2872 * Makefile.am: Fix "make -jN" build.
2874 2008-04-23 Sebastien Pouliot <sebastien@ximian.com>
2876 * plugin-debug.cpp: Don't crash if try to save stuff after changing
2879 2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
2881 * browser-mmsh.cpp: Parse http streaming metadata/features.
2882 * browser-mmsh.h: AsyncBrowserMmshResponse: Type the context as a
2883 PluginDownloader instead of a generic gpointer.
2885 2008-04-22 Larry Ewing <lewing@novell.com>
2887 * moonlight.h: use HAVE_LIBXUL_UNSTABLE to determine which symbols
2890 * browser-http.h, browser-mmsh.h: use HAVE_LIBXUL_UNSTABLE to
2891 determine the include path.
2894 2008-04-22 Chris Toshok <toshok@ximian.com>
2896 * plugin.h, plugin.cpp: Add the notion of "cleanup pointers".
2897 It's a horrible name for the following hack. You register a local
2898 variable pointer with the plugin before making a call during which
2899 you might be destroyed. If the plugin instance is destroyed, all
2900 cleanup pointers are nulled.. When the all returns, you can't
2901 rely on "this" being valid, but you can rely on your local stack
2902 frame, so you look at the registered pointer. if it's null,
2905 * plugin.cpp (PluginInstance::PluginInstance): pass the pluginType
2906 instead of the boolean flag. C apis should be thin wrappers
2908 (PluginInstance::~PluginInstance): zombify the surface and then
2909 unref_delayed it, to allow everything to unwind before actually
2910 freeing that memory.
2911 (PluginInstance::Initialize): use "else" and remove all those damn
2913 (PluginInstance::TryLoad): use the cleanup pointer hack to check
2914 if we're still alive after the xaml_loader->TryLoad method.
2916 * plugin-class.cpp (EventListenerProxy::proxy_listener_to_javascript):
2917 use cleanup pointers to make sure we don't try to free plugin
2918 objects that have been destroyed by virtue of the plugin going
2919 away while we were in JS.
2921 * plugin-glue.cpp: since we're only destroying surfaces from the
2922 idle loop, we need to delay the shutting down of the moonlight
2923 engine until all surfaces have been destroyed. Also, take care
2924 not to do it from the DestroyEvent handler, as that is invoked
2925 *before* the object is destroyed (and destruction requires the
2926 engine to be initialized).
2928 2008-04-22 Michael Dominic K. <mdk@mdk.am>
2930 * plugin-class.cpp: Throw js exception if Storyboard failed to start
2933 2008-04-21 Jeffrey Stedfast <fejj@novell.com>
2935 * mono.cpp (vm_init): Don't leak memory in the plugin case. Also
2936 use d() around debug printfs.
2938 * plugin.cpp: Wrap debug printfs with d()
2940 2008-04-20 Miguel de Icaza <miguel@roxanne.site>
2942 * plugin.h: Add methods to flag Silverlight2, add field Xap that
2943 if not-NULL contains a pointer to the XAP file downloaded.
2945 * plugin-instance.c: If we are dealing with a Silverlight 2
2946 application, use Xap to unpack it. Does not load the result yet.
2948 * moonlight.h: Add support for SL2 mime type, clear up VERSION
2950 * plugin-glue.cpp: Tell PluginInstance whether this is an SL1 or
2953 2008-04-16 Chris Toshok <toshok@ximian.com>
2955 * plugin.cpp (PluginInstance::StreamAsFile): use "else if" here,
2956 otherwise the notifydata might be gone.
2958 2008-04-16 Jeffrey Stedfast <fejj@novell.com>
2960 * plugin-class.cpp (MoonlightDependencyObjectObject::GetProperty):
2961 Just because enums_int_to_str() returns NULL does not mean that
2962 the value was invalid, it could also mean that the property is
2963 simply an Int32 type.
2965 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2967 * plugin-class.cpp, plugin-class.h: Comparing a Kind value to another to
2968 determine type hierarchy isn't supported anymore, use Value::Is or
2969 Type::IsSubclassOf, which are doing the right thing.
2971 2008-04-15 Larry Ewing <lewing@novell.com>
2973 * plugin.cpp (PluginXamlLoader::TryLoad): emit an error if the
2974 root visual type is incorrect. Fixes one more of the ParserError
2975 tests until we can unfiy js exceptions and parser errors.
2977 2008-04-15 Larry Ewing <lewing@novell.com>
2979 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
2980 based on RuntimeErrors and
2981 http://msdn2.microsoft.com/en-us/library/bb979718.aspx getParent
2982 only applies to uielement subclasses.
2984 Fixes test that was failing in RuntimeErrors.htm.
2986 2008-04-15 Larry Ewing <lewing@novell.com>
2988 * plugin-class.cpp: throw an exception for invalid string values.
2990 2008-04-14 Jeffrey Stedfast <fejj@novell.com>
2992 * plugin.cpp: Got rid of unnecessary uses of keyword 'this'.
2993 (PluginInstance::CreateWindow): Fixed setting of background color.
2995 2008-04-13 Jb Evain <jbevain@novell.com>
2997 * moonlight.cs: use reflection to initialize the XamlLoader
2998 until we get moonlight.exe to be friend with Mono.Moonlight.
2999 Merged from the Moonlight 2 branch.
3001 2008-04-11 Larry Ewing <lewing@novell.com>
3003 * plugin.h (class PluginInstance): make setBackground return a
3004 boolean success value.
3006 * plugin-class.cpp (MoonlightSettingsObject::SetProperty): check
3007 the return value of setBackground and throw an exception if it
3010 * plugin.cpp (PluginInstance::CreateWindow): handle NULL return
3011 values from color_from_string.
3013 Handle the new case where color_from_string might return null.
3015 2008-04-11 Jeffrey Stedfast <fejj@novell.com>
3017 * plugin-class.cpp (MoonlightTextBlockObject::Invoke):
3018 SetFontSource() now takes a Downloader argument rather than a DOB.
3020 2008-04-11 Andrew Jorgensen <ajorgensen@novell.com>
3022 * plugin-proxy.cpp: Allow the user to override the location of
3023 libmoonplugin by setting MOON_PLUGIN_DIR so that the test harness
3024 can run without installing first.
3026 2008-04-11 Larry Ewing <lewing@novell.com>
3028 * plugin.cpp (PluginXamlLoader::TryLoad): Allow controls to be
3029 toplevel elments, drop all surface contents on errors.
3031 Allows Kit 3d to start rendering something in the texture map
3034 2008-04-11 Michael Dominic K. <mdk@mdk.am>
3036 * plugin-class.cpp: Small debug hint also here when enums invalid.
3038 2008-04-10 Chris Toshok <toshok@ximian.com>
3040 * plugin-class.cpp (npvariant_is_dependency_object): no reason to
3041 duplicate the logic here - call npobject_is_dependency_object.
3043 2008-04-10 Jeffrey Stedfast <fejj@novell.com>
3045 * plugin-class.cpp: Cast DOB's to Downloaders when passing to
3048 2008-04-10 Chris Toshok <toshok@ximian.com>
3050 * plugin-class.cpp, plugin-class.h: use the same "Invalidate
3051 NULL's things out, while the dtor checks for NULL before calling
3052 NPN_ReleaseObject" pattern with event listener proxies.
3054 2008-04-09 Chris Toshok <toshok@ximian.com>
3056 * plugin.cpp, plugin.h: make PluginInstance::SetSource behave
3057 asynchronously for both #ref and normal url cases. Fixes bug
3060 2008-04-08 Jeffrey Stedfast <fejj@novell.com>
3062 * plugin.cpp (PluginXamlLoader::TryLoad): Print a little more
3063 useful info on error.
3065 2008-04-04 Jeffrey Stedfast <fejj@novell.com>
3067 * plugin-class.h (EventListenerProxy.dtor): Made virtual... not
3068 sure if this matters or not, but might as well be consistent.
3069 (MoonlightTimeSpan.dtor): Same.
3071 2008-04-04 Chris Toshok <toshok@ximian.com>
3073 * plugin-class.cpp, plugin-class.h: change our use of
3074 NPType->invalidate. Firefox docs say this is *only* called when
3075 the browser is shutting down the plugin instance. So, we
3076 shouldn't access fields that point to other NPObjects here. Just
3077 break links. All freeing should be done in the dtor instead,
3078 which most of the various ::Dispose methods have been renamed to.
3079 Also, don't call Dispose in the MoonlightObject dtor. Lastly,
3080 rename Dispose to Invalidate so we don't again mistake what it
3083 2008-04-03 Larry Ewing <lewing@novell.com>
3085 (PluginXamlLoader::TryLoad): if the parser has an unknown error
3086 code try the managed loader.
3088 2008-04-03 Larry Ewing <lewing@novell.com>
3090 * plugin.cpp (PluginXamlLoader::TryLoad): if we get a parser while
3091 loading set attach to a NULL toplevel.
3093 2008-04-02 Larry Ewing <lewing@novell.com>
3095 * plugin-class.cpp: check number of arguments on getHost throw the
3096 appropriate exception if there are arguments.
3098 2008-04-02 Larry Ewing <lewing@novell.com>
3100 * plugin-class.cpp: make sure the event name is valid when adding
3101 or removing, throw an exception if not.
3103 2008-04-02 Larry Ewing <lewing@novell.com>
3105 * plugin-class.cpp: start making the exceptions match the ms
3106 exceptions. Work around the id string until more is known about
3107 how we should deal with it.
3109 2008-04-02 Jeffrey Stedfast <fejj@novell.com>
3111 Fixes bug #375277 and maybe other crashers.
3113 * plugin-class.h (MoonlightScriptControlObject::.ctor): Initialize
3114 settings->control and content->control to 'this'.
3115 (MoonlightSettingsObject): Now has a pointer to its owning
3116 MoonlightScriptControlObject so we can protect against Firefox's
3117 aggressive destruction of still-referenced objects when you
3118 navigate away from a Moonlight page and/or close the browser when
3119 a scriptable object is still referenced. Yay Firefox!
3120 (MoonlightContentObject): Same.
3122 * plugin-class.cpp (MoonlightScriptControlObject::Dispose): Set
3123 settings->control to NULL before unreffing the settings
3124 NPObject. Same with content->control.
3125 (MoonlightContentObject::Dispose): If we have a pointer to our
3126 parent control, set control->content to NULL here.
3127 (MoonlightSettingsObject::Dispose): Same as
3128 MoonlightContentObject::Dispose().
3129 (MoonlightEventObjectObject::SetEventObject): Removed, just to be
3130 sure we never reuse these objects.
3131 (EventObjectCreateWrapper): Implement the equivalent of
3132 SetEventObject() here instead, since this is the only place that
3133 should EVER be calling it. Also makes it a lot simpler.
3135 2008-04-02 Larry Ewing <lewing@novell.com>
3137 * plugin-class.cpp: charposition not charnumber.
3139 2008-04-01 Chris Toshok <toshok@ximian.com>
3141 * plugin-class.cpp (MoonlightContentObject::Invoke): back out my
3142 SetSurface() stuff from here.
3144 2008-04-01 Jeffrey Stedfast <fejj@novell.com>
3146 * plugin-class.cpp: Implemented better type-checking. Fixes the
3147 crash mentioned in bug #375921.
3149 2008-04-01 Chris Toshok <toshok@ximian.com>
3151 * plugin-class.cpp (MoonlightContentObject::Invoke): in
3152 createFromXaml/createFromXamlDownloader, call dep->SetSurface()
3153 after we parse to make sure the thing knows what surface it
3156 2008-04-01 Jeffrey Stedfast <fejj@novell.com>
3158 * plugin-class.cpp (MoonlightContentObject::Invoke): Properly
3159 nul-terminate the text value.
3160 (MoonlightDownloaderObject::Invoke): Properly nul-terminate the
3161 text value returned here too.
3163 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
3165 * plugin-class.cpp: Remove Type::NPOBJ, it's not needed.
3167 2008-03-31 Jeffrey Stedfast <fejj@novell.com>
3169 * plugin-class.cpp (moonlight_downloader_mapping): Got rid of
3170 second ResponseText item.
3171 (MoonlightDownloaderObject::GetProperty): nul-terminate the value
3172 gotten from downloader->GetResponseText() as javascript will use
3173 this string expecting that it is nul-terminated.
3175 2008-04-01 Fernando Herrera <fherrera@novell.com>
3178 * plugin-downloader.h: Support for live streams (not seekable).
3180 2008-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
3182 * browser-mmsh.cpp: asf_header_parse: Use ASFParser::GetPacketSize instead
3183 of looking in internal fields. Delete parser and unref the source when
3186 2008-03-28 Fernando Herrera <fherrera@novell.com>
3190 * plugin-downloader.cpp:
3191 * plugin-downloader.h: Implement server seeking on the mms://
3194 2008-03-26 Andrew Jorgensen <ajorgensen@novell.com>
3196 * mono.cpp: Get correct path for moonlight.exe as well when
3197 enable-user-plugin=yes
3199 2008-03-26 Chris Toshok <toshok@ximian.com>
3201 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
3202 implement removeEventListener for named callbacks using the new
3203 EventObject::RemoveMatchingHandlers method, and a helper
3204 class (NamedProxyPredicate).
3206 * plugin-class.h: we need to make
3207 EventListenerProxy::proxy_listener_to_javascript public so
3208 NamedProxyPredicate can access it.
3210 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3212 * browser-mmsh.cpp: Updated according to API changes.
3214 2008-03-25 Andrew Jorgensen <ajorgensen@novell.com>
3216 * plugin-proxy.cpp: Load libraries relative to the location of
3217 libmoonloader.so if enable-user-plugin=yes
3218 * install.rdf.in: Basic install.rdf for plugin installation
3219 * Makefile.am: Create directory structure for RDF install method
3220 rather than XPInstall JS method
3222 2008-03-20 Jeffrey Stedfast <fejj@novell.com>
3224 * plugin-class.cpp (MoonlightContentObject::Invoke): Same.
3226 * plugin-downloader.cpp (p_downloader_mmsh_finished): Updated for
3227 Downloader API changes.
3229 2008-03-18 Andrew Jorgensen <ajorgensen@novell.com>
3231 * plugin-proxy.cpp: Push conditional swscale into user plugin code
3232 and remove avformat dependency
3233 * Makefile.am: Conditionally include swscale and don't include avformat
3234 in user plugin installer
3236 2008-03-17 Larry Ewing <lewing@novell.com>
3238 * plugin-class.cpp: more rough argument sanity checks.
3240 2008-03-17 Larry Ewing <lewing@novell.com>
3242 * plugin.cpp (PluginXamlLoader::TryLoad): add a quick check to
3243 avoid a crash. Better error handling on the way.
3245 * plugin-class.cpp (MoonlightCollectionObject::Invoke): do some
3246 very basic argument type checking.
3248 2008-03-16 Larry Ewing <lewing@novell.com>
3250 * plugin-class.cpp: make objects chain up to their parent class
3251 rather than simply returning false directly to make the logic
3252 clearer and to allow toplevel handling of tostring.
3254 2008-03-14 Larry Ewing <lewing@novell.com>
3256 * plugin-class.h, plugin-class.cpp: wrap all EventArg subclasses
3257 as dependencyobjects.
3259 * plugin.cpp: connect to the plugin onerror event.
3261 2008-03-14 Chris Toshok <toshok@ximian.com>
3263 * plugin-class.h, plugin-class.cpp: wrapped TimeSpan and Duration
3264 objects aren't actually values. they're references to the
3265 particular DependencyObject/Property we got them from, so doing
3268 var foo = storyboard.Duration; foo.seconds=5;
3270 updates the original storyboard's Duration property, not just the
3271 duration contained in the "foo" variable.
3273 2008-03-13 Chris Toshok <toshok@ximian.com>
3275 * plugin-class.cpp, plugin-class.h: fix up our toString support.
3277 Thu Mar 13 23:13:59 CET 2008 Paolo Molaro <lupus@ximian.com>
3279 * Makefile.am: don't overwrite binary files when installing the
3280 plugin (avoids crashes in the running browser).
3282 2008-03-13 Chris Toshok <toshok@ximian.com>
3284 * plugin-entry.cpp: fix backward compatibility of the plugin api.
3285 also, use the NPVERS_ defines for feature tests instead of our own
3286 set. Also, add NPN_Enumerate.
3288 2008-03-13 Andrew Jorgensen <ajorgensen@novell.com>
3290 * install.js.in: Change the install path so that the plugin
3291 should work in debian (iceweasel)
3293 2008-03-13 Chris Toshok <toshok@ximian.com>
3295 * moz-sdk/*: import the trunk firefox plugin headers.
3297 * plugin.cpp (PluginInstance::Initialize): fix the hack I needed
3298 due to xulrunner-1.8.10 headers not having NPNVSupportsWindowless.
3300 * plugin-class.h, plugin-class.cpp (MoonlightObjectType): add
3301 Enumerate, which just iterates over the mapping filling in the
3304 * Makefile.am: add dist-hook to copy the moz-sdk headers.
3306 * mono.cpp (vm_init): missed this STACK_DEBUG -> DEBUG change.
3308 2008-03-12 Sebastien Pouliot <sebastien@ximian.com>
3310 * plugin-downloader.cpp: Fix duplicate g_strdup on pd->uri.
3312 2008-03-12 Michael Dominic K. <mdk@mdk.am>
3314 * plugin-downloader.cpp: Adding an extra NULL check. Fixes the
3315 flowers-for-you.com.my website.
3317 2008-03-12 Miguel de Icaza <miguel@novell.com>
3319 * browser-mmsh.cpp (AsyncBrowserMmshResponse::MmsMetadataParse):
3320 Rewrote this routine to have a regular parser instead of splitting
3321 strings with g_strsplit, copes with commas inside metadata.
3323 Fernando mentioned that most of this code is no longer useful,
3324 except for a few flags.
3326 2008-03-11 Fernando Herrera <fherrera@novell.com>
3330 * plugin-downloader.cpp: Parse MMS Metadata packet. Get file size and
3331 asf_packet_size from the ASF header.
3333 2008-03-10 Michael Dominic K. <mdk@mdk.am>
3335 * plugin-class.cpp: Don't scream about the unsupported type when
3336 setting a property to NULL. Instead, pass NULL and let the
3337 SetValue do it's thing (ie. nullable handling). This fixes the
3338 Animation_CornerCases.htm.
3340 2008-03-08 Geoff Norton <gnorton@novell.com>
3342 * plugin.cpp: I suppose I'm one of these for real now.
3344 2008-03-08 Fernando Herrera <fherrera@novell.com>
3348 * plugin-downloader.cpp: Stop properly the mms download.
3350 2008-03-06 Chris Toshok <toshok@ximian.com>
3352 * plugin.cpp (PluginInstance::Initialize): make sure we look for
3353 the right framerate property name. the JS is specified using
3354 "framerate", but the plugin has to recognize "maxFramerate"
3356 (PluginInstance::CreateWindow): use the surface's timemanager.
3357 (PluginInstance::setMaxFrameRate): same.
3359 2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
3361 * plugin-class.cpp, plugin-class.h: Make our Moonlight*EventArgs mirror the
3362 runtime *EventArgs Updated runtime event handling to receive an
3363 EventArgs* calldata instead of a gpointer. This allows us to create the
3364 correct Moonlight*EventArgs based on the actual type of the runtime
3365 *EventArgs, instead of making a decision based on the event name,
3366 obsoleting all the *_event_wrapper functions.
3367 * plugin-glue.cpp: Set the pdata field of the instance to NULL before
3368 deleting the plugin, this allows us to detect plugin usage during plugin
3369 destruction (we might cause destruction of EventObjects -> events are
3370 raised -> plugin tries to send those events to js -> crash)
3372 2008-03-05 Michael Dominic K. <mdk@mdk.am>
3374 * plugin-class.cpp: Making the plugin class use the new enum<->str code
3377 2008-03-03 Chris Toshok <toshok@ximian.com>
3379 * plugin.cpp (PluginInstance::EventHandle): add
3380 KeyPress/KeyRelease handling. there are some XXX's involing the
3381 call to gdk_keymap_translate_keyboard_state, but I have no test
3382 case at present to test this stuff against. Use at your own risk.
3384 2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
3386 * plugin-downloader.cpp: Don't call dl->NotifySize with the partial size of
3387 the file, should only be called with the final size of the file.
3389 2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
3391 * plugin.mdp: Updated.
3393 2008-02-28 Jeffrey Stedfast <fejj@novell.com>
3395 * browser-mmsh.cpp (AsyncBrowserMmshResponse::OnDataAvailable):
3396 'size' needs to be a uint32 so that the comparison is between 2
3397 uint32's rather than a uint32 and an int32.
3399 * browser-mmsh.h (class AsyncBrowserMmshResponse): Fixed a
3402 2008-02-28 Michael Dominic K. <mdk@mdk.am>
3404 * plugin/plugin-class.cpp: When getting property value try to resolve it
3405 to string if it's an enum. This way from js we ie. get:
3407 Arc.SweepDirection == "Counterclockwise"
3411 Arc.SweepDirection == 0 (enum int value).
3413 Fixes finally the OM_RemoveClearRemoveAt.htm test (with other collection
3416 2008-02-28 Fernando Herrera <fherrera@novell.com>
3421 * plugin-downloader.cpp:
3422 * plugin-downloader.h: Add initial mms over http support.
3424 2008-02-26 Chris Toshok <toshok@ximian.com>
3426 * plugin.cpp (PluginInstance::EventHandle): fix some x64 build
3428 (PluginInstance::InvalidateSurface): same.
3430 2008-02-26 Chris Toshok <toshok@ximian.com>
3432 * plugin-proxy.cpp: use RTLD_LAZY, not RTLD_NOW.
3434 * moonlight.h: more #include hackery to get the right members to
3435 be there for NPSetWindowCallbackStruct on X.
3437 * plugin.h (class PluginInstance): add our
3438 RenderSurface/InvalidateSurface methods.
3440 * plugin.cpp (PluginInstance::Initialize): initialize the
3441 windowless stuff if we need it and the browser supports it.
3442 (PluginInstance::RenderSurface): our render method - call
3444 (PluginInstance::InvalidateSurface): our invalidate method - call
3446 (PluginInstance::CreateWindow): set our invalidate/render funcs
3447 accordingly, and SetTrans on the surface (err, why?) if we're
3448 windowless, and only do the widget stuff if we aren't windowless.
3449 (PluginInstance::EventHandle): kind of gross, but fill in enough
3450 of the gdk events to fool the surface machinery. Currently
3451 missing are all key events, GdkDevice support for mouse events,
3452 and Expose event aggregation.
3454 2008-02-26 Michael Dominic K. <mdk@mdk.am>
3456 * plugin/plugin-class.cpp: Throw js exception when object passed to
3457 Collection.Remove is NULL (instead of returning false). Fixes mostly
3458 OM_RemoveClearRemoveAt but still fails because of ArcSweep problem.
3460 2008-02-26 Michael Dominic K. <mdk@mdk.am>
3462 * plugin/plugin-class.cpp: Throw js exception when Collection.Insert
3465 2008-02-26 Michael Dominic K. <mdk@mdk.am>
3467 * plugin/plugin-class.cpp: Throw js exception when Collection.Add returns
3470 2008-02-26 Michael Dominic K. <mdk@mdk.am>
3472 * plugin/plugin-class.cpp: Properly return int instead of void for
3475 2008-02-25 Chris Toshok <toshok@ximian.com>
3477 * plugin.cpp (PluginInstance::CreateWindow): use GetWidget instead
3480 2008-02-25 Chris Toshok <toshok@ximian.com>
3482 * plugin.cpp: add windowless creation stuff. move some code
3483 around, and put some in (!windowless) blocks.
3485 * plugin-entry.cpp (NP_Initialize): set handleEvent.
3487 * plugin-glue.cpp (NPP_GetValue): don't handle NeedsXEmbed here -
3488 let PluginInstance::GetValue do it.
3490 2008-02-22 Jackson Harper <jackson@ximian.com>
3492 * plugin-debug.cpp: mkdir and friends needs sys/stat.h on some
3495 2008-02-22 Michael Dominic K. <mdk@mdk.am>
3497 * plugin/plugin.cpp:
3498 * plugin/plugin.h: Add support for the cache-size reporting interface. The
3499 UI now reports cache size when running with
3500 MOONLIGHT_OVERRIDES="cache=show".
3502 2008-02-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
3504 * plugin-class.cpp: Add a null check.
3505 * plugin-debug.cpp: Add a Save button to the Sources list, which will save
3506 every source file to a directory in /tmp.
3508 2008-02-21 Michael Dominic K. <mdk@mdk.am>
3510 * plugin/plugin.cpp: Small fix for table ("Properties") formatting so that
3511 it doesn't expand like crazy because of long URL's in sources.
3513 2008-02-20 Jeffrey Stedfast <fejj@novell.com>
3515 * plugin-class.cpp (MoonlightTextBlockObject::Invoke): The
3516 downloader argument is allowed to be null.
3518 2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3520 * plugin.cpp, plugin.h, plugin-debug.cpp, plugin-debug.h: Add a 'Sources'
3521 entry to the plugin context menu, shows a list of all the files the
3522 plugin has loaded, with the ability to open the files.
3524 2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3526 * plugin.mdp: Updated.
3528 2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3530 * plugin-class.cpp: Fix IsVersionSupported according to tests.
3532 2008-02-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3534 * plugin.cpp, plugin-class.cpp, plugin.h: Add MaxFrameRate to the properties
3535 page, and parse windowless and framerate properties during
3536 initialization and store the values on the plugin instance, so that the
3537 property page can show the correct values.
3539 2008-02-15 Chris Toshok <toshok@ximian.com>
3541 * plugin-class.cpp (MoonlightStoryboardObject::Invoke): the seek
3542 method can take either an integer or a string representing a
3543 timespan. Fixes the JS errors I mentioned in bug #362380.
3545 2008-02-06 Jackson Harper <jackson@ximian.com>
3547 * plugin-class.cpp|h: Store all MoonlightDependencyObject classes
3548 in an array so that we can easily check if a type passed in from
3549 JS is actually a DO.
3550 - Add one check to verify that an object is a DO, I am sure we
3551 will need many more.
3553 2008-02-06 Fernando Herrera <fherrera@novell.com>
3555 * plugin-debug.cpp: set default size and scroll bars policy in the
3558 2008-02-05 Chris Toshok <toshok@ximian.com>
3560 * plugin.h, plugin.cpp: add a label to the properties dialog that
3561 shows the fps message.
3563 * plugin-debug.cpp (selection_changed): invalidate a large enough
3564 rectangle so that the selection disappears.
3566 2008-02-05 Chris Toshok <toshok@ximian.com>
3568 * Makefile.am (libmoonplugin_la_SOURCES): add plugin-debug.h/cpp
3570 * plugin-debug.h, plugin.cpp: for now, just a gtk treeview with a
3571 snapshot of the xaml hierarchy. selecting an item in the tree
3572 puts a rectangle around the element in the plugin.
3574 * plugin.cpp (plugin_show_menu): if debug is enabled, add the
3577 2008-02-05 Chris Toshok <toshok@ximian.com>
3579 * moonlight.h: don't #define DEBUG here. it's a config.h deal.
3581 2008-02-04 Jackson Harper <jackson@ximian.com>
3583 * plugin-class.cpp: Fix some of the parameter checking to match
3586 2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
3588 * plugin-class.cpp, plugin-class.h: Implement toString method on
3589 MarkerReachedEventArgsObject.
3591 2008-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
3593 * plugin-class.cpp: Handle the case where js sets Timespan seconds using an
3596 2008-01-28 Andrew Jorgensen <ajorgensen@novell.com>
3598 * Makefile.am: added plugin-downloader.h to dist
3600 2008-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
3602 * downloader.cpp, plugin-downloader.cpp, plugin-downloader.h: Renamed
3603 downloader.cpp to plugin-downloader.cpp and added a header file for it.
3604 Set downloader_shutdown to false upon initialization, makes aborting
3605 actually work. Save the PluginDownloader in the stream, so that we can
3606 inform the PluginDownloader when the stream is destroyed.
3607 * plugin.mdp, Makefile.am: Updated.
3608 * plugin.cpp: Include plugin-downloader.h and remove unnecessary method
3609 declarations. Inform the PluginDownloader when a stream is destroyed.
3610 * plugin-glue.cpp: Include plugin-downloader.h and remove unnecessary method
3613 2008-01-23 Chris Toshok <toshok@ximian.com>
3615 * plugin-class.cpp (EventListenerProxy::AddHandler): use the event
3616 id instead of the name for the destroyed event, and also don't try
3617 to add an event that doesn't exist for a given type.
3619 2008-10-11 Andrew Jorgensen <ajorgensen@novell.com>
3621 * plugin-proxy.cpp: Add conditionals for ffmpeg inclusion
3622 * Makefile.am: Respect ffmpeg inclusion in xpi install
3624 2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
3626 * plugin.mdp: Added.
3628 2008-01-09 Chris Toshok <toshok@ximian.com>
3630 * plugin-class.h, plugin-class.cpp: add two new wrapper types -
3631 one for StrokeCollection and the other for Stroke, so that both of
3632 them can implement their GetBounds and HitTest methods.
3634 2008-01-09 Chris Toshok <toshok@ximian.com>
3636 * plugin-class.h, plugin-class.cpp: a few changes with the
3637 MoonlightMouseEventArgsObject. It now wraps a MouseEventArgs*.
3638 Translate all the property accesses and method calls into
3639 accesses/calls on the actual MouseEventArgs, instead of having the
3640 code live here. Also, add STYLUSINFO handling to the
3641 EventObjectWrapper method.
3643 2008-01-09 Jeffrey Stedfast <fejj@novell.com>
3645 * plugin.cpp (Initialize): Use g_ascii_strcasecmp() so that we are
3646 not locale dependent.
3648 2008-01-04 Jeffrey Stedfast <fejj@novell.com>
3652 * plugin-class.cpp (EventListenerProxy::AddHandler): Add a handler
3653 for the destroyed event too so that we can clear our target_object
3655 (EventListenerProxy::on_target_object_destroyed): New callback to
3656 clear the target_object pointer when it gets destroyed.
3657 (EventListenerProxy::get_wrapper_for_event_name): Use
3658 g_ascii_strcasecmp() instead of g_strcasecmp().
3659 (EventListenerProxy::~EventProxyListener): Disconnect from the
3660 destroyed event and the other event if still hooked up.
3662 2008-01-03 Jeffrey Stedfast <fejj@novell.com>
3664 * plugin-class.cpp (_set_dependency_property_value): For
3665 non-object variants, we can easily get away with using a static
3666 string buffer rather than using dynamically allocated strings to
3667 hold our temp values.
3669 2007-12-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3671 * plugin.cpp: PluginInstance::SetSource: don't check if we're setting the
3672 same source. Fixes #349592.
3674 2007-12-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3676 * plugin-class.cpp: Don't crash if surface->GetTopLevel returns null. Fixes
3679 2007-12-20 Sebastien Pouliot <sebastien@ximian.com>
3681 * plugin-class.cpp|h: Add support for StylusPointCollection since
3682 it's a special case where a new method, AddStylusPoints, is
3683 introduced. Fix unit tests for StylusPointCollection but doesn't
3684 solve bugs #349596 and 349598 because we don't capture the mouse
3687 2007-12-20 Jb Evain <jbevain@novell.com>
3689 * plugin-class.cpp (MoonId_GetStylusPoints): return an
3690 empty StylusPointCollection instead of doing non-sense.
3692 2007-12-20 Jb Evain <jbevain@novell.com>
3694 * plugin-class.cpp: throw if createObject is called
3695 for something else than Downloader.
3697 2007-12-18 Sebastien Pouliot <sebastien@ximian.com>
3699 * plugin-class.cpp: The plugin handle Color as an integer (see js
3702 2007-12-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
3704 * plugin-class.cpp: The part parameter of MediaElement::SetSource is the
3705 second parameter, fixes a crash when js calls SetSource. Also removed
3708 2007-12-17 Jb Evain <jbevain@novell.com>
3710 * plugin-class.cpp: return null instead of undefined
3711 on GetValue is the value is NULL. Fixes a lot of tests
3714 2007-12-14 Jeffrey Stedfast <fejj@novell.com>
3716 * plugin.cpp (PluginInstance::CreateWindow): Set the FPS report
3718 (PluginInstance::Properties): Added FPS enable/disable properties.
3719 (PluginInstance::ReportFPS): Report the FPS via the browser's
3722 2007-12-14 Jeffrey Stedfast <fejj@novell.com>
3724 * downloader.cpp (p_downloader_abort): Set pd->stream to NULL
3725 after destroying it.
3727 * plugin.cpp (PluginInstance::TryLoad): Added a comment that we
3728 should check for errors returned by NPN_GetURLNotify().
3729 (PluginInstance::UpdateSource): Same.
3730 (PluginInstance::UrlNotify): Removed a printf.
3732 2007-12-12 Jeffrey Stedfast <fejj@novell.com>
3734 Fixes toward bug #341853
3736 * downloader.cpp (p_downloader_send): Check the return code from
3737 NPN_GetURLNotify() as it will give us an error if the file doesn't
3740 * plugin.cpp (UrlNotify): Call Downloader::NotifyFailed() on
3743 2007-12-10 Chris Toshok <toshok@ximian.com>
3745 * plugin-class.h, plugin-class.cpp: more event changes. return
3746 the integer token for adding a handler, and change
3747 removeEventListener to accept either a string (unsupported at the
3748 moment) or integer second argument. This allows things like
3749 removeEventListener (..., 0) for removing the event handler that's
3752 Also, remove MoonlightEventListener{Type,Object} since we don't
3753 need to return a wrapped object from addEventListener any longer.
3755 2007-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
3757 * plugin-class.cpp: Plug more leaks.
3759 2007-12-06 Jeffrey Stedfast <fejj@novell.com>
3761 * plugin-class.cpp (MoonlightCollectionObject::Invoke):
3762 Implemented GetItemByName for MediaAttributeCollections.
3764 2007-12-06 Chris Toshok <toshok@ximian.com>
3766 * plugin-class.h, plugin-class.cpp: a few changes. abstract out
3767 all the event-as-property code, so we just add events to objects
3768 as additional properties in their mapping, and the MoonlightObject
3769 code handles it all for us.
3771 2007-12-05 Chris Toshok <toshok@ximian.com>
3773 * plugin-class.cpp (MoonlightDependencyObjectObject::Invoke):
3776 2007-12-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
3778 * plugin-class.cpp: Rename DependencyObject::parent/SetParent/GetParent
3780 to logical_parent/SetLogicalParent/GetLogicalParent.
3782 2007-12-04 Jb Evain <jbevain@novell.com>
3784 * plugin-class.h: add the definitions of MoonlightStylusInfoType
3785 and MoonlightStylusInfoObject.
3787 * plugin-class.cpp: implement MoonlightStylusInfoType and
3788 MoonlightStylusInfoObject. Add getStylusInfo() and getStylusPoints()
3789 methods on MouseEventArgs.
3791 2007-12-04 Jackson Harper <jackson@ximian.com>
3793 * plugin-class.cpp: Map in IsLoaded, so HasProperty will return
3796 2007-12-03 Jeffrey Stedfast <fejj@novell.com>
3798 * plugin.cpp (Properties): Added more runtime debug options.
3800 2007-11-29 Jeffrey Stedfast <fejj@novell.com>
3802 * plugin.cpp (PluginInstance::Properties): Added runtime ability
3803 to enable show-expose regions.
3805 2007-11-20 Jb Evain <jbevain@novell.com>
3807 * plugin-class.cpp: rename INVOKE_EXCEPTION to
3808 THROW_JS_EXCEPTION. Throw more exceptions where needed.
3810 2007-11-20 Jb Evain <jbevain@novell.com>
3812 * plugin-class.cpp: throw JS exceptions where SL does.
3814 2007-11-20 Jb Evain <jbevain@novell.com>
3816 * plugin-class.cpp( MoonlightContentObject::Invoke):
3817 return null instead of undefined, like SL 1.0 does.
3819 2007-11-20 Jb Evain <jbevain@novell.com>
3821 * plugin-class.h (html_get_element_text): add a function
3822 to get the `innerText` of an html element from its id.
3823 * plugin-class.cpp (html_get_element_text): implement it.
3824 * plugin.cpp (PluginInstance::UpdateSourceByReference):
3825 use html_get_element_text to get the inline xaml.
3828 2007-11-16 Chris Toshok <toshok@ximian.com>
3830 * plugin-class.cpp, plugin-class.h: switch
3831 hasProperty,getProperty,setProperty,hasMethod,invoke to object
3832 methods instead of vtable entries on the type. Also, put the
3833 name->id mapping in MoonlightObject's vtable entries, before the
3834 call to the virtual object methods (so now we only do name lookups
3835 there instead of all over the place) Also, aggregate mappings for
3836 all classes up to the root in the hierarchy when we initialize the
3837 type. This means only 1 bsearch per LookupName, instead of 1 per
3840 2007-11-15 Jeffrey Stedfast <fejj@novell.com>
3842 * plugin-class.cpp: Alphabetize all of the mapping tables so that
3843 bsearch works properly.
3845 2007-11-14 Chris Toshok <toshok@ximian.com>
3847 * plugin-class.h, plugin-class.cpp: substantially rework the way
3848 names are looked up. remove 90% of the has_method/has_property
3849 code, and move all the invoke/get_property/set_property to using
3850 id's for their work instead of string comparisons. also make the
3851 string lookups case insensitive. I don't much like the way
3852 chaining is done (check out MoonlightObjectType::SetBase and
3853 MoonlightObjectType::LookupName), but it's working for now, and
3854 should be substantially faster (and easier to maintain) this way
3855 than the naive conversion to case insensitivity.
3857 2007-11-14 Jeffrey Stedfast <fejj@novell.com>
3859 Fixes for the Matrix demo.
3861 * plugin-class.cpp (EventListenerProxy): Don't leak the NPObject.
3862 (proxy_listener_to_javascript): Updated printf debugging.
3863 (moonlight_content_invoke): Use the second argument
3864 (create_namescope) and pass that along to xaml_create_from_str().
3866 2007-11-14 Andrew Jorgensen <ajorgensen@novell.com>
3868 * Makefile.am: strip the ffmpeg libs for the user plugin but do not
3869 strip libmoon and libmono, will either add an option to strip those libs
3870 later or just make that part of the release process.
3871 * install.js.in: Cleaned up error handling and added a call to
3872 refreshPlugins(), should make it so nobody has to restart firefox
3874 2007-11-13 Andrew Jorgensen <ajorgensen@novell.com>
3876 * Makefile.am: Use the mono_ddldir rather than assuming /usr/lib and
3877 pick up any dlls in the gac that are for the 2.1 profile so that we
3878 don't miss any that should have been symlinked in /usr/lib/mono/2.1 but
3879 for some reason were not.
3881 2007-11-12 Andrew Jorgensen <ajorgensen@novell.com>
3883 * Makefile.am: Add moon.config to EXTRA_DIST
3885 2007-11-12 Andrew Jorgensen <ajorgensen@novell.com>
3887 * install.js.in: Just add moonlight directory, not individual files.
3888 * mono.cpp: Get moonlight.exe from home dir plugin path.
3889 * plugin-proxy.cpp: dlopen libmono and set it's dirs.
3890 * Makefile.am: Build out the full directory structure for the user
3891 plugin and zip that.
3892 * moon.config: Installed as $sysconfdir/mono/config to tell mono to
3893 use the already dlopened libmoon.so.
3895 2007-11-09 Sebastien Pouliot <sebastien@ximian.com>
3897 * plugin.cpp: Fix Moonlight URL (#339929) since it didn't work.
3899 2007-11-09 Jb Evain <jbevain@novell.com>
3901 * browser-http.cpp|h: make browser_http_request_get_async_response
3905 2007-11-08 Miguel de Icaza <miguel@novell.com>
3907 * plugin.cpp (PluginInstance::Properties): Spice this bad boy up.
3908 We now can get some info about a XAML surface.
3910 2007-11-08 Jeffrey Stedfast <fejj@novell.com>
3912 * plugin.cpp (plugin_instance_get_surface): New function needed by
3914 (TryLoad): Removed an unnecessary g_assert() (the code handles the
3915 error case properly).
3917 2007-11-07 Jb Evain <jbevain@novell.com>
3919 * browser-http.cpp|h: implement a GetStatus method for
3920 BrowserHttpResponse.
3922 2007-11-06 Miguel de Icaza <miguel@novell.com>
3924 * plugin.cpp (string_to_js): rename from escape_quotes, this helps
3925 because some error messages being thrown from managed code contain
3926 newlines (Sudoku, see #325336).
3928 2007-11-05 Chris Toshok <toshok@ximian.com>
3930 * plugin-class.cpp (moonlight_content_invoke): don't crash if the
3931 surface hasn't been attached (if we haven't finished loading the
3934 2007-11-01 Andrew Jorgensen <ajorgensen@novell.com>
3936 * plugin.cpp: Replace PLUGIN_OURVERSION with VERSION (from config.h)
3937 * moonlight.h: Put the version in the description string for the sake
3940 2007-11-01 Andrew Jorgensen <ajorgensen@novell.com>
3942 * install.js.in: Get the version and the target CPU from configure and
3943 do some error checking, including checking that the platform matches
3945 2007-11-01 Andrew Jorgensen <ajorgensen@novell.com>
3947 * Makefile.am: Apparently $(builddir) is a newer autotools feature not
3948 available on SuSE 10.1 so we'll just not use it.
3950 2007-11-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
3952 * downloader.cpp: Don't keep a ref to the Downloader, it causes a circular
3955 2007-10-31 Andrew Jorgensen <ajorgensen@novell.com>
3957 * Makefile.am: Don't link in cairo, pixman, or anything else that we
3958 don't need to libmoonplugin
3960 2007-10-29 Andrew Jorgensen <ajorgensen@novell.com>
3962 * install.js, plugin-proxy.cpp, Makefile.am: Changes to include ffmpeg
3963 libs in the XPI package
3965 2007-10-27 Jackson Harper <jackson@ximian.com>
3967 * plugin-class.cpp: Make onError work.
3969 2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3971 * plugin-class.cpp, plugin-class.h: Implement emission of MarkerReached
3974 2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3976 * mono.cpp: Enable vm stacktraces after mono has been loaded.
3978 2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3980 * downloader.cpp: Ref/unref the downloader.
3982 2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
3984 * plugin-class.h: NULL-initialize a variable, fixing a crash.
3986 2007-10-25 Jackson Harper <jackson@ximian.com>
3989 * plugin-class.cpp: Add the onError event to the content object.
3991 2007-10-25 Jackson Harper <jackson@ximian.com>
3993 * plugin-class.cpp: Fix function name.
3995 2007-10-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
3997 * plugin-class.cpp: Unref the event object even though the plugin is
4000 2007-10-24 Jb Evain <jbevain@novell.com>
4002 * browser-http.cpp|h: work on asynchronous requests.
4004 2007-10-23 Andrew Jorgensen <ajorgensen@novell.com>
4006 * install.js: Install the libraries under ~/.mozilla/plugins/moonlight
4007 so that they are not loaded by mozilla
4008 * moonlight.h: Don't define PLUGIN_INSTALL unless it is not defined
4009 * plugin-proxy.cpp: dlopen libmoon.so from the user's
4010 plugins/moonlight directory if we are building the user plugin
4011 * Makefile.am: Use the PLUGIN_INSTALL flag to control building of the
4014 2007-10-23 Jb Evain <jbevain@novell.com>
4016 * browser-http.cpp|h: Add support for Abort and SetBody.
4018 2007-10-22 Jb Evain <jbevain@novell.com>
4020 * browser-http.cpp: add browser_http_response_destroy and
4021 browser_http_sync_response_read.
4023 2007-10-22 Jb Evain <jbevain@novell.com>
4025 * browser-http.cpp|h (SyncBrowserHttpRequest::Read):
4026 do read the entire input stream even if it's a buffered
4029 2007-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
4031 * plugin-class.cpp: If we're leaking NPObjects make sure we don't crash in
4032 invalidate, since FF will call invalidate long after shutting down
4035 2007-10-21 Jb Evain <jbevain@novell.com>
4037 * browser-http.cpp|h: add the files where the unmanaged
4038 implementation of BrowserHttpRequest will live.
4040 * Makefile.am: add them to the build.
4042 2007-10-18 Chris Toshok <toshok@ximian.com>
4044 * plugin-class.cpp (moonlight_dependency_object_invoke): make the
4045 debug "printf" method its own method, instead of a hack on
4047 (MoonlightEventObjectObject::Dispose): remove the wrapped object
4049 (MoonlightEventObjectObject::SetEventObject): update the cache.
4050 (EventObjectCreateWrapper): check the cache before creating a new
4053 * debug.js: convert from
4054 printf_proxy.setValue ("printf", message);
4056 printf_proxy.printf (message);
4058 * plugin.cpp, plugin.h: add {Add,Remove,Lookup}WrappedObject
4059 methods to cache the JS objects we use for a given EventObject*.
4061 2007-10-17 Chris Toshok <toshok@ximian.com>
4063 * plugin.cpp (PluginXamlLoader::TryLoad): use ->Attach instead of
4064 surface_attach, and add a comment about element->unref().
4066 2007-10-16 Jb Evain <jbevain@novell.com>
4068 * plugin.cpp: add plugin_instance_get_browser_runtime_settings.
4070 2007-10-16 Jb Evain <jbevain@novell.com>
4072 * moonlight.cs: Keep track of all plugin unload callbacks.
4073 Don't use Hashtable and refactor some code.
4075 2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
4077 * plugin.cpp, plugin-proxy.cpp: Remove some const char/char mismatch
4079 * plugin-glue.cpp: Fix some const char/char mismatch warnings.
4081 2007-10-10 Chris Toshok <toshok@ximian.com>
4083 * plugin-class.cpp (EventListenerProxy::~EventListenerProxy):
4084 don't NPN_ReleaseObject the callback. the browser does this for
4087 2007-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
4089 * plugin.cpp: Fix e-mail.
4091 2007-10-09 Andrew Jorgensen <ajorgensen@novell.com>
4093 * Makefile.am: Can't use the -MM (fail if patterns not matched) because it
4096 2007-10-09 Andrew Jorgensen <ajorgensen@novell.com>
4098 * Makefile.am: Make zip fail if one of the files is not found
4100 2007-10-09 Andrew Jorgensen <ajorgensen@novell.com>
4102 * Makefile.am: Build the firefox xpi plugin installer (unsigned)
4103 * install.js: First draft install script for xpi
4105 2007-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
4107 * TODO: Update, fullScreen is now implemented.
4109 2007-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
4111 * plugin.cpp: Set the downloader context of the surface.
4112 * downloader.cpp: Ref/unref the downloader we store. Get the context stored
4113 in the downloader if possible, and use it to get the plugin instance.
4114 * plugin-class.cpp: Use the brand new PluginInstance::CreateDownloader, and
4115 provide xaml loaders for the xaml_create_from* methods.
4116 * plugin.h: Add a CreateDownloader method.
4118 2007-10-04 Zoltan Varga <vargaz@gmail.com>
4120 * plugin.cpp (LoadUrl): New method to download stuff synchronously using the browser.
4121 (plugin_instance_load_url): C wrapper for the above.
4122 (ReportException): Fix a leak.
4124 2007-10-03 Chris Toshok <toshok@ximian.com>
4126 * moonlight.h: need to wrap the renamed symbols in an extern "C"
4129 2007-10-03 Chris Toshok <toshok@ximian.com>
4131 * moonlight.h, plugin-entry.cpp, plugin-proxy.cpp: if we're using
4132 libmoonloader.so, we need to rename the 4 symbols we proxy in
4133 plugin-entry.cpp, and load them up via our mangled names in
4134 plugin-proxy.cpp. This is so mozilla doesn't try to load
4135 libmoonplugin.so as a plugin itself. It should only load
4136 libmoonloader.so. Also, add code in plugin-proxy.cpp to handle
4137 the case where the .so lives in ~/.mozilla/plugins. This requires
4138 #define PLUGIN_INSTALL 1 to be used, so we should figure out how
4139 to build with that when building the XPI.
4141 2007-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
4143 * plugin.cpp, plugin.h: Added SetPageURL, updates the Surface' source
4144 location to the url of the current page.
4146 2007-09-30 Zoltan Varga <vargaz@gmail.com>
4148 * plugin.cpp (ReportException): Handle multiple calls correctly.
4150 2007-09-28 Chris Toshok <toshok@ximian.com>
4152 * Makefile.am: wrap moonlight.exe stuff in "if
4153 INCLUDE_MONO_RUNTIME" where necessary.
4155 2007-09-28 Chris Toshok <toshok@ximian.com>
4157 * moonlight.h (INCLUDE_MONO_RUNTIME): remove #define from here.
4158 it's now a configure arg (and the define lives in config.h).
4160 2007-09-28 Zoltan Varga <vargaz@gmail.com>
4162 * plugin.cpp (UrlNotify): Add some debug messages here.
4164 * plugin.cpp (ReportException): New helper function to display exception details
4165 using dynamic html above the plugin frame.
4167 2007-09-27 Jeffrey Stedfast <fejj@novell.com>
4169 * plugin-glue.cpp (NPP_Initialize): Call runtime_init() with
4170 RUNTIME_INIT_BROWSER.
4172 2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4174 * plugin.cpp: Properly release a MoonlightObject.
4176 2007-09-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
4178 * plugin.cpp: PluginInstance::UrlNotify: delete the StreamNotify when we're
4179 done with it. Added plugin_xaml_loader_from_str.
4180 * plugin-class.cpp: moonlight_scriptable_control_invoke: unref the
4181 Downloader we create once the object wrapper has it. Move implementation
4182 of MoonlightEventObjectObject::SetEventObject here.
4183 * plugin.h: StreamNotify: ref the DependencyObject we get, and unref on
4184 destruction. Added plugin_xaml_loader_from_str.
4185 * plugin-class.h: Move implementation of
4186 MoonlightEventObjectObject::SetEventObject to the cpp file.
4188 2007-09-23 Jb Evain <jbevain@novell.com>
4190 * plugin.cpp: Pride sin, add my name to the contributors.
4192 2007-09-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
4194 * plugin.cpp, plugin.h: Add a plugin_unload_callback to PluginInstance, and
4195 call it in the dtor.
4196 * moonlight.cs: Added UnloadDomain: unloads the domain that was loaded for a
4197 specific plugin, and set the corresponding native callback. Keep a hash
4198 table of all created domains so that we know which domain to unload,
4199 Delete some dead code (DisposeXamlLoader, ~Loader, Dispose)
4201 2007-09-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
4203 * plugin.cpp: If an assembly already has been downloaded once, don't try to
4204 reload the xaml (otherwise might cause a loop if loading the xaml failed
4205 due to a reason other than that the assembly wasn't already downloaded).
4206 Added PluginXamlLoader::LoadVM. PluginXamlLoader::TryLoad: don't call
4207 into the vm here, since it might not be loaded yet. Move implementation
4208 of InsertMapping, CreateElement and SetAttribute to XamlLoader.
4209 InitializeLoader: don't create a managed loader if the vm hasn't been
4211 * plugin.h: Move implementation of InsertMapping, CreateElement and
4212 SetAttribute to XamlLoader.
4213 * plugin-class.h: Remove unused function declaration.
4214 * mono.cpp, moon-mono.h: Remove all managed methods except moon_load_xaml,
4215 which sets the methods as callbacks on the xaml loader with delegates
4216 now. Guard against loading the vm twice.
4217 * moonlight.cs: Moved code to agclr, just kept a simple stub here that
4218 creates the new AppDomain.
4219 * plugin-glue.cpp: Don't initialize the vm when the plugin is initialized,
4220 it's initialized on demand.
4222 2007-09-19 Zoltan Varga <vargaz@gmail.com>
4224 * plugin.cpp (plugin_menu_about): Make the close button work on some gtk versions.
4226 2007-09-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
4228 * plugin.cpp: Remove a printf.
4229 * plugin-class.cpp, plugin-class.h: Apparently invalidate isn't always
4230 called for our MoonlightObjects (though deallocate is). Create a Dispose
4231 method that does what invalidate did (and call it from Invalidate), and
4232 keep track if it has been called or not (allows deallocate to call it if
4233 invalidate wasn't called by mozilla). Make Dispose virtual so that the
4234 base deallocator can call it for all derived classes (which also means
4235 that we only need the base invalidate method), and add a virtual
4236 destructor so that the base deallocator can also delete the object (and
4237 remove all other *_deallocator methods). proxy_listener_to_javascript:
4238 release objects at the end of the method.
4240 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
4242 * plugin.cpp, plugin.h, moonlight.cs: Move callbacks from PluginXamlLoader
4245 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
4247 * downloader.cpp: Removed warning.
4248 * plugin.cpp: Delete the current xaml_loader if we create a new one.
4250 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
4254 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
4256 [Removed mono dependency for 1.0 moonlight applications.
4257 We now have a native [Plugin]XamlLoader that is the native counterpart of the
4258 managed Loader object, the native loader handles xaml loading when the
4259 mono runtime isn't loaded.]
4261 * plugin.cpp, plugin.h: Added PluginXamlLoader that can forward calls into
4262 the managed loader if the mono runtime is loaded.
4263 * plugin-class.cpp: isVersionSupported: if built without mono runtime
4264 support, we only support 1.0 applications. Update according to API
4266 * moonlight.h, mono.cpp, moon-mono.h: Update according to API change.
4267 * moonlight.cs: Update according to API change. Added Hosting.base_unref and
4268 unref a few objects.
4269 * plugin-glue.cpp: Don't initialize the mono runtime for 1.0 applications.
4271 2007-09-09 Chris Toshok <toshok@ximian.com>
4273 * plugin-class.cpp (moonlight_content_invoke): implement
4274 content.createFromXamlDownloader.
4276 Thu Sep 6 16:19:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4278 * mono.cpp, moon-mono.h, plugin.cpp, plugin.h: correct use of mono
4279 objects: they can't be stored in unmanaged memory.
4281 Thu Sep 6 15:22:20 CEST 2007 Paolo Molaro <lupus@ximian.com>
4283 * mono.cpp, moon-mono.h: cleanup of some code and localized the mono
4286 2007-09-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
4288 * plugin-class.cpp: Added some special debug code, enabling basic printf
4289 functionality from javascript code. No need to synchronize console
4290 output with firebug output anymore.
4291 * debug.js: Added, a printf function for javascript, specially crafted for
4294 2007-08-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4296 * plugin.cpp: Get the actual size from the surface.
4298 2007-08-31 Michael Hutchinson <m.j.hutchinson@gmail.com>
4300 * plugin.cpp: Fix pointer cast for 64-bit arch.
4302 2007-08-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4304 * downloader.cpp: Added downloader_destroy.
4305 * plugin-class.cpp, plugin-class.h: Add plugin_destroy_classes, and remove a
4306 duplicate creation of MoonlightPointClass.
4307 * plugin-glue.cpp: Try shutting down everything correctly, if it can be
4308 shutdown, if not, don't initialize twice (vm and gtk).
4310 2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4312 * plugin-class.cpp: Javascript expects the sender of a FullScreenChange
4313 event to be the toplevel canvas, so when the Surface emits this event,
4314 change the sender to the toplevel canvas.
4316 2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4318 * plugin.cpp: Don't delete the surface, unref it.
4319 * plugin-class.cpp, plugin-class.h: Create a MoonlightEventObject* and make
4320 MoonlightDependencyObject* inherit from it. Change all event usage to
4321 the new class, enables events for objects that aren't DependencyObjects
4322 (but are EventObjects, such as Surface). Implement FullScreen support in
4323 the plugin. Remove the dob field from MoonlightDependencyObject, the
4324 MoonlightEventObject has an eo field that fits the purpose, and
4325 implement a MoonlightDependencyObject.GetDependencyObject () that does
4326 what dob did earlier (and change all usages).
4328 2007-08-24 Jackson Harper <jackson@ximian.com>
4330 * plugin-class.cpp|h: Add a new EventListenerObject that we can
4331 return from addEventListener.
4332 - Implement removeEventListener.
4334 2007-08-24 Jackson Harper <jackson@ximian.com>
4336 * plugin-class.cpp|h: Now that getPosition works as intended, we
4337 don't need to store the position as an NPObject on the
4339 - Eliminate the variant_to_value so that we don't need to do a
4340 bunch of extra casting.
4342 2007-08-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
4344 * plugin-class.cpp: mouse_event_invoke (getPosition):
4345 use the argument to calculate the position if provided.
4347 2007-08-23 Jackson Harper <jackson@ximian.com>
4349 * plugin-class.cpp: We can now hookup to the resize event.
4351 2007-08-23 Jb Evain <jbevain@novell.com>
4353 * mono.cpp (vm_init): properly initialize the new debugging
4356 2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
4358 * plugin-class.cpp|h: Duration and TimeSpan's seconds property
4359 is a double, so treat is as such. Add moonlight type information
4360 to MoonlightObject (and derived classes), so that the marshalling
4361 knows how to treat them when they come back from js land.
4362 _set_dependency_property_value: handle values coming from js land
4363 correctly, according to their moonlight type.
4365 2007-08-23 Jb Evain <jbevain@novell.com>
4367 * mono.cpp (vm_init): use new method name to initialize
4370 2007-08-23 Jb Evain <jbevain@novell.com>
4372 * Makefile.am: use -pkg:agmonosilver to reference agmono.dll
4374 2007-08-17 Chris Toshok <toshok@ximian.com>
4376 * plugin-class.cpp|h: add a TimeSpan wrapper object.
4378 2007-08-17 Jb Evain <jbevain@novell.com>
4380 * mono.cpp (vm_init): small refactoring to get MonoMethods.
4382 2007-08-17 Chris Toshok <toshok@ximian.com>
4384 * plugin-class.cpp (moonlight_content_has/get/set_property): stub
4385 the onFullScreenChange property, to just warn us about the
4386 unimplemented functionality.
4388 2007-08-17 Jackson Harper <jackson@ximian.com>
4390 * plugin-class.cpp|h: Add a duration object that is exposed to the
4392 - Fix the value_to_variant to handle durations, rects and points.
4394 2007-08-17 Chris Toshok <toshok@ximian.com>
4396 * plugin-class.cpp (moonlight_dependency_object_invoke): add
4397 toString method for DependencyObjects, which just returns the type
4400 2007-08-17 Jackson Harper <jackson@ximian.com>
4402 * plugin-class.cpp: Properties are allowed to be null, so we still
4403 return true if the value is null.
4405 2007-08-17 Jackson Harper <jackson@ximian.com>
4407 * plugin-class.cpp: Add the Root property to the content
4408 object. This just returns the top element.
4410 2007-08-17 Jb Evain <jbevain@novell.com>
4412 * Makefile.am: use smcs to compile moonlight.exe
4413 * mono.cpp (vm_init): force the use of the moonlight profile
4416 2007-08-16 Jackson Harper <jackson@ximian.com>
4419 * downloader.cpp: Remove my downloader event code, these are
4420 raised elsewhere (they were hidden behind another bug yesterday).
4422 2007-08-16 Jackson Harper <jackson@ximian.com>
4424 * plugin-class.cpp: Fix cut&paste error that was preventing
4425 GetValue from working (get value only needs one arg).
4427 2007-08-16 Jackson Harper <jackson@ximian.com>
4429 * plugin-class.cpp: Add removeAt method to collections.
4431 2007-08-15 Jackson Harper <jackson@ximian.com>
4433 * plugin-class.cpp: Implement ctrl/shift for mouse and keyboard
4434 events. I didn't use a shared base class, because the
4435 duplicated code is significantly less than the boilerplate code
4438 2007-08-15 Jackson Harper <jackson@ximian.com>
4440 * plugin-class.h|cpp: Add support for keyboard arguments in the
4441 keyup/keydown events. TODO: Still need to implement shift and
4442 control, ideally, in a base class for mouse and keyboard events.
4444 2007-08-15 Jackson Harper <jackson@ximian.com>
4447 * downloader.cpp: Raise downloading events.
4449 2007-08-13 Jackson Harper <jackson@ximian.com>
4451 * plugin-class.cpp: findName should only look in the dependency
4454 2007-08-13 Jackson Harper <jackson@ximian.com>
4456 * plugin-class.cpp: For dependency object strings don't return
4457 null, just return an empty string.
4459 2007-08-11 Miguel de Icaza <miguel@novell.com>
4461 * moonlight.cs: Use the new Appdomain helper methods too.
4463 Use Ansi here because we only run on Linux not on
4464 Windows and the Auto API is gone from 2.1
4466 * moonligth.cs: Use the new helper method from agmono instead of
4467 duplicating code here.
4469 2007-08-07 Jackson Harper <jackson@ximian.com>
4471 * moonlight.cs: Add another system library to the do-not-download
4474 2007-08-06 Jackson Harper <jackson@ximian.com>
4476 * plugin-class.cpp: We don't need to explicitly free the value
4477 because the dtor will for us.
4479 2007-08-06 Jackson Harper <jackson@ximian.com>
4481 * plugin-class.cpp|h: Add functionality for detaching events and
4482 for releasing object references.
4483 - When looking up on the window object, do not release it. It
4484 doesn't need to be released because it is never retained.
4485 - Add a new function for creating a browser alert message.
4487 2007-08-03 Chris Toshok <toshok@ximian.com>
4489 * plugin-class.cpp (moonlight_downloader_*): add
4490 has_property/get_property methods, for the "responseText"
4491 property. not sure if getResponseText() is still around, but the
4492 property definitely is in use by silverlight pad.
4494 2007-08-03 Jackson Harper <jackson@ximian.com>
4496 * plugin-class.h|cpp: Add support for mouse events, pass all the
4497 info needed by HtmlEventArgs back in the callback.
4498 - Don't return null or void objects from invoke or get property.
4500 2007-08-03 Jackson Harper <jackson@ximian.com>
4502 * moonlight.cs: Dont download all the system libraries.
4504 2007-08-03 Jackson Harper <jackson@ximian.com>
4506 * plugin-class.h|cpp: Add support for attaching properties.
4508 2007-08-02 Chris Toshok <toshok@ximian.com>
4510 * plugin-class.cpp (moonlight_content_invoke): createFromXaml
4511 doesn't create a control object - it parses the xaml you pass in
4512 and returns the root element, so it can be used for any xaml
4515 * plugin.h, plugin.cpp: add plugin_instance_get_init_params for
4516 use in WebApplication.StartupArgs.
4518 2007-07-29 Chris Toshok <toshok@ximian.com>
4520 * moonlight.h: track the 1.1 refresh changes.
4522 2007-07-25 Chris Toshok <toshok@ximian.com>
4524 * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4525 "getParent" correctly - it can return NULL.
4527 2007-07-25 Chris Toshok <toshok@ximian.com>
4529 * plugin-class.h: implement scriptable events (adding and emitting
4532 2007-07-24 Jackson Harper <jackson@ximian.com>
4534 * plugin-class.cpp|h: Add function to invoke methods on
4535 htmlobjects from unmanaged code.
4537 2007-07-24 Chris Toshok <toshok@ximian.com>
4539 * plugin.cpp (PluginInstance::setBackground): implement.
4540 (PluginInstance::CreateWindow): if our args contained a background
4541 color, set the surface's background.
4543 2007-07-24 Jackson Harper <jackson@ximian.com>
4545 * plugin-class.cpp: Move the window release up, prevents random
4546 crashing in firefox.
4548 2007-07-24 Chris Toshok <toshok@ximian.com>
4550 * plugin-class.h, plugin-class.cpp: add wrapper classes for
4551 TextBlocks and ImageBrushes.
4553 2007-07-24 Jackson Harper <jackson@ximian.com>
4555 * plugin-class.cpp: Implement variants to value on objects. TODO,
4556 add a method to release those objects.
4558 2007-07-24 Chris Toshok <toshok@ximian.com>
4560 * plugin-class.h, plugin-class.cpp: add a wrapper class for
4561 Images, which implements SetSource. also add SetSource handling
4562 for the MediaElement wrapper.
4564 * moonlight.cs: rework event hookup so that if we fail to hookup
4565 with C#, we assume it's a JS event. hook it up via the
4566 EventListenerProxy stuff.
4568 * plugin.h, plugin.cpp: MoonlightControl -> MoonlightScriptable
4570 * plugin-class.h, plugin-class.cpp:
4572 1. rename MoonlightControl* to MoonlightScriptableControl* to
4573 distinguish it from the new MoonlightControl, which is a wrapper
4574 for our Control class. factor out the _set_dependency_property_value
4576 2. add "getParent", "setValue", and "getValue" methods to the
4577 dependencyobject wrapper.
4579 3. Add a ctor for EventListenerProxy which just takes the callback
4580 name for use in hooking up js events from the parser.
4582 2007-07-24 Jackson Harper <jackson@ximian.com>
4584 * plugin.h|cpp: Add a getter for the plugin instance
4585 * plugin-class.h|cpp: Property get/setters for html objects.
4587 2007-07-23 Chris Toshok <toshok@ximian.com>
4589 * plugin-class.h, plugin-class.cpp: include error.h, and start out
4590 some error event args wrapping stuff.
4592 2007-07-23 Miguel de Icaza <miguel@novell.com>
4594 * plugin.cpp (PluginInstance): track the timers on a linked list
4597 (~PluginInstance): Remove all the timers for this plugin on
4600 (plugin_html_timer_timeout_add, plugin_html_timer_timeout_stop):
4601 Move these routines here and track all the timers created.
4603 * moonlight.cs: Use the type from agmono instead of agclr
4605 2007-07-21 Chris Toshok <toshok@ximian.com>
4607 * plugin-class.cpp (variant_to_value): fix this such that it
4608 doesn't crash due to c++'s not using a copy ctor when you do "foo
4609 = Value()". the first of the changes are fallout from this.
4611 2007-07-20 Miguel de Icaza <miguel@novell.com>
4613 * Fix a memory leak.
4615 2007-07-19 Chris Toshok <toshok@ximian.com>
4617 * plugin-class.h, plugin-class.cpp: factor out the
4618 EventListenerProxy stuff into a separate class.
4620 2007-07-19 Chris Toshok <toshok@ximian.com>
4622 * plugin-class.cpp (moonlight_control_get_property): Retain the
4623 settings/content objects before returning them. fixes crash in
4626 2007-07-19 Chris Toshok <toshok@ximian.com>
4628 * plugin.h, plugin.cpp: add getBrowserInformation call, useful for
4629 populating the managed BrowserInformation object. need to flesh
4630 out how to get the other info. userAgent is easy.
4632 also, in plugin.cpp, only invoke is onLoad handler if
4633 vm_loader_try doesn't return a missing file. This fixes the
4634 ordering problem in the silverlight chess demo (where we were
4635 accessing JScriptPlayer before it was created).
4637 2007-07-19 Chris Toshok <toshok@ximian.com>
4639 * plugin-class.h: add some scriptable object event stuff.
4641 * plugin-class.cpp: a couple of things.
4643 1) fix the _invalidate and _deallocate methods. _invalidate
4644 shouldn't release objects. and _deallocate can now call delete
4645 again, so we don't leak all our wrapper objects.
4647 2) add some initial scriptable object event methods (add/remove),
4648 but they don't actually do much yet.
4650 * plugin.cpp: fix the refcounting of the rootobject, and remove
4651 some RUNTIME ifdefs.
4653 * plugin-glue.cpp (NPP_Initialize): remove the RUNTIME ifdefs.
4655 * moonlight.h: remove some of the unused ifdefs. also, we're not
4656 going to ever build this with RUNTIME or SCRIPTING not defined, so
4659 2007-07-18 Jackson Harper <jackson@ximian.com>
4661 * plugin-class.cpp: Build fix.
4663 2007-07-17 Chris Toshok <toshok@ximian.com>
4665 * plugin-class.cpp (moonlight_scriptable_object_invoke): deal with
4668 * plugin-class.h: change the type of InvokeDelegate - we pass an
4669 array, not an array of pointers.
4671 * plugin.cpp (JsRunOnload): remove redundant call to
4672 surface->GetToplevel().
4674 2007-07-16 Chris Toshok <toshok@ximian.com>
4676 * moonlight.cs: AppDomain.SetData the plugin instance so
4677 WebApplication can get at it.
4679 * plugin-class.cpp (variant_to_value): pseudo-inverse of
4680 value_to_variant. used by the scriptable object stuff.
4682 Also, add the first pass at the scriptable object code. it's
4683 really, really rough at this point.
4685 * plugin.cpp (PluginInstance::GetValue): switch this to calling
4687 (PluginInstance::getRootObject): put the old GetValue (create or
4690 2007-07-12 Chris Toshok <toshok@ximian.com>
4692 * plugin-class.cpp: implement support for using a string as the
4693 second arg in addEventListener. now you can register callbacks
4696 object.addEventListener ("EventName", method);
4700 object.addEventListener ("EventName", "methodName");
4702 fixes SilverlightChess crashing (since we were trying to
4703 InvokeDefault a string. oops. :)
4705 2007-07-12 Chris Toshok <toshok@ximian.com>
4707 * plugin-class.cpp (moonlight_dependency_object_invoke): implement
4708 captureMouse/releaseMouseCapture. going to move these to a
4709 UIElement specific wrapper next.
4711 2007-07-12 Chris Toshok <toshok@ximian.com>
4713 * plugin-class.cpp, plugin-class.h: a few things:
4715 refactor the listener proxying stuff to share code. when creating
4716 a proxy you create the event arg wrapper function, which at
4717 present only the mouse event stuff uses.
4719 wrap Downloader. events are properly emitted, we should move the
4720 Downloader to using EventHandler's instead of its custom list of
4723 when looking up an attached property both (or one, or neither!) of
4724 the names can be capitalized. like: foo['canvas.top'],
4725 foo['Canvas.Top'], and foo['canvas.Top']. handle all of them.
4727 in value_to_variant, when setting a property to an object value,
4728 we assume (perhaps incorrectly) that it will be a
4729 MoonlightDependencyObjectObject, and handle it that way. it seems
4730 to work for the demos at least. Also in that same method, stop
4731 allocating a 20 byte buffer in the hope that it's enough. just
4732 use g_strdup/g_strdup_printf.
4734 add control.createObject support for creating wrapped
4735 downloaders. also, start on the implementation for
4736 control.onResize, but we need to shift the surface's resize
4737 callback to use an EventHandler.
4739 2007-07-11 Chris Toshok <toshok@ximian.com>
4741 * plugin-class.cpp, plugin-class.h: fix up the point and rect
4742 wrappings, and implement mouse event proxying.
4744 2007-07-11 Chris Toshok <toshok@ximian.com>
4746 * plugin-class.cpp, plugin-class.h: wrap the MediaElement enough
4747 to provide the start/stop/pause methods.
4749 2007-07-11 Chris Toshok <toshok@ximian.com>
4751 * plugin-class.cpp, plugin-class.h, plugin-glue.cpp, plugin.h,
4752 plugin.cpp: I know this looks like a scary change, but 90% of the
4753 code is the same. I just took advantage of the fact that we
4754 already have structs with all the function pointers in them.
4755 there's no reason to proxy from a function pointer in the struct
4756 to an instance method on a singleton class - just use the function
4759 Also, add a binding for Points, which we'll need to wrap mouse
4762 2007-07-11 Chris Toshok <toshok@ximian.com>
4764 * moonlight.h (DEBUG_WARN_NOTIMPLEMENTED): add this macro so we
4765 can get spew to the console when we hit unimplemented bits.
4767 * plugin-class.cpp: a couple of changes:
4769 1. the case of property names is lax too, it seems. 'Children'
4770 can be used in the js, as well as 'Children'. so we need to allow
4773 2. Fix a memory corruption issue with value_to_variant - we need
4774 to duplicate the string we give to mozilla, since it'll free it in
4775 NPN_ReleaseVariantValue.
4777 3. Implement proxies between our event handlers and JS event
4778 listeners. We leak like a sieve here, btw. need to figure out
4779 the best way to free up these proxies. This works for any event
4780 that has been Register'ed by an EventObject and which is Emit'ed
4783 4. Implement collection.getItem().
4785 2007-07-11 Chris Toshok <toshok@ximian.com>
4787 * plugin.h, plugin.cpp: add getRootObject to return the
4788 MoonlightControlObject.
4790 * plugin-class.cpp (MoonlightDependencyObjectClass::Invoke):
4791 implement "getHost" by returning PluginInstance->getRootObject().
4793 2007-07-11 Chris Toshok <toshok@ximian.com>
4795 * plugin-class.h, plugin-class.cpp: substantially rework this
4796 stuff. Rename everything Moonlight*Class and Moonlight*Object
4797 instead of Plugin*Class/Object, to make it a little clearer that
4798 these are (almost entirely) wrappers for moonlight objects.
4800 Also clean up the distinction between "Class" and "Object". for
4801 instance, MoonlightDependencyObjectClass shouldn't have the
4802 DependencyObject*, that should live in the instance -
4803 MoonlightDependencyObjectObject (bad name i know..)
4805 our Objects also need a little bit more inheritance action.
4806 MoonlightObject isn't enough for all cases. Augment this with
4807 other classes, and override AllocateObject to allocate the right
4808 kind per class. Also, we need to override InvalidateObject to
4809 clear fields in the MoonlightObject subclasses before it's
4812 Also make all the Class's singletons. We never need more than one
4815 * plugin.h, plugin.cpp: we don't need a generate JsExecute method.
4816 besides, it's dangerous to NPN_Evaluate strings we get from the
4817 HTML anyway. Replace JsExecute with JsRunOnload, which uses
4818 NPN_Invoke to call the specified method. we also need to pass the
4819 surface's toplevel control as an argument to it.
4821 2007-07-11 Miguel de Icaza <miguel@novell.com>
4823 * moonlight.cs: Add support for downloading assembly
4826 2007-07-10 Chris Toshok <toshok@ximian.com>
4828 * moonlight.cs: add some helpful debug spew.
4830 * plugin.cpp (StreamAsFile): the mapping needs to point to the
4831 filename on disk, not the full uri. or else we try loading
4832 "http://" off the filesystem, which doesn't really work. Just to
4833 be thorough, add a mapping from the stream's url to the fname as
4836 2007-07-09 Miguel de Icaza <miguel@novell.com>
4838 * Makefile.am: install debugging symbols.
4840 * moonlight.cs: try/catch wrappers to prevent exceptions to be
4841 propagated to native code.
4843 2007-07-09 Chris Toshok <toshok@ximian.com>
4845 * moonlight.cs: copy over the System.Reflection implementation of
4846 set_attribute from XamlReader. also, track the change to the
4847 xaml_* apis - don't pass the callbacks to the individual methods.
4848 instead register them in a static ctor.
4850 2007-07-09 Miguel de Icaza <miguel@novell.com>
4852 * moonligh.cs: Invoke the Lookup(Kind, IntPtr) overload, just like
4853 we do in XamlReader.
4855 2007-07-06 Miguel de Icaza <miguel@novell.com>
4857 * downloader.cpp: Update to the get-response-text downloader API.
4859 2007-07-03 Miguel de Icaza <miguel@novell.com>
4861 * plugin.cpp (NewStream): Request that DOWNLOADER downloads be
4862 downloaded as NP_ASFILE, this means: notify us of the progres and
4863 the resulting filename.
4865 2007-06-26 Marek Habersack <mhabersack@novell.com>
4867 * moonlight.h (GDK_NATIVE_WINDOW_POINTER): define this macro if
4868 we're on a 64-bit platform. Otherwise plugin.cpp will fail to
4869 compile (attempting to convert guint32 to 64-bit pointer).
4871 2007-06-24 Larry Ewing <lewing@novell.com>
4873 * moonlight.h: include xaml.h so that things build.
4875 2007-06-24 Atsushi Enomoto <atsushi@ximian.com>
4877 * Makefile.am : we need libmoonplugin.so installed too.
4879 2007-06-23 Miguel de Icaza <miguel@novell.com>
4881 * plugin-proxy.cpp: This is the new entry point for the plugin
4882 which can be loaded and unloaded as many times as desired, and
4883 will keep the real plugin in $pkgdir/libmoonplugin.so loaded as
4886 This prevents the bugs where the code is unloaded, but we still
4887 have a few places where we are triggering screen updates when the
4888 objects have gone, those must be tracked down.
4890 2007-06-23 Chris Toshok <toshok@ximian.com>
4892 * Makefile.am: distcheck work.
4894 2007-06-22 Chris Toshok <toshok@ximian.com>
4896 * README: barebones README to tell people what to do with the
4899 2007-06-21 Jackson Harper <jackson@ximian.com>
4901 * moonlight.cs: Do what I was trying to do with the last commit.
4902 Attach the surface so that events are registed.
4904 2007-06-21 Jackson Harper <jackson@ximian.com>
4906 * moonlight.cs: Init the surface so that the mouse events are
4909 2007-06-20 Jeffrey Stedfast <fejj@gnome.org>
4911 * plugin.cpp (plugin_show_menu): Free the menu name after setting
4914 * mono.cpp (vm_init): Don't need top prefix with "/".
4916 2007-06-20 Everaldo Canuto <ecanuto@novell.com>
4918 * plugin.cpp: Add new params to xaml_create_from_file and
4919 xaml_create_from_str calls to fix compilations problems.
4921 2007-06-20 Chris Toshok <toshok@ximian.com>
4923 * plugin.cpp (StreamAsFile): don't try to execute onLoad if there
4926 2007-06-20 Everaldo Canuto <ecanuto@novell.com>
4928 * plugin.cpp, plugin.h: Implement JsExecute method and use it to call onload
4929 event specified in control creation. onLoad and onError field is also
4932 2007-06-20 Jackson Harper <jackson@ximian.com>
4934 * moonlight.cs: Tie into events.
4936 2007-06-20 Everaldo Canuto <ecanuto@novell.com>
4938 * plugin-class.cpp: Update DependencyObject setter to work with strings
4939 and some other data types, using xaml_set_property_from_str. Also remove
4940 some debug messages, we have too much.
4942 2007-06-20 Everaldo Canuto <ecanuto@novell.com>
4944 * plugin.cpp: Uncomment container detroy lines in Finalize method.
4946 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
4948 * plugin-class.cpp: Alloc one byte to set it to NULL so we don't
4949 write to unallocated memory.
4951 2007-06-20 Chris Toshok <toshok@ximian.com>
4953 * plugin.cpp (PluginInstance::Write): it turns out the "offset"
4954 parameter that is passed to us is the offset without the *stream*,
4955 not the buffer. Always pass 0 for the offset to downloader_write.
4956 This fixes image downloads for images larger than the mozilla
4957 buffer size (those requiring more than 1 write) of 16384.
4959 2007-06-19 Chris Toshok <toshok@ximian.com>
4961 * plugin-glue.cpp (NPP_Initialize): if we're going to Shutdown()
4962 the TimeManager in NPP_Shutdown, we need to restart it in
4965 2007-06-19 Chris Toshok <toshok@ximian.com>
4967 * plugin-class.cpp: check in the variant_to_value/value_to_variant
4968 methods, and make GetProperty/SetProperty use them.
4970 * plugin.cpp (UpdateSourceByReference): use g_strlcpy/g_strlcat
4971 instead of strcpy/strcat (which was actually walking off the end
4972 of the string). also, create the char array of the right size.
4974 2007-06-19 Atsushi Enomoto <atsushi@ximian.com>
4976 * Makefile.am : we need uninstall-plugin to avoid
4977 possible browser shutdown on browsing sl-enabled sites.
4979 2007-06-19 Everaldo Canuto <ecanuto@novell.com>
4981 * plugin-class.cpp, plugin-class.h: Implement DependencyObject properties
4984 2007-06-19 Everaldo Canuto <ecanuto@novell.com>
4986 * plugin.cpp: Eliminate remaining canvas field.
4988 2007-06-19 Miguel de Icaza <miguel@novell.com>
4990 * plugin.h: Eliminate the field canvas, as the managed code can
4991 replace the toplevel and we wont be able to track it. Access the
4992 field directly from the surface instead.
4994 2007-06-18 Miguel de Icaza <miguel@novell.com>
4996 * moonlight.cs: Create appdomains to keep applications separate
4997 and to keep the IntPtr to the plugin.
4999 The handle to the plugin is stored in agclr in the BrowserHost
5002 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
5004 * plugin-class.cpp: Implement maxFrameRate property.
5006 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
5008 * moonlight.h: Just a high value for MAX_STREAM_SIZE.
5010 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
5012 * plugin.cpp, plugin.h: Implement Write and WriteReady to interact with
5013 Downloader functions. It looks to be right but image still dont appears,
5014 mayeb something in download manager functions. STREAM_NOTIFY macro added to
5017 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
5019 * downloader.cpp: Fix stream notify data, must be Downloader not
5022 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
5024 * plugin-glue.cpp: Remove stream destruction from Write and WriteReady, it
5025 was preventing browser to call our write function.
5027 * moonlight.h: MAX_STREAM_SIZE constant added.
5029 2007-06-17 Everaldo Canuto <ecanuto@novell.com>
5031 * plugin.cpp, plugin.h: Add a new StreamNotifyFlags REQUEST, it is used by
5032 files requested by Mono runtime, the use of notify bring us a more clean
5033 code to controls requested files.
5035 * downloader.cpp: Use StreamNotify and check for existense of instance.
5037 007-06-17 Jackson Harper <jackson@ximian.com>
5039 * moonlight.cs: Parse type names out of xmns strings. x:Class uses
5040 this slightly different format.
5042 2007-06-17 Everaldo Canuto <ecanuto@novell.com>
5044 * plugin.cpp, plugin.h: Add support for "#" (references) in source urls, it
5045 make possible use embedded xaml files. Also every source updates go to the
5046 UpdateSource and UpdateSourceByReference methods.
5048 * moonlight.cs: Xaml file loader splited in two methods CreateXamlFileLoader
5049 and CreateXamlStrLoader to support embedded files.
5051 * mono.cpp: Wrapper funtions also splited in file loader and str loader.
5053 2007-06-17 Everaldo Canuto <ecanuto@novell.com>
5055 * plugin.cpp: Use setSource to define source in Initialize, it give us only
5056 one place to check set source code. Also prevent setSource to segfault when
5057 source field is null.
5059 2007-06-17 Everaldo Canuto <ecanuto@novell.com>
5061 Fixes browser segfaults related to timemanager when goto another page or
5064 * plugin-glue.cpp: Call runtime_init every time that browser initialize
5065 plugin, when plugin shutdown just shutdown timemanager since we have
5066 problems to runtime_shutdown. Some comment added to this implementation
5067 and we must back here when runtime_shutdown is fixed.
5069 2007-06-17 Everaldo Canuto <ecanuto@novell.com>
5071 * plugin.cpp, plugin.h: Create StreamNotify class to use as notifydata
5072 parameter in NPN_GetURLNotify function, it gives us better control about
5073 what is downloading. Fixes errors when you try change control source
5076 2007-06-17 Miguel de Icaza <miguel@novell.com>
5078 * downloader.cpp (p_downloader_send): Some tidbits for the plugin
5079 download, not complete.
5081 2007-06-16 Jackson Harper <jackson@ximian.com>
5083 * moonlight.cs: Set custom attributes on xaml elements.
5085 2007-06-16 Everaldo Canuto <ecanuto@novell.com>
5087 * moonlight.h: Include config.h since moonlight.h is included by all files.
5088 Fixes compilation problems.
5090 2007-06-16 Everaldo Canuto <ecanuto@novell.com>
5092 * plugin.cpp, plugin.h: Remove sourceUrl and use NPN_GetURLNotify notifyData
5093 param to inform when download is source.
5095 2007-06-16 Everaldo Canuto <ecanuto@novell.com>
5097 * mono.cpp: Remove debug message cr.
5099 * plugin.cpp, plugin.h, plugin-class.cpp: Windowless property added.
5101 2007-06-16 Jackson Harper <jackson@ximian.com>
5103 * moonlight.cs: Quick implementation of miguels beautiful new xaml
5104 loading mechanism. We now properly download the assembly and
5105 create the element. The custom.xaml test does work, however you
5106 need to invalidate the canvas to see the red canvas background
5109 2007-06-16 Miguel de Icaza <miguel@novell.com>
5111 New mechanism for loading XAML files.
5113 Since XAML files can contain references to external assemblies and
5114 these have to be downloaded using the browser, we have now changed
5115 our previous setup that just called the xaml parser with a setup
5116 that is able to download dependencies.
5118 The system works by attempting repeatedly to parse the XAML file.
5119 The XAML parser needs to return an error condition that includes
5120 the missing dependency.
5122 For all missing dependencies, we request the file from the
5123 browser, and we re-try the parsing until it works (or it fails due
5126 * moonlight.cs: Instead of exposing a CreateFromXaml method, we
5127 now expose a Loader object.
5129 The Loader object can keep track of downloaded assembly
5130 dependencies and calls the parser.
5132 * plugin.cpp (NewStream): Use a primitive state machine
5133 (vm_missing_url == vm_missing_file) to detect when we have just
5134 requested that a file be downloaded. This probably is too
5137 (TryLoad): New method.
5139 Tries to load the XAML file, the parsing might fail because a
5140 required dependency is not available, so we need to queue the
5141 request to fetch the data.
5143 (LoadFromXaml): Use vm_xaml_loader_new and TryLoad now.
5145 * mono.cpp (vm_init): We now use a handful of more methods from
5148 (vm_loader_try, vm_insert_mapping): helper functions to call into
5149 the managed wrapper for XAML file loading.
5151 2007-06-16 Everaldo Canuto <ecanuto@novell.com>
5155 * plugin-class.cpp: Implement enableFramerateCounter, enableRedrawRegions
5156 and enableHtmlAccess properties.
5158 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5160 * plugin.cpp, plugin.h, plugin-class.cpp: Background property added.
5162 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5164 * plugin.cpp: Let LoadFromXaml just call load xaml routines.
5166 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5168 * moonlight.cs: Fix surface attachment.
5170 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5172 * plugin-glue.cpp: Prevent multiple runtime and mono vm initialization.
5174 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5176 * plugin.cpp, plugin.h: LoadFromXaml added to host canvas creation.
5178 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5180 * moonlight.h: Turns mono runtime enabled by default.
5182 * mono.cpp: Use of DEBUGMSG macro for debug message.
5184 * moonlight.cs: Fix Canvas kind number.
5186 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5188 * plugin.cpp, plugin.h, plugin-class.cpp: Fix setter for source property.
5190 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5192 * plugin.cpp, plugin.h: Add sourceUrl to get information about base source
5193 url. New Stream also check if request is for source file, if not return
5194 NP_NORMAL to be used later by downloader functions.
5196 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5198 * plugin-class.cpp, plugin-class.h: Remove macro STRING_TO_NPVARIANT, create
5199 method StringToNPVariant and change all reverences from macro to method.
5200 StringToNPVariant also take care about NULL strings.
5202 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5204 * plugin.cpp, plugin.h, plugin-class.cpp: Implement initParams property.
5206 2007-06-15 Everaldo Canuto <ecanuto@novell.com>
5208 * plugin-class.cpp: Implement setters for enableFramerateCounter,
5209 enableHtmlAccess and windowless. This fields cant be set after
5210 initialization so just do nothing and return true.
5212 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5214 * plugin-glue.cpp: After PluginObject changes we can back to release objects
5215 and it fix segfault when browser closes.
5217 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5221 * plugin-class.h: Remove unneeded instance fields, and contructor, after
5222 implementation of PluginObject we have a better way to get instance
5225 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5227 * plugin-class.cpp: Change all PluginRootClass properties to use new object
5230 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5233 * plugin-class.h: Rename NPObject references to PluginObject, PluginObject
5234 class theres more useful information like instance and plugin.
5236 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5240 * Makefile.am: Downloader functions added.
5242 * plugin-glue.cpp: On NPP_Initialize call downloader_initialize.
5244 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5246 * plugin-class.cpp: In PluginDependencyObject:: ClassGetProperty return
5247 false instead of null because funtion is of type boolean. It fix message
5250 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5252 * plugin.cpp: Move rootclass declaration to plugin-class.
5254 * plugin.h: Remove inclusion of plugin-class.h.
5256 * plugin-class.h: Introduces PluginObject class inherited from NPObject and
5257 add rootclass declaration.
5259 * plugin-class.cpp: Uses PluginObject instead of NPObject, also make use of
5260 object in 'source' property getter.
5262 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5264 * plugin.cpp, plugin.h: Add a new member finalize that must be calling
5265 instead of delete, we must later found a way to fix reload problems.
5267 * plugin-glue.cpp: Call finalize instead of delete.
5269 * TODO: Some notes about this bad implementation.
5271 2007-06-14 Everaldo Canuto <ecanuto@novell.com>
5273 * plugin-class.cpp: Add setter for control.source property.
5275 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5277 * plugin.cpp, plugin.h: isLoaded property added.
5279 * plugin-class.cpp: Implement control.isLoaded wrapper.
5281 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5284 - Take some notes on properties that cant be set after initialization.
5285 - Create macho STRING_TO_NPVARIANT to standardize the way how strings are
5286 returned to jscript calls.
5289 - Implement control.source using STRING_TO_NPVARIANT macro.
5290 - Uses STRING_TO_NPVARIANT macho in control.settings.version.
5292 * plugin.h: Add source property.
5294 * plugin.cpp: Set source on initialization.
5296 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5298 * plugin.cpp, plugin.h:
5299 - Move static rootobject to class field to get working pages with more than
5300 one moonlight control.
5301 - Implement param source for html object elements, this is default way to
5302 tell plugin which xaml it must load.
5304 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5306 * plugin-class.cpp, plugin-class.h:
5307 - Move instance field from PluginRootClass to PluginClass because most
5308 classes can make use of this field, class constructor is also changed to
5309 receive instance as parameter.
5310 - Remove host field from PluginDependencyObject, host can be accessed using
5313 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5315 * plugin-class.cpp: Implement "control.content" proeprties.
5317 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5319 * TODO: Added to include information about features that we know that is
5320 not current supported. Can be use for now to take some notes to be read
5323 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5325 * plugin-class.h: Add comments about read write/read only on properties.
5327 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5329 * plugin-class.cpp, plugin-class.h: Add SetProperty to PLUGIN_PROPERTIES
5330 and implement it for all classes.
5332 2007-06-13 Everaldo Canuto <ecanuto@novell.com>
5334 * plugin-class.cpp, plugin-class.h:
5335 - Fix IndexOf method.
5336 - Create and uses macros PLUGIN_PROPERTIES and PLUGIN_METHODS to define
5337 properties and methods.
5338 - Uses arrays to define properties and methods.
5339 - Use NPID macro to get string identifier.
5341 2007-06-12 Everaldo Canuto <ecanuto@novell.com>
5343 * plugin-class.cpp: Fix dependency of PLUGINROOTCLASS_PCOUNT in property
5344 array initialization.
5346 2007-06-12 Everaldo Canuto <ecanuto@novell.com>
5348 * plugin-class.cpp, plugin-class.h:
5349 - Implement IndexOf method that uses and array.
5350 - implement properties array.
5351 - ClassHasProperty now uses IndexOf.
5353 2007-06-12 Everaldo Canuto <ecanuto@novell.com>
5355 * Makefile.am: Fix LIBADD to include MOON_LIBS instead of two times
5358 2007-06-12 Everaldo Canuto <ecanuto@novell.com>
5360 * plugin-class.cpp, plugin-class.h: Get content and settings as a plugin
5363 2007-06-12 Everaldo Canuto <ecanuto@novell.com>
5365 * plugin.cpp, plugin.h: PluginContent class added.
5367 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5369 * plugin.cpp, plugin.h: Remove unused CreateDemoControls method.
5371 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5373 * plugin.cpp: Remove unused code and fix function names.
5375 * moonlight.h: Remove ";" on end of PLUGIN_DESCRIPTION define.
5377 2007-06-11 Atsushi Enomoto <atsushi@ximian.com>
5379 * Makefile.am : build fix. without -f rm fails.
5381 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5383 * plugin-class.cpp, plugin-class.h: Remove unused method ClassAllocate
5384 and fix all debug messages.
5386 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5388 * plugin.cpp: Fix object creation using NPN_RetainObject to increment
5389 reference count as described in Mozilla documentation.
5391 * plugin-class.cpp: On ClassDeallocate uses NPN_ReleaseObject that
5392 checks for references and release object when reference count is equal
5393 zero. It see to be solve all remaining segfault when browser closes.
5395 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5397 [Refactory jscript runtime code]
5399 * plugin-class.cpp, plugin-class.h: Create new class PluginRootClass,
5400 to be a proxy for javascript runtime calls, old code on plugin instance
5401 was moved here and all segfault related to script stuff was gone.
5403 * plugin.cpp, plugin.h: Remove jscript runtime related code and use
5406 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5410 * plugin.h: Fix remaining config.h -> moonlight.h.
5412 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5414 * moonlight.h: Define RUNTIME to enable/disable mono runtime
5415 integration. Its because right now it fails when open a page with
5416 script so we can comment /#define RUNTIME to get plugin working in
5419 * plugin.cpp: Dont call vm_load_xaml when RUNTIME is not defined.
5421 * plugin-glue.cpp: Dont call vm_init when RUNTIME is not defined.
5423 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5425 * moon-plugin.cpp: Renamed to plugin.cpp.
5426 * moon-plugin.h: Renaned to plugin.h.
5427 * config.h: Renaned to moonlight.h.
5429 * plugin-class.h, plugin-glue.cpp: Update includes.
5431 2007-06-11 Miguel de Icaza <miguel@novell.com>
5433 * Makefile.am: Delete the ~/.mozilla/plugins/libmoon.so in case it
5434 was around, that was the painful bug.
5436 * moon-plugin.cpp (CreateWindow): Do not create a canvas, nor
5437 attach it, let Mono do that.
5438 (StreamAsFile): Request that the VM loads the file, this will
5439 change to something else later when we use the Silverlight object
5442 * moonlight.cs: Implement some bits, it currently only loads the
5443 XAML file, it needs to create a new appdomain.
5445 2007-06-11 Everaldo Canuto <ecanuto@novell.com>
5449 * mono.cpp: Rename moon.cpp to moon-mono.cpp.
5451 * moon-mono.h: Add header information.
5454 * config.h: Add constant MOON_1_0 and MOON_1_1, when 1.1 is define
5455 compile also mono runtime, it is disabled by default since mono runtime
5456 give us some crashes right now.
5458 2007-06-10 Everaldo Canuto <ecanuto@novell.com>
5460 * Makefile.am: config.h added.
5468 * moon-plugin.h: Include config.h and remove unneeded includes.
5470 2007-06-10 Everaldo Canuto <ecanuto@novell.com>
5472 * moon-plugin.cpp: Remove DEMO mode and set SCRIPTING mode by default.
5474 2007-06-10 Miguel de Icaza <miguel@novell.com>
5476 * moonlight.cs: the startup code, will contain the helper classes
5477 to create new AppDomains for each instance create.
5479 * mono.cpp: New file, embeds the Mono VM.
5481 2007-06-10 Everaldo Canuto <ecanuto@novell.com>
5483 * plugin-glue.cpp: Call plugin instance destructor, now it dont causes
5484 error when you reload page.
5486 * moon-plugin.cpp: Only destroy container widget, if you dont destroy it
5487 when you start with page plugin, go to another page and close browser,
5488 a segfault is emited before browser exits. Now navigating for some time in
5489 silverlight pages looks to dont emit segfault if scripting is disabled.
5491 * plugin-class.cpp: Remove debug message from class constructor.
5493 2007-06-09 Everaldo Canuto <ecanuto@novell.com>
5498 - Read xaml file from src tag and display contents.
5499 - Disable demo box, now we have a better demo under xaml file.
5501 2007-06-09 Everaldo Canuto <ecanuto@novell.com>
5503 * Makefile.am: test added to subdirs.
5505 2007-06-09 Everaldo Canuto <ecanuto@novell.com>
5509 * moon-plugin.h: Rename DEBUG to DEBUGMSG.
5511 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5514 * moon-plugin.cpp: Change demo code to class method CreateDemoControls.
5516 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5518 * moon-plugin.cpp: Add canvas, connect it to surface and get demo working
5521 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5524 * moon-plugin.cpp: Rename CreateControls to CreateWindow.
5526 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5528 * Makefile.am: Add $(MOON_LIBS) to linker options.
5530 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5532 * plugin-glue.cpp: Dont delete plugin object since right now it causes some
5533 segfault when change to another page.
5535 * moon-plugin.cpp: Got scripting mode enabled by default.
5537 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
5539 * plugin-glue.cpp: Fix plugin destruction.
5540 * moon-plugin.cpp: Change button to gtk label with plugin name and version.
5542 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5544 * plugin-glue.cpp: Set instance data to NULL to prevent error when browser
5548 - Disabled demo mode.
5549 - Enabled Scripting mode.
5550 - Fix runtime object creation, dont user NPN_RetainObject anymore.
5551 - Fix also object properties creation (settings).
5552 - Release object on class destructor.
5554 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5556 * moon-plugin.cpp: Simplify controls creation and add a button when you are
5557 not in demo mode. It is just for now to made some tests.
5559 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5561 * moon-plugin.cpp: Remove runtime initialization because it is wrong place.
5562 * plugin-glue.cpp: Add gtk and runtime initialization to NPP_Initialize.
5564 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5566 * moon-plugin.cpp: Add some initialization code to prevent some segmentation
5569 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5571 * moon-plugin.cpp: Add SCRIPTING and DEMO macros to make available only
5572 tested features, it mean that developers must uncomment this MACRO lines
5573 before work on scripting and libmoon stuff.
5575 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5577 * moon-plugin.cpp: Fix gtkplug creation fro 64bit systems.
5579 * Makefile.am: Add -lavformat to link options.
5581 Thanks Grendel for this patches.
5583 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5585 * moon-plugin.h: Change version number 0.99.0, SilverLight scripts searchs
5586 for version > 0.95.1.
5588 * test/index.html: Small fixes in test page.
5590 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5592 * test/index.html: Add javascript settings test.
5595 * moon-plugin.h: Implementing Settings class.
5597 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5600 * moon-plugin.h: Implement runtime properties structure and 'version'
5603 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5605 [PluginClass added to handle script objects]
5609 * Makefile.am: PluginClass added.
5612 * moon-plugin.h: PluginInstance now inherit from PluginClass, also
5613 scriptclass was removed and "this" is used in NPN_CreateObject. For
5614 NPN_CreateObject we can now always use classes inherited by PluginClass.
5616 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5618 * Makefile.am: Remove idl related code, new object system dont need idl or
5620 * nsIScriptableMoonPlugin.h: deleted.
5621 * nsIScriptableMoonPlugin.idl: deleted.
5623 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5625 * plugin-glue.cpp: Fix the instance initialization problems, the object
5626 instance was empty after creation.
5628 2007-06-07 Everaldo Canuto <ecanuto@novell.com>
5632 * plugin-glue.cpp: Fix SetValue declaration.
5634 * plugin-entry.cpp: Fix a lot of declarations, support for win and mac,
5635 support for runtime version checking and some other minor fixes.
5637 2007-06-06 Everaldo Canuto <ecanuto@novell.com>
5639 * moon-plugin.cpp: Comment container destructor to prevent segfault.
5641 2007-06-06 Everaldo Canuto <ecanuto@novell.com>
5643 * moon-plugin.cpp: Fix API change for Canvas.
5645 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
5647 * moon-plugin.cpp: Fix API change for SolidColorBrush.
5649 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5651 * moon-plugin.h: Add PLUGIN_OURNAME and PLUGIN_OURVERSION constants to
5652 specify our internal name and version that differs from plugin version
5653 detected by browser. SilverLight javascripts checks for WPF plugin and
5656 * moon-plugin.cpp: Change runtime initialization to CreateControls, before
5659 * plugin-glue.cpp: Fix memory allocation problems in NPP_New.
5661 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5665 * moon-plugin.h: Add initialization and remove demo transformation.
5667 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5669 [Remove ScriptablePeer code]
5671 * nsScriptablePeer.h, nsScriptablePeer.cpp: Removed.
5673 * plugin-glue.cpp: Fix debugger messages.
5677 * moon-plugin.h: Remove ScriptablePeer code since now Mozilla use
5680 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
5682 * moon-plugin.cpp: Fix API change for Rectangle.
5684 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5686 * moon-plugin-glue.cpp: Splited in plugin-glue.cpp and plugin-entry.cpp.
5687 * plugin-glue.cpp: Fix 'undefined symbol' creating NPP_SetValueX.
5689 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5691 * Makefile.am: Add some linker flags, it prevents crash on Epiphany.
5693 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5695 * test/index.html: Add script to demo html page.
5697 2007-06-05 Everaldo Canuto <ecanuto@novell.com>
5699 * moon-plugin.cpp: Add runtime init to demo code.
5701 2007-06-04 Everaldo Canuto <ecanuto@novell.com>
5703 * plugin/Makefile.am: Generate and install .xpt for install-plugin target.
5705 2007-06-04 Everaldo Canuto <ecanuto@novell.com>
5707 [Implement scriptable to plugin]
5709 * plugin/test/index.html: Sample jscript included.
5711 * plugin/Makefile.am: Generates .h from idl file use xpidl.
5713 * plugin/moon-plugin.h,
5714 * plugin/moon-plugin.cpp,
5715 * plugin/moon-plugin-glue.cpp: Implement scriptable and some clean up.
5717 * plugin/nsIScriptableMoonPlugin.h,
5718 * plugin/nsIScriptableMoonPlugin.idl,
5719 * plugin/nsScriptablePeer.cpp,
5720 * plugin/nsScriptablePeer.h: New scriptable classes.
5722 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5724 * moon-plugin-glue.cpp,
5726 * moon-plugin.cpp: Fix GetValue and implement SetValue.
5728 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5730 * moon-plugin.h: Change plugin name, version and description to mimic
5731 SilverLight and can be recognize as a valid plugin.
5733 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5735 * moon-plugin.c: Destroy objects on class destructor to prevent browser
5738 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5740 [Clean up demo and make some class fields private ]
5742 * moon-plugin-glue.c,
5744 * moon-plugin.c: Now just a surface control is added to plugn container,
5745 some field is now private demo was refactored.
5747 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5749 * Makefile.am: Compile if needed for install-plugin target.
5751 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5753 [Move to c++ based classes ]
5755 * moon-plugin-glue.c: Fix getvalue to return error when no instance
5759 * moon-plugin.c: Change all function to class methods, also move wrapper
5760 functions to moon-plugin-glue.
5762 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5766 * moon-plugin-glue.c: Remove moon_plugin_initialize and moon_plugin_shutdown
5767 since whe alread have NP_Initialize and NP_Shutdown. Also change
5768 PluginInstance structure to class (complete class suppont comming soon).
5770 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5772 * moon-plugin-glue.c: Some comments and stetic changes.
5774 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5776 * moon-plugin.h: Mime type description chage to 'WPFe Plug-In' to handle
5777 SilverLight objects.
5779 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5782 * moon-plugin.h: Remove unused members to provide a clean code.
5784 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5786 * Makefile.am: Fix link options.
5788 2007-06-03 Everaldo Canuto <ecanuto@novell.com>
5790 * moon-plugin-glue.c:
5792 * moon-plugin.h: Rename initialise to initialize.
5794 * Makefile.am: Add libmoon to link and install it on plugin dir.
5796 2007-06-02 Everaldo Canuto <ecanuto@novell.com>
5798 * moon-plugin-glue.c: Renamed to moon-plugin-glue.cpp.
5799 * moon-plugin.c: Renamed to moon-plugin.cpp.
5800 * Changelog: Create a separated change log for plugin.
5801 * Makefile.am: Renamed to moon-plugin.cpp.
5802 * moon-plugin.h: Renamed to moon-plugin.cpp.
5804 [Also add a sample to show libmoon features in browser]