| Index: chrome/renderer/resources/renderer_extension_bindings.js
|
| diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js
|
| index bf288bdf42daab6028d88a6a568bdb1a39695ca9..718c414f6f6d0271c81b005d6083b08102368a6d 100644
|
| --- a/chrome/renderer/resources/renderer_extension_bindings.js
|
| +++ b/chrome/renderer/resources/renderer_extension_bindings.js
|
| @@ -73,6 +73,10 @@ var chrome = chrome || {};
|
| // the right event.
|
| var isExternal = sourceExtensionId != chromeHidden.extensionId;
|
|
|
| + if (tab)
|
| + tab = JSON.parse(tab);
|
| + var sender = {tab: tab, id: sourceExtensionId};
|
| +
|
| // Special case for sendRequest/onRequest.
|
| if (channelName == chromeHidden.kRequestChannel) {
|
| var requestEvent = (isExternal ?
|
| @@ -80,7 +84,7 @@ var chrome = chrome || {};
|
| if (requestEvent.hasListeners()) {
|
| var port = chromeHidden.Port.createPort(portId, channelName);
|
| port.onMessage.addListener(function(request) {
|
| - requestEvent.dispatch(request, function(response) {
|
| + requestEvent.dispatch(request, sender, function(response) {
|
| port.postMessage(response);
|
| });
|
| });
|
| @@ -92,10 +96,7 @@ var chrome = chrome || {};
|
| chrome.extension.onConnectExternal : chrome.extension.onConnect);
|
| if (connectEvent.hasListeners()) {
|
| var port = chromeHidden.Port.createPort(portId, channelName);
|
| - if (tab) {
|
| - tab = JSON.parse(tab);
|
| - }
|
| - port.sender = {tab: tab, id: sourceExtensionId};
|
| + port.sender = sender;
|
| // TODO(EXTENSIONS_DEPRECATED): port.tab is obsolete.
|
| port.tab = port.sender.tab;
|
|
|
|
|