Commit 8070cf7e authored by Eric Duminil's avatar Eric Duminil
Browse files

RegionChooser: Fixing horrible JavaFX heisenbug. `fxapp` was deleted by...

RegionChooser: Fixing horrible JavaFX heisenbug. `fxapp` was deleted by Garbage Collection, which happened very fast with a map.

see https://stackoverflow.com/questions/41903154/javafx-webview-callback-from-javascript-failing-after-garbage-collection
parent 36a43327
...@@ -181,6 +181,7 @@ public void importNovaFactoryBoundingBoxes() throws IOException { ...@@ -181,6 +181,7 @@ public void importNovaFactoryBoundingBoxes() throws IOException {
final WebView browser = new WebView(); final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine(); final WebEngine webEngine = browser.getEngine();
final JavaScriptFXBridge fxapp = new JavaScriptFXBridge();
public RegionChooserBrowser() { public RegionChooserBrowser() {
//apply the styles //apply the styles
...@@ -192,9 +193,7 @@ public RegionChooserBrowser() { ...@@ -192,9 +193,7 @@ public RegionChooserBrowser() {
(ObservableValue<? extends State> ov, State oldState, State newState) -> { (ObservableValue<? extends State> ov, State oldState, State newState) -> {
if (newState == State.SUCCEEDED) { if (newState == State.SUCCEEDED) {
JSObject win = (JSObject) webEngine.executeScript("window"); JSObject win = (JSObject) webEngine.executeScript("window");
JavaScriptFXBridge fxapp = new JavaScriptFXBridge();
win.setMember("fxapp", fxapp); win.setMember("fxapp", fxapp);
webEngine.executeScript("fxapp.log('CALLED FROM FXAPP')");
webEngine.executeScript("console.log = function(message)\n" + webEngine.executeScript("console.log = function(message)\n" +
"{\n" + "{\n" +
" fxapp.log(message);\n" + " fxapp.log(message);\n" +
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment