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

Side by Side Diff: chrome/renderer/resources/extensions/browser_action_custom_bindings.js

Issue 25305002: Implement initial chrome.browserAction.openPopup API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move to interactive_ui_test Created 7 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Custom binding for the browserAction API. 5 // Custom binding for the browserAction API.
6 6
7 var binding = require('binding').Binding.create('browserAction'); 7 var binding = require('binding').Binding.create('browserAction');
8 8
9 var setIcon = require('setIcon').setIcon; 9 var setIcon = require('setIcon').setIcon;
10 var getExtensionViews = requireNative('extension').GetExtensionViews;
10 11
11 binding.registerCustomHook(function(bindingsAPI) { 12 binding.registerCustomHook(function(bindingsAPI) {
12 var apiFunctions = bindingsAPI.apiFunctions; 13 var apiFunctions = bindingsAPI.apiFunctions;
13 14
14 apiFunctions.setHandleRequest('setIcon', function(details, callback) { 15 apiFunctions.setHandleRequest('setIcon', function(details, callback) {
15 setIcon(details, callback, this.name, this.definition.parameters, 16 setIcon(details, callback, this.name, this.definition.parameters,
16 'browser action'); 17 'browser action');
17 }); 18 });
19
20 apiFunctions.setCustomCallback('openPopup',
21 function(name, request, response) {
22 if (chrome.runtime.lastError)
23 throw new Error(chrome.runtime.lastError.message);
not at google - send to devlin 2013/10/23 23:18:42 don't throw an error here. chrome.runtime.lastErro
justinlin 2013/10/24 00:01:38 Ah thanks. https://codereview.chromium.org/3228300
24
25 if (!request.callback)
26 return;
27
28 var views = getExtensionViews(-1, 'POPUP');
29 request.callback(views.length > 0 ? views[0] : null);
30 request.callback = null;
31 });
18 }); 32 });
19 33
20 exports.binding = binding.generate(); 34 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698