OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var $console = window.console; | 5 var $console = window.console; |
6 | 6 |
7 /** | 7 /** |
8 * Returns a function that logs a 'not available' error to the console and | 8 * Returns a function that logs a 'not available' error to the console and |
9 * returns undefined. | 9 * returns undefined. |
10 * | 10 * |
(...skipping 10 matching lines...) Expand all Loading... | |
21 | 21 |
22 /** | 22 /** |
23 * Returns a function that throws a 'not available' error. | 23 * Returns a function that throws a 'not available' error. |
24 * | 24 * |
25 * @param {string} messagePrefix text to prepend to the exception message. | 25 * @param {string} messagePrefix text to prepend to the exception message. |
26 */ | 26 */ |
27 function generateThrowingMethodStub(messagePrefix, opt_messageSuffix) { | 27 function generateThrowingMethodStub(messagePrefix, opt_messageSuffix) { |
28 var message = messagePrefix + ' is not available in packaged apps.'; | 28 var message = messagePrefix + ' is not available in packaged apps.'; |
29 if (opt_messageSuffix) message = message + ' ' + opt_messageSuffix; | 29 if (opt_messageSuffix) message = message + ' ' + opt_messageSuffix; |
30 return function() { | 30 return function() { |
31 throw new Error(message); | 31 throw new $Error.self(message); |
not at google - send to devlin
2014/08/19 16:45:56
new Error()
| |
32 }; | 32 }; |
33 } | 33 } |
34 | 34 |
35 /** | 35 /** |
36 * Replaces the given methods of the passed in object with stubs that log | 36 * Replaces the given methods of the passed in object with stubs that log |
37 * 'not available' errors to the console and return undefined. | 37 * 'not available' errors to the console and return undefined. |
38 * | 38 * |
39 * This should be used on methods attached via non-configurable properties, | 39 * This should be used on methods attached via non-configurable properties, |
40 * such as window.alert. disableGetters should be used when possible, because | 40 * such as window.alert. disableGetters should be used when possible, because |
41 * it is friendlier towards feature detection. | 41 * it is friendlier towards feature detection. |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
198 | 198 |
199 // Disable onunload, onbeforeunload. | 199 // Disable onunload, onbeforeunload. |
200 disableSetters(Window.prototype, 'window', ['onbeforeunload', 'onunload']); | 200 disableSetters(Window.prototype, 'window', ['onbeforeunload', 'onunload']); |
201 var windowAddEventListener = Window.prototype.addEventListener; | 201 var windowAddEventListener = Window.prototype.addEventListener; |
202 Window.prototype.addEventListener = function(type) { | 202 Window.prototype.addEventListener = function(type) { |
203 if (type === 'unload' || type === 'beforeunload') | 203 if (type === 'unload' || type === 'beforeunload') |
204 generateDisabledMethodStub(type)(); | 204 generateDisabledMethodStub(type)(); |
205 else | 205 else |
206 return $Function.apply(windowAddEventListener, window, arguments); | 206 return $Function.apply(windowAddEventListener, window, arguments); |
207 }; | 207 }; |
OLD | NEW |