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

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

Issue 32283005: Mark window parameter for chrome.browserAction.openPopup as optional since it is not provided when … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: lasterror 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 | Annotate | Revision Log
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 var getExtensionViews = requireNative('extension').GetExtensionViews;
11 11
12 binding.registerCustomHook(function(bindingsAPI) { 12 binding.registerCustomHook(function(bindingsAPI) {
13 var apiFunctions = bindingsAPI.apiFunctions; 13 var apiFunctions = bindingsAPI.apiFunctions;
14 14
15 apiFunctions.setHandleRequest('setIcon', function(details, callback) { 15 apiFunctions.setHandleRequest('setIcon', function(details, callback) {
16 setIcon(details, callback, this.name, this.definition.parameters, 16 setIcon(details, callback, this.name, this.definition.parameters,
17 'browser action'); 17 'browser action');
18 }); 18 });
19 19
20 apiFunctions.setCustomCallback('openPopup', 20 apiFunctions.setCustomCallback('openPopup',
21 function(name, request, response) { 21 function(name, request, response) {
22 if (chrome.runtime.lastError)
23 throw new Error(chrome.runtime.lastError.message);
24
25 if (!request.callback) 22 if (!request.callback)
26 return; 23 return;
27 24
28 var views = getExtensionViews(-1, 'POPUP'); 25 if (chrome.runtime.lastError) {
29 request.callback(views.length > 0 ? views[0] : null); 26 request.callback();
27 } else {
28 var views = getExtensionViews(-1, 'POPUP');
29 request.callback(views.length > 0 ? views[0] : null);
30 }
30 request.callback = null; 31 request.callback = null;
31 }); 32 });
32 }); 33 });
33 34
34 exports.binding = binding.generate(); 35 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698