Index: chrome/browser/signin/easy_unlock_service.cc |
diff --git a/chrome/browser/signin/easy_unlock_service.cc b/chrome/browser/signin/easy_unlock_service.cc |
index 1679d3601f249b51b9d9ec1545667904eaf09239..b76ae4306b7b0859b29d7940eb635d7a363f962f 100644 |
--- a/chrome/browser/signin/easy_unlock_service.cc |
+++ b/chrome/browser/signin/easy_unlock_service.cc |
@@ -64,21 +64,10 @@ |
#include "components/signin/core/account_id/account_id.h" |
#endif |
-#if defined(OS_WIN) |
-#include "base/win/windows_version.h" |
-#endif |
- |
using proximity_auth::ScreenlockState; |
namespace { |
-enum BluetoothType { |
- BT_NO_ADAPTER, |
- BT_NORMAL, |
- BT_LOW_ENERGY_CAPABLE, |
- BT_MAX_TYPE |
-}; |
- |
PrefService* GetLocalState() { |
return g_browser_process ? g_browser_process->local_state() : NULL; |
} |
@@ -145,32 +134,17 @@ class EasyUnlockService::BluetoothDetector |
service_->OnBluetoothAdapterPresentChanged(); |
} |
- device::BluetoothAdapter* getAdapter() { |
- return adapter_.get(); |
- } |
- |
private: |
void OnAdapterInitialized(scoped_refptr<device::BluetoothAdapter> adapter) { |
adapter_ = adapter; |
adapter_->AddObserver(this); |
service_->OnBluetoothAdapterPresentChanged(); |
-#if !defined(OS_CHROMEOS) |
- // Bluetooth detection causes serious performance degradations on Mac |
- // and possibly other platforms as well: http://crbug.com/467316 |
- // Since this feature is currently only offered for ChromeOS we just |
- // turn it off on other platforms once the inforamtion about the |
- // adapter has been gathered and reported. |
- // TODO(bcwhite,xiyuan): Revisit when non-chromeos platforms are supported. |
- adapter_->RemoveObserver(this); |
- adapter_ = NULL; |
-#else |
// TODO(tengs): At the moment, there is no way for Bluetooth discoverability |
// to be turned on except through the Easy Unlock setup. If we step on any |
// toes in the future then we need to revisit this guard. |
if (adapter_->IsDiscoverable()) |
TurnOffBluetoothDiscoverability(); |
-#endif // !defined(OS_CHROMEOS) |
} |
// apps::AppLifetimeMonitor::Observer: |
@@ -744,31 +718,20 @@ void EasyUnlockService::InitializeOnAppManagerReady() { |
CHECK(app_manager_.get()); |
InitializeInternal(); |
+ |
+#if defined(OS_CHROMEOS) |
+ // Only start Bluetooth detection for ChromeOS since the feature is |
+ // only offered on ChromeOS. Enabling this on non-ChromeOS platforms |
+ // previously introduced a performance regression: http://crbug.com/404482 |
+ // Make sure not to reintroduce a performance regression if re-enabling on |
+ // additional platforms. |
+ // TODO(xiyuan): Revisit when non-chromeos platforms are supported. |
bluetooth_detector_->Initialize(); |
+#endif // defined(OS_CHROMEOS) |
} |
void EasyUnlockService::OnBluetoothAdapterPresentChanged() { |
UpdateAppState(); |
- |
- // Whether we've already passed Bluetooth availability information to UMA. |
- // This is static because there may be multiple instances and we want to |
- // report this system-level stat only once per run of Chrome. |
- static bool bluetooth_adapter_has_been_reported = false; |
- |
- if (!bluetooth_adapter_has_been_reported) { |
- bluetooth_adapter_has_been_reported = true; |
- int bttype = BT_NO_ADAPTER; |
- if (bluetooth_detector_->IsPresent()) { |
- bttype = BT_LOW_ENERGY_CAPABLE; |
-#if defined(OS_WIN) |
- if (base::win::GetVersion() < base::win::VERSION_WIN8) { |
- bttype = BT_NORMAL; |
- } |
-#endif |
- } |
- UMA_HISTOGRAM_ENUMERATION( |
- "EasyUnlock.BluetoothAvailability", bttype, BT_MAX_TYPE); |
- } |
} |
void EasyUnlockService::SetHardlockStateForUser( |