OLD | NEW |
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 #include "components/proximity_auth/proximity_auth_system.h" | 5 #include "components/proximity_auth/proximity_auth_system.h" |
6 | 6 |
7 #include "base/thread_task_runner_handle.h" | 7 #include "base/thread_task_runner_handle.h" |
8 #include "base/time/default_tick_clock.h" | 8 #include "base/time/default_tick_clock.h" |
9 #include "components/proximity_auth/logging/logging.h" | 9 #include "components/proximity_auth/logging/logging.h" |
10 #include "components/proximity_auth/proximity_auth_client.h" | 10 #include "components/proximity_auth/proximity_auth_client.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 suspended_(false), | 37 suspended_(false), |
38 weak_ptr_factory_(this) {} | 38 weak_ptr_factory_(this) {} |
39 | 39 |
40 ProximityAuthSystem::~ProximityAuthSystem() { | 40 ProximityAuthSystem::~ProximityAuthSystem() { |
41 ScreenlockBridge::Get()->RemoveObserver(this); | 41 ScreenlockBridge::Get()->RemoveObserver(this); |
42 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); | 42 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
43 } | 43 } |
44 | 44 |
45 void ProximityAuthSystem::Start() { | 45 void ProximityAuthSystem::Start() { |
46 ScreenlockBridge::Get()->AddObserver(this); | 46 ScreenlockBridge::Get()->AddObserver(this); |
47 if (remote_device_.user_id == ScreenlockBridge::Get()->focused_user_id()) | 47 if (remote_device_.user_id == |
48 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_user_id()); | 48 ScreenlockBridge::Get()->focused_account_id().GetUserEmail()) |
| 49 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_account_id()); |
49 } | 50 } |
50 | 51 |
51 void ProximityAuthSystem::OnAuthAttempted(const std::string& user_id) { | 52 void ProximityAuthSystem::OnAuthAttempted(const AccountId& /* account_id */) { |
52 // TODO(tengs): There is no reason to pass the |user_id| argument anymore. | 53 // TODO(tengs): There is no reason to pass the |account_id| argument anymore. |
53 unlock_manager_->OnAuthAttempted(ScreenlockBridge::LockHandler::USER_CLICK); | 54 unlock_manager_->OnAuthAttempted(ScreenlockBridge::LockHandler::USER_CLICK); |
54 } | 55 } |
55 | 56 |
56 void ProximityAuthSystem::OnSuspend() { | 57 void ProximityAuthSystem::OnSuspend() { |
57 PA_LOG(INFO) << "Preparing for device suspension."; | 58 PA_LOG(INFO) << "Preparing for device suspension."; |
58 DCHECK(!suspended_); | 59 DCHECK(!suspended_); |
59 suspended_ = true; | 60 suspended_ = true; |
60 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); | 61 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
61 remote_device_life_cycle_.reset(); | 62 remote_device_life_cycle_.reset(); |
62 } | 63 } |
(...skipping 12 matching lines...) Expand all Loading... |
75 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 76 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
76 FROM_HERE, base::Bind(&ProximityAuthSystem::ResumeAfterWakeUpTimeout, | 77 FROM_HERE, base::Bind(&ProximityAuthSystem::ResumeAfterWakeUpTimeout, |
77 weak_ptr_factory_.GetWeakPtr()), | 78 weak_ptr_factory_.GetWeakPtr()), |
78 base::TimeDelta::FromSeconds(kWakeUpTimeoutSeconds)); | 79 base::TimeDelta::FromSeconds(kWakeUpTimeoutSeconds)); |
79 } | 80 } |
80 | 81 |
81 void ProximityAuthSystem::ResumeAfterWakeUpTimeout() { | 82 void ProximityAuthSystem::ResumeAfterWakeUpTimeout() { |
82 PA_LOG(INFO) << "Resume after suspend"; | 83 PA_LOG(INFO) << "Resume after suspend"; |
83 suspended_ = false; | 84 suspended_ = false; |
84 if (ScreenlockBridge::Get()->IsLocked()) | 85 if (ScreenlockBridge::Get()->IsLocked()) |
85 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_user_id()); | 86 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_account_id()); |
86 } | 87 } |
87 | 88 |
88 void ProximityAuthSystem::OnLifeCycleStateChanged( | 89 void ProximityAuthSystem::OnLifeCycleStateChanged( |
89 RemoteDeviceLifeCycle::State old_state, | 90 RemoteDeviceLifeCycle::State old_state, |
90 RemoteDeviceLifeCycle::State new_state) { | 91 RemoteDeviceLifeCycle::State new_state) { |
91 unlock_manager_->OnLifeCycleStateChanged(); | 92 unlock_manager_->OnLifeCycleStateChanged(); |
92 } | 93 } |
93 | 94 |
94 void ProximityAuthSystem::OnScreenDidLock( | 95 void ProximityAuthSystem::OnScreenDidLock( |
95 ScreenlockBridge::LockHandler::ScreenType screen_type) { | 96 ScreenlockBridge::LockHandler::ScreenType screen_type) { |
96 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_user_id()); | 97 OnFocusedUserChanged(ScreenlockBridge::Get()->focused_account_id()); |
97 } | 98 } |
98 | 99 |
99 void ProximityAuthSystem::OnScreenDidUnlock( | 100 void ProximityAuthSystem::OnScreenDidUnlock( |
100 ScreenlockBridge::LockHandler::ScreenType screen_type) { | 101 ScreenlockBridge::LockHandler::ScreenType screen_type) { |
101 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); | 102 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
102 remote_device_life_cycle_.reset(); | 103 remote_device_life_cycle_.reset(); |
103 } | 104 } |
104 | 105 |
105 void ProximityAuthSystem::OnFocusedUserChanged(const std::string& user_id) { | 106 void ProximityAuthSystem::OnFocusedUserChanged(const AccountId& account_id) { |
106 if (!user_id.empty() && remote_device_.user_id != user_id) { | 107 if (account_id.is_valid() && |
| 108 remote_device_.user_id != account_id.GetUserEmail()) { |
107 PA_LOG(INFO) << "Different user focused, destroying RemoteDeviceLifeCycle."; | 109 PA_LOG(INFO) << "Different user focused, destroying RemoteDeviceLifeCycle."; |
108 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); | 110 unlock_manager_->SetRemoteDeviceLifeCycle(nullptr); |
109 remote_device_life_cycle_.reset(); | 111 remote_device_life_cycle_.reset(); |
110 } else if (!remote_device_life_cycle_ && !suspended_) { | 112 } else if (!remote_device_life_cycle_ && !suspended_) { |
111 PA_LOG(INFO) << "Creating RemoteDeviceLifeCycle for focused user."; | 113 PA_LOG(INFO) << "Creating RemoteDeviceLifeCycle for focused user."; |
112 remote_device_life_cycle_.reset( | 114 remote_device_life_cycle_.reset( |
113 new RemoteDeviceLifeCycleImpl(remote_device_, proximity_auth_client_)); | 115 new RemoteDeviceLifeCycleImpl(remote_device_, proximity_auth_client_)); |
114 unlock_manager_->SetRemoteDeviceLifeCycle(remote_device_life_cycle_.get()); | 116 unlock_manager_->SetRemoteDeviceLifeCycle(remote_device_life_cycle_.get()); |
115 remote_device_life_cycle_->AddObserver(this); | 117 remote_device_life_cycle_->AddObserver(this); |
116 remote_device_life_cycle_->Start(); | 118 remote_device_life_cycle_->Start(); |
117 } | 119 } |
118 } | 120 } |
119 | 121 |
120 } // proximity_auth | 122 } // proximity_auth |
OLD | NEW |