Adding instrumentation to locate the source of jankiness
[chromium-blink-merge.git] / chrome / browser / signin / easy_unlock_service_regular.h
blob768d1fd13b86b93cc4581ca29637d19f09dc81d8
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_
8 #include <string>
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"
15 namespace base {
16 class DictionaryValue;
17 class ListValue;
20 class EasyUnlockToggleFlow;
21 class Profile;
23 // EasyUnlockService instance that should be used for regular, non-signin
24 // profiles.
25 class EasyUnlockServiceRegular : public EasyUnlockService {
26 public:
27 explicit EasyUnlockServiceRegular(Profile* profile);
28 virtual ~EasyUnlockServiceRegular();
30 private:
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_