1.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Mon May 13 16:11:21 2013 +0200
1.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Wed May 15 09:34:06 2013 +0200
1.3 @@ -25,6 +25,7 @@
1.4 import java.net.URL;
1.5 import java.net.URLClassLoader;
1.6 import java.util.Enumeration;
1.7 +import java.util.List;
1.8
1.9 import java.util.concurrent.Executors;
1.10 import java.util.jar.Manifest;
1.11 @@ -84,14 +85,22 @@
1.12 void generateBck2BrwsrJS(StringBuilder sb, Res loader) throws IOException {
1.13 sb.append("(function() {\n"
1.14 + " var impl = this.bck2brwsr;\n"
1.15 - + " this.bck2brwsr = function() { return impl; };\n"
1.16 - + "})(window);\n"
1.17 - );
1.18 + + " this.bck2brwsr = function() { return impl; };\n");
1.19 + if (isDebugged()) {
1.20 + sb.append("var scr = window.document.createElement('script');\n");
1.21 + sb.append("scr.type = 'text/javascript';\n");
1.22 + sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n");
1.23 + sb.append("scr.text = '{ startOpened: true }';\n");
1.24 + sb.append("var head = window.document.getElementsByTagName('head')[0];");
1.25 + sb.append("head.appendChild(scr);\n");
1.26 + sb.append("var html = window.document.getElementsByTagName('html')[0];");
1.27 + sb.append("html.debug = true;\n");
1.28 + }
1.29 +
1.30 + sb.append("})(window);\n");
1.31 JVMBridge.onBck2BrwsrLoad();
1.32 }
1.33 -
1.34 -
1.35 -
1.36 +
1.37 @Override
1.38 public void close() throws IOException {
1.39 super.close();
1.40 @@ -130,4 +139,22 @@
1.41 }
1.42 return startPage;
1.43 }
1.44 +
1.45 + private static boolean isDebugged() {
1.46 + try {
1.47 + return isDebuggedImpl();
1.48 + } catch (LinkageError e) {
1.49 + return false;
1.50 + }
1.51 + }
1.52 +
1.53 + private static boolean isDebuggedImpl() {
1.54 + java.lang.management.RuntimeMXBean runtime;
1.55 + runtime = java.lang.management.ManagementFactory.getRuntimeMXBean();
1.56 + List<String> args = runtime.getInputArguments();
1.57 + if (args.contains("-Xdebug")) { // NOI18N
1.58 + return true;
1.59 + }
1.60 + return false;
1.61 + }
1.62 }