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
3 // found in the LICENSE file.
5 // Custom binding for the browserAction API.
7 var binding
= require('binding').Binding
.create('browserAction');
9 var setIcon
= require('setIcon').setIcon
;
10 var getExtensionViews
= requireNative('runtime').GetExtensionViews
;
11 var sendRequest
= require('sendRequest').sendRequest
;
12 var lastError
= require('lastError');
14 binding
.registerCustomHook(function(bindingsAPI
) {
15 var apiFunctions
= bindingsAPI
.apiFunctions
;
17 apiFunctions
.setHandleRequest('setIcon', function(details
, callback
) {
18 setIcon(details
, function(args
) {
19 sendRequest(this.name
, [args
, callback
], this.definition
.parameters
);
23 apiFunctions
.setCustomCallback('openPopup',
24 function(name
, request
, callback
, response
) {
28 if (lastError
.hasError(chrome
)) {
31 var views
= getExtensionViews(-1, 'POPUP');
32 callback(views
.length
> 0 ? views
[0] : null);
37 exports
.binding
= binding
.generate();