Chromium Code Reviews| Index: chrome/renderer/resources/extensions/experimental.bluetooth_custom_bindings.js |
| diff --git a/chrome/renderer/resources/extensions/experimental.bluetooth_custom_bindings.js b/chrome/renderer/resources/extensions/experimental.bluetooth_custom_bindings.js |
| index 76f525b84bcfd31173dbe67144098689e0f7b685..4c18c4f1a955fdc35238bd83779acd5df331e2b3 100644 |
| --- a/chrome/renderer/resources/extensions/experimental.bluetooth_custom_bindings.js |
| +++ b/chrome/renderer/resources/extensions/experimental.bluetooth_custom_bindings.js |
| @@ -15,16 +15,15 @@ chromeHidden.registerCustomHook('experimental.bluetooth', function(api) { |
| var apiFunctions = api.apiFunctions; |
| chromeHidden.bluetooth = {}; |
| + |
| chromeHidden.bluetooth.deviceDiscoveredHandler = null; |
| chromeHidden.bluetooth.onDeviceDiscovered = |
| new chrome.Event("experimental.bluetooth.onDeviceDiscovered"); |
| - |
| function clearDeviceDiscoveredHandler() { |
| chromeHidden.bluetooth.onDeviceDiscovered.removeListener( |
| chromeHidden.bluetooth.deviceDiscoveredHandler); |
| chromeHidden.bluetooth.deviceDiscoveredHandler = null; |
| } |
| - |
| apiFunctions.setHandleRequest('startDiscovery', |
| function() { |
| var args = arguments; |
| @@ -58,4 +57,35 @@ chromeHidden.registerCustomHook('experimental.bluetooth', function(api) { |
| clearDeviceDiscoveredHandler(); |
| sendRequest(this.name, arguments, this.definition.parameters); |
| }); |
| + |
| + chromeHidden.bluetooth.deviceSearchResultHandler = null; |
| + chromeHidden.bluetooth.onDeviceSearchResult = |
| + new chrome.Event("experimental.bluetooth.onDeviceSearchResult"); |
| + apiFunctions.setHandleRequest('getDevices', |
| + function() { |
| + var args = arguments; |
| + if (args.length > 0 && args[0] && args[0].deviceCallback) { |
| + chromeHidden.bluetooth.deviceSearchResultHandler = |
| + args[0].deviceCallback; |
| + chromeHidden.bluetooth.onDeviceSearchResult.addListener( |
| + chromeHidden.bluetooth.deviceSearchResultHandler); |
|
asargent_no_longer_on_chrome
2012/09/11 17:42:56
It looks like your intention is to only handle a s
bryeung
2012/09/11 18:37:30
Great catch.
I'm fine with disallowing concurrent
|
| + sendRequest(this.name, |
| + args, |
| + this.definition.parameters, |
| + {customCallback:this.customCallback}); |
| + } else { |
| + if (typeof(args[args.length-1]) == "function") { |
| + var callback = args[args.length-1]; |
| + lastError.set("deviceCallback is required in the options object"); |
| + callback(); |
| + return; |
| + } |
| + } |
| + }); |
| + apiFunctions.setCustomCallback('getDevices', |
| + function(name, request, response) { |
| + chromeHidden.bluetooth.onDeviceSearchResult.removeListener( |
| + chromeHidden.bluetooth.deviceSearchResultHandler); |
| + chromeHidden.bluetooth.deviceSearchResultHandler = null; |
| + }); |
| }); |