in browser/src/main/java/org/netbeans/html/presenters/browser/Browser.java [464:514]
private void emitScript(Writer w, String prefix, String id) throws IOException {
w.write(" <script id='exec' type='text/javascript'>");
w.write("\n"
+ "function waitForCommand(counter) {\n"
+ " try {\n"
+ " if (waitForCommand.seenError) {\n"
+ " console.warn('Disconnected from " + prefix + "');\n"
+ " return;\n"
+ " };\n"
+ " var request = new XMLHttpRequest();\n");
if (Browser.this.config.debug) {
w.write(""
+ " console.log('GET[' + counter + ']....');\n"
);
}
w.write(""
+ " request.open('GET', '" + prefix + "command.js?id=" + id + "', true);\n"
+ " request.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');\n"
+ " request.onerror = function(ev) {\n"
+ " console.warn(ev);\n"
+ " waitForCommand.seenError = true;\n"
+ " };\n"
+ " request.onreadystatechange = function() {\n"
+ " if (this.readyState!==4) return;\n"
+ " try {\n"
);
if (Browser.this.config.debug) {
w.write(""
+ " console.log('...GET[' + counter + '] got something ' + this.responseText.substring(0,80));\n"
+ " var cmd = document.getElementById('cmd');\n"
+ " if (cmd) cmd.innerHTML = this.responseText.substring(0,80);\n"
);
}
w.write(""
+ " (0 || eval)(this.responseText);\n"
+ " } catch (e) {\n"
+ " console.warn(e); \n"
+ " } finally {\n"
+ " waitForCommand(counter + 1);\n"
+ " }\n"
+ " };\n"
+ " request.send();\n"
+ " } catch (e) {\n"
+ " console.warn(e);\n"
+ " waitForCommand(counter + 1);\n"
+ " }\n"
+ "}\n"
+ "waitForCommand(1);\n"
);
w.write(" </script>\n");
}