Strengthen SuperDevMode test in selection script
Selection script used sessionStorage without checking first whether it's
supported and enabled (e.g. IE8 doesn't support it with local files).
Bug: issue 8587
Change-Id: I5d5b9312d9a8c5db87924ea943e2230cda1e5fac
(cherry picked from commit e1e8e20e056c186d73e492473c04043d76912af1)
diff --git a/dev/core/src/com/google/gwt/core/linker/DevModeRedirectHook.js b/dev/core/src/com/google/gwt/core/linker/DevModeRedirectHook.js
index aa19b6d..3c1287d 100644
--- a/dev/core/src/com/google/gwt/core/linker/DevModeRedirectHook.js
+++ b/dev/core/src/com/google/gwt/core/linker/DevModeRedirectHook.js
@@ -22,7 +22,19 @@
// (This assumes that properties.js has already set up the map.)
$wnd.__gwt_activeModules["__MODULE_NAME__"].canRedirect = devModePermitted;
- if (devModePermitted) {
+ function supportsSessionStorage() {
+ // adapted from Modernizr
+ var key = '_gwt_dummy_';
+ try {
+ $wnd.sessionStorage.setItem(key, key);
+ $wnd.sessionStorage.removeItem(key);
+ return true;
+ } catch(e) {
+ return false;
+ }
+ }
+
+ if (devModePermitted && supportsSessionStorage()) {
// We use a different key for each module so that we can turn on dev mode
// independently for each.
var devModeKey = '__gwtDevModeHook:__MODULE_NAME__';