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

Unified Diff: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h

Issue 2370373002: Move chrome.bluetoothLowEnergy out of //chrome. (Closed)
Patch Set: build fix Created 4 years, 3 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/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
diff --git a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h b/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
deleted file mode 100644
index a7e6c29a15b6004643819c93f0ccf2218e6e1507..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
+++ /dev/null
@@ -1,588 +0,0 @@
-// Copyright 2014 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.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_EVENT_ROUTER_H_
-#define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_EVENT_ROUTER_H_
-
-#include <cstddef>
-#include <cstdint>
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "base/callback_forward.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "base/scoped_observer.h"
-#include "chrome/common/extensions/api/bluetooth_low_energy.h"
-#include "device/bluetooth/bluetooth_adapter.h"
-#include "device/bluetooth/bluetooth_device.h"
-#include "device/bluetooth/bluetooth_gatt_connection.h"
-#include "device/bluetooth/bluetooth_gatt_notify_session.h"
-#include "device/bluetooth/bluetooth_local_gatt_service.h"
-#include "device/bluetooth/bluetooth_remote_gatt_service.h"
-#include "device/bluetooth/bluetooth_uuid.h"
-#include "extensions/browser/extension_event_histogram_value.h"
-#include "extensions/browser/extension_registry_observer.h"
-
-namespace base {
-
-class ListValue;
-
-} // namespace base
-
-namespace content {
-
-class BrowserContext;
-
-} // namespace content
-
-namespace device {
-
-class BluetoothLocalGattCharacteristic;
-class BluetoothLocalGattDescriptor;
-class BluetoothRemoteGattCharacteristic;
-class BluetoothRemoteGattDescriptor;
-
-} // namespace device
-
-namespace extensions {
-
-class BluetoothLowEnergyConnection;
-class BluetoothLowEnergyNotifySession;
-class Extension;
-class ExtensionRegistry;
-
-// The BluetoothLowEnergyEventRouter is used by the bluetoothLowEnergy API to
-// interface with the internal Bluetooth API in device/bluetooth.
-class BluetoothLowEnergyEventRouter
- : public device::BluetoothAdapter::Observer,
- public device::BluetoothLocalGattService::Delegate,
- public extensions::ExtensionRegistryObserver {
- public:
- struct AttributeValueRequest {
- public:
- enum RequestType { ATTRIBUTE_READ_REQUEST, ATTRIBUTE_WRITE_REQUEST };
-
- AttributeValueRequest(const Delegate::ValueCallback& value_callback,
- const Delegate::ErrorCallback& error_callback);
- AttributeValueRequest(const base::Closure& success_callback,
- const Delegate::ErrorCallback& error_callback);
- ~AttributeValueRequest();
-
- RequestType type;
- Delegate::ValueCallback value_callback;
- base::Closure success_callback;
- Delegate::ErrorCallback error_callback;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(AttributeValueRequest);
- };
-
- explicit BluetoothLowEnergyEventRouter(content::BrowserContext* context);
- ~BluetoothLowEnergyEventRouter() override;
-
- // Possible ways that an API method can fail or succeed.
- enum Status {
- kStatusSuccess = 0,
- kStatusErrorAlreadyConnected,
- kStatusErrorAlreadyNotifying,
- kStatusErrorAttributeLengthInvalid,
- kStatusErrorAuthenticationFailed,
- kStatusErrorCanceled,
- kStatusErrorConnectionCongested,
- kStatusErrorFailed,
- kStatusErrorGattNotSupported,
- kStatusErrorHigherSecurity,
- kStatusErrorInProgress,
- kStatusErrorInsufficientAuthorization,
- kStatusErrorInsufficientEncryption,
- kStatusErrorInvalidArguments,
- kStatusErrorInvalidLength,
- kStatusErrorNotConnected,
- kStatusErrorNotFound,
- kStatusErrorNotNotifying,
- kStatusErrorOffsetInvalid,
- kStatusErrorPermissionDenied,
- kStatusErrorRequestNotSupported,
- kStatusErrorTimeout,
- kStatusErrorUnsupportedDevice,
- kStatusErrorInvalidServiceId,
- };
-
- // Error callback is used by asynchronous methods to report failures.
- using ErrorCallback = base::Callback<void(Status)>;
-
- // Returns true if Bluetooth is supported on the current platform or if the
- // internal |adapter_| instance has been initialized for testing.
- bool IsBluetoothSupported() const;
-
- // Obtains a handle on the BluetoothAdapter and invokes |callback|. Returns
- // false, if Bluetooth is not supported. Otherwise, asynchronously initializes
- // it and invokes |callback|. Until the first successful call to this method,
- // none of the methods in this class will succeed and no device::Bluetooth*
- // API events will be observed.
- bool InitializeAdapterAndInvokeCallback(const base::Closure& callback);
-
- // Returns true, if the BluetoothAdapter was initialized.
- bool HasAdapter() const;
-
- // Creates a GATT connection to the device with address |device_address| for
- // extension |extension|. The connection is kept alive until the extension is
- // unloaded, the device is removed, or is disconnect by the host subsystem.
- // |error_callback| is called with an error status in case of failure. If
- // |persistent| is true, then the allocated connection resource is persistent
- // across unloads.
- void Connect(bool persistent,
- const Extension* extension,
- const std::string& device_address,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Disconnects the currently open GATT connection of extension |extension| to
- // device with address |device_address|. |error_callback| is called with an
- // error status in case of failure, e.g. if the device is not found or the
- // given
- // extension does not have an open connection to the device.
- void Disconnect(const Extension* extension,
- const std::string& device_address,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Returns the list of api::bluetooth_low_energy::Service objects
- // associated with the Bluetooth device with address |device_address| in
- // |out_services|.
- // Returns false, if no device with the given address is known. If the device
- // is found but it has no GATT services, then returns true and leaves
- // |out_services| empty. Returns true, on success. |out_services| must not
- // be NULL. If it is non-empty, then its contents will be cleared.
- typedef std::vector<api::bluetooth_low_energy::Service> ServiceList;
- bool GetServices(const std::string& device_address,
- ServiceList* out_services) const;
-
- // Populates |out_service| based on GATT service with instance ID
- // |instance_id|. |out_service| must not be NULL.
- Status GetService(const std::string& instance_id,
- api::bluetooth_low_energy::Service* out_service) const;
-
- // Populates |out_services| with the list of GATT services that are included
- // by the GATT service with instance ID |instance_id|. Returns false, if not
- // GATT service with the given ID is known. If the given service has no
- // included services, then |out_service| will be empty. |out_service| must not
- // be NULL. If it is non-empty, then its contents will be cleared.
- Status GetIncludedServices(const std::string& instance_id,
- ServiceList* out_services) const;
-
- // Returns the list of api::bluetooth_low_energy::Characteristic objects
- // associated with the GATT service with instance ID |instance_id| in
- // |out_characteristics|. Returns false, if no service with the given instance
- // ID is known. If the service is found but it has no characteristics, then
- // returns true and leaves |out_characteristics| empty.
- // |out_characteristics| must not be NULL and if it is non-empty,
- // then its contents will be cleared. |extension| is the extension that made
- // the call.
- typedef std::vector<api::bluetooth_low_energy::Characteristic>
- CharacteristicList;
- Status GetCharacteristics(const Extension* extension,
- const std::string& instance_id,
- CharacteristicList* out_characteristics) const;
-
- // Populates |out_characteristic| based on GATT characteristic with instance
- // ID |instance_id|. |out_characteristic| must not be NULL. |extension| is the
- // extension that made the call.
- Status GetCharacteristic(
- const Extension* extension,
- const std::string& instance_id,
- api::bluetooth_low_energy::Characteristic* out_characteristic) const;
-
- // Returns the list of api::bluetooth_low_energy::Descriptor objects
- // associated with the GATT characteristic with instance ID |instance_id| in
- // |out_descriptors|. If the characteristic is found but it has no
- // descriptors, then returns true and leaves |out_descriptors| empty.
- // |out_descriptors| must not be NULL and if it is non-empty,
- // then its contents will be cleared. |extension| is the extension that made
- // the call.
- typedef std::vector<api::bluetooth_low_energy::Descriptor> DescriptorList;
- Status GetDescriptors(const Extension* extension,
- const std::string& instance_id,
- DescriptorList* out_descriptors) const;
-
- // Populates |out_descriptor| based on GATT characteristic descriptor with
- // instance ID |instance_id|. |out_descriptor| must not be NULL.
- // |extension| is the extension that made the call.
- Status GetDescriptor(
- const Extension* extension,
- const std::string& instance_id,
- api::bluetooth_low_energy::Descriptor* out_descriptor) const;
-
- // Sends a request to read the value of the characteristic with intance ID
- // |instance_id|. Invokes |callback| on success and |error_callback| on
- // failure. |extension| is the extension that made the call.
- void ReadCharacteristicValue(const Extension* extension,
- const std::string& instance_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Sends a request to write the value of the characteristic with instance ID
- // |instance_id|. Invokes |callback| on success and |error_callback| on
- // failure. |extension| is the extension that made the call.
- void WriteCharacteristicValue(const Extension* extension,
- const std::string& instance_id,
- const std::vector<uint8_t>& value,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Sends a request to start characteristic notifications from characteristic
- // with instance ID |instance_id|, for extension |extension|. Invokes
- // |callback| on success and |error_callback| on failure. If |persistent| is
- // true, then the allocated connection resource is persistent across unloads.
- void StartCharacteristicNotifications(bool persistent,
- const Extension* extension,
- const std::string& instance_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Sends a request to stop characteristic notifications from characteristic
- // with instance ID |instance_id|, for extension |extension|. Invokes
- // |callback| on success and |error_callback| on failure.
- void StopCharacteristicNotifications(const Extension* extension,
- const std::string& instance_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Sends a request to read the value of the descriptor with instance ID
- // |instance_id|. Invokes |callback| on success and |error_callback| on
- // failure. |extension| is the extension that made the call.
- void ReadDescriptorValue(const Extension* extension,
- const std::string& instance_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Sends a request to write the value of the descriptor with instance ID
- // |instance_id|. Invokes |callback| on success and |error_callback| on
- // failure. |extension| is the extension that made the call.
- void WriteDescriptorValue(const Extension* extension,
- const std::string& instance_id,
- const std::vector<uint8_t>& value,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Initializes the adapter for testing. Used by unit tests only.
- void SetAdapterForTesting(device::BluetoothAdapter* adapter);
-
- // device::BluetoothAdapter::Observer overrides.
- void GattServiceAdded(device::BluetoothAdapter* adapter,
- device::BluetoothDevice* device,
- device::BluetoothRemoteGattService* service) override;
- void GattServiceRemoved(device::BluetoothAdapter* adapter,
- device::BluetoothDevice* device,
- device::BluetoothRemoteGattService* service) override;
- void GattDiscoveryCompleteForService(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattService* service) override;
- void DeviceAddressChanged(device::BluetoothAdapter* adapter,
- device::BluetoothDevice* device,
- const std::string& old_address) override;
- void GattServiceChanged(device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattService* service) override;
- void GattCharacteristicAdded(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattCharacteristic* characteristic) override;
- void GattCharacteristicRemoved(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattCharacteristic* characteristic) override;
- void GattDescriptorAdded(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattDescriptor* descriptor) override;
- void GattDescriptorRemoved(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattDescriptor* descriptor) override;
- void GattCharacteristicValueChanged(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattCharacteristic* characteristic,
- const std::vector<uint8_t>& value) override;
- void GattDescriptorValueChanged(
- device::BluetoothAdapter* adapter,
- device::BluetoothRemoteGattDescriptor* descriptor,
- const std::vector<uint8_t>& value) override;
-
- // device::BluetoothLocalGattService::Delegate overrides.
- void OnCharacteristicReadRequest(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattCharacteristic* characteristic,
- int offset,
- const Delegate::ValueCallback& value_callback,
- const Delegate::ErrorCallback& error_callback) override;
- void OnCharacteristicWriteRequest(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattCharacteristic* characteristic,
- const std::vector<uint8_t>& value,
- int offset,
- const base::Closure& callback,
- const Delegate::ErrorCallback& error_callback) override;
- void OnDescriptorReadRequest(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattDescriptor* descriptor,
- int offset,
- const Delegate::ValueCallback& value_callback,
- const Delegate::ErrorCallback& error_callback) override;
- void OnDescriptorWriteRequest(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattDescriptor* descriptor,
- const std::vector<uint8_t>& value,
- int offset,
- const base::Closure& callback,
- const Delegate::ErrorCallback& error_callback) override;
- void OnNotificationsStart(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattCharacteristic* characteristic) override;
- void OnNotificationsStop(
- const device::BluetoothDevice* device,
- const device::BluetoothLocalGattCharacteristic* characteristic) override;
-
- // extensions::ExtensionRegistryObserver overrides:
- void OnExtensionUnloaded(
- content::BrowserContext* browser_context,
- const extensions::Extension* extension,
- extensions::UnloadedExtensionInfo::Reason reason) override;
-
- // Adds a mapping for a local characteristic ID to its service ID
- void AddLocalCharacteristic(const std::string& id,
- const std::string& service_id);
- // Returns a BluetoothGattCharacteristic by its ID |id|.
- // Returns NULL, if the characteristic cannot be found.
- device::BluetoothLocalGattCharacteristic* GetLocalCharacteristic(
- const std::string& id) const;
-
- // Adds a mapping for a service_id to the id of the app that owns it.
- void AddServiceToApp(const std::string& app_id,
- const std::string& service_id);
-
- // Removes a mapping for a service_id to the id of the app that owns it.
- void RemoveServiceFromApp(const std::string& app_id,
- const std::string& service_id);
-
- // Register a local GATT service.
- void RegisterGattService(const Extension* extension,
- const std::string& service_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Unregister a local GATT service.
- void UnregisterGattService(const Extension* extension,
- const std::string& service_id,
- const base::Closure& callback,
- const ErrorCallback& error_callback);
-
- // Handle a response from the app for the given request id.
- void HandleRequestResponse(const Extension* extension,
- size_t request_id,
- bool is_error,
- const std::vector<uint8_t>& value);
-
- device::BluetoothAdapter* adapter() { return adapter_.get(); }
-
- private:
- // Called by BluetoothAdapterFactory.
- void OnGetAdapter(const base::Closure& callback,
- scoped_refptr<device::BluetoothAdapter> adapter);
-
- // Initializes the identifier for all existing GATT objects and devices.
- // Called by OnGetAdapter and SetAdapterForTesting.
- void InitializeIdentifierMappings();
-
- // Sends the event named |event_name| to all listeners of that event that
- // have the Bluetooth UUID manifest permission for UUID |uuid| and the
- // "low_energy" manifest permission, with |args| as the argument to that
- // event. If the event involves a characteristic, then |characteristic_id|
- // should be the instance ID of the involved characteristic. Otherwise, an
- // empty string should be passed.
- void DispatchEventToExtensionsWithPermission(
- events::HistogramValue histogram_value,
- const std::string& event_name,
- const device::BluetoothUUID& uuid,
- const std::string& characteristic_id,
- std::unique_ptr<base::ListValue> args);
-
- void DispatchEventToExtension(const std::string& extension_id,
- events::HistogramValue histogram_value,
- const std::string& event_name,
- std::unique_ptr<base::ListValue> args);
-
- // Returns a BluetoothRemoteGattService by its instance ID |instance_id|.
- // Returns
- // NULL, if the service cannot be found.
- device::BluetoothRemoteGattService* FindServiceById(
- const std::string& instance_id) const;
-
- // Returns a BluetoothRemoteGattCharacteristic by its instance ID
- // |instance_id|.
- // Returns NULL, if the characteristic cannot be found.
- device::BluetoothRemoteGattCharacteristic* FindCharacteristicById(
- const std::string& instance_id) const;
-
- // Returns a BluetoothRemoteGattDescriptor by its instance ID |instance_id|.
- // Returns NULL, if the descriptor cannot be found.
- device::BluetoothRemoteGattDescriptor* FindDescriptorById(
- const std::string& instance_id) const;
-
- // Called by BluetoothRemoteGattCharacteristic and
- // BluetoothRemoteGattDescriptor in
- // response to ReadRemoteCharacteristic and ReadRemoteDescriptor.
- void OnValueSuccess(const base::Closure& callback,
- const std::vector<uint8_t>& value);
-
- // Called by BluetoothDevice in response to a call to CreateGattConnection.
- void OnCreateGattConnection(
- bool persistent,
- const std::string& extension_id,
- const std::string& device_address,
- const base::Closure& callback,
- std::unique_ptr<device::BluetoothGattConnection> connection);
-
- // Called by BluetoothGattService in response to Register().
- void OnRegisterGattServiceSuccess(const std::string& service_id,
- const std::string& extension_id,
- const base::Closure& callback);
-
- // Called by BluetoothGattService in response to Unregister().
- void OnUnregisterGattServiceSuccess(const std::string& service_id,
- const std::string& extension_id,
- const base::Closure& callback);
-
- // Called by BluetoothRemoteGattCharacteristic and
- // BluetoothRemoteGattDescriptor in
- // case of an error during the read/write operations.
- void OnError(const ErrorCallback& error_callback,
- device::BluetoothRemoteGattService::GattErrorCode error_code);
-
- // Called by BluetoothDevice in response to a call to CreateGattConnection.
- void OnConnectError(const std::string& extension_id,
- const std::string& device_address,
- const ErrorCallback& error_callback,
- device::BluetoothDevice::ConnectErrorCode error_code);
-
- // Called by BluetoothRemoteGattCharacteristic in response to a call to
- // StartNotifySession.
- void OnStartNotifySession(
- bool persistent,
- const std::string& extension_id,
- const std::string& characteristic_id,
- const base::Closure& callback,
- std::unique_ptr<device::BluetoothGattNotifySession> session);
-
- // Called by BluetoothRemoteGattCharacteristic in response to a call to
- // StartNotifySession.
- void OnStartNotifySessionError(
- const std::string& extension_id,
- const std::string& characteristic_id,
- const ErrorCallback& error_callback,
- device::BluetoothRemoteGattService::GattErrorCode error_code);
-
- // Called by BluetoothGattNotifySession in response to a call to Stop.
- void OnStopNotifySession(const std::string& extension_id,
- const std::string& characteristic_id,
- const base::Closure& callback);
-
- // Finds and returns a BluetoothLowEnergyConnection to device with address
- // |device_address| from the managed API resources for extension with ID
- // |extension_id|.
- BluetoothLowEnergyConnection* FindConnection(
- const std::string& extension_id,
- const std::string& device_address);
-
- // Removes the connection to device with address |device_address| from the
- // managed API resources for extension with ID |extension_id|. Returns false,
- // if the connection could not be found.
- bool RemoveConnection(const std::string& extension_id,
- const std::string& device_address);
-
- // Finds and returns a BluetoothLowEnergyNotifySession associated with
- // characteristic with instance ID |characteristic_id| from the managed API
- // API resources for extension with ID |extension_id|.
- BluetoothLowEnergyNotifySession* FindNotifySession(
- const std::string& extension_id,
- const std::string& characteristic_id);
-
- // Removes the notify session associated with characteristic with
- // instance ID |characteristic_id| from the managed API resources for
- // extension with ID |extension_id|. Returns false, if the session could
- // not be found.
- bool RemoveNotifySession(const std::string& extension_id,
- const std::string& characteristic_id);
-
- // Stores a request associated with an app and returns the ID of the request.
- // When an app sends a request to an app for getting/setting an attribute
- // value, we store that request so when the response comes in, we know where
- // to forward the results of the request.
- size_t StoreSentRequest(const std::string& extension_id,
- std::unique_ptr<AttributeValueRequest> request);
-
- // Mapping from instance ids to identifiers of owning instances. The keys are
- // used to identify individual instances of GATT objects and are used by
- // bluetoothLowEnergy API functions to obtain the correct GATT object to
- // operate on. Instance IDs are string identifiers that are returned by the
- // device/bluetooth API, by calling GetIdentifier() on the corresponding
- // device::BluetoothGatt* instance.
- //
- // This mapping is necessary, as GATT object instances can only be obtained
- // from the object that owns it, where raw pointers should not be cached. E.g.
- // to obtain a device::BluetoothRemoteGattCharacteristic, it is necessary to
- // obtain
- // a pointer to the associated device::BluetoothDevice, and then to the
- // device::BluetoothRemoteGattService that owns the characteristic.
- using InstanceIdMap = std::map<std::string, std::string>;
- InstanceIdMap service_id_to_device_address_;
- InstanceIdMap chrc_id_to_service_id_;
- InstanceIdMap desc_id_to_chrc_id_;
-
- // Map of which services are registered by which app. Used to route attribute
- // read/write events.
- InstanceIdMap service_id_to_extension_id_;
-
- // Pointer to the current BluetoothAdapter instance. This represents a local
- // Bluetooth adapter of the system.
- scoped_refptr<device::BluetoothAdapter> adapter_;
-
- // Set of extension ID + device addresses to which a connect/disconnect is
- // currently pending.
- std::set<std::string> connecting_devices_;
- std::set<std::string> disconnecting_devices_;
-
- // Set of extension ID + characteristic ID to which a request to start a
- // notify session is currently pending.
- std::set<std::string> pending_session_calls_;
-
- using RequestIdToRequestMap =
- std::map<size_t, std::unique_ptr<AttributeValueRequest>>;
- using ExtensionToRequestsMap =
- std::map<std::string, std::unique_ptr<RequestIdToRequestMap>>;
- // Map of callback requests sent to the app for attribute value read/write
- // requests.
- ExtensionToRequestsMap requests_;
- // The last request ID we used.
- size_t last_callback_request_id_;
-
- // Map of locally hosted GATT service ids created by app_id. Used for cleanup.
- std::map<std::string, std::vector<std::string>> app_id_to_service_ids_;
-
- // BrowserContext passed during initialization.
- content::BrowserContext* browser_context_;
-
- // Listen to extension unloaded notification.
- ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
- extension_registry_observer_;
-
- // Note: This should remain the last member so it'll be destroyed and
- // invalidate its weak pointers before any other members are destroyed.
- base::WeakPtrFactory<BluetoothLowEnergyEventRouter> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(BluetoothLowEnergyEventRouter);
-};
-
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_BLUETOOTH_LOW_ENERGY_EVENT_ROUTER_H_

Powered by Google App Engine
This is Rietveld 408576698