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

Unified Diff: chrome/renderer/resources/extension_process_bindings.js

Issue 147033: Refactor extension bindings to share code, avoid exposing hidden variables (Closed)
Patch Set: at head Created 11 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/resources/event_bindings.js ('k') | chrome/renderer/resources/greasemonkey_api.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/resources/extension_process_bindings.js
diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js
index 2cdf661ace9b6f89bddfb670a14d799ca0252744..0fbec3f2ad998059fc6301bd5780bce80ca4b2b1 100644
--- a/chrome/renderer/resources/extension_process_bindings.js
+++ b/chrome/renderer/resources/extension_process_bindings.js
@@ -9,9 +9,6 @@
var chrome;
(function() {
- native function GetNextRequestId();
- native function RegisterExtension();
- native function UnregisterExtension();
native function GetViews();
native function GetWindow();
native function GetCurrentWindow();
@@ -37,10 +34,13 @@ var chrome;
native function CreateBookmark();
native function MoveBookmark();
native function SetBookmarkTitle();
+ native function GetChromeHidden();
if (!chrome)
chrome = {};
+ var chromeHidden = GetChromeHidden();
+
// Validate arguments.
function validate(args, schemas) {
if (args.length > schemas.length)
@@ -72,45 +72,7 @@ var chrome;
}
}
- // Callback handling.
- // TODO(aa): This function should not be publicly exposed. Pass it into V8
- // instead and hold one per-context. See the way event_bindings.js works.
- var callbacks = [];
- chrome.handleResponse_ = function(requestId, name, success, response, error) {
- try {
- if (!success) {
- if (!error)
- error = "Unknown error."
- console.error("Error during " + name + ": " + error);
- return;
- }
-
- if (callbacks[requestId]) {
- if (response) {
- callbacks[requestId](JSON.parse(response));
- } else {
- callbacks[requestId]();
- }
- }
- } finally {
- delete callbacks[requestId];
- }
- };
-
- // Send an API request and optionally register a callback.
- function sendRequest(request, args, callback) {
- // JSON.stringify doesn't support a root object which is undefined.
- if (args === undefined)
- args = null;
- var sargs = JSON.stringify(args);
- var requestId = GetNextRequestId();
- var hasCallback = false;
- if (callback) {
- hasCallback = true;
- callbacks[requestId] = callback;
- }
- request(sargs, requestId, hasCallback);
- }
+ var sendRequest = chromeHidden.sendRequest;
//----------------------------------------------------------------------------
@@ -528,16 +490,7 @@ var chrome;
chrome.self = chrome.self || {};
chrome.self.onConnect = new chrome.Event("channel-connect");
- // Register
- chrome.self.register_ = function() {
- var extensionId = RegisterExtension();
- window.addEventListener('unload', function() {
- UnregisterExtension(extensionId); }, false);
- delete chrome.self.register_;
- }
-
chrome.self.getViews = function() {
return GetViews();
}
})();
-
« no previous file with comments | « chrome/renderer/resources/event_bindings.js ('k') | chrome/renderer/resources/greasemonkey_api.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698