Index: chrome/renderer/resources/extensions/platform_app.js |
diff --git a/chrome/renderer/resources/extensions/platform_app.js b/chrome/renderer/resources/extensions/platform_app.js |
index b9e0f2f9ea909f5fb34ba3023b172c39b735aca9..94154706189f147d7f6449f13df7b55be6f3e437 100644 |
--- a/chrome/renderer/resources/extensions/platform_app.js |
+++ b/chrome/renderer/resources/extensions/platform_app.js |
@@ -7,9 +7,11 @@ |
* |
* @param {string} messagePrefix text to prepend to the exception message. |
*/ |
-function generateStub(messagePrefix) { |
+function generateStub(messagePrefix, opt_messageSuffix) { |
return function() { |
- throw messagePrefix + ' is not available in packaged apps.'; |
+ var message = messagePrefix + ' is not available in packaged apps.'; |
+ if (opt_messageSuffix) message = message + ' ' + opt_messageSuffix; |
+ throw message; |
}; |
} |
@@ -41,10 +43,11 @@ function stubOutMethods(object, objectName, methodNames) { |
* to by web developers, e.g. "document" instead of "HTMLDocument"). |
* @param {Array.<string>} propertyNames property names |
*/ |
-function stubOutGetters(object, objectName, propertyNames) { |
+function stubOutGetters(object, objectName, propertyNames, opt_messageSuffix) { |
propertyNames.forEach(function(propertyName) { |
object.__defineGetter__( |
- propertyName, generateStub(objectName + '.' + propertyName)); |
+ propertyName, generateStub( |
+ objectName + '.' + propertyName, opt_messageSuffix)); |
}); |
} |
@@ -75,6 +78,11 @@ stubOutGetters(window, 'window', |
['locationbar', 'menubar', 'personalbar', 'scrollbars', 'statusbar', |
'toolbar']); |
+// Disable window.localStorage. |
+stubOutGetters(window, 'window', |
+ ['localStorage'], |
+ 'Use chrome.storage.local instead.'); |
+ |
// Disable onunload, onbeforeunload. |
Window.prototype.__defineSetter__( |
'onbeforeunload', generateStub('onbeforeunload')); |