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

Side by Side Diff: chrome/browser/supervised_user/child_accounts/child_account_service.cc

Issue 789853002: Add support for child accounts on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync Created 6 years 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 #include "chrome/browser/supervised_user/child_accounts/child_account_service.h" 5 #include "chrome/browser/supervised_user/child_accounts/child_account_service.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 24 matching lines...) Expand all
35 #include "components/user_manager/user_manager.h" 35 #include "components/user_manager/user_manager.h"
36 #endif 36 #endif
37 37
38 const char kIsChildAccountServiceFlagName[] = "uca"; 38 const char kIsChildAccountServiceFlagName[] = "uca";
39 39
40 ChildAccountService::ChildAccountService(Profile* profile) 40 ChildAccountService::ChildAccountService(Profile* profile)
41 : profile_(profile), active_(false), weak_ptr_factory_(this) {} 41 : profile_(profile), active_(false), weak_ptr_factory_(this) {}
42 42
43 ChildAccountService::~ChildAccountService() {} 43 ChildAccountService::~ChildAccountService() {}
44 44
45 void ChildAccountService::SetIsChildAccount(bool is_child_account) {
46 if (profile_->IsChild() == is_child_account)
47 return;
48
49 if (is_child_account) {
50 profile_->GetPrefs()->SetString(prefs::kSupervisedUserId,
51 supervised_users::kChildAccountSUID);
52 } else {
53 profile_->GetPrefs()->ClearPref(prefs::kSupervisedUserId);
54 }
55 PropagateChildStatusToUser(is_child_account);
56 }
57
45 void ChildAccountService::Init() { 58 void ChildAccountService::Init() {
46 SigninManagerFactory::GetForProfile(profile_)->AddObserver(this); 59 SigninManagerFactory::GetForProfile(profile_)->AddObserver(this);
47 SupervisedUserServiceFactory::GetForProfile(profile_)->SetDelegate(this); 60 SupervisedUserServiceFactory::GetForProfile(profile_)->SetDelegate(this);
48 61
49 PropagateChildStatusToUser(profile_->IsChild()); 62 PropagateChildStatusToUser(profile_->IsChild());
50 63
51 // If we're already signed in, fetch the flag again just to be sure. 64 // If we're already signed in, fetch the flag again just to be sure.
52 // (Previously, the browser might have been closed before we got the flag. 65 // (Previously, the browser might have been closed before we got the flag.
53 // This also handles the graduation use case in a basic way.) 66 // This also handles the graduation use case in a basic way.)
54 std::string account_id = SigninManagerFactory::GetForProfile(profile_) 67 std::string account_id = SigninManagerFactory::GetForProfile(profile_)
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 } 242 }
230 243
231 account_id_.clear(); 244 account_id_.clear();
232 245
233 bool is_child_account = 246 bool is_child_account =
234 std::find(flags.begin(), flags.end(), 247 std::find(flags.begin(), flags.end(),
235 kIsChildAccountServiceFlagName) != flags.end(); 248 kIsChildAccountServiceFlagName) != flags.end();
236 SetIsChildAccount(is_child_account); 249 SetIsChildAccount(is_child_account);
237 } 250 }
238 251
239 void ChildAccountService::SetIsChildAccount(bool is_child_account) {
240 if (profile_->IsChild() == is_child_account)
241 return;
242
243 if (is_child_account) {
244 profile_->GetPrefs()->SetString(prefs::kSupervisedUserId,
245 supervised_users::kChildAccountSUID);
246 } else {
247 profile_->GetPrefs()->ClearPref(prefs::kSupervisedUserId);
248 }
249 PropagateChildStatusToUser(is_child_account);
250 }
251
252 void ChildAccountService::PropagateChildStatusToUser(bool is_child) { 252 void ChildAccountService::PropagateChildStatusToUser(bool is_child) {
253 #if defined(OS_CHROMEOS) 253 #if defined(OS_CHROMEOS)
254 // TODO(merkulova,treib): Figure out why this causes tests to fail. 254 // TODO(merkulova,treib): Figure out why this causes tests to fail.
255 // user_manager::User* user = 255 // user_manager::User* user =
256 // chromeos::ProfileHelper::Get()->GetUserByProfile(profile_); 256 // chromeos::ProfileHelper::Get()->GetUserByProfile(profile_);
257 // if (user) { 257 // if (user) {
258 // user_manager::UserManager::Get()->ChangeUserSupervisedStatus( 258 // user_manager::UserManager::Get()->ChangeUserSupervisedStatus(
259 // user, is_child); 259 // user, is_child);
260 // } else { 260 // } else {
261 // LOG(WARNING) << 261 // LOG(WARNING) <<
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 command_line->AppendSwitch(switches::kEnableSupervisedUserBlacklist); 320 command_line->AppendSwitch(switches::kEnableSupervisedUserBlacklist);
321 321
322 // Query-based filtering also defaults to enabled. 322 // Query-based filtering also defaults to enabled.
323 bool has_enable_safesites = 323 bool has_enable_safesites =
324 command_line->HasSwitch(switches::kEnableSupervisedUserSafeSites); 324 command_line->HasSwitch(switches::kEnableSupervisedUserSafeSites);
325 bool has_disable_safesites = 325 bool has_disable_safesites =
326 command_line->HasSwitch(switches::kDisableSupervisedUserSafeSites); 326 command_line->HasSwitch(switches::kDisableSupervisedUserSafeSites);
327 if (!has_enable_safesites && !has_disable_safesites) 327 if (!has_enable_safesites && !has_disable_safesites)
328 command_line->AppendSwitch(switches::kEnableSupervisedUserSafeSites); 328 command_line->AppendSwitch(switches::kEnableSupervisedUserSafeSites);
329 } 329 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698