Java Embedding Plugin Changelog

What's new in Java Embedding Plugin 0.9.7.5

Mar 26, 2011
  • Fix a security-related bug in the MRJ Plugin JEP, having to do with
  • JavaScript-to-Java LiveConnect.
  • This resolves the following bug (to which access is, for the time
  • being, restricted):
  • https://bugzilla.mozilla.org/show_bug.cgi?id=634724
  • Work around changes in Apple's latest Java updates that cause
  • previous versions of the Java Embedding Plugin to leak all Java
  • applets.
  • Apple's most recent Java updates (Update 4 for Mac OS X 10.6 and
  • Update 9 for Mac OS X 10.5) introduced changes that broke how the
  • JEP destroys applets.
  • a) On both OS X 10.5.X and 10.6.X, new threads on system
  • thread-groups can now only be created on the main thread.
  • b) A few version-specific quirks in the resources available for
  • destroying applets have now been eliminated. Now all the
  • 10.6-specific quirks have been backported to 10.5.
  • JEP 0.9.7.5 works around both of these changes. For more
  • information see AppletFrame.destroyApplet(),
  • AppletFrame.destroyAppletDirectly1() and
  • AppletFrame.destroyAppletDirectly2() in AppletFrame.java.
  • Work around another change in Apple's latest Java updates that can
  • cause spurious permission failures on OS X 10.6.X when applet code
  • is accessed via LiveConnect from JavaScript.
  • On OS X 10.6.X, applet code can fail to read the "http.agent"
  • property when called from JavaScript code. JEP 0.9.7.4 already
  • worked around this problem, but Apple has done something to break
  • this workaround. JEP 0.9.7.5 now uses another workaround.
  • For more information see ProxyClassLoader.getPermissions() in
  • ProxyClassLoaderFactory.java.

New in Java Embedding Plugin 0.9.7.4 (Mar 25, 2011)

  • Fix a security-related bug in the MRJ Plugin JEP, having to do with
  • JavaScript-to-Java LiveConnect.
  • This resolves the following bug (to which access is, for the time
  • being, restricted):
  • https://bugzilla.mozilla.org/show_bug.cgi?id=589041
  • The Java Embedding Plugin is now able to read user-specified Java
  • runtime parameters on OS X 10.5.X and 10.6.X, even in Apple's
  • latest Java Updates for these OS versions.
  • This resolves the following bug:
  • http://sourceforge.net/tracker/?func=detail&aid=3033144&group_id=107955&atid=649116
  • For more information see getRuntimeParamsFromJavaHome in
  • AppletView.m.
  • Allow Java applets to read the "http.agent" property. This
  • resolves a problem with JMOL applets (http://jmol.sourceforge.net/)
  • running on OS X 10.6.X: Before this change, they would always fail
  • with an access violation trying to read this property.

New in Java Embedding Plugin 0.9.7.3 (Mar 11, 2010)

  • Work around design flaws in Microsoft Silverlight and Apple's JVM to avoid crashes caused by a bad interaction between them.
  • Using earlier versions of the Java Embedding Plugin, doing the following always triggers a crash (at JVM_Lseek on OS X 10.6.X (SnowLeopard) and at libclient.dylib on OS X 10.5.X (Leopard)):
  • a) Load any Java applet. b) Load any Silverlight plugin. c) Load any Java applet ... and crash.
  • JEP 0.9.7.3 avoids these crashes by working around the design flaws that cause them. This resolves the following bugs:
  • https://bugzilla.mozilla.org/show_bug.cgi?id=532981 https://bugzilla.mozilla.org/show_bug.cgi?id=540640
  • For more information search on "jvmMachExceptionPorts" in AppletView.m.
  • Work around a bug in Apple's JVM that causes occasional crashes in getContext_ADCM. - This resolves the following bugs: http://sourceforge.net/tracker/?func=detail&aid=2800662&group_id=107955&atid=649116 https://bugzilla.mozilla.org/show_bug.cgi?id=533387 For more information see getContext_ADCM() in Handlers.m.
  • Work around a bug in Apple's JVM that causes the browser window to become inactive (and to lose keyboard focus) if you open a signed Java applet on OS X 10.5.X (Leopard). This bug has been present on OS X 10.6.X (SnowLeopard) from the beginning, and the Java Embedding Plugin has known how to work around it since the first SnowLeopard-compatible version (0.9.7). But as of Java for Mac OS X Update 4 it got "backported" to Leopard. The solution is to also backport the JEP's workaround to Leopard. This resolves https://bugzilla.mozilla.org/show_bug.cgi?id=508994.
  • For more information see canBecomeKeyWindow_CAW() and PoseAsCocoaAppWindow() in Handlers.m.
  • Fewer crashes at Java_netscape_javascript_JSObject_call. - For reasons that aren't entirely clear, earlier versions of the Java Embedding Plugin occasionally crash at Java_netscape_javascript_JSObject_call. JEP 0.9.7.3 adds code to reduce the likelihood of these crashes.
  • This resolves https://bugzilla.mozilla.org/show_bug.cgi?id=530728.
  • For more information search on "pluginWindowPort" in LiveConnectNativeMethods.cpp.
  • Work around occasional hangs loading JavaFX applets. For reasons that aren't entirely clear, code in previous versions of the Java Embedding Plugin interacted badly with code in Sun's new JavaFX client platform, sometimes triggering hangs. It turns out this code is no longer necessary, and removing it seems to clear up the hangs.
  • This resolves https://bugzilla.mozilla.org/show_bug.cgi?id=506794.
  • For more information search on "MySimpleEventQueue" in MRJPluginJEP-1.6-0.9.7-0.9.7.3-diff.txt.
  • Now logs to the console instead of crashing at 'registerNatives'. Old versions of the Java Embedding Plugin (prior to 0.9.7) crashed at 'registerNatives' whenever they were run on OS X 10.6.X (SnowLeopard). These crashes were fixed long ago. But there are still some crashes at this address, and there isn't sufficient information to resolve them.
  • These crashes are triggered by uncaught Objective-C exceptions. So they can be "turned into" error messages by "catching" them. This is what JEP 0.9.7.3 does. With luck it may be possible to use the information in these error messages to resolve the remaining failures at 'registerNatives' -- those not caused by old JEP versions' incompatibility with SnowLeopard.
  • This resolves https://bugzilla.mozilla.org/show_bug.cgi?id=525566.
  • For more information see Java_callRegisterNatives() in AppletView.m.
  • Fewer hangs while accessing a browser cookie. Starting with JEP 0.9.7, browser code to get and set browser cookies is always called on the main thread (as it should be). But since this code is almost always called from Java code running on secondary threads, it's now possible for thread contention to cause hangs when an applet tries to get or set a browser cookie.
  • JEP 0.9.7.3 avoids two common kinds of thread contention which can cause these hangs. This change resolves http://sourceforge.net/tracker/?func=detail&aid=2832144&group_id=107955&atid=649116.
  • For more information see InstallRunLoopSources() in Controller.m, and search on "mainThreadBlockedLevel" in CSecureEnv.cpp and MRJPlugin.cpp.

New in Java Embedding Plugin 0.9.7.2 (Jun 3, 2009)

  • Mouse-move tracking now works in Java-created windows.
  • Versions 0.9.7 and 0.9.7.1 of the Java Embedding Plugin had a bug that prevented mouse-moved events being sent to Java applets running in Java-created windows.
  • This resolves the following: https://bugzilla.mozilla.org/show_bug.cgi?id=495278
  • Mouse events and timers are now handled much more responsively.
  • When you move or drag the mouse across a Java applet that responds to mouse moves or mouse drags, you're now much less likely to see gaps or delays. The same is true of applets that change rapidly on a timer (e.g the NOAA radar applet at http://www.weather.gov/radar_tab.php).
  • The "Java Information" link in the JEP's about:plugins display has been updated (from http://gemal.dk/browserspy/java.html to http://browserspy.dk/java.php).
  • This resolves the following: ttps://bugzilla.mozilla.org/show_bug.cgi?id=494150

New in Java Embedding Plugin 0.9.7.1 (May 19, 2009)

  • Work around an Apple bug that causes occasional crashes as the Java Virtual Machine is loaded (which happens as the first Java applet is loaded).
  • Make the JEP compatible with Apple's current Developer
  • Preview (9M3058) of their Java for Mac OS X 10.5 Update 4.
  • This Developer Preview changes the location of two Java archives (deploy.jar and plugin.jar) needed by the Java Virtual Machine for running Java applets, which causes the JEP (and the browser) to hang as the JVM is loaded.
  • JEP 0.9.7.1 works around this by first checking the new location for these archives, and loading them from this location if found.
  • Work around an Apple bug and a Mozilla bug that (together) cause occasional crashes using the keyboard in windows created by Java applets.

New in Java Embedding Plugin 0.9.7 (Apr 17, 2009)

  • The Java Embedding Plugin now supports current seeds of Apple's forthcoming Mac OS X 10.6 (SnowLeopard).
  • Support has been dropped for Mac OS X 10.2.8 (Jaguar) and 10.3.X (Panther).
  • It's now much easier to build the Java Embedding Plugin from source. This was made possible by dropping support for Mac OS X 10.2.8 and 10.3.X.
  • Code that allows Java applets to get and set browser cookies now always runs on the main thread (as it should).
  • It previously ran on the calling code's thread (i.e. one of the applet's threads). This resolves the following bugs: https://bugzilla.mozilla.org/show_bug.cgi?id=417623, https://bugzilla.mozilla.org/show_bug.cgi?id=450663
  • The MRJ Plugin JEP now includes supported MIME types in its Info.plist file.
  • Previously they were only available in a resource (*.rsrc) file. This change makes it possible for Firefox to drop support for resource files, as per the following bug: https://bugzilla.mozilla.org/show_bug.cgi?id=468678
  • Java applets are now less likely to become invisible when switching to or from the browser window that contains them.
  • Java applets can no longer grab the keyboard focus when they're invisible in another tab. This sometimes caused keyboard entry to stop working.
  • Java applets that use NSClipView no longer bleed into other tabs. This resolves the following: https://bugzilla.mozilla.org/show_bug.cgi?id=485991.
  • Java applets no longer interfere with the titlebar's focus appearance in Firefox.In previous versions of the JEP, having a Java applet visible in a browser window could cause the titlebar of a unfocused window look focused, or vice-versa. This change resolves https://bugzilla.mozilla.org/show_bug.cgi?id=430207.
  • Java applets no longer cause parts of the tab bar to turn black in Camino. This resolves https://bugzilla.mozilla.org/show_bug.cgi?id=430876.

New in Java Embedding Plugin 0.9.6.5 (Oct 27, 2008)

  • JEP 0.9.6.5 will unbreak JavaScript-to-Java LiveConnect in current Mozilla.org distros and in the Firefox 3.1 release ... presuming there are no further changes to the nsIScriptSecurityManager interface.
  • This change resolves https://bugzilla.mozilla.org/show_bug.cgi?id=461230.

New in Java Embedding Plugin 0.9.6.4 (Apr 16, 2008)

  • Altered the MRJPluginJEP to accomodate changes to the nsIScriptSecurityManager interface in recent trunk versions of Mozilla.org browsers (including recent pre-release versions of Firefox 3). These changes brokeJavaScript-to-Java LiveConnect. JEP 0.9.6.4 will unbreak JavaScript-to-Java LiveConnect in current Mozilla.org distros and in the Firefox 3 release ... presuming there are no further changes to the nsIScriptSecurityManager interface.This change resolves https://bugzilla.mozilla.org/show_bug.cgi?id=421855.
  • The Java Embedding Plugin now sets the maximum heap size to 96 MB on OS X 10.4 and higher. This conforms with what Apple does in its Java plugin as of "Java for Mac OS X 10.4 Release 5".