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_