OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_UNLOCK_MANAGER_H | 5 #ifndef COMPONENTS_PROXIMITY_AUTH_UNLOCK_MANAGER_H |
6 #define COMPONENTS_PROXIMITY_AUTH_UNLOCK_MANAGER_H | 6 #define COMPONENTS_PROXIMITY_AUTH_UNLOCK_MANAGER_H |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 bool IsUnlockAllowed(); | 55 bool IsUnlockAllowed(); |
56 | 56 |
57 // Sets the |life_cycle| of the rmeote device to which local events are | 57 // Sets the |life_cycle| of the rmeote device to which local events are |
58 // dispatched. A null |life_cycle| indicates that proximity-based | 58 // dispatched. A null |life_cycle| indicates that proximity-based |
59 // authentication is inactive. | 59 // authentication is inactive. |
60 void SetRemoteDeviceLifeCycle(RemoteDeviceLifeCycle* life_cycle); | 60 void SetRemoteDeviceLifeCycle(RemoteDeviceLifeCycle* life_cycle); |
61 | 61 |
62 // Called when the life cycle's state changes. | 62 // Called when the life cycle's state changes. |
63 void OnLifeCycleStateChanged(); | 63 void OnLifeCycleStateChanged(); |
64 | 64 |
65 protected: | |
66 // Called when the user pod is clicked for an authentication attempt of type | 65 // Called when the user pod is clicked for an authentication attempt of type |
67 // |auth_type|. | 66 // |auth_type|. |
68 // Exposed for testing. | 67 // Exposed for testing. |
69 void OnAuthAttempted(ScreenlockBridge::LockHandler::AuthType auth_type); | 68 void OnAuthAttempted(ScreenlockBridge::LockHandler::AuthType auth_type); |
70 | 69 |
71 private: | 70 private: |
72 // The possible lock screen states for the remote device. | 71 // The possible lock screen states for the remote device. |
73 enum class RemoteScreenlockState { | 72 enum class RemoteScreenlockState { |
74 UNKNOWN, | 73 UNKNOWN, |
75 UNLOCKED, | 74 UNLOCKED, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 127 |
129 // Accepts or rejects the current auth attempt according to |should_accept|. | 128 // Accepts or rejects the current auth attempt according to |should_accept|. |
130 // If the auth attempt is accepted, unlocks the screen. | 129 // If the auth attempt is accepted, unlocks the screen. |
131 void AcceptAuthAttempt(bool should_accept); | 130 void AcceptAuthAttempt(bool should_accept); |
132 | 131 |
133 // Returns the screen lock state corresponding to the given remote |status| | 132 // Returns the screen lock state corresponding to the given remote |status| |
134 // update. | 133 // update. |
135 RemoteScreenlockState GetScreenlockStateFromRemoteUpdate( | 134 RemoteScreenlockState GetScreenlockStateFromRemoteUpdate( |
136 RemoteStatusUpdate update); | 135 RemoteStatusUpdate update); |
137 | 136 |
| 137 // Returns the Messenger instance associated with |life_cycle_|. This function |
| 138 // will return nullptr if |life_cycle_| is not set or the remote device is not |
| 139 // yet authenticated. |
| 140 Messenger* GetMessenger(); |
| 141 |
138 // Whether |this| manager is being used for sign-in or session unlock. | 142 // Whether |this| manager is being used for sign-in or session unlock. |
139 const ScreenlockType screenlock_type_; | 143 const ScreenlockType screenlock_type_; |
140 | 144 |
141 // Whether the user is present at the remote device. Unset if no remote status | 145 // Whether the user is present at the remote device. Unset if no remote status |
142 // update has yet been received. | 146 // update has yet been received. |
143 scoped_ptr<RemoteScreenlockState> remote_screenlock_state_; | 147 scoped_ptr<RemoteScreenlockState> remote_screenlock_state_; |
144 | 148 |
145 // Controls the proximity auth flow logic for a remote device. Not owned, and | 149 // Controls the proximity auth flow logic for a remote device. Not owned, and |
146 // expcted to outlive |this| instance. | 150 // expcted to outlive |this| instance. |
147 RemoteDeviceLifeCycle* life_cycle_; | 151 RemoteDeviceLifeCycle* life_cycle_; |
148 | 152 |
149 // The messenger used to communicate with the remote device once a secure | |
150 // channel | |
151 // is established. Null if no secure channel has been established yet. Not | |
152 // owned, and expected to outlive |this| instance. | |
153 Messenger* messenger_; | |
154 | |
155 // Tracks whether the remote device is currently in close enough proximity to | 153 // Tracks whether the remote device is currently in close enough proximity to |
156 // the local device to allow unlocking. | 154 // the local device to allow unlocking. |
157 scoped_ptr<ProximityMonitor> proximity_monitor_; | 155 scoped_ptr<ProximityMonitor> proximity_monitor_; |
158 | 156 |
159 // Used to call into the embedder. Expected to outlive |this| instance. | 157 // Used to call into the embedder. Expected to outlive |this| instance. |
160 ProximityAuthClient* proximity_auth_client_; | 158 ProximityAuthClient* proximity_auth_client_; |
161 | 159 |
162 // Whether the screen is currently locked. | 160 // Whether the screen is currently locked. |
163 bool is_locked_; | 161 bool is_locked_; |
164 | 162 |
(...skipping 25 matching lines...) Expand all Loading... |
190 | 188 |
191 // Used to vend all other weak pointers. | 189 // Used to vend all other weak pointers. |
192 base::WeakPtrFactory<UnlockManager> weak_ptr_factory_; | 190 base::WeakPtrFactory<UnlockManager> weak_ptr_factory_; |
193 | 191 |
194 DISALLOW_COPY_AND_ASSIGN(UnlockManager); | 192 DISALLOW_COPY_AND_ASSIGN(UnlockManager); |
195 }; | 193 }; |
196 | 194 |
197 } // namespace proximity_auth | 195 } // namespace proximity_auth |
198 | 196 |
199 #endif // COMPONENTS_PROXIMITY_AUTH_UNLOCK_MANAGER_H | 197 #endif // COMPONENTS_PROXIMITY_AUTH_UNLOCK_MANAGER_H |
OLD | NEW |