Search Issue Tracker

Not Reproducible

Votes

0

Found in

3.5

Issue ID

467272

Regression

No

UnityObject.js infinite loop in detecting installed Web Player when Chrome 'Click to Play' plugin option is set

Webplayer

-

Browser support detection for Unity through the UnityObject.js script has a flaw. If the user has a plugin that prevents the automatic loading of plugins (Unity/Flash/etc), or has turned on "Click to play" or "Block all" in Chrome's Content Settings panel, UnityObject.js will endlessly attempt to load and unload a small Unity scene. The small scene is used for determining the capabilities of the particular install, most notably the version number.

Javascript can be used to determine whether Unity is installed or not without loading an actual Unity scene. Instead of telling a user who has already installed Unity to install it, the page should have a separate message stating that Unity is blocked, and provide a clickable "Load Anyway" link that will load the scene normally. Those users with some click to play functionality would then only need to click again. I might also suggest linking to a utility site that shows users how to disable the plugin blocking for this particular site if they don't have click to play capabilities. Something like what they do for http://activatejavascript.org/

I have attached the code for my detection suite that I used to determine Unity installs, Flash capabilities, and other things. I have disabled the code that sends the information to our servers, and instead only displays its information directly to the page. You need to run the index.html page from within a server (local or remote) due to Flash access rules. Try running this page with Chrome's Click to play feature on.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.