diff --git a/device/bluetooth/bluetooth_adapter_win.h b/device/bluetooth/bluetooth_adapter_win.h
index de76b18..76581d9 100644
--- a/device/bluetooth/bluetooth_adapter_win.h
+++ b/device/bluetooth/bluetooth_adapter_win.h
@@ -6,19 +6,37 @@
 #define DEVICE_BLUETOOTH_BLUETOOTH_ADAPTER_WIN_H_
 
 #include <string>
+#include <utility>
+#include <vector>
 
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_vector.h"
 #include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
 #include "device/bluetooth/bluetooth_adapter.h"
+#include "device/bluetooth/bluetooth_task_manager_win.h"
+
+namespace base {
+
+class SequencedTaskRunner;
+
+}  // namespace base
 
 namespace device {
 
 class BluetoothAdapterFactory;
+class BluetoothAdapterWinTest;
 class BluetoothDevice;
 
-class BluetoothAdapterWin : public BluetoothAdapter {
+class BluetoothAdapterWin : public BluetoothAdapter,
+                            public BluetoothTaskManagerWin::Observer {
+ public:
+  typedef base::Callback<void()> InitCallback;
+
   // BluetoothAdapter override
   virtual void AddObserver(BluetoothAdapter::Observer* observer) OVERRIDE;
   virtual void RemoveObserver(BluetoothAdapter::Observer* observer) OVERRIDE;
+  virtual bool IsInitialized() const OVERRIDE;
   virtual bool IsPresent() const OVERRIDE;
   virtual bool IsPowered() const OVERRIDE;
   virtual void SetPowered(
@@ -26,24 +44,69 @@
       const base::Closure& callback,
       const ErrorCallback& error_callback) OVERRIDE;
   virtual bool IsDiscovering() const OVERRIDE;
-  virtual void SetDiscovering(
-      bool discovering,
+  virtual bool IsScanning() const OVERRIDE;
+
+  virtual void StartDiscovering(
       const base::Closure& callback,
       const ErrorCallback& error_callback) OVERRIDE;
-  virtual ConstDeviceList GetDevices() const OVERRIDE;
-  virtual BluetoothDevice* GetDevice(const std::string& address) OVERRIDE;
-  virtual const BluetoothDevice* GetDevice(
-      const std::string& address) const OVERRIDE;
+  virtual void StopDiscovering(
+      const base::Closure& callback,
+      const ErrorCallback& error_callback) OVERRIDE;
   virtual void ReadLocalOutOfBandPairingData(
       const BluetoothOutOfBandPairingDataCallback& callback,
       const ErrorCallback& error_callback) OVERRIDE;
 
- private:
-  friend class device::BluetoothAdapterFactory;
+  // BluetoothTaskManagerWin::Observer override
+  virtual void AdapterStateChanged(
+      const BluetoothTaskManagerWin::AdapterState& state) OVERRIDE;
+  virtual void DiscoveryStarted(bool success) OVERRIDE;
+  virtual void DiscoveryStopped() OVERRIDE;
+  virtual void ScanningChanged(bool scanning) OVERRIDE;
+  virtual void DevicesDiscovered(
+      const ScopedVector<BluetoothTaskManagerWin::DeviceState>& devices)
+          OVERRIDE;
 
-  BluetoothAdapterWin();
+ private:
+  friend class BluetoothAdapterFactory;
+  friend class BluetoothAdapterWinTest;
+
+  enum DiscoveryStatus {
+    NOT_DISCOVERING,
+    DISCOVERY_STARTING,
+    DISCOVERING,
+    DISCOVERY_STOPPING
+  };
+
+  explicit BluetoothAdapterWin(const InitCallback& init_callback);
   virtual ~BluetoothAdapterWin();
 
+  void TrackDefaultAdapter();
+  void TrackTestAdapter(
+      scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
+      scoped_refptr<base::SequencedTaskRunner> bluetooth_task_runner);
+
+  void MaybePostStartDiscoveryTask();
+  void MaybePostStopDiscoveryTask();
+
+  InitCallback init_callback_;
+  bool initialized_;
+  bool powered_;
+  DiscoveryStatus discovery_status_;
+  bool scanning_;
+
+  std::vector<std::pair<base::Closure, ErrorCallback> >
+      on_start_discovery_callbacks_;
+  std::vector<base::Closure> on_stop_discovery_callbacks_;
+  size_t num_discovery_listeners_;
+
+  scoped_refptr<base::SequencedTaskRunner> ui_task_runner_;
+  scoped_refptr<BluetoothTaskManagerWin> task_manager_;
+
+  base::ThreadChecker thread_checker_;
+
+  // List of observers interested in event notifications from us.
+  ObserverList<BluetoothAdapter::Observer> observers_;
+
   // 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<BluetoothAdapterWin> weak_ptr_factory_;
