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

Arun Joseph ajoseph at openjdk.java.net
Wed Dec 16 15:44:01 UTC 2020

On Tue, 15 Dec 2020 16:57:13 GMT, Matthias Bläsing <github.com+2179736+matthiasblaesing at openjdk.org> wrote:

>> 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.

Fix and test looks good. Added a minor typo fix.

modules/javafx.web/src/main/native/Source/WTF/wtf/java/MainThreadJava.cpp line 49:

> 47: {
> 48:     // Initialize the class reference and methodids for the MainThread. The
> 49:     // initilization has to be done from a context where the class

initilization -> initialization


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

More information about the openjfx-dev mailing list