|
Java Embedding Plugin Publisher's Description:
The Java Embedding Plugin is a utility that allows other web browsers than Apple's Safari to use the most recent versions of Java (1.4.X) on Mac OS X. When used together with an updated version of Mozilla's MRJ Plugin Carbon (included in this distribution), the Java Embedding Plugin's functionality is currently available to recent versions of Mozilla, Firefox and Camino. But in principle any web browser could use one of the Java Embedding Plugin's two APIs to add support for Java 1.4.X.
What's new in this version:
* Changed the "version test" link in the Java Embedding Plugin's "about:plugins" display from http://www.java.com/en/download/help/testvm.xml to http://gemal.dk/browserspy/java.html.
* A browser window's minimize button is no longer disabled by loading at least one Java applet in the window. (This happens only in Carbon-based browsers (Firefox and Seamonkey), on OS X 10.4 and above, and only with JEP 0.9.6.)
* Changed the way Java applets' URLs are logged to the system console, to avoid problems (including crashes) that can happen if the URL inadvertently contains printf escape sequences. For example, if the applet's URL contains "with space", the space will be encoded (as "with%20space") -- but "%20s" is a printf escape sequence indicating a string, of which at most 20 characters will be printed.
* The Java Embedding Plugin now sets the maximum heap size (the javaplugin.maxHeapSize System property) to 96 MB ("96m") on OS X 10.4 and above (unless the user has set this value explicitly in the Java Control Panel). The default value for this was (and still is) 64 MB. But Apple's Mac OS X v10.4 Release 5 sets the maximum heap size to 96 MB for Safari and other WebKit browsers, so I've changed the JEP to conform to this behavior.
* Added a workaround for the "Java GIF File Parsing Memory Corruption Vulnerability" (CVE-2007-0243).
* Fixed a flaw in a previous workaround (for Apple keyboard focus bugs) that disables keyboard input in a Java modal dialog on OS X 10.4 and above. This resolves bmo bug 360313 comment #1.
* Resolved a seldom-encountered (and trunk-only) crash bug caused by trying to process an invalid NSView object in an NSWindow object that has just been dismissed, but is still valid.
* Resolved a bizarre (and seldom encountered) crash bug caused by a flaw in a workaround for Apple bugs in the handling of Java modal dialogs in Carbon-based browsers: After you load at least one signed Java applet in any browser window, the Page Setup dialog will crash when you dismiss it (on OS X 10.4.X (and presumably above)).
* Fixed an old bug in the MRJPlugin that (very rarely) causes crashes when doing Java-to-JavaScript LiveConnect.
* Created a new workaround for bmo bug 312072 -- one that works on Mac OS X 10.2.8, and works better on OS X 10.3.X.
* Disabled the "modality" of all Java modal windows and dialogs on OS X 10.2.8 and 10.3.X. The windows and dialogs still display and work -- they're just no longer modal.
* Made several changes to improve the efficiency of the Java garbage collector. The most important of them works around a design flaw in Apple's Java SE 6.0 Release 1 Developer Preview 6 and its Java 6.0 and J2SE 5.0 JVMs on OS X 10.5 (Leopard), which cause the following problem -- clicking at least once on a Java applet prevents it from being garbage collected!
* Changed how the Java Embedding Plugin keeps track of "jobs" that are running on secondary threads while the JEP is waiting (and spinning the event loop) on the main thread. Earlier versions could sometimes end up "waiting" for a job that had already finished -- leading to hangs or other strange behavior. (These problems only occurred rarely, and only on OS X 10.4.X and above.)
* Added several workarounds for actual and potential memory leaks on OS X 10.3.X and 10.2.8. These are caused by bugs in Apple's JVMs, though for some reason they happen more often in Camino than in Firefox or Seamonkey.
* Added code to make it less likely that windows a Java applet has created will remain open after the applet has been destroyed. In earlier versions of the JEP, these windows were always destroyed when an applet's tab or window was closed, but often weren't destroyed when the applet's page was reloaded.
* Changed how Java applets are destroyed, to make it less likely that one or more of an applet's threads will remain running after this has happened.
* Substantially improved the EventMunger class in MyEventQueue.java. This should reduce the (already low) frequency of hangs on Mac OS X 10.2.8.
|