1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_
6 #define CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_
10 #include "base/macros.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/prefs/pref_change_registrar.h"
13 #include "chrome/browser/signin/easy_unlock_service.h"
16 class DictionaryValue
;
20 class EasyUnlockToggleFlow
;
23 // EasyUnlockService instance that should be used for regular, non-signin
25 class EasyUnlockServiceRegular
: public EasyUnlockService
{
27 explicit EasyUnlockServiceRegular(Profile
* profile
);
28 virtual ~EasyUnlockServiceRegular();
31 // EasyUnlockService implementation.
32 virtual EasyUnlockService::Type
GetType() const override
;
33 virtual std::string
GetUserEmail() const override
;
34 virtual void LaunchSetup() override
;
35 virtual const base::DictionaryValue
* GetPermitAccess() const override
;
36 virtual void SetPermitAccess(const base::DictionaryValue
& permit
) override
;
37 virtual void ClearPermitAccess() override
;
38 virtual const base::ListValue
* GetRemoteDevices() const override
;
39 virtual void SetRemoteDevices(const base::ListValue
& devices
) override
;
40 virtual void ClearRemoteDevices() override
;
41 virtual void RunTurnOffFlow() override
;
42 virtual void ResetTurnOffFlow() override
;
43 virtual TurnOffFlowStatus
GetTurnOffFlowStatus() const override
;
44 virtual std::string
GetChallenge() const override
;
45 virtual std::string
GetWrappedSecret() const override
;
46 virtual void InitializeInternal() override
;
47 virtual void ShutdownInternal() override
;
48 virtual bool IsAllowedInternal() override
;
50 // Callback when the controlling pref changes.
51 void OnPrefsChanged();
53 // Sets the new turn-off flow status.
54 void SetTurnOffFlowStatus(TurnOffFlowStatus status
);
56 // Callback invoked when turn off flow has finished.
57 void OnTurnOffFlowFinished(bool success
);
59 PrefChangeRegistrar registrar_
;
61 TurnOffFlowStatus turn_off_flow_status_
;
62 scoped_ptr
<EasyUnlockToggleFlow
> turn_off_flow_
;
64 DISALLOW_COPY_AND_ASSIGN(EasyUnlockServiceRegular
);
67 #endif // CHROME_BROWSER_SIGNIN_EASY_UNLOCK_SERVICE_REGULAR_H_