Index: chrome/renderer/resources/extensions/bluetooth_custom_bindings.js |
diff --git a/chrome/renderer/resources/extensions/bluetooth_custom_bindings.js b/chrome/renderer/resources/extensions/bluetooth_custom_bindings.js |
deleted file mode 100644 |
index a125877a76d4e23bc26dda5c7869fc92c917aa71..0000000000000000000000000000000000000000 |
--- a/chrome/renderer/resources/extensions/bluetooth_custom_bindings.js |
+++ /dev/null |
@@ -1,158 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Custom binding for the Bluetooth API. |
- |
-var binding = require('binding').Binding.create('bluetooth'); |
- |
-var chrome = requireNative('chrome').GetChrome(); |
-var Event = require('event_bindings').Event; |
-var lastError = require('lastError'); |
-var sendRequest = require('sendRequest').sendRequest; |
- |
-// Use custom binding to create an undocumented event listener that will |
-// receive events about device discovery and call the event listener that was |
-// provided with the request to begin discovery. |
-binding.registerCustomHook(function(api) { |
- var apiFunctions = api.apiFunctions; |
- |
- var bluetooth = {}; |
- |
- function callCallbackIfPresent(name, args, error) { |
- var callback = args[args.length - 1]; |
- if (typeof(callback) == 'function') |
- lastError.run(name, error, callback); |
- } |
- |
- bluetooth.deviceDiscoveredHandler = null; |
- bluetooth.onDeviceDiscovered = new Event('bluetooth.onDeviceDiscovered'); |
- function clearDeviceDiscoveredHandler() { |
- bluetooth.onDeviceDiscovered.removeListener( |
- bluetooth.deviceDiscoveredHandler); |
- bluetooth.deviceDiscoveredHandler = null; |
- } |
- apiFunctions.setHandleRequest('startDiscovery', |
- function() { |
- var args = arguments; |
- if (args.length > 0 && args[0] && args[0].deviceCallback) { |
- if (bluetooth.deviceDiscoveredHandler != null) { |
- callCallbackIfPresent('bluetooth.startDiscovery', |
- args, |
- 'Concurrent discovery is not allowed.'); |
- return; |
- } |
- |
- bluetooth.deviceDiscoveredHandler = args[0].deviceCallback; |
- bluetooth.onDeviceDiscovered.addListener( |
- bluetooth.deviceDiscoveredHandler); |
- sendRequest(this.name, |
- args, |
- this.definition.parameters, |
- {customCallback:this.customCallback}); |
- } else { |
- callCallbackIfPresent( |
- 'bluetooth.startDiscovery', |
- args, |
- 'deviceCallback is required in the options object'); |
- return; |
- } |
- }); |
- apiFunctions.setCustomCallback('startDiscovery', |
- function(name, request, response) { |
- if (chrome.runtime.lastError) { |
- clearDeviceDiscoveredHandler(); |
- return; |
- } |
- }); |
- apiFunctions.setHandleRequest('stopDiscovery', |
- function() { |
- clearDeviceDiscoveredHandler(); |
- sendRequest(this.name, arguments, this.definition.parameters); |
- }); |
- |
- // An object to hold state during one call to getDevices. |
- bluetooth.getDevicesState = null; |
- |
- // Hidden events used to deliver getDevices data to the client callbacks |
- bluetooth.onDeviceSearchResult = new Event('bluetooth.onDeviceSearchResult'); |
- bluetooth.onDeviceSearchFinished = |
- new Event('bluetooth.onDeviceSearchFinished'); |
- |
- function deviceSearchResultHandler(device) { |
- bluetooth.getDevicesState.actualEvents++; |
- bluetooth.getDevicesState.deviceCallback(device); |
- maybeFinishDeviceSearch(); |
- } |
- |
- function deviceSearchFinishedHandler(info) { |
- bluetooth.getDevicesState.expectedEventCount = info.expectedEventCount; |
- maybeFinishDeviceSearch(); |
- } |
- |
- function addDeviceSearchListeners() { |
- bluetooth.onDeviceSearchResult.addListener(deviceSearchResultHandler); |
- bluetooth.onDeviceSearchFinished.addListener(deviceSearchFinishedHandler); |
- } |
- |
- function removeDeviceSearchListeners() { |
- bluetooth.onDeviceSearchResult.removeListener(deviceSearchResultHandler); |
- bluetooth.onDeviceSearchFinished.removeListener( |
- deviceSearchFinishedHandler); |
- } |
- |
- function maybeFinishDeviceSearch() { |
- var state = bluetooth.getDevicesState; |
- if (typeof(state.expectedEventCount) != 'undefined' && |
- state.actualEvents >= state.expectedEventCount) { |
- finishDeviceSearch(); |
- } |
- } |
- |
- function finishDeviceSearch() { |
- var finalCallback = bluetooth.getDevicesState.finalCallback; |
- removeDeviceSearchListeners(); |
- bluetooth.getDevicesState = null; |
- |
- if (finalCallback) { |
- finalCallback(); |
- } |
- } |
- |
- apiFunctions.setUpdateArgumentsPostValidate('getDevices', |
- function() { |
- var args = $Array.slice(arguments); |
- |
- if (bluetooth.getDevicesState != null) { |
- throw new Error('Concurrent calls to getDevices are not allowed.'); |
- } |
- |
- var state = { actualEvents: 0 }; |
- |
- if (typeof(args[args.length - 1]) == 'function') { |
- state.finalCallback = args.pop(); |
- $Array.push(args, |
- function() { |
- if (chrome.runtime.lastError) { |
- finishDeviceSearch(); |
- } |
- }); |
- } else { |
- throw new Error('getDevices must have a final callback parameter.'); |
- } |
- |
- if (typeof(args[0].deviceCallback) == 'function') { |
- state.deviceCallback = args[0].deviceCallback; |
- } else { |
- throw new Error('getDevices must be passed options with a ' + |
- 'deviceCallback.'); |
- } |
- |
- bluetooth.getDevicesState = state; |
- addDeviceSearchListeners(); |
- |
- return args; |
- }); |
-}); |
- |
-exports.binding = binding.generate(); |