Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-15640

BrowserSim: use JavaFX WebView as a browser engine

XMLWordPrintable

      JavaFX WebView supports Debugger API and could be embedded into BrowserSim as an alternative to the SWT Browser.

      Pros:

      1. WebView supports Debugger API - we can enable full featured DevTools and/or integrate it with EclipseDebugger
      2. It is available on all OSes where Oracle JVM 7 is installed - no requirement to install Safari and 32-bit JVM on Windows
      3. Can be used together with the SWT Browser (i.e. if there is no JavaFX present, we can fallback to the SWT Browser in runtime)

      Cons:

      1. Not a part of OpenJDK, Oracle JVM 7 only (not sure if JavaFX could be installed standalone)
      2. window.localStorage is not supported (may be a problem for CordovaSim)
      3. Character encoding problems on some installations
      4. Debugger API bindings to Java are not final now - we can face Java run-time errors with later versions of Oracle JVMs

      On the high level our plan is to:

      1. Implement possibility of switching BrowserSim's web engine SWT.WEBKIT / JavaFx WebView. This possibility will be enabled only for windows and mac os users. Due to native errors coupled with gtk3 usage (related jira https://javafx-jira.kenai.com/browse/RT-35264 ) there will be only one web engine on Linux - SWT.WEBKIT. - Done
      • Disable switcher for Linux platform - Done
      1. Solve perfomance issues. Debugger freezes rather often - Done
      2. Mock javaFX dependencies - Done
      3. Fix LiveReload and Touch Events for JavaFx WebView - Done
      4. Remove submodule - Done
      5. Port for debugging should not be hardcoded - Done

              ibuziuk@redhat.com Ilya Buziuk
              yradtsevich Yahor Radtsevich (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: