1.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/JVMBridge.java Wed Jun 26 20:27:06 2013 +0200
1.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/JVMBridge.java Thu Sep 12 14:15:47 2013 +0200
1.3 @@ -39,6 +39,7 @@
1.4 public final class JVMBridge {
1.5 private final WebEngine engine;
1.6 private final ClassLoader cl;
1.7 + private final WebPresenter presenter;
1.8
1.9 private static ClassLoader[] ldrs;
1.10 private static ChangeListener<Void> onBck2BrwsrLoad;
1.11 @@ -46,8 +47,8 @@
1.12 JVMBridge(WebEngine eng) {
1.13 this.engine = eng;
1.14 final ClassLoader p = JVMBridge.class.getClassLoader().getParent();
1.15 - WebClassLoader wcl = new WebClassLoader();
1.16 - this.cl = FnUtils.newLoader(wcl, wcl, p);
1.17 + this.presenter = new WebPresenter();
1.18 + this.cl = FnUtils.newLoader(presenter, presenter, p);
1.19 }
1.20
1.21 public static void registerClassLoaders(ClassLoader[] loaders) {
1.22 @@ -69,10 +70,11 @@
1.23 }
1.24
1.25 public Class<?> loadClass(String name) throws ClassNotFoundException {
1.26 + FnUtils.currentPresenter(presenter);
1.27 return Class.forName(name, true, cl);
1.28 }
1.29
1.30 - private final class WebClassLoader implements FindResources, Fn.Presenter {
1.31 + private final class WebPresenter implements FindResources, Fn.Presenter {
1.32 @Override
1.33 public void findResources(String name, Collection<? super URL> results, boolean oneIsEnough) {
1.34 if (ldrs != null) for (ClassLoader l : ldrs) {
1.35 @@ -99,7 +101,7 @@
1.36 sb.append("})()");
1.37
1.38 JSObject x = (JSObject) engine.executeScript(sb.toString());
1.39 - return new JSFn(x);
1.40 + return new JSFn(this, x);
1.41 }
1.42
1.43 @Override
1.44 @@ -125,10 +127,11 @@
1.45 private static final class JSFn extends Fn {
1.46 private final JSObject fn;
1.47
1.48 - public JSFn(JSObject fn) {
1.49 + private JSFn(WebPresenter cl, JSObject fn) {
1.50 + super(cl);
1.51 this.fn = fn;
1.52 }
1.53 -
1.54 +
1.55 @Override
1.56 public Object invoke(Object thiz, Object... args) throws Exception {
1.57 try {