# HG changeset patch # User Jaroslav Tulach # Date 1368603246 -7200 # Node ID c06cedde886d433742b6ca394cb25460b68c4b21 # Parent 5201a2a0ccd14a49246aa3ce3d3546f8f9fe135b Enable firebug when in debug mode diff -r 5201a2a0ccd1 -r c06cedde886d launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Mon May 13 16:11:21 2013 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Wed May 15 09:34:06 2013 +0200 @@ -25,6 +25,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.Enumeration; +import java.util.List; import java.util.concurrent.Executors; import java.util.jar.Manifest; @@ -84,14 +85,22 @@ void generateBck2BrwsrJS(StringBuilder sb, Res loader) throws IOException { sb.append("(function() {\n" + " var impl = this.bck2brwsr;\n" - + " this.bck2brwsr = function() { return impl; };\n" - + "})(window);\n" - ); + + " this.bck2brwsr = function() { return impl; };\n"); + if (isDebugged()) { + sb.append("var scr = window.document.createElement('script');\n"); + sb.append("scr.type = 'text/javascript';\n"); + sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n"); + sb.append("scr.text = '{ startOpened: true }';\n"); + sb.append("var head = window.document.getElementsByTagName('head')[0];"); + sb.append("head.appendChild(scr);\n"); + sb.append("var html = window.document.getElementsByTagName('html')[0];"); + sb.append("html.debug = true;\n"); + } + + sb.append("})(window);\n"); JVMBridge.onBck2BrwsrLoad(); } - - - + @Override public void close() throws IOException { super.close(); @@ -130,4 +139,22 @@ } return startPage; } + + private static boolean isDebugged() { + try { + return isDebuggedImpl(); + } catch (LinkageError e) { + return false; + } + } + + private static boolean isDebuggedImpl() { + java.lang.management.RuntimeMXBean runtime; + runtime = java.lang.management.ManagementFactory.getRuntimeMXBean(); + List args = runtime.getInputArguments(); + if (args.contains("-Xdebug")) { // NOI18N + return true; + } + return false; + } }