Correct a problem with showing the troubleshooting iframe, add support for
renamed query parameter (while retaining backwards compatibility for now).

Patch by: jat
Review by: knorton


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5981 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html b/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
index bb8c0d4..8245f9e 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/hosted.html
@@ -1,5 +1,7 @@
 <html>
 <head><script>
+// TODO(jat): wrap these to reduce namespace issues, and refactor code into
+//    separate functions.
 var $wnd = parent;
 var $doc = $wnd.document;
 var $moduleName, $moduleBase
@@ -35,12 +37,11 @@
 
 function loadIframe(url) {
   var iframe = $doc.createElement('iframe');
-  iframe.src = "javascript:''";
+  iframe.src = url;
   iframe.style.width = "100%";
   iframe.style.height = "100%";
   iframe.style.borderWidth = "0px";
   $doc.body.insertBefore(iframe, $doc.body.firstChild);
-  iframe.contentWindow.location.replace(url);
 }
 
 if ($legacyHosted) {
@@ -273,13 +274,22 @@
     document.write('</object>');
   }
 
-  var idx = query.indexOf("gwt.hosted=");
+  // look for the old query parameter if we don't find the new one
+  var idx = query.indexOf("gwt.codesvr=");
+  if (idx >= 0) {
+    idx += 12;  // "gwt.codesvr=".length() == 12
+  } else {
+    idx = query.indexOf("gwt.hosted=");
+    if (idx >= 0) {
+      idx += 11;  // "gwt.hosted=".length() == 11
+    }
+  }
   if (idx >= 0) {
     var amp = query.indexOf("&", idx);
     if (amp >= 0) {
-      $hosted = query.substring(idx + 11, amp);
+      $hosted = query.substring(idx, amp);
     } else {
-      $hosted = query.substring(idx + 11);
+      $hosted = query.substring(idx);
     }
 
     // According to RFC 3986, some of this component's characters (e.g., ':')
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 80c148d..6d5bbd7 100644
--- a/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/IFrameTemplate.js
@@ -68,7 +68,8 @@
     var result = false;
     try {
       var query = $wnd.location.search;
-      return (query.indexOf('gwt.hosted=') != -1 
+      return (query.indexOf('gwt.codesvr=') != -1
+          || query.indexOf('gwt.hosted=') != -1 
           || ($wnd.external && $wnd.external.gwtOnLoad)) &&
           (query.indexOf('gwt.hybrid') == -1);
     } catch (e) {