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

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

Issue 11571014: Lazy load chrome.* APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: android compilation Created 7 years, 9 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
Index: chrome/renderer/resources/extensions/runtime_custom_bindings.js
diff --git a/chrome/renderer/resources/extensions/runtime_custom_bindings.js b/chrome/renderer/resources/extensions/runtime_custom_bindings.js
index 91d402b1fb8ec6330bbc1d6f4ec4b1bc0bf23ce0..61be155e68ce283630a526bc6ebcf875efbed65a 100644
--- a/chrome/renderer/resources/extensions/runtime_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/runtime_custom_bindings.js
@@ -2,7 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Custom bindings for the runtime API.
+// Custom binding for the runtime API.
+
+var binding = require('binding').Binding.create('runtime');
var runtimeNatives = requireNative('runtime');
var extensionNatives = requireNative('extension');
@@ -13,14 +15,15 @@ var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
var sendMessageUpdateArguments =
require('miscellaneous_bindings').sendMessageUpdateArguments;
-chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
- var apiFunctions = bindings.apiFunctions;
+binding.registerCustomHook(function(binding, id, contextType) {
+ var apiFunctions = binding.apiFunctions;
+ var runtime = binding.compiledApi;
//
// Unprivileged APIs.
//
- chrome.runtime.id = id;
+ runtime.id = id;
apiFunctions.setHandleRequest('getManifest', function() {
return runtimeNatives.GetManifest();
@@ -40,14 +43,14 @@ chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
apiFunctions.setHandleRequest('sendMessage',
function(targetId, message, responseCallback) {
- var port = chrome.runtime.connect(targetId || chrome.runtime.id,
+ var port = runtime.connect(targetId || runtime.id,
{name: chromeHidden.kMessageChannel});
chromeHidden.Port.sendMessageImpl(port, message, responseCallback);
});
apiFunctions.setHandleRequest('sendNativeMessage',
function(targetId, message, responseCallback) {
- var port = chrome.runtime.connectNative(targetId);
+ var port = runtime.connectNative(targetId);
chromeHidden.Port.sendMessageImpl(port, message, responseCallback);
});
@@ -83,7 +86,7 @@ chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
apiFunctions.setHandleRequest('connect', function(targetId, connectInfo) {
if (!targetId)
- targetId = chrome.runtime.id;
+ targetId = runtime.id;
var name = '';
if (connectInfo && connectInfo.name)
name = connectInfo.name;
@@ -91,7 +94,7 @@ chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
// Don't let orphaned content scripts communicate with their extension.
// http://crbug.com/168263
if (!chromeHidden.wasUnloaded) {
- var portId = OpenChannelToExtension(chrome.runtime.id, targetId, name);
+ var portId = OpenChannelToExtension(runtime.id, targetId, name);
if (portId >= 0)
return chromeHidden.Port.createPort(portId, name);
}
@@ -107,7 +110,7 @@ chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
apiFunctions.setHandleRequest('connectNative',
function(nativeAppName) {
if (!chromeHidden.wasUnloaded) {
- var portId = OpenChannelToNativeApp(chrome.runtime.id, nativeAppName);
+ var portId = OpenChannelToNativeApp(runtime.id, nativeAppName);
if (portId >= 0)
return chromeHidden.Port.createPort(portId, '');
}
@@ -124,3 +127,5 @@ chromeHidden.registerCustomHook('runtime', function(bindings, id, contextType) {
});
});
+
+exports.binding = binding.generate();

Powered by Google App Engine
This is Rietveld 408576698