| Index: device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
|
| diff --git a/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm b/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
|
| index 67cf39126d78272fe44031d099c2fa6886621d84..4c6bf2e5ccade407da7faf013c87416e285d4633 100644
|
| --- a/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
|
| +++ b/device/bluetooth/bluetooth_low_energy_discovery_manager_mac.mm
|
| @@ -5,8 +5,10 @@
|
| #include "device/bluetooth/bluetooth_low_energy_discovery_manager_mac.h"
|
|
|
| #include "base/mac/mac_util.h"
|
| +#include "base/mac/sdk_forward_declarations.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| +#include "device/bluetooth/bluetooth_adapter_mac.h"
|
| #include "device/bluetooth/bluetooth_low_energy_device_mac.h"
|
|
|
| using device::BluetoothLowEnergyDeviceMac;
|
| @@ -79,13 +81,6 @@ class BluetoothLowEnergyDiscoveryManagerMacDelegate {
|
|
|
| BluetoothLowEnergyDiscoveryManagerMac::
|
| ~BluetoothLowEnergyDiscoveryManagerMac() {
|
| - // Set the manager's delegate to nil since the object it points to
|
| - // (|bridge_|) will be deallocated while |manager_| is leaked.
|
| - if (base::mac::IsOSLionOrLater()) {
|
| - // CoreBluetooth only available in OSX 10.7 and later.
|
| - SEL selector = NSSelectorFromString(@"setDelegate:");
|
| - [manager_ performSelector:selector withObject:nil];
|
| - }
|
| }
|
|
|
| bool BluetoothLowEnergyDiscoveryManagerMac::IsDiscovering() const {
|
| @@ -145,15 +140,6 @@ void BluetoothLowEnergyDiscoveryManagerMac::DiscoveredPeripheral(
|
| observer_->LowEnergyDeviceUpdated(peripheral, advertisementData, rssi);
|
| }
|
|
|
| -void BluetoothLowEnergyDiscoveryManagerMac::SetManagerForTesting(
|
| - CBCentralManager* manager) {
|
| - // setDelegate is only available in OSX 10.7 and later.
|
| - CHECK(base::mac::IsOSLionOrLater());
|
| - SEL selector = NSSelectorFromString(@"setDelegate:");
|
| - [manager performSelector:selector withObject:bridge_];
|
| - manager_.reset(manager);
|
| -}
|
| -
|
| BluetoothLowEnergyDiscoveryManagerMac*
|
| BluetoothLowEnergyDiscoveryManagerMac::Create(Observer* observer) {
|
| return new BluetoothLowEnergyDiscoveryManagerMac(observer);
|
| @@ -162,17 +148,18 @@ BluetoothLowEnergyDiscoveryManagerMac::Create(Observer* observer) {
|
| BluetoothLowEnergyDiscoveryManagerMac::BluetoothLowEnergyDiscoveryManagerMac(
|
| Observer* observer)
|
| : observer_(observer) {
|
| + DCHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
|
| bridge_.reset([[BluetoothLowEnergyDiscoveryManagerMacBridge alloc]
|
| initWithManager:this]);
|
| - // Since CoreBluetooth is only available on OS X 10.7 or later, we
|
| - // instantiate CBCentralManager only for OS X >= 10.7.
|
| - if (base::mac::IsOSLionOrLater()) {
|
| - Class aClass = NSClassFromString(@"CBCentralManager");
|
| - manager_.reset(
|
| - [[aClass alloc] initWithDelegate:bridge_
|
| - queue:dispatch_get_main_queue()]);
|
| - // Increment reference count, see comment at declaration.
|
| - [manager_ retain];
|
| - }
|
| + Class aClass = NSClassFromString(@"CBCentralManager");
|
| + manager_.reset([[aClass alloc] initWithDelegate:bridge_
|
| + queue:dispatch_get_main_queue()]);
|
| discovering_ = false;
|
| }
|
| +
|
| +void BluetoothLowEnergyDiscoveryManagerMac::SetManagerForTesting(
|
| + CBCentralManager* manager) {
|
| + DCHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
|
| + [manager performSelector:@selector(setDelegate:) withObject:bridge_];
|
| + manager_.reset(manager);
|
| +}
|
|
|