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

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

Issue 2564113003: bluetooth: Add basic scanning to chrome://bluetooth-internals. (Closed)
Patch Set: Update comments Created 3 years, 11 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/adapter_broker.js
diff --git a/chrome/browser/resources/bluetooth_internals/adapter_broker.js b/chrome/browser/resources/bluetooth_internals/adapter_broker.js
index 13a8eee88c2dda0526287ea5c59a44f8453138a7..fe65eeb74c6452798d6d1a2b228d88d8cd6f705c 100644
--- a/chrome/browser/resources/bluetooth_internals/adapter_broker.js
+++ b/chrome/browser/resources/bluetooth_internals/adapter_broker.js
@@ -7,6 +7,13 @@
* chrome://bluetooth-internals/.
*/
cr.define('adapter_broker', function() {
+ /** @typedef {interfaces.BluetoothAdapter.Adapter.ptrClass} */
+ var AdapterPtr;
+ /** @typedef {interfaces.BluetoothDevice.Device.ptrClass} */
+ var DevicePtr;
+ /** @typedef {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */
+ var DiscoverySessionPtr;
+
/**
* The proxy class of an adapter and router of adapter events.
* Exposes an EventTarget interface that allows other object to subscribe to
@@ -15,7 +22,7 @@ cr.define('adapter_broker', function() {
* handles and back when necessary.
* @constructor
* @extends {cr.EventTarget}
- * @param {!interfaces.BluetoothAdapter.AdapterPtr} adapter
+ * @param {!AdapterPtr} adapter
*/
var AdapterBroker = function(adapter) {
this.adapter_ = adapter;
@@ -29,7 +36,7 @@ cr.define('adapter_broker', function() {
/**
* Creates a GATT connection to the device with |address|.
* @param {string} address
- * @return {!Promise<!interfaces.BluetoothDevice.DevicePtr>}
+ * @return {!Promise<!DevicePtr>}
*/
connectToDevice: function(address) {
return this.adapter_.connectToDevice(address).then(function(response) {
@@ -50,6 +57,22 @@ cr.define('adapter_broker', function() {
},
/**
+ * Gets an array of currently detectable devices from the Adapter service.
+ * @return {!Array<!interfaces.BluetoothDevice.DeviceInfo>}
+ */
+ getDevices: function() {
+ return this.adapter_.getDevices();
+ },
+
+ /**
+ * Gets the current state of the Adapter.
+ * @return {!interfaces.BluetoothAdapter.AdapterInfo}
+ */
+ getInfo: function() {
+ return this.adapter_.getInfo();
+ },
+
+ /**
* Sets client of Adapter service.
* @param {!interfaces.BluetoothAdapter.AdapterClient} adapterClient
*/
@@ -63,20 +86,18 @@ cr.define('adapter_broker', function() {
},
/**
- * Gets an array of currently detectable devices from the Adapter service.
- * @return {!Array<!interfaces.BluetoothDevice.DeviceInfo>}
+ * Requests the adapter to start a new discovery session.
+ * @return {!Promise<!DiscoverySessionPtr>}
*/
- getDevices: function() {
- return this.adapter_.getDevices();
- },
+ startDiscoverySession: function() {
+ return this.adapter_.startDiscoverySession().then(function(response) {
+ if (!response.session.ptr.isBound()) {
+ throw new Error('Discovery session failed to start');
+ }
- /**
- * Gets the current state of the Adapter.
- * @return {!interfaces.BluetoothAdapter.AdapterInfo}
- */
- getInfo: function() {
- return this.adapter_.getInfo();
- }
+ return response.session;
+ });
+ },
};
/**
@@ -93,6 +114,20 @@ cr.define('adapter_broker', function() {
AdapterClient.prototype = {
/**
+ * Fires adapterchanged event.
+ * @param {boolean} discovering
+ */
+ discoveringChanged: function(discovering) {
+ var event = new CustomEvent('adapterchanged', {
dpapad 2017/01/05 23:30:33 Is this the only case where an 'adapterchanged' ev
mbrunson 2017/01/06 01:18:56 There are a batch of these change events concernin
+ detail: {
+ property: 'discovering',
+ value: discovering,
+ }
+ });
+ this.adapterBroker_.dispatchEvent(event);
+ },
+
+ /**
* Fires deviceadded event.
* @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
*/
@@ -106,11 +141,11 @@ cr.define('adapter_broker', function() {
},
/**
- * Fires deviceremoved event.
+ * Fires devicechanged event.
* @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
*/
- deviceRemoved: function(deviceInfo) {
- var event = new CustomEvent('deviceremoved', {
+ deviceChanged: function(deviceInfo) {
+ var event = new CustomEvent('devicechanged', {
dpapad 2017/01/05 23:30:33 Nit (optional): I think is more readable if you se
mbrunson 2017/01/06 01:18:56 If I do this I'd want to do this for all the custo
detail: {
deviceInfo: deviceInfo
}
@@ -119,17 +154,17 @@ cr.define('adapter_broker', function() {
},
/**
- * Fires devicechanged event.
+ * Fires deviceremoved event.
* @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
*/
- deviceChanged: function(deviceInfo) {
- var event = new CustomEvent('devicechanged', {
+ deviceRemoved: function(deviceInfo) {
+ var event = new CustomEvent('deviceremoved', {
detail: {
deviceInfo: deviceInfo
}
});
this.adapterBroker_.dispatchEvent(event);
- }
+ },
};
var adapterBroker = null;

Powered by Google App Engine
This is Rietveld 408576698