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 29416441f174ddfccf52abb5d8cd9a6695f230aa..dc81f67b6e436e9c0f681de81db58f8770e7c68b 100644 |
--- a/chrome/renderer/resources/extension_process_bindings.js |
+++ b/chrome/renderer/resources/extension_process_bindings.js |
@@ -16,7 +16,7 @@ var chrome = chrome || {}; |
native function OpenChannelToTab(); |
native function GetRenderViewId(); |
native function GetL10nMessage(); |
- native function SetBrowserActionIcon(); |
+ native function SetExtensionActionIcon(); |
if (!chrome) |
chrome = {}; |
@@ -177,7 +177,7 @@ var chrome = chrome || {}; |
var request = prepareRequest(args, argSchemas); |
var requestId = GetNextRequestId(); |
requests[requestId] = request; |
- return nativeFunction(functionName, args, requestId, |
+ return nativeFunction(functionName, request.args, requestId, |
request.callback ? true : false); |
} |
@@ -202,12 +202,12 @@ var chrome = chrome || {}; |
chrome.pageAction.onClicked = new chrome.Event(eventName); |
} |
- // Browser action events send {windowpId}. |
- function setupBrowserActionEvent(extensionId) { |
- var eventName = "browserAction/" + extensionId; |
- chrome.browserAction = chrome.browserAction || {}; |
- chrome.browserAction.onClicked = new chrome.Event(eventName); |
- } |
+ // Browser action events send {windowpId}. |
+ function setupBrowserActionEvent(extensionId) { |
+ var eventName = "browserAction/" + extensionId; |
+ chrome.browserAction = chrome.browserAction || {}; |
+ chrome.browserAction.onClicked = new chrome.Event(eventName); |
+ } |
function setupToolstripEvents(renderViewId) { |
chrome.toolstrip = chrome.toolstrip || {}; |
@@ -333,9 +333,9 @@ var chrome = chrome || {}; |
return GetL10nMessage(message_name, placeholders); |
} |
- apiFunctions["browserAction.setIcon"].handleRequest = function(details) { |
+ function setIconCommon(details, name, parameters) { |
if ("iconIndex" in details) { |
- sendRequest(this.name, arguments, this.definition.parameters); |
+ sendRequest(name, [details], parameters); |
} else if ("imageData" in details) { |
// Verify that this at least looks like an ImageData element. |
// Unfortunately, we cannot use instanceof because the ImageData |
@@ -349,15 +349,21 @@ var chrome = chrome || {}; |
throw new Error( |
"The imageData property must contain an ImageData object."); |
} |
- |
- sendCustomRequest(SetBrowserActionIcon, "browserAction.setIcon", |
- details, this.definition.parameters); |
+ sendCustomRequest(SetExtensionActionIcon, name, [details], parameters); |
} else { |
throw new Error( |
"Either the iconIndex or imageData property must be specified."); |
} |
} |
+ apiFunctions["browserAction.setIcon"].handleRequest = function(details) { |
+ setIconCommon(details, this.name, this.definition.parameters); |
+ }; |
+ |
+ apiFunctions["pageAction.setIcon"].handleRequest = function(details) { |
+ setIconCommon(details, this.name, this.definition.parameters); |
+ }; |
+ |
setupBrowserActionEvent(extensionId); |
setupPageActionEvents(extensionId); |
setupToolstripEvents(GetRenderViewId()); |