Chromium Code Reviews| Index: chrome/renderer/resources/extensions/browser_action_custom_bindings.js |
| diff --git a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js |
| index d90ab18235c3e7ac53f9429e0b8c9edc1c44ffa8..0a57c0b2e7ce522c85829b1d16d2501ed606078e 100644 |
| --- a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js |
| +++ b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js |
| @@ -7,6 +7,7 @@ |
| var binding = require('binding').Binding.create('browserAction'); |
| var setIcon = require('setIcon').setIcon; |
| +var getExtensionViews = requireNative('extension').GetExtensionViews; |
| binding.registerCustomHook(function(bindingsAPI) { |
| var apiFunctions = bindingsAPI.apiFunctions; |
| @@ -15,6 +16,22 @@ binding.registerCustomHook(function(bindingsAPI) { |
| setIcon(details, callback, this.name, this.definition.parameters, |
| 'browser action'); |
| }); |
| + |
| + apiFunctions.setCustomCallback('openPopup', |
| + function(name, request, response) { |
| + if (response && request.callback) { |
| + var callback = request.callback; |
| + // TODO(justinlin): Figure out how to ensure the popup is already open |
| + // before calling this. |
|
Matt Perry
2013/10/11 22:22:53
The browser side will have to do that (add a notif
justinlin
2013/10/16 07:06:48
Done.
|
| + setTimeout(function() { |
| + var views = getExtensionViews(-1, 'POPUP'); |
| + callback(views.length > 0 ? views[0] : null); |
| + }, 50); |
| + } else { |
| + request.callback(null); |
| + } |
| + request.callback = null; |
| + }); |
| }); |
| exports.binding = binding.generate(); |