Chromium Code Reviews| Index: chrome/renderer/resources/extensions/extension_custom_bindings.js |
| diff --git a/chrome/renderer/resources/extensions/extension_custom_bindings.js b/chrome/renderer/resources/extensions/extension_custom_bindings.js |
| index 970e11f9ad24286b379e657737277aee15118618..66603532d1a5c6c61960ea1495db7fd001157d27 100644 |
| --- a/chrome/renderer/resources/extensions/extension_custom_bindings.js |
| +++ b/chrome/renderer/resources/extensions/extension_custom_bindings.js |
| @@ -52,7 +52,7 @@ chromeHidden.registerCustomHook('extension', |
| return 'chrome-extension://' + extensionId + path; |
| }); |
| - apiFunctions.setUpdateArgumentsPreValidate('sendRequest', function() { |
| + function sendMessageUpdateArguments() { |
| // Align missing (optional) function arguments with the arguments that |
| // schema validation is expecting, e.g. |
| // extension.sendRequest(req) -> extension.sendRequest(null, req) |
| @@ -73,38 +73,26 @@ chromeHidden.registerCustomHook('extension', |
| targetId = arguments[lastArg--]; |
| if (lastArg != -1) |
| - throw new Error('Invalid arguments to sendRequest.'); |
| + throw new Error('Invalid arguments to sendMessage.'); |
| return [targetId, request, responseCallback]; |
| - }); |
| + } |
| + apiFunctions.setUpdateArgumentsPreValidate('sendRequest', |
| + sendMessageUpdateArguments); |
|
Aaron Boodman
2012/03/30 21:28:00
You could use sendMessageUpdateArguments.bind(null
Matt Perry
2012/03/30 23:02:48
Done.
|
| + apiFunctions.setUpdateArgumentsPreValidate('sendMessage', |
| + sendMessageUpdateArguments); |
| apiFunctions.setHandleRequest('sendRequest', |
| function(targetId, request, responseCallback) { |
| - if (!targetId) |
| - targetId = extensionId; |
| - if (!responseCallback) |
| - responseCallback = function() {}; |
| - |
| - var connectInfo = { name: chromeHidden.kRequestChannel }; |
| - var port = chrome.extension.connect(targetId, connectInfo); |
| - |
| - port.postMessage(request); |
| - port.onDisconnect.addListener(function() { |
| - // For onDisconnects, we only notify the callback if there was an error |
| - try { |
| - if (chrome.extension.lastError) |
| - responseCallback(); |
| - } finally { |
| - port = null; |
| - } |
| - }); |
| - port.onMessage.addListener(function(response) { |
| - try { |
| - responseCallback(response); |
| - } finally { |
| - port.disconnect(); |
| - port = null; |
| - } |
| - }); |
| + var port = chrome.extension.connect(targetId || extensionId, |
| + {name: chromeHidden.kRequestChannel}); |
| + chromeHidden.Port.sendMessageImpl(port, request, responseCallback); |
| + }); |
| + |
| + apiFunctions.setHandleRequest('sendMessage', |
| + function(targetId, message, responseCallback) { |
| + var port = chrome.extension.connect(targetId || extensionId, |
| + {name: chromeHidden.kMessageChannel}); |
| + chromeHidden.Port.sendMessageImpl(port, message, responseCallback); |
| }); |
| apiFunctions.setUpdateArgumentsPreValidate('connect', function() { |