Index: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
diff --git a/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js b/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
index 23f02c3329b4a650c37ba5233bcaae368860b965..679e4bdffaabcc641dd05ce3aa440b188f9db8ca 100644 |
--- a/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
+++ b/chrome/browser/resources/bluetooth_internals/bluetooth_internals.js |
@@ -33,7 +33,9 @@ AdapterClient.prototype = { |
}; |
(function() { |
+ var adapterFactory = null; |
var adapter = null; |
+ var adapterHandle = null; |
var adapterClient = null; |
var adapterClientHandle = null; |
@@ -53,7 +55,7 @@ AdapterClient.prototype = { |
/** |
* Initializes Mojo proxies for page and Bluetooth services. |
- * @return {!Promise} |
+ * @return {!Promise} resolves if adapter is acquired |
*/ |
function initializeProxies() { |
return importModules([ |
@@ -72,17 +74,28 @@ AdapterClient.prototype = { |
adapterClient = new AdapterClient(); |
adapterClientHandle = connection.bindStubDerivedImpl(adapterClient); |
- adapter = connection.bindHandleToProxy( |
- frameInterfaces.getInterface(bluetoothAdapter.Adapter.name), |
- bluetoothAdapter.Adapter); |
+ adapterFactory = connection.bindHandleToProxy( |
+ frameInterfaces.getInterface(bluetoothAdapter.AdapterFactory.name), |
+ bluetoothAdapter.AdapterFactory); |
- adapter.setClient(adapterClientHandle); |
+ // Create a message pipe for the Adapter service. |
+ return new Promise(function(resolve) { |
+ adapterHandle = connection.bindProxy(resolve, bluetoothAdapter.Adapter); |
+ }).then(function(proxy) { |
+ adapter = proxy; |
+ return adapterFactory.getAdapter(adapterHandle, adapterClientHandle); |
+ }).then(function(response) { |
+ if (!response.success) { |
+ throw new Error('Failed to acquire adapter.'); |
+ } |
+ }); |
}); |
} |
document.addEventListener('DOMContentLoaded', function() { |
initializeProxies() |
.then(function() { return adapter.getDevices(); }) |
- .then(function(response) { console.log(response.devices); }); |
+ .then(function(response) { console.log(response.devices); }) |
+ .catch(function(error) { console.error(error); }); |
}); |
})(); |