Ticket #5846 (assigned defect)

Opened 9 months ago

Last modified 3 months ago

GFX Silverlight renderer detection wont back off to SVG

Reported by: peller Owned by: elazutkin
Priority: normal Milestone: future
Component: DojoX GFX Version: 1.0
Severity: normal Keywords:
Cc:

Description (last modified by elazutkin) (diff)

from Philip Taunton (IBM):

In trying to setup a web page that uses Silverlight for GFX drawing, I've found that the detection of the Silverlight plugin succeeds on a machine that does not have the plugin installed. The web page is setup with djConfig="gfxRenderer: 'silverlight,svg,vml'" such that it should back off to SVG if the Silverlight plugin is not found.

The page works fine on a system with the SL plugin installed, but on a system with no SL, it just displays the standard Microsoft "Get the plugin" banner rather than choosing SVG (browser is Firefox 2.0.0.11). There is also an associated JavaScript? error being produced on the console:

"dojo.byId(pluginName) has no properties"

Doing some investigation, it looks like the check for Silverlight on line 22 of dojox/gfx.js will pass purely if you have loaded the Silverlight.js file from Microsoft regardless of whether the plugin is actually installed. I believe a call to Silverlight.isInstalled(version) will be necessary to confirm the true existence of the Silverlight plugin.

Change History

Changed 9 months ago by elazutkin

  • status changed from new to assigned
  • milestone set to 1.1.1

Changed 9 months ago by elazutkin

The technical problem is deeper than that, and Microsoft refused to fix the problem in their Silverlight detection code. I'll try to implement our own Silverlight detection code instead of relying on their implementation.

Changed 5 months ago by elazutkin

  • description modified (diff)

The detection problem is multiplied by inability of Silverlight.js to support the latest Firefox and Safari browsers. All gory details can be read in this thread: https://bugzilla.mozilla.org/show_bug.cgi?id=385720#c15. It looks like the only way to go forward is to ditch Silverlight.js completely and rewrite its buggy code. It includes the detection and the instantiation.

Changed 5 months ago by elazutkin

(In [14262]) gfx: better Silverlight detection. Refs #5846. !strict

Changed 5 months ago by elazutkin

(In [14325]) gfx: getting rid of buggy Silverlight.js => no external dependencies, smaller footprint, faster instantiation. Refs #5846. !strict

Changed 5 months ago by elazutkin

The code in [14325] works on Windows with IE and FF. It "almost" works on Linux with Moonlight (requires more experiments, and possible complication of API :-( ). It needs to be tested with Safari on Mac to see if it works as expected (may need some tweaking).

As soon as we good on Mac and Linux, and #6083 and #6939 are fixed, we can move the Silverlight renderer from the "experimental" to production, and move ahead of VML in the renderer string (gfxRenderer).

Changed 5 months ago by elazutkin

(In [14350]) dojox.gfx.silverlight: adding a correct object creation for Safari. Refs #5846. !strict

Changed 5 months ago by elazutkin

(In [14351]) dojox.gfx.silverlight: adding general provisions to implement the asynchronous creation of a surface for silverlight. Refs #5846. !strict

Changed 5 months ago by elazutkin

[14353] is related too.

Changed 5 months ago by elazutkin

Changed 3 months ago by elazutkin

  • milestone changed from 1.2 to future

Moving all open ticketd to the future.

Changed 3 months ago by elazutkin

The only known problem is the Moonlight --- it is detected properly but crashes the browser. It was confirmed by the Mono team. I keep this ticket open to track this problem.

Note: See TracTickets for help on using tickets.