Index: chrome/browser/resources/bluetooth_internals/interfaces.js |
diff --git a/chrome/browser/resources/bluetooth_internals/interfaces.js b/chrome/browser/resources/bluetooth_internals/interfaces.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..92366c289bf952c3f3dd1cf653ac10454fc5dd4e |
--- /dev/null |
+++ b/chrome/browser/resources/bluetooth_internals/interfaces.js |
@@ -0,0 +1,50 @@ |
+// Copyright 2016 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. |
+ |
+/** |
+ * Javascript for Mojo interface helpers, served from |
+ * chrome://bluetooth-internals/. |
+ */ |
+ |
+cr.define('interfaces', function() { |
+ /** |
+ * Initializes Mojo proxies for page and Bluetooth services. |
ortuno
2016/11/03 22:14:15
Also mention that the interfaces are added to the
mbrunson
2016/11/03 23:59:40
Done.
|
+ * @return {!Promise<interfaces.BluetoothAdapter.Adapter>} resolves with |
+ * Adapter if acquired, rejects if Bluetooth is not supported. |
+ */ |
+ function initializeProxies() { |
+ return importModules([ |
+ 'content/public/renderer/frame_interfaces', |
+ 'device/bluetooth/public/interfaces/adapter.mojom', |
+ 'device/bluetooth/public/interfaces/device.mojom', |
+ 'mojo/public/js/connection', |
+ ]).then(function([frameInterfaces, bluetoothAdapter, bluetoothDevice, |
+ connection]) { |
+ Object.assign(interfaces, { |
+ BluetoothAdapter: bluetoothAdapter, |
+ BluetoothDevice: bluetoothDevice, |
+ Connection: connection, |
+ }); |
+ |
+ var adapterFactory = connection.bindHandleToProxy( |
ortuno
2016/11/03 22:14:15
Could you move the adapter code to the broker?
mbrunson
2016/11/03 23:59:40
Done.
|
+ frameInterfaces.getInterface(bluetoothAdapter.AdapterFactory.name), |
+ bluetoothAdapter.AdapterFactory); |
+ |
+ // Get an Adapter service. |
+ return adapterFactory.getAdapter(); |
+ }).then(function(response) { |
+ if (!response.adapter) { |
+ throw new Error('Bluetooth Not Supported on this platform.'); |
+ } |
+ |
+ return interfaces.Connection.bindHandleToProxy( |
+ response.adapter, |
+ interfaces.BluetoothAdapter.Adapter); |
+ }); |
+ } |
+ |
+ return { |
+ initialize: initializeProxies, |
+ }; |
+}); |