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) {