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

Side by Side Diff: components/proximity_auth/screenlock_bridge.cc

Issue 1096293003: Move screenlock_bridge to components/proximity_auth (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 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
« no previous file with comments | « components/proximity_auth/screenlock_bridge.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/signin/screenlock_bridge.h" 5 #include "components/proximity_auth/screenlock_bridge.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "chrome/browser/profiles/profile_window.h" 9 #include "components/proximity_auth/proximity_auth_client.h"
10 #include "chrome/browser/signin/signin_manager_factory.h"
11 #include "components/signin/core/browser/signin_manager.h"
12 10
13 #if defined(OS_CHROMEOS) 11 #if defined(OS_CHROMEOS)
14 #include "chromeos/dbus/dbus_thread_manager.h" 12 #include "chromeos/dbus/dbus_thread_manager.h"
15 #include "chromeos/dbus/session_manager_client.h" 13 #include "chromeos/dbus/session_manager_client.h"
16 #endif 14 #endif
17 15
16 namespace proximity_auth {
18 namespace { 17 namespace {
19 18
20 base::LazyInstance<ScreenlockBridge> g_screenlock_bridge_bridge_instance =
21 LAZY_INSTANCE_INITIALIZER;
22
23 // Ids for the icons that are supported by lock screen and signin screen 19 // Ids for the icons that are supported by lock screen and signin screen
24 // account picker as user pod custom icons. 20 // account picker as user pod custom icons.
25 // The id's should be kept in sync with values used by user_pod_row.js. 21 // The id's should be kept in sync with values used by user_pod_row.js.
26 const char kLockedUserPodCustomIconId[] = "locked"; 22 const char kLockedUserPodCustomIconId[] = "locked";
27 const char kLockedToBeActivatedUserPodCustomIconId[] = "locked-to-be-activated"; 23 const char kLockedToBeActivatedUserPodCustomIconId[] = "locked-to-be-activated";
28 const char kLockedWithProximityHintUserPodCustomIconId[] = 24 const char kLockedWithProximityHintUserPodCustomIconId[] =
29 "locked-with-proximity-hint"; 25 "locked-with-proximity-hint";
30 const char kUnlockedUserPodCustomIconId[] = "unlocked"; 26 const char kUnlockedUserPodCustomIconId[] = "unlocked";
31 const char kHardlockedUserPodCustomIconId[] = "hardlocked"; 27 const char kHardlockedUserPodCustomIconId[] = "hardlocked";
32 const char kSpinnerUserPodCustomIconId[] = "spinner"; 28 const char kSpinnerUserPodCustomIconId[] = "spinner";
(...skipping 13 matching lines...) Expand all
46 return kHardlockedUserPodCustomIconId; 42 return kHardlockedUserPodCustomIconId;
47 case ScreenlockBridge::USER_POD_CUSTOM_ICON_SPINNER: 43 case ScreenlockBridge::USER_POD_CUSTOM_ICON_SPINNER:
48 return kSpinnerUserPodCustomIconId; 44 return kSpinnerUserPodCustomIconId;
49 default: 45 default:
50 return ""; 46 return "";
51 } 47 }
52 } 48 }
53 49
54 } // namespace 50 } // namespace
55 51
56 // static 52 ScreenlockBridge::ScreenlockBridge(ProximityAuthClient* client)
57 ScreenlockBridge* ScreenlockBridge::Get() { 53 : client_(client), lock_handler_(nullptr) {
58 return g_screenlock_bridge_bridge_instance.Pointer(); 54 DCHECK(client_);
55 }
56
57 ScreenlockBridge::~ScreenlockBridge() {
59 } 58 }
60 59
61 ScreenlockBridge::UserPodCustomIconOptions::UserPodCustomIconOptions() 60 ScreenlockBridge::UserPodCustomIconOptions::UserPodCustomIconOptions()
62 : autoshow_tooltip_(false), 61 : autoshow_tooltip_(false),
63 hardlock_on_click_(false), 62 hardlock_on_click_(false),
64 is_trial_run_(false) { 63 is_trial_run_(false) {
65 } 64 }
66 65
67 ScreenlockBridge::UserPodCustomIconOptions::~UserPodCustomIconOptions() {} 66 ScreenlockBridge::UserPodCustomIconOptions::~UserPodCustomIconOptions() {
67 }
68 68
69 scoped_ptr<base::DictionaryValue> 69 scoped_ptr<base::DictionaryValue>
70 ScreenlockBridge::UserPodCustomIconOptions::ToDictionaryValue() const { 70 ScreenlockBridge::UserPodCustomIconOptions::ToDictionaryValue() const {
71 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue()); 71 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue());
72 std::string icon_id = GetIdForIcon(icon_); 72 std::string icon_id = GetIdForIcon(icon_);
73 result->SetString("id", icon_id); 73 result->SetString("id", icon_id);
74 74
75 if (!tooltip_.empty()) { 75 if (!tooltip_.empty()) {
76 base::DictionaryValue* tooltip_options = new base::DictionaryValue(); 76 base::DictionaryValue* tooltip_options = new base::DictionaryValue();
77 tooltip_options->SetString("text", tooltip_); 77 tooltip_options->SetString("text", tooltip_);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } 109 }
110 110
111 void ScreenlockBridge::UserPodCustomIconOptions::SetHardlockOnClick() { 111 void ScreenlockBridge::UserPodCustomIconOptions::SetHardlockOnClick() {
112 hardlock_on_click_ = true; 112 hardlock_on_click_ = true;
113 } 113 }
114 114
115 void ScreenlockBridge::UserPodCustomIconOptions::SetTrialRun() { 115 void ScreenlockBridge::UserPodCustomIconOptions::SetTrialRun() {
116 is_trial_run_ = true; 116 is_trial_run_ = true;
117 } 117 }
118 118
119 // static
120 std::string ScreenlockBridge::GetAuthenticatedUserEmail(
121 const Profile* profile) {
122 // |profile| has to be a signed-in profile with SigninManager already
123 // created. Otherwise, just crash to collect stack.
124 const SigninManagerBase* signin_manager =
125 SigninManagerFactory::GetForProfileIfExists(profile);
126 return signin_manager->GetAuthenticatedUsername();
127 }
128
129 ScreenlockBridge::ScreenlockBridge() : lock_handler_(NULL) {
130 }
131
132 ScreenlockBridge::~ScreenlockBridge() {
133 }
134
135 void ScreenlockBridge::SetLockHandler(LockHandler* lock_handler) { 119 void ScreenlockBridge::SetLockHandler(LockHandler* lock_handler) {
136 DCHECK(lock_handler_ == NULL || lock_handler == NULL); 120 DCHECK(lock_handler_ == nullptr || lock_handler == nullptr);
137 121
138 // Don't notify observers if there is no change -- i.e. if the screen was 122 // Don't notify observers if there is no change -- i.e. if the screen was
139 // already unlocked, and is remaining unlocked. 123 // already unlocked, and is remaining unlocked.
140 if (lock_handler == lock_handler_) 124 if (lock_handler == lock_handler_)
141 return; 125 return;
142 126
143 // TODO(isherman): If |lock_handler| is null, then |lock_handler_| might have 127 // TODO(isherman): If |lock_handler| is null, then |lock_handler_| might have
144 // been freed. Cache the screen type rather than querying it below. 128 // been freed. Cache the screen type rather than querying it below.
145 LockHandler::ScreenType screen_type; 129 LockHandler::ScreenType screen_type;
146 if (lock_handler_) 130 if (lock_handler_)
147 screen_type = lock_handler_->GetScreenType(); 131 screen_type = lock_handler_->GetScreenType();
148 else 132 else
149 screen_type = lock_handler->GetScreenType(); 133 screen_type = lock_handler->GetScreenType();
150 134
151 lock_handler_ = lock_handler; 135 lock_handler_ = lock_handler;
152 if (lock_handler_) 136 if (lock_handler_)
153 FOR_EACH_OBSERVER(Observer, observers_, OnScreenDidLock(screen_type)); 137 FOR_EACH_OBSERVER(Observer, observers_, OnScreenDidLock(screen_type));
154 else 138 else
155 FOR_EACH_OBSERVER(Observer, observers_, OnScreenDidUnlock(screen_type)); 139 FOR_EACH_OBSERVER(Observer, observers_, OnScreenDidUnlock(screen_type));
156 } 140 }
157 141
158 void ScreenlockBridge::SetFocusedUser(const std::string& user_id) { 142 void ScreenlockBridge::SetFocusedUser(const std::string& user_id) {
159 if (user_id == focused_user_id_) 143 if (user_id == focused_user_id_)
160 return; 144 return;
161 focused_user_id_ = user_id; 145 focused_user_id_ = user_id;
162 FOR_EACH_OBSERVER(Observer, observers_, OnFocusedUserChanged(user_id)); 146 FOR_EACH_OBSERVER(Observer, observers_, OnFocusedUserChanged(user_id));
163 } 147 }
164 148
165 bool ScreenlockBridge::IsLocked() const { 149 bool ScreenlockBridge::IsLocked() const {
166 return lock_handler_ != NULL; 150 return lock_handler_ != nullptr;
167 } 151 }
168 152
169 void ScreenlockBridge::Lock(Profile* profile) { 153 void ScreenlockBridge::Lock(content::BrowserContext* browser_context) {
170 #if defined(OS_CHROMEOS) 154 #if defined(OS_CHROMEOS)
171 chromeos::SessionManagerClient* session_manager = 155 chromeos::SessionManagerClient* session_manager =
172 chromeos::DBusThreadManager::Get()->GetSessionManagerClient(); 156 chromeos::DBusThreadManager::Get()->GetSessionManagerClient();
173 session_manager->RequestLockScreen(); 157 session_manager->RequestLockScreen();
174 #else 158 #else
175 profiles::LockProfile(profile); 159 client_->Lock(browser_context);
176 #endif 160 #endif
177 } 161 }
178 162
179 void ScreenlockBridge::Unlock(Profile* profile) { 163 void ScreenlockBridge::Unlock(content::BrowserContext* browser_context) {
180 if (lock_handler_) 164 if (lock_handler_)
181 lock_handler_->Unlock(GetAuthenticatedUserEmail(profile)); 165 lock_handler_->Unlock(client_->GetAuthenticatedUsername(browser_context));
182 } 166 }
183 167
184 void ScreenlockBridge::AddObserver(Observer* observer) { 168 void ScreenlockBridge::AddObserver(Observer* observer) {
185 observers_.AddObserver(observer); 169 observers_.AddObserver(observer);
186 } 170 }
187 171
188 void ScreenlockBridge::RemoveObserver(Observer* observer) { 172 void ScreenlockBridge::RemoveObserver(Observer* observer) {
189 observers_.RemoveObserver(observer); 173 observers_.RemoveObserver(observer);
190 } 174 }
175
176 } // namespace proximity_auth
OLDNEW
« no previous file with comments | « components/proximity_auth/screenlock_bridge.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698