RFR: 8242361: JavaFX Web View crashes with Segmentation Fault, when HTML contains Data-URIs [v3]

Matthias Bläsing github.com+2179736+matthiasblaesing at openjdk.java.net
Tue Dec 15 16:57:13 UTC 2020


> The code in WTF::scheduleDispatchFunctionsOnMainThread assumes, that
> the java class com.sun.webkit.MainThread can be found be the JNI
> function FindClass. This is only true if the class is loadable by the
> system class loader.
> 
> One such case is when the OpenJFX modules are loaded from a new
> ModuleLayer. To fix this, the reference to the class needs to be loaded
> from when a JNI call from Java into native code is active. In that case
> FindClass uses the classloader associated with that method.
> 
> The test code can be executed by running:
> 
> cd tests/manual/web/dataurl
> ../../../../gradlew run

Matthias Bläsing has updated the pull request incrementally with one additional commit since the last revision:

  Updated according to review comments
  
  - The text and formatting was adjusted according to the raised concerns.
  - The test was modified with a 15000ms timeout as is the case for other
    tests in the systemTests project
  - A safeguard was added in the launched child JVM, that terminates the
    child after 15000ms is it did not exit normally
  - The detection of a successful test was moved to a ChangeLister on the
    load worker state. It is assumed, that the worker success state is
    similar to the DOMContentLoaded event. The latter is fired after
    synchronous javascript was executed and that would be late enough to
    "see" the DOM update of the title.
  
  It was validated, that the test still fails without the fix and succeeds
  with it.

-------------

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/360/files
  - new: https://git.openjdk.java.net/jfx/pull/360/files/0281aa12..8e688e94

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=360&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=360&range=01-02

  Stats: 60 lines in 4 files changed: 32 ins; 19 del; 9 mod
  Patch: https://git.openjdk.java.net/jfx/pull/360.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/360/head:pull/360

PR: https://git.openjdk.java.net/jfx/pull/360


More information about the openjfx-dev mailing list