Summary: | REGRESSION (r70748): A Java applet on netdania.com won't load | ||
---|---|---|---|
Product: | WebKit | Reporter: | walton.w.smith |
Component: | Java | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Major | CC: | aestes, bfulgham |
Priority: | P1 | Keywords: | InRadar, Regression |
Version: | 528+ (Nightly build) | ||
Hardware: | Mac | ||
OS: | OS X 10.5 | ||
URL: | http://www.netdania.com/Products/live-streaming-currency-exchange-rates/real-time-forex-charts/FinanceChart.aspx | ||
Bug Depends on: | 45679 | ||
Bug Blocks: |
Description
walton.w.smith
2010-12-14 10:10:57 PST
This site complains about "Multiple Java versions installed" for me in ToT. But examples like <http://java.sun.com/applets/jdk/1.4/demo/applets/ArcTest/example1.html> work just fine. I tested on Mac OS X 10.6.4. Regression caused by http://trac.webkit.org/changeset/70748. The markup the site uses to embed the applet looks like: <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" type="application/x-java-applet" ...> We made the decision in r70748 to render fallback for any object with a non-empty classid attribute, which is what is happening in this case. There is discussion in that changeset's bug about being more lenient and handling object elements so long as they have a valid type attribute. Doing this would fix this regression without re-introducing the AtlasCT issue. Here is the snippet this site uses to load the java applet: if(BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Explorer") { document.writeln('<object id="detectjvmapplet" name="detectjvmapplet" WIDTH = "1" HEIGHT = "1" codetype="application/java" type="application/x-java-applet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">'); document.writeln('<param name = "code" VALUE = "DetectJVM.class" />'); document.writeln('<param name = "codebase" VALUE = "/JavaClasses/" />'); document.writeln('<param name = "mayscript" VALUE = "true"/>'); document.writeln('<param name= "scriptable" VALUE="true"/>'); document.writeln('</object>'); } else { document.writeln('<applet code="DetectJVM.class" id="detectjvmapplet" codebase="/JavaClasses/" width="0" height="0"></applet>'); } Of course if they didn't send Safari down an IE-specific code path everything would work fine :( (Note that UA spoofing won't work on this site since BrowserDetect.browser is set to 'Safari' based on navigator.vendor, not navigator.userAgent). |