Enable firebug when in debug mode
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 15 May 2013 09:34:06 +0200
changeset 1095c06cedde886d
parent 1093 5201a2a0ccd1
child 1096 d2ac5b50eb3e
Enable firebug when in debug mode
launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java
     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  }