Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7001)

Unified Diff: chrome/browser/resources/bluetooth_internals/bluetooth_internals.js

Issue 2379573006: bluetooth: Standardize Bluetooth adapter access in Adapter service. (Closed)
Patch Set: Comment updates Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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); });
});
})();

Powered by Google App Engine
This is Rietveld 408576698