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

Unified Diff: device/bluetooth/bluetooth_adapter_mac.mm

Issue 1232613004: The first 3 BluetoothTest.* unit tests now running on Mac as well. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@movCBCM
Patch Set: comment edit Created 5 years, 5 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
« no previous file with comments | « device/bluetooth/bluetooth_adapter_mac.h ('k') | device/bluetooth/bluetooth_adapter_mac_unittest.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/bluetooth/bluetooth_adapter_mac.mm
diff --git a/device/bluetooth/bluetooth_adapter_mac.mm b/device/bluetooth/bluetooth_adapter_mac.mm
index 0bff39aaa31ee343ca82ef3a1804d6c60391bbe6..bdbca4694f5322940349080f92124f3e488c51ac 100644
--- a/device/bluetooth/bluetooth_adapter_mac.mm
+++ b/device/bluetooth/bluetooth_adapter_mac.mm
@@ -48,15 +48,27 @@ base::WeakPtr<BluetoothAdapter> BluetoothAdapter::CreateAdapter(
}
// static
-base::WeakPtr<BluetoothAdapter> BluetoothAdapterMac::CreateAdapter() {
+base::WeakPtr<BluetoothAdapterMac> BluetoothAdapterMac::CreateAdapter() {
BluetoothAdapterMac* adapter = new BluetoothAdapterMac();
adapter->Init();
return adapter->weak_ptr_factory_.GetWeakPtr();
}
+// static
+base::WeakPtr<BluetoothAdapterMac> BluetoothAdapterMac::CreateAdapterForTest(
+ std::string name,
+ std::string address,
+ scoped_refptr<base::SequencedTaskRunner> ui_task_runner) {
+ BluetoothAdapterMac* adapter = new BluetoothAdapterMac();
+ adapter->InitForTest(ui_task_runner);
+ adapter->name_ = name;
+ adapter->address_ = address;
+ return adapter->weak_ptr_factory_.GetWeakPtr();
+}
+
BluetoothAdapterMac::BluetoothAdapterMac()
: BluetoothAdapter(),
- powered_(false),
+ classic_powered_(false),
num_discovery_sessions_(0),
classic_discovery_manager_(
BluetoothDiscoveryManagerMac::CreateClassic(this)),
@@ -100,11 +112,21 @@ bool BluetoothAdapterMac::IsInitialized() const {
}
bool BluetoothAdapterMac::IsPresent() const {
- return !address_.empty();
+ bool is_present = !address_.empty();
+ if (IsLowEnergyAvailable()) {
+ is_present = is_present || ([low_energy_central_manager_ state] ==
+ CBCentralManagerStatePoweredOn);
+ }
+ return is_present;
}
bool BluetoothAdapterMac::IsPowered() const {
- return powered_;
+ bool is_powered = classic_powered_;
+ if (IsLowEnergyAvailable()) {
+ is_powered = is_powered || ([low_energy_central_manager_ state] ==
+ CBCentralManagerStatePoweredOn);
+ }
+ return is_powered;
}
void BluetoothAdapterMac::SetPowered(bool powered,
@@ -113,8 +135,9 @@ void BluetoothAdapterMac::SetPowered(bool powered,
NOTIMPLEMENTED();
}
+// TODO(krstnmnlsn): If this information is retrievable form IOBluetooth we
+// should return the discoverable status.
bool BluetoothAdapterMac::IsDiscoverable() const {
- NOTIMPLEMENTED();
return false;
}
@@ -197,6 +220,16 @@ bool BluetoothAdapterMac::IsLowEnergyAvailable() {
return base::mac::IsOSYosemiteOrLater();
}
+void BluetoothAdapterMac::SetCentralManagerForTesting(
+ CBCentralManager* central_manager) {
+ CHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
+ [central_manager performSelector:@selector(setDelegate:)
+ withObject:low_energy_central_manager_delegate_];
+ low_energy_central_manager_.reset(central_manager);
+ low_energy_discovery_manager_->SetCentralManager(
+ low_energy_central_manager_.get());
+}
+
void BluetoothAdapterMac::RemovePairingDelegateInternal(
BluetoothDevice::PairingDelegate* pairing_delegate) {
}
@@ -331,7 +364,7 @@ void BluetoothAdapterMac::PollAdapter() {
"461181 BluetoothAdapterMac::PollAdapter::Start"));
bool was_present = IsPresent();
std::string address;
- bool powered = false;
+ bool classic_powered = false;
IOBluetoothHostController* controller =
[IOBluetoothHostController defaultController];
@@ -343,7 +376,7 @@ void BluetoothAdapterMac::PollAdapter() {
if (controller != nil) {
address = BluetoothDevice::CanonicalizeAddress(
base::SysNSStringToUTF8([controller addressAsString]));
- powered = ([controller powerState] == kBluetoothHCIPowerStateON);
+ classic_powered = ([controller powerState] == kBluetoothHCIPowerStateON);
// For performance reasons, cache the adapter's name. It's not uncommon for
// a call to [controller nameAsString] to take tens of milliseconds. Note
@@ -373,10 +406,10 @@ void BluetoothAdapterMac::PollAdapter() {
tracked_objects::ScopedTracker tracking_profile4(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"461181 BluetoothAdapterMac::PollAdapter::AdapterPowerChanged"));
- if (powered_ != powered) {
- powered_ = powered;
+ if (classic_powered_ != classic_powered) {
+ classic_powered_ = classic_powered;
FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_,
- AdapterPoweredChanged(this, powered_));
+ AdapterPoweredChanged(this, classic_powered_));
}
// TODO(erikchen): Remove ScopedTracker below once http://crbug.com/461181
@@ -489,14 +522,4 @@ void BluetoothAdapterMac::AddPairedDevices() {
}
}
-void BluetoothAdapterMac::SetCentralManagerForTesting(
- CBCentralManager* central_manager) {
- CHECK(BluetoothAdapterMac::IsLowEnergyAvailable());
- [central_manager performSelector:@selector(setDelegate:)
- withObject:low_energy_central_manager_delegate_];
- low_energy_central_manager_.reset(central_manager);
- low_energy_discovery_manager_->SetCentralManager(
- low_energy_central_manager_.get());
-}
-
} // namespace device
« no previous file with comments | « device/bluetooth/bluetooth_adapter_mac.h ('k') | device/bluetooth/bluetooth_adapter_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698