Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(624)

Side by Side Diff: extensions/renderer/resources/platform_app.js

Issue 1333303002: bindings: Fixes exposed JS APIs for platform apps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Synced. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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;
6
7 /** 5 /**
8 * Returns a function that logs a 'not available' error to the console and 6 * Returns a function that logs a 'not available' error to the console and
9 * returns undefined. 7 * returns undefined.
10 * 8 *
11 * @param {string} messagePrefix text to prepend to the exception message. 9 * @param {string} messagePrefix text to prepend to the exception message.
12 */ 10 */
13 function generateDisabledMethodStub(messagePrefix, opt_messageSuffix) { 11 function generateDisabledMethodStub(messagePrefix, opt_messageSuffix) {
14 var message = messagePrefix + ' is not available in packaged apps.'; 12 var message = messagePrefix + ' is not available in packaged apps.';
15 if (opt_messageSuffix) message = message + ' ' + opt_messageSuffix; 13 if (opt_messageSuffix) message = message + ' ' + opt_messageSuffix;
16 return function() { 14 return function() {
17 $console.error(message); 15 console.error(message);
18 return; 16 return;
19 }; 17 };
20 } 18 }
21 19
22 /** 20 /**
23 * Returns a function that throws a 'not available' error. 21 * Returns a function that throws a 'not available' error.
24 * 22 *
25 * @param {string} messagePrefix text to prepend to the exception message. 23 * @param {string} messagePrefix text to prepend to the exception message.
26 */ 24 */
27 function generateThrowingMethodStub(messagePrefix, opt_messageSuffix) { 25 function generateThrowingMethodStub(messagePrefix, opt_messageSuffix) {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 148
151 // Replace evil Document methods with exception-throwing stubs. 149 // Replace evil Document methods with exception-throwing stubs.
152 disableMethods(HTMLDocument.prototype, 'document', ['write', 'writeln'], true); 150 disableMethods(HTMLDocument.prototype, 'document', ['write', 'writeln'], true);
153 151
154 // Disable history. 152 // Disable history.
155 Object.defineProperty(window, "history", { value: {} }); 153 Object.defineProperty(window, "history", { value: {} });
156 disableGetters(window.history, 'history', 154 disableGetters(window.history, 'history',
157 ['back', 'forward', 'go', 'length', 'pushState', 'replaceState']); 155 ['back', 'forward', 'go', 'length', 'pushState', 'replaceState']);
158 156
159 // Disable find. 157 // Disable find.
158 disableMethods(window, 'window', ['find']);
160 disableMethods(Window.prototype, 'window', ['find']); 159 disableMethods(Window.prototype, 'window', ['find']);
161 160
162 // Disable modal dialogs. Shell windows disable these anyway, but it's nice to 161 // Disable modal dialogs. Shell windows disable these anyway, but it's nice to
163 // warn. 162 // warn.
163 disableMethods(window, 'window', ['alert', 'confirm', 'prompt']);
164 disableMethods(Window.prototype, 'window', ['alert', 'confirm', 'prompt']); 164 disableMethods(Window.prototype, 'window', ['alert', 'confirm', 'prompt']);
165 165
166 // Disable window.*bar. 166 // Disable window.*bar.
167 disableGetters(window, 'window', 167 disableGetters(window, 'window',
168 ['locationbar', 'menubar', 'personalbar', 'scrollbars', 'statusbar', 168 ['locationbar', 'menubar', 'personalbar', 'scrollbars', 'statusbar',
169 'toolbar']); 169 'toolbar']);
170 170
171 // Disable window.localStorage. 171 // Disable window.localStorage.
172 // Sometimes DOM security policy prevents us from doing this (e.g. for data: 172 // Sometimes DOM security policy prevents us from doing this (e.g. for data:
173 // URLs) so wrap in try-catch. 173 // URLs) so wrap in try-catch.
(...skipping 17 matching lines...) Expand all
191 // https://developer.mozilla.org/en/DOM/document. 191 // https://developer.mozilla.org/en/DOM/document.
192 // To deprecate document.all, simply changing its getter and setter would 192 // To deprecate document.all, simply changing its getter and setter would
193 // activate its cache mechanism, and degrade the performance. Here we assign 193 // activate its cache mechanism, and degrade the performance. Here we assign
194 // it first to 'undefined' to avoid this. 194 // it first to 'undefined' to avoid this.
195 document.all = undefined; 195 document.all = undefined;
196 disableGetters(document, 'document', 196 disableGetters(document, 'document',
197 ['alinkColor', 'all', 'bgColor', 'fgColor', 'linkColor', 'vlinkColor']); 197 ['alinkColor', 'all', 'bgColor', 'fgColor', 'linkColor', 'vlinkColor']);
198 }, true); 198 }, true);
199 199
200 // Disable onunload, onbeforeunload. 200 // Disable onunload, onbeforeunload.
201 disableSetters(window, 'window', ['onbeforeunload', 'onunload']);
201 disableSetters(Window.prototype, 'window', ['onbeforeunload', 'onunload']); 202 disableSetters(Window.prototype, 'window', ['onbeforeunload', 'onunload']);
202 var windowAddEventListener = Window.prototype.addEventListener; 203 var eventTargetAddEventListener = EventTarget.prototype.addEventListener;
203 Window.prototype.addEventListener = function(type) { 204 EventTarget.prototype.addEventListener = function(type) {
204 if (type === 'unload' || type === 'beforeunload') 205 if (type === 'unload' || type === 'beforeunload')
205 generateDisabledMethodStub(type)(); 206 generateDisabledMethodStub(type)();
206 else 207 else
207 return $Function.apply(windowAddEventListener, window, arguments); 208 return $Function.apply(eventTargetAddEventListener, this, arguments);
208 }; 209 };
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698