| Index: chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h | 
| diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h | 
| index d6361adc3963c2d7650a45b6184117c2ff6439cc..ecc5ff85cf77e48cc9fcbeeca4ee1361c14771af 100644 | 
| --- a/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h | 
| +++ b/chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h | 
| @@ -24,6 +24,7 @@ class BrowserContext; | 
| namespace device { | 
|  | 
| class BluetoothDevice; | 
| +class BluetoothDiscoverySession; | 
| class BluetoothProfile; | 
|  | 
| }  // namespace device | 
| @@ -81,6 +82,25 @@ class ExtensionBluetoothEventRouter | 
| // registered. | 
| bool HasProfile(const std::string& uuid) const; | 
|  | 
| +  // Requests that a new device discovery session be initiated for extension | 
| +  // with id |extension_id|. |callback| is called, if a session has been | 
| +  // initiated. |error_callback| is called, if the adapter failed to initiate | 
| +  // the session or if an active session already exists for the extension. | 
| +  void StartDiscoverySession(device::BluetoothAdapter* adapter, | 
| +                             const std::string& extension_id, | 
| +                             const base::Closure& callback, | 
| +                             const base::Closure& error_callback); | 
| + | 
| +  // Requests that the active discovery session that belongs to the extension | 
| +  // with id |extension_id| be terminated. |callback| is called, if the session | 
| +  // successfully ended. |error_callback| is called, if the adapter failed to | 
| +  // terminate the session or if no active discovery session exists for the | 
| +  // extension. | 
| +  void StopDiscoverySession(device::BluetoothAdapter* adapter, | 
| +                            const std::string& extension_id, | 
| +                            const base::Closure& callback, | 
| +                            const base::Closure& error_callback); | 
| + | 
| // Returns the BluetoothProfile that corresponds to |uuid|. It returns NULL | 
| // if the BluetoothProfile with |uuid| does not exist. | 
| device::BluetoothProfile* GetProfile(const std::string& uuid) const; | 
| @@ -88,14 +108,6 @@ class ExtensionBluetoothEventRouter | 
| // Get the BluetoothSocket corresponding to |id|. | 
| scoped_refptr<device::BluetoothSocket> GetSocket(int id); | 
|  | 
| -  // Sets whether this Profile is responsible for the discovering state of the | 
| -  // adapter. | 
| -  void SetResponsibleForDiscovery(bool responsible); | 
| -  bool IsResponsibleForDiscovery() const; | 
| - | 
| -  // Sets whether or not DeviceAdded events will be dispatched to extensions. | 
| -  void SetSendDiscoveryEvents(bool should_send); | 
| - | 
| // Dispatch an event that takes a device as a parameter to all renderers. | 
| void DispatchDeviceEvent( | 
| const std::string& event_name, | 
| @@ -127,15 +139,17 @@ class ExtensionBluetoothEventRouter | 
| void SetAdapterForTest(device::BluetoothAdapter* adapter) { | 
| adapter_ = adapter; | 
| } | 
| + | 
| private: | 
| void InitializeAdapterIfNeeded(); | 
| void InitializeAdapter(scoped_refptr<device::BluetoothAdapter> adapter); | 
| void MaybeReleaseAdapter(); | 
| void DispatchAdapterStateEvent(); | 
| void CleanUpForExtension(const std::string& extension_id); | 
| - | 
| -  bool send_discovery_events_; | 
| -  bool responsible_for_discovery_; | 
| +  void OnStartDiscoverySession( | 
| +      const std::string& extension_id, | 
| +      const base::Closure& callback, | 
| +      scoped_ptr<device::BluetoothDiscoverySession> discovery_session); | 
|  | 
| content::BrowserContext* browser_context_; | 
| scoped_refptr<device::BluetoothAdapter> adapter_; | 
| @@ -150,15 +164,16 @@ class ExtensionBluetoothEventRouter | 
| typedef std::map<int, ExtensionBluetoothSocketRecord> SocketMap; | 
| SocketMap socket_map_; | 
|  | 
| -  typedef ScopedVector<extensions::api::bluetooth::Device> | 
| -      DeviceList; | 
| -  DeviceList discovered_devices_; | 
| - | 
| // A map that maps uuids to ExtensionBluetoothProfileRecord. | 
| typedef std::map<std::string, ExtensionBluetoothProfileRecord> | 
| BluetoothProfileMap; | 
| BluetoothProfileMap bluetooth_profile_map_; | 
|  | 
| +  // A map that maps extension ids to BluetoothDiscoverySession pointers. | 
| +  typedef std::map<std::string, device::BluetoothDiscoverySession*> | 
| +      DiscoverySessionMap; | 
| +  DiscoverySessionMap discovery_session_map_; | 
| + | 
| content::NotificationRegistrar registrar_; | 
|  | 
| base::WeakPtrFactory<ExtensionBluetoothEventRouter> weak_ptr_factory_; | 
|  |