Index: chrome/browser/signin/easy_unlock_service.h |
diff --git a/chrome/browser/signin/easy_unlock_service.h b/chrome/browser/signin/easy_unlock_service.h |
index 44f54efb231f5b94b21f78dee73653e14cf52e3e..96bbd6dc8719bd2c95202b75d0f388d50cbd1296 100644 |
--- a/chrome/browser/signin/easy_unlock_service.h |
+++ b/chrome/browser/signin/easy_unlock_service.h |
@@ -94,33 +94,48 @@ class EasyUnlockService : public KeyedService { |
explicit EasyUnlockService(Profile* profile); |
virtual ~EasyUnlockService(); |
- // Does service type specific initialization. |
+ // Does a service type specific initialization. |
virtual void InitializeInternal() = 0; |
+ // Does a service type specific shutdown. Called from |Shutdown|. |
+ virtual void ShutdownInternal() = 0; |
+ |
// Service type specific tests for whether the service is allowed. Returns |
// false if service is not allowed. If true is returned, the service may still |
// not be allowed if common tests fail (e.g. if Bluetooth is not available). |
virtual bool IsAllowedInternal() = 0; |
+ // KeyedService override: |
+ virtual void Shutdown() OVERRIDE; |
+ |
// Exposes the profile to which the service is attached to subclasses. |
Profile* profile() const { return profile_; } |
- // Installs the Easy unlock component app if it isn't installed or enables |
- // the app if it is installed but disabled. |
+ // Installs the Easy unlock component app if it isn't installed and enables |
+ // the app if it is disabled. |
void LoadApp(); |
// Disables the Easy unlock component app if it's loaded. |
void DisableAppIfLoaded(); |
+ // Unloads the Easy unlock component app if it's loaded. |
+ void UnloadApp(); |
+ |
// Reloads the Easy unlock component app if it's loaded. |
void ReloadApp(); |
// Checks whether Easy unlock should be running and updates app state. |
void UpdateAppState(); |
+ // Notifies the easy unlock app that the user state has been updated. |
+ void NotifyUserUpdated(); |
+ |
// Notifies observers that the turn off flow status changed. |
void NotifyTurnOffOperationStatusChanged(); |
+ // Resets |screenlock_state_handler_|. |
+ void ResetScreenlockStateHandler(); |
+ |
private: |
// A class to detect whether a bluetooth adapter is present. |
class BluetoothDetector; |
@@ -144,6 +159,9 @@ class EasyUnlockService : public KeyedService { |
scoped_ptr<PowerMonitor> power_monitor_; |
#endif |
+ // Whether the service has been shut down. |
+ bool shut_down_; |
+ |
ObserverList<EasyUnlockServiceObserver> observers_; |
base::WeakPtrFactory<EasyUnlockService> weak_ptr_factory_; |