Safari 3.1.525.9 Passing 'this' from an applet to JS doesn't work in Safari. Works fine in FF, Opera and IE. Will attach examples.
Created attachment 19428 [details] Two applet tests (included java sources) Test1 tries to pass 'this' to JS and doesn't work in Safari. Test2 doesn't try to pass 'this' to JS and things work fine. They both work fine in FF and Opera. .class files were built with Sun jdk6-u4 (win32) and I'm using jre6-u4.
Created attachment 19431 [details] IE-compatible test Here's test1 again, but it uses the applet element so you can compare with IE also. It works in IE, Firefox and Opera, but fails in Safari. The actual error the java console shows is: java.net.MalformedURLException: no protocol: at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at java.net.URL.<init>(Unknown Source) at sun.plugin.liveconnect.SecureInvocation.checkLiveConnectCaller(Unknown Source) at sun.plugin.liveconnect.SecureInvocation.access$000(Unknown Source) at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source) at sun.plugin.javascript.navig5.JSObject.JSObjectInvoke(Native Method) at sun.plugin.javascript.navig5.JSObject.invoke(Unknown Source) at sun.plugin.javascript.navig5.JSObject.call(Unknown Source) at AppletTestOne.init(AppletTestOne.java:13) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
We have the same problem on Safari. We are also getting the following when a http connection is initiated when in a javascript to java live connect call. java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.17:80 connect,resolve) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
Java applet support is long gone, closing.