diff -r 859804c78010 -r 39166e462f8d rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/FXBrwsr.java --- a/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/FXBrwsr.java Thu Mar 14 09:22:28 2013 +0100 +++ b/rt/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/impl/FXBrwsr.java Wed Mar 20 06:56:44 2013 +0100 @@ -111,6 +111,10 @@ eng.setOnAlert(new EventHandler>() { @Override public void handle(WebEvent t) { + if ("bck2brwsr".equals(t.getData())) { + initBck2Brwsr(eng); + return; + } JOptionPane.showMessageDialog(null, t.getData()); } }); @@ -128,25 +132,10 @@ void initBck2Brwsr(WebEngine webEngine) { JSObject jsobj = (JSObject) webEngine.executeScript("window"); LOG.info("window: " + jsobj); - System.getProperties().put("webEngine", webEngine); - Object prev = jsobj.getMember("jvmBridge"); - if (prev instanceof JSObject) { - jsobj.setMember("jvmBridge", bridge); - JSObject jso = (JSObject) prev; - Object len = jso.getMember("length"); - if (len instanceof Integer) { - for (int i = 0; i < (Integer) len; i++) { - Object slt = jso.getSlot(i); - if (slt instanceof String) { - try { - bridge.loadClass((String) slt); - } catch (ClassNotFoundException ex) { - LOG.log(Level.SEVERE, null, ex); - } - } - } - LOG.info("bck2brwsr: " + jsobj.getMember("bck2brwsr")); - } + Object prev = jsobj.getMember("bck2brwsr"); + if ("undefined".equals(prev)) { + System.getProperties().put("webEngine", webEngine); + jsobj.setMember("bck2brwsr", bridge); } }