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

Unified Diff: chrome/renderer/resources/extensions/miscellaneous_bindings.js

Issue 8540012: Enable extension APIs for content scripts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/resources/extensions/miscellaneous_bindings.js
diff --git a/chrome/renderer/resources/extensions/renderer_process_bindings.js b/chrome/renderer/resources/extensions/miscellaneous_bindings.js
similarity index 76%
rename from chrome/renderer/resources/extensions/renderer_process_bindings.js
rename to chrome/renderer/resources/extensions/miscellaneous_bindings.js
index 0d939b14ddd3eba717f9b8cc855f75eb39cec250..5a65a02cc76dcce74923b2b13066af1063042cae 100644
--- a/chrome/renderer/resources/extensions/renderer_process_bindings.js
+++ b/chrome/renderer/resources/extensions/miscellaneous_bindings.js
@@ -207,9 +207,12 @@ var chrome = chrome || {};
// Events for when a message channel is opened to our extension.
chrome.extension.onConnect = new chrome.Event();
- chrome.extension.onConnectExternal = new chrome.Event();
chrome.extension.onRequest = new chrome.Event();
- chrome.extension.onRequestExternal = new chrome.Event();
+
+ if (isExtensionProcess) {
+ chrome.extension.onConnectExternal = new chrome.Event();
+ chrome.extension.onRequestExternal = new chrome.Event();
+ }
// Opens a message channel to the given target extension, or the current one
// if unspecified. Returns a Port for message passing.
@@ -279,108 +282,6 @@ var chrome = chrome || {};
chrome.i18n.getMessage = function(message_name, placeholders) {
return GetL10nMessage(message_name, placeholders, extensionId);
};
-
- if (!isExtensionProcess)
- setupApiStubs();
});
- var notSupportedSuffix = " can only be used in extension processes. " +
- "See the content scripts documentation for more details.";
-
- // Setup to throw an error message when trying to access |name| on the chrome
- // object. The |name| can be a dot-separated path.
- function createStub(name) {
- var module = chrome;
- var parts = name.split(".");
- for (var i = 0; i < parts.length - 1; i++) {
- var nextPart = parts[i];
- // Make sure an object at the path so far is defined.
- module[nextPart] = module[nextPart] || {};
- module = module[nextPart];
- }
- var finalPart = parts[parts.length-1];
- module.__defineGetter__(finalPart, function() {
- throw new Error("chrome." + name + notSupportedSuffix);
- });
- }
-
- // Sets up stubs to throw a better error message for the common case of
- // developers trying to call extension API's that aren't allowed to be
- // called from content scripts.
- function setupApiStubs() {
- // TODO(asargent) It would be nice to eventually generate this
- // programmatically from extension_api.json (there is already a browser test
- // that should prevent it from getting stale).
- var privileged = [
- // Entire namespaces.
- "bookmarks",
- "browserAction",
- "chromeAuthPrivate",
- "chromePrivate",
- "chromeosInfoPrivate",
- "contentSettings",
- "contextMenus",
- "cookies",
- "devtools",
- "experimental.accessibility",
- "experimental.app",
- "experimental.bookmarkManager",
- "experimental.clear",
- "experimental.clipboard",
- "experimental.debugger",
- "experimental.downloads",
- "experimental.extension",
- "experimental.infobars",
- "experimental.input",
- "experimental.inputUI",
- "experimental.metrics",
- "experimental.settings",
- "experimental.popup",
- "experimental.processes",
- "experimental.privacy",
- "experimental.rlz",
- "experimental.savePage",
- "experimental.sidebar",
- "experimental.speechInput",
- "experimental.topSites",
- "experimental.webRequest",
- "fileBrowserHandler",
- "fileBrowserPrivate",
- "fileSystem",
- "history",
- "idle",
- "inputMethodPrivate",
- "management",
- "mediaPlayerPrivate",
- "omnibox",
- "pageAction",
- "pageActions",
- "permissions",
- "proxy",
- "tabs",
- "test",
- "tts",
- "ttsEngine",
- "types",
- "webNavigation",
- "webSocketProxyPrivate",
- "webstorePrivate",
- "windows",
-
- // Functions/events/properties within the extension namespace.
- "extension.getBackgroundPage",
- "extension.getExtensionTabs",
- "extension.getViews",
- "extension.isAllowedIncognitoAccess",
- "extension.isAllowedFileSchemeAccess",
- "extension.onConnectExternal",
- "extension.onRequestExternal",
- "extension.setUpdateUrlData",
- "i18n.getAcceptLanguages"
- ];
- for (var i = 0; i < privileged.length; i++) {
- createStub(privileged[i]);
- }
- }
-
})();

Powered by Google App Engine
This is Rietveld 408576698