JSJBridge Release History

Version Release Date Per-Browser
Price, AUD
JAR File Firefox
Extension
Chrome
Extension
Notes
1.8 2020-06-15 20 Download Download Download
  • The jsjbridge.jar Java library:
    • Embed JSON code to remove the external json.jar dependency.
    • Retry waits for request replies when the thread is interrupted.
  • Trigger a JavaScript window.jsjbridgeActive event when the JSJBridge code has been loaded and getElementById calls return a Java proxy rather than a normal HTML element.

    Code can now be like

      addEventListener('jsjbridgeActive', function() {
        var myHelper = document.getElementById('myApplet');
        myHelper.addEventListener('initialized',  function() { ... });
      });
    

    instead of

      var myHelper = document.getElementById('myApplet');
      myHelper.addEventListener('initialized',  function() {
        myHelper = document.getElementById('myApplet');
        ...
      });
    
  • On the Firefox version of the extension, disable the ability of Java to call eval on a JavaScript string. Mozilla believes this original feature of JSObject to be a security risk. It is still present on the Chrome/Chromium extension.
1.7 2019-10-16 20 Download Download Download
  • The Java JSObject call method can now take a second arguments parameter of (Object [])null, useful for when the target JavaScript function has a single array argument, preventing the first arguments parameter being interpreted as an array of arguments.
  • Fixed the unknown message "destroy" error message on page close or re-nav.
  • Include stack traces of any JavaScript exception in console/standard-error Java logs, rather than just the error type, making it easier to debug Java-to-JavaScript calls.
  • Move JSJBridge standard-error-only debug messages from level STDERR_ONLY (600) to level STDERR_ONLY_JSJBRIDGE_DEBUG (0), allowing use of the STDERR_ONLY level without including JSJBridge debug messages.
  • Once executed, remove the injected JSJBridge script from webpages, whose presence may not be expected by page DOM-manipulating code.
1.6 2019-05-18 20 Download Download Download CSS2Properties JavaScript objects return to the Version 1.1 behaviour of becoming JSObjects in Java rather than the Version 1.5 behaviour of becoming Java arrays. This is because CSS properties can be set through these objects. For example, setting the colour of a DOM element in Java:

private void setColor(JSObject b, String color) {
    JSObject style = (JSObject) b.getMember("style"); // style is a CSS2Properties object
    style.setMember("backgroundColor", color);
}
              
The jsjbridge.jar library has not changed between versions 1.5 and 1.6.
1.5 2019-05-06 20 Download Download Download
  • Use JSON fragment joining to allow messages from Java programs longer than the 1MiB browser limit.
  • Make all iterable JavaScript objects become Java arrays, rather than just standard JavaScript arrays. This allows both typed arrays (Int8Array, etc.) and DOM collections to be seen by Java as arrays rather than JSObjects. Rather than becoming Object arrays, JavaScript typed arrays become Java primitive number arrays of the natural byte, short, int, long, float, or double size (signed or unsigned, so Java 8+ unsigned methods must be used to get the correct values for unsigned typed arrays).
  • Make initialization of Applet JavaScript variables easier and more reliable by looking at document.readyState, and by implementing the EventTarget interface on JavaObject proxies, allowing direct attachment of event listeners rather than through their _appletEl fields.
  • Call Applet destroy() methods on window beforeunload events, allowing things like flushing of preferences if the window is refreshed, closed, or navigated.
1.1 2019-03-01 20 Download Download Download
  • Initial release