Opened 9 years ago

Closed 4 years ago

#11531 closed defect (patchwelcome)

Silverlight renderer boken on FF >= 3.6.4

Reported by: johnfreeman Owned by: Eugene Lazutkin
Priority: high Milestone: 1.13
Component: DojoX GFX Version: 1.7.0b1
Keywords: Cc:
Blocked By: Blocking:

Description

Since Firefox changed their plugin architecture in version 3.6.4 the onload event is getting fired too early for Silverlight. DojoX GFX is trying to use dojo.byId(pluginName).content before it is available and this generates an exception. Introducing a short wait loop that checks whether dojo.byId(pluginName).content is available fixes the problem.

I know this is really a problem Firefox / Silverlight should sort out themselves. But we can't dictate what version of a particular browser / plugin our users have installed. Adding the workaround to DojoX GFX would be quite simple and unlikely to cause any problems.

FYI: I'm running Firefox 3.6.8 Silverlight 4.0.50524.0 Windows XP SP3

Change History (6)

comment:1 Changed 9 years ago by Eugene Lazutkin

Milestone: tbdfuture
Status: newassigned

comment:2 Changed 8 years ago by Eugene Lazutkin

Resolution: worksforme
Status: assignedclosed

Works for me with the current trunk. Please retest.

comment:3 Changed 8 years ago by Eugene Lazutkin

Milestone: future1.6

comment:4 Changed 8 years ago by Mike Wilcox

Milestone: 1.61.8
Resolution: worksforme
Status: closedreopened
Version: 1.51.7.0b1

I can confirm this.

An alternative fix seems to be to use the EMBED node instead of an OBJECT node and then set rawNode to 'sender' instead of dojo.byId(pluginName).content.root;

That is not thoroughly tested though. I found that a timeout works as the OP suggests. silverlight.js line 565:

setTimeout(function(){
	if(!s.rawNode){
		s.rawNode = dojo.byId(pluginName).content.root;
		// register the plugin with its parent node
		surfaces[s._nodeName] = parentNode;
		s.onLoad(s);
	}
}, 1);

I can submit the fix if you'd like, but I won't need it in 1.7, it can wait until 1.8.

comment:5 Changed 7 years ago by Colin Snover

Milestone: 1.82.0

1.8 has been tagged; moving all outstanding tickets to next major release milestone.

comment:6 Changed 4 years ago by dylan

Milestone: 2.01.12
Resolution: patchwelcome
Status: reopenedclosed

Silverlight is mostly abandoned as a tech, so closing as patchwelcome. If someone wants to create a robust pull request, I'll review and land it.

Note: See TracTickets for help on using tickets.