Fixes obscure failure in linux hybrid-mode unit tests
Review: http://gwt-code-reviews.appspot.com/33847
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5530 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java b/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
index 20d8278..822e6ac 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
@@ -208,7 +208,7 @@
out.print("if ($wnd." + context.getModuleFunctionName() + ") $wnd."
+ context.getModuleFunctionName() + ".onScriptLoad();");
out.newline();
- out.print("--></script></body></html>");
+ out.print("--></script>");
out.newlineOpt();
return out.toString();
@@ -249,11 +249,10 @@
private String getModulePrefix(LinkerContext context, String strongName,
boolean supportRunAsync) {
DefaultTextOutput out = new DefaultTextOutput(context.isOutputCompact());
- out.print("<html>");
out.newlineOpt();
// Setup the well-known variables.
- out.print("<head><script>");
+ out.print("<script>");
out.newlineOpt();
out.print("var $gwt_version = \"" + About.getGwtVersionNum() + "\";");
out.newlineOpt();
@@ -306,9 +305,8 @@
+ "',subSystem:'startup',evtGroup:'moduleStartup'"
+ ",millis:(new Date()).getTime(),type:'moduleEvalStart'});");
out.newlineOpt();
- out.print("</script></head>");
+ out.print("</script>");
out.newlineOpt();
- out.print("<body>");
out.newlineOpt();
// Begin a script block inside the body. It's commented out so that the
diff --git a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
index 0be7f1e..dfa11eb 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
@@ -350,14 +350,17 @@
win.name = '__MODULE_NAME__';
}
+ // Set this *before* calling doc.write(), because the linux hosted-mode
+ // browser sometimes doesn't properly return from doc.write() if there are
+ // a large number of script blocks (even though it works fine). Go figure.
+ gwtFrameCreated = true;
+
// Inject the fetched script into the script frame.
// (this script will call onScriptLoad())
var doc = win.document;
doc.open();
doc.write(compiledScript);
doc.close();
- gwtFrameCreated = true;
- maybeStartModule();
}
}