Reviewers: jat,

Description:
Copied the definition of isHostedMode() in from IFrameLinker's template,
which is really the most up to date.  Without this change, trying to run
hosted mode on some of these linkers erroneously gives the "this module
needs to be recompiled" message instead of the better "this linker
doesn't support hosted mode".

Please review this at http://gwt-code-reviews.appspot.com/376801/show

Affected files:
  M dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
  M dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
  M dev/core/src/com/google/gwt/core/linker/XSTemplate.js


Index: dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js b/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js index c8f6c9d85cebcb1c10ae98c9d0c1f6c4dc3bb074..277ddf2884b989e05a2c8c5988e4275db47c39bf 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/HostedModeTemplate.js
@@ -70,17 +70,19 @@ function __MODULE_FUNC__() {
   // --------------- INTERNAL FUNCTIONS ---------------

   function isHostedMode() {
+    var result = false;
     try {
       var query = $wnd.location.search;
-      return (query.indexOf('gwt.codesvr=') != -1
+      return (query.indexOf('gwt.codesvr=') != -1
           || query.indexOf('gwt.hosted=') != -1
           || ($wnd.external && $wnd.external.gwtOnLoad)) &&
           (query.indexOf('gwt.hybrid') == -1);
     } catch (e) {
       // Defensive: some versions of IE7 reportedly can throw an exception
       // evaluating "external.gwtOnLoad".
-      return false;
     }
+    isHostedMode = function() { return result; };
+    return result;
   }

   // Called by onScriptLoad(), onInjectionDone(), and onload(). It causes
Index: dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
diff --git a/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js b/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js index 3668e914b4302f5bdc4b1634ae22ee2577bc553c..487c250921ba56b30a5c810681d784c1ccc6b90f 100644
--- a/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/SingleScriptTemplate.js
@@ -56,14 +56,19 @@ function __MODULE_FUNC__() {
   // --------------- INTERNAL FUNCTIONS ---------------

   function isHostedMode() {
+    var result = false;
     try {
-      return ($wnd.external && $wnd.external.gwtOnLoad &&
-          ($wnd.location.search.indexOf('gwt.hybrid') == -1));
+      var query = $wnd.location.search;
+      return (query.indexOf('gwt.codesvr=') != -1
+          || query.indexOf('gwt.hosted=') != -1
+          || ($wnd.external && $wnd.external.gwtOnLoad)) &&
+          (query.indexOf('gwt.hybrid') == -1);
     } catch (e) {
       // Defensive: some versions of IE7 reportedly can throw an exception
       // evaluating "external.gwtOnLoad".
-      return false;
     }
+    isHostedMode = function() { return result; };
+    return result;
   }

   // Called by onScriptLoad() and onload(). It causes
Index: dev/core/src/com/google/gwt/core/linker/XSTemplate.js
diff --git a/dev/core/src/com/google/gwt/core/linker/XSTemplate.js b/dev/core/src/com/google/gwt/core/linker/XSTemplate.js index 81498f141daa92fc7cbd471b79bae50622a78c8a..9d53a01be1d492cb71166e79adfc238bf6827305 100644
--- a/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
+++ b/dev/core/src/com/google/gwt/core/linker/XSTemplate.js
@@ -70,14 +70,19 @@ function __MODULE_FUNC__() {
   // --------------- INTERNAL FUNCTIONS ---------------

   function isHostedMode() {
+    var result = false;
     try {
-      return ($wnd.external && $wnd.external.gwtOnLoad &&
-          ($wnd.location.search.indexOf('gwt.hybrid') == -1));
+      var query = $wnd.location.search;
+      return (query.indexOf('gwt.codesvr=') != -1
+          || query.indexOf('gwt.hosted=') != -1
+          || ($wnd.external && $wnd.external.gwtOnLoad)) &&
+          (query.indexOf('gwt.hybrid') == -1);
     } catch (e) {
       // Defensive: some versions of IE7 reportedly can throw an exception
       // evaluating "external.gwtOnLoad".
-      return false;
     }
+    isHostedMode = function() { return result; };
+    return result;
   }

   // Called by onScriptLoad() and onload(). It causes


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to