Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Side by Side Diff: components/proximity_auth/proximity_auth_system.h

Issue 2902093002: [EasyUnlock] Force user to enter their password after 20 hours. (Closed)
Patch Set: fix test Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H 5 #ifndef COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H
6 #define COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H 6 #define COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
13 #include "base/time/clock.h"
13 #include "components/cryptauth/remote_device.h" 14 #include "components/cryptauth/remote_device.h"
14 #include "components/proximity_auth/remote_device_life_cycle.h" 15 #include "components/proximity_auth/remote_device_life_cycle.h"
15 #include "components/proximity_auth/screenlock_bridge.h" 16 #include "components/proximity_auth/screenlock_bridge.h"
16 #include "components/signin/core/account_id/account_id.h" 17 #include "components/signin/core/account_id/account_id.h"
17 18
18 namespace proximity_auth { 19 namespace proximity_auth {
19 20
20 class ProximityAuthClient; 21 class ProximityAuthClient;
22 class ProximityAuthPrefManager;
21 class RemoteDeviceLifeCycle; 23 class RemoteDeviceLifeCycle;
22 class UnlockManager; 24 class UnlockManager;
23 25
24 // This is the main entry point to start Proximity Auth, the underlying system 26 // This is the main entry point to start Proximity Auth, the underlying system
25 // for the Smart Lock feature. Given a list of remote devices (i.e. a 27 // for the Smart Lock feature. Given a list of remote devices (i.e. a
26 // phone) for each registered user, the system will handle the connection, 28 // phone) for each registered user, the system will handle the connection,
27 // authentication, and messenging protocol when the screen is locked and the 29 // authentication, and messenging protocol when the screen is locked and the
28 // registered user is focused. 30 // registered user is focused.
29 class ProximityAuthSystem : public RemoteDeviceLifeCycle::Observer, 31 class ProximityAuthSystem : public RemoteDeviceLifeCycle::Observer,
30 public ScreenlockBridge::Observer { 32 public ScreenlockBridge::Observer {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 void OnSuspend(); 64 void OnSuspend();
63 65
64 // Called when the system wakes up from a suspended state. 66 // Called when the system wakes up from a suspended state.
65 void OnSuspendDone(); 67 void OnSuspendDone();
66 68
67 protected: 69 protected:
68 // Constructor which allows passing in a custom |unlock_manager_|. 70 // Constructor which allows passing in a custom |unlock_manager_|.
69 // Exposed for testing. 71 // Exposed for testing.
70 ProximityAuthSystem(ScreenlockType screenlock_type, 72 ProximityAuthSystem(ScreenlockType screenlock_type,
71 ProximityAuthClient* proximity_auth_client, 73 ProximityAuthClient* proximity_auth_client,
72 std::unique_ptr<UnlockManager> unlock_manager); 74 std::unique_ptr<UnlockManager> unlock_manager,
75 std::unique_ptr<base::Clock> clock,
76 std::unique_ptr<ProximityAuthPrefManager> pref_manager);
73 77
74 // Creates the RemoteDeviceLifeCycle for |remote_device|. 78 // Creates the RemoteDeviceLifeCycle for |remote_device|.
75 // Exposed for testing. 79 // Exposed for testing.
76 virtual std::unique_ptr<RemoteDeviceLifeCycle> CreateRemoteDeviceLifeCycle( 80 virtual std::unique_ptr<RemoteDeviceLifeCycle> CreateRemoteDeviceLifeCycle(
77 const cryptauth::RemoteDevice& remote_device); 81 const cryptauth::RemoteDevice& remote_device);
78 82
79 // RemoteDeviceLifeCycle::Observer: 83 // RemoteDeviceLifeCycle::Observer:
80 void OnLifeCycleStateChanged(RemoteDeviceLifeCycle::State old_state, 84 void OnLifeCycleStateChanged(RemoteDeviceLifeCycle::State old_state,
81 RemoteDeviceLifeCycle::State new_state) override; 85 RemoteDeviceLifeCycle::State new_state) override;
82 86
83 // ScreenlockBridge::Observer: 87 // ScreenlockBridge::Observer:
84 void OnScreenDidLock( 88 void OnScreenDidLock(
85 ScreenlockBridge::LockHandler::ScreenType screen_type) override; 89 ScreenlockBridge::LockHandler::ScreenType screen_type) override;
86 void OnScreenDidUnlock( 90 void OnScreenDidUnlock(
87 ScreenlockBridge::LockHandler::ScreenType screen_type) override; 91 ScreenlockBridge::LockHandler::ScreenType screen_type) override;
88 void OnFocusedUserChanged(const AccountId& account_id) override; 92 void OnFocusedUserChanged(const AccountId& account_id) override;
89 93
90 private: 94 private:
91 // Resumes |remote_device_life_cycle_| after device wakes up and waits a 95 // Resumes |remote_device_life_cycle_| after device wakes up and waits a
92 // timeout. 96 // timeout.
93 void ResumeAfterWakeUpTimeout(); 97 void ResumeAfterWakeUpTimeout();
94 98
99 // Returns true if the user should be forced to use a password to authenticate
100 // rather than EasyUnlock.
101 bool ShouldForcePassword();
102
95 // Lists of remote devices, keyed by user account id. 103 // Lists of remote devices, keyed by user account id.
96 std::map<AccountId, cryptauth::RemoteDeviceList> remote_devices_map_; 104 std::map<AccountId, cryptauth::RemoteDeviceList> remote_devices_map_;
97 105
98 // Delegate for Chrome dependent functionality. 106 // Delegate for Chrome dependent functionality.
99 ProximityAuthClient* proximity_auth_client_; 107 ProximityAuthClient* proximity_auth_client_;
100 108
101 // Responsible for the life cycle of connecting and authenticating to 109 // Responsible for the life cycle of connecting and authenticating to
102 // the RemoteDevice of the currently focused user. 110 // the RemoteDevice of the currently focused user.
103 std::unique_ptr<RemoteDeviceLifeCycle> remote_device_life_cycle_; 111 std::unique_ptr<RemoteDeviceLifeCycle> remote_device_life_cycle_;
104 112
105 // Handles the interaction with the lock screen UI. 113 // Handles the interaction with the lock screen UI.
106 std::unique_ptr<UnlockManager> unlock_manager_; 114 std::unique_ptr<UnlockManager> unlock_manager_;
107 115
116 // Used to get the current timestamp.
117 std::unique_ptr<base::Clock> clock_;
118
119 // Fetches EasyUnlock preferences.
120 std::unique_ptr<ProximityAuthPrefManager> pref_manager_;
121
108 // True if the system is suspended. 122 // True if the system is suspended.
109 bool suspended_; 123 bool suspended_;
110 124
111 // True if the system is started_. 125 // True if the system is started_.
112 bool started_; 126 bool started_;
113 127
114 base::WeakPtrFactory<ProximityAuthSystem> weak_ptr_factory_; 128 base::WeakPtrFactory<ProximityAuthSystem> weak_ptr_factory_;
115 129
116 DISALLOW_COPY_AND_ASSIGN(ProximityAuthSystem); 130 DISALLOW_COPY_AND_ASSIGN(ProximityAuthSystem);
117 }; 131 };
118 132
119 } // namespace proximity_auth 133 } // namespace proximity_auth
120 134
121 #endif // COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H 135 #endif // COMPONENTS_PROXIMITY_AUTH_PROXIMITY_AUTH_SYSTEM_H
OLDNEW
« no previous file with comments | « components/proximity_auth/proximity_auth_pref_names.cc ('k') | components/proximity_auth/proximity_auth_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698