1865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// Use of this source code is governed by a BSD-style license that can be 3827e72de7537e62cac9652f8b7344ff356de9bb1Brian// found in the LICENSE file. 4865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 5827e72de7537e62cac9652f8b7344ff356de9bb1Brian// Custom binding for the systemIndicator API. 6865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// TODO(dewittj) Refactor custom binding to reduce redundancy between the 7865f88afc0d59d886fb2ad50429e584ecf17fa81Brian// extension action APIs. 8865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 9865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar binding = require('binding').Binding.create('systemIndicator'); 10865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 11865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar setIcon = require('setIcon').setIcon; 12865f88afc0d59d886fb2ad50429e584ecf17fa81Brianvar sendRequest = require('sendRequest').sendRequest; 13865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 14865f88afc0d59d886fb2ad50429e584ecf17fa81Brianbinding.registerCustomHook(function(bindingsAPI) { 15865f88afc0d59d886fb2ad50429e584ecf17fa81Brian var apiFunctions = bindingsAPI.apiFunctions; 16865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 17865f88afc0d59d886fb2ad50429e584ecf17fa81Brian apiFunctions.setHandleRequest('setIcon', function(details, callback) { 18865f88afc0d59d886fb2ad50429e584ecf17fa81Brian setIcon(details, function(args) { 19865f88afc0d59d886fb2ad50429e584ecf17fa81Brian sendRequest(this.name, [args, callback], this.definition.parameters); 20865f88afc0d59d886fb2ad50429e584ecf17fa81Brian }.bind(this)); 21865f88afc0d59d886fb2ad50429e584ecf17fa81Brian }); 22865f88afc0d59d886fb2ad50429e584ecf17fa81Brian}); 23865f88afc0d59d886fb2ad50429e584ecf17fa81Brian 24865f88afc0d59d886fb2ad50429e584ecf17fa81Brianexports.binding = binding.generate(); 25c223c6b663cd5db39ba19c2be74b88cc3b8f53f3Brian