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