Inline computeScriptBase.
Bugs: issue 8895, issue 8894
Change-Id: I6ee5d6aaf27d2cba54081a2aeec80c07ae09539a
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js b/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
index ee05f20..9a9020c 100755
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js
@@ -37,9 +37,6 @@
}
};
- // Reuse compute script base
- __COMPUTE_SCRIPT_BASE__;
-
// document.head does not exist in IE8
var $head = $doc.head || $doc.getElementsByTagName('head')[0];
@@ -66,15 +63,21 @@
var serverUrl = 'http://' + hostName + ':__SUPERDEV_PORT__';
var nocacheUrl = serverUrl + '/__MODULE_NAME__/__MODULE_NAME__.nocache.js';
- // Save supder-devmode url in session
+ // Save super-devmode url in session
$wnd.sessionStorage[devModeHookKey] = nocacheUrl;
// Save user.agent in session
$wnd.sessionStorage[devModeSessionKey] = 'user.agent=' + ua + '&';
// Set bookmarklet params in window
$wnd.__gwt_bookmarklet_params = {'server_url': serverUrl};
- // Save the original module base. (Returned by GWT.getModuleBaseURL.)
- $wnd[devModeHookKey + ':moduleBase'] = computeScriptBase();
+
+ // Save the original module base. (Returned by GWT.getModuleBaseURL in the app)
+ // querySelector is in IE8
+ var script = $doc.querySelector("script[src*='/__MODULE_NAME__.nocache.js']");
+ // fallback to location if script is embedded (#8894)
+ var src = script && script.src || $wnd.location.href;
+ // Remove QS and hash fragment (#8895)
+ $wnd[devModeHookKey + ':moduleBase'] = src.replace(/[?#].*$/g,'').replace(/[^\/]+$/,'');
// Needed in the real nocache.js logic
$wnd.__gwt_activeModules['__MODULE_NAME__'].canRedirect = true;