JxBrowser 6.6.1: Felix OSGi Support and Improvements

In this minor update we fixed several critical issues reported by our customers and improved existing functionality:

  • Felix and Eclipse OSGi. JxBrowser has been adopted and tested in Felix OSGi environment. Now JxBrowser supports two OSGi implementations: Eclipse and Felix. Eclipse OSGi environment support has been improved as well. Now, each JxBrowser JAR file represents an OSGi bundle. To use JxBrowser in your OSGi application, you just need to include JxBrowser JAR files/bundles into your OSGi application.
  • Spell Checker API. By default, Chromium engine does spell checking only for the text in the modified paragraph. In this version we introduced functionality that forces Chromium engine to spell check the whole text upon every change including text in TinyMCE editor.
  • JavaScript-Java Bridge API. Using JavaScript-Java Bridge you can inject Java object into JavaScript code and associate it with JavaScript object’s property. When Java object is injected into JavaScript code via the bridge, JavaScript code can access only public methods of the Java object. When Java object represented a class that inherited another class with public methods, there was no way to access public methods of the parent class. Starting from version 6.6.1 you can access all public methods of the registered Java object, including parent’s methods.
  • Printing API. Support of page ranges when printing web page as PDF document has been implemented.
  • Deadlock in multi-threaded environment on Windows XP and OS X. In multi-threaded environment, when Browser instances are created and destroyed in different threads at the same time, sometimes thread deadlock happens. We reproduced the issue, figured out what causes it and fixed it in this minor update. So, stability of the library in multi-threaded environment on Windows and OS X was significantly improved.
  • Deadlock during Drag and Drop on Windows. The issue happens when dragging something in Java application and displaying BrowserView without releasing the drag. It was simple thread deadlock that is now fixed in JxBrowser code.
  • Printing in PDF Viewer. An issue when empty page was printed when printing from PDF viewer is fixed.
  • Zoom in/out in PDF Viewer. An issue when the Browser.zoomIn() and Browser.zoomOut() methods do nothing when PDF document is displayed in PDF Viewer is fixed.
  • Failed to load PDF document in PDF Viewer. If we load the http://www.orimi.com/pdf-test.pdf web page, click the link in the document, wait until web page is loaded completely, and then press backspace, we will see the “Failed to load PDF document” error message. The issue is fixed in this update.
  • Startup error on OS X with Portuguese or Chinese locale. When OS X language is set to Portuguese or Chinese, JxBrowser fails to start because Chromium cannot find the appropriate language pack. The reason of this issue is that Java detects the language as “PT” or “ZH”, but Chromium doesn’t have appropriate packs for these languages. It only has the “PT_BR”, “PT_PT”, “ZH_CH”, and “ZH_TW” packs. So, the language identifier that is received from Java default locale must be combined with country identifier in case of Portuguese and Chinese language. We made this change to improve the functionality in JxBrowser that detects current language and country to get rid of such issues on OS X.
  • Wrong Redo shortcut on OS X. In previous JxBrowser versions the Redo shortcut (Cmd+Y) doesn’t match the native OS X combination (Cmd+Shift+Z). Starting from JxBrowser 6.6.1 the Redo shortcut on OS X is correct — Cmd+Shift+Z.
  • Render Process events. It turns out that the RenderListener.onRenderGone() event is fired only when lightweight rendering mode is enabled. In heavyweight rendering mode there was no way to find out when render process is unexpectedly terminated. Now the event is fired in both rendering modes: heavyweight and lightweight.

Login to post a comment