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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_service.cc

Issue 971733003: Supervised users: When an extension requires new permissions, send request to custodian (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test_ext_install_disable
Patch Set: test Created 5 years, 9 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 #include "chrome/browser/supervised_user/supervised_user_service.h" 5 #include "chrome/browser/supervised_user/supervised_user_service.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 prefs::kSupervisedUserCustodianName, 71 prefs::kSupervisedUserCustodianName,
72 prefs::kSupervisedUserCustodianEmail, 72 prefs::kSupervisedUserCustodianEmail,
73 prefs::kSupervisedUserCustodianProfileImageURL, 73 prefs::kSupervisedUserCustodianProfileImageURL,
74 prefs::kSupervisedUserCustodianProfileURL, 74 prefs::kSupervisedUserCustodianProfileURL,
75 prefs::kSupervisedUserSecondCustodianName, 75 prefs::kSupervisedUserSecondCustodianName,
76 prefs::kSupervisedUserSecondCustodianEmail, 76 prefs::kSupervisedUserSecondCustodianEmail,
77 prefs::kSupervisedUserSecondCustodianProfileImageURL, 77 prefs::kSupervisedUserSecondCustodianProfileImageURL,
78 prefs::kSupervisedUserSecondCustodianProfileURL, 78 prefs::kSupervisedUserSecondCustodianProfileURL,
79 }; 79 };
80 80
81 void CreateURLAccessRequest(
82 const GURL& url,
83 PermissionRequestCreator* creator,
84 const SupervisedUserService::SuccessCallback& callback) {
85 creator->CreateURLAccessRequest(url, callback);
86 }
87
88 void CreateExtensionUpdateRequest(
89 const std::string& extension_id,
90 PermissionRequestCreator* creator,
91 const SupervisedUserService::SuccessCallback& callback) {
92 creator->CreateExtensionUpdateRequest(extension_id, callback);
93 }
94
81 #if defined(ENABLE_EXTENSIONS) 95 #if defined(ENABLE_EXTENSIONS)
82 enum ExtensionState { 96 enum ExtensionState {
83 EXTENSION_FORCED, 97 EXTENSION_FORCED,
84 EXTENSION_BLOCKED, 98 EXTENSION_BLOCKED,
85 EXTENSION_ALLOWED 99 EXTENSION_ALLOWED
86 }; 100 };
87 101
88 ExtensionState GetExtensionState(const extensions::Extension* extension) { 102 ExtensionState GetExtensionState(const extensions::Extension* extension) {
89 if (extension->is_theme()) 103 if (extension->is_theme())
90 return EXTENSION_ALLOWED; 104 return EXTENSION_ALLOWED;
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 538
525 size_t SupervisedUserService::FindEnabledPermissionRequestCreator( 539 size_t SupervisedUserService::FindEnabledPermissionRequestCreator(
526 size_t start) { 540 size_t start) {
527 for (size_t i = start; i < permissions_creators_.size(); ++i) { 541 for (size_t i = start; i < permissions_creators_.size(); ++i) {
528 if (permissions_creators_[i]->IsEnabled()) 542 if (permissions_creators_[i]->IsEnabled())
529 return i; 543 return i;
530 } 544 }
531 return permissions_creators_.size(); 545 return permissions_creators_.size();
532 } 546 }
533 547
534 void SupervisedUserService::AddAccessRequestInternal( 548 void SupervisedUserService::AddPermissionRequestInternal(
535 const GURL& url, 549 const CreatePermissionRequestCallback& create_request,
536 const SuccessCallback& callback, 550 const SuccessCallback& callback,
537 size_t index) { 551 size_t index) {
538 // Find a permission request creator that is enabled. 552 // Find a permission request creator that is enabled.
539 size_t next_index = FindEnabledPermissionRequestCreator(index); 553 size_t next_index = FindEnabledPermissionRequestCreator(index);
540 if (next_index >= permissions_creators_.size()) { 554 if (next_index >= permissions_creators_.size()) {
541 callback.Run(false); 555 callback.Run(false);
542 return; 556 return;
543 } 557 }
544 558
545 permissions_creators_[next_index]->CreatePermissionRequest( 559 create_request.Run(
546 url, 560 permissions_creators_[next_index],
547 base::Bind(&SupervisedUserService::OnPermissionRequestIssued, 561 base::Bind(&SupervisedUserService::OnPermissionRequestIssued,
548 weak_ptr_factory_.GetWeakPtr(), url, callback, next_index)); 562 weak_ptr_factory_.GetWeakPtr(), create_request,
563 callback, next_index));
549 } 564 }
550 565
551 void SupervisedUserService::OnPermissionRequestIssued( 566 void SupervisedUserService::OnPermissionRequestIssued(
552 const GURL& url, 567 const CreatePermissionRequestCallback& create_request,
553 const SuccessCallback& callback, 568 const SuccessCallback& callback,
554 size_t index, 569 size_t index,
555 bool success) { 570 bool success) {
556 if (success) { 571 if (success) {
557 callback.Run(true); 572 callback.Run(true);
558 return; 573 return;
559 } 574 }
560 575
561 AddAccessRequestInternal(url, callback, index + 1); 576 AddPermissionRequestInternal(create_request, callback, index + 1);
562 } 577 }
563 578
564 void SupervisedUserService::OnSupervisedUserIdChanged() { 579 void SupervisedUserService::OnSupervisedUserIdChanged() {
565 SetActive(ProfileIsSupervised()); 580 SetActive(ProfileIsSupervised());
566 } 581 }
567 582
568 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() { 583 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() {
569 DCHECK(ProfileIsSupervised()); 584 DCHECK(ProfileIsSupervised());
570 585
571 int behavior_value = profile_->GetPrefs()->GetInteger( 586 int behavior_value = profile_->GetPrefs()->GetInteger(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 639
625 void SupervisedUserService::OnBlacklistLoaded() { 640 void SupervisedUserService::OnBlacklistLoaded() {
626 FOR_EACH_OBSERVER( 641 FOR_EACH_OBSERVER(
627 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged()); 642 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged());
628 } 643 }
629 644
630 bool SupervisedUserService::AccessRequestsEnabled() { 645 bool SupervisedUserService::AccessRequestsEnabled() {
631 return FindEnabledPermissionRequestCreator(0) < permissions_creators_.size(); 646 return FindEnabledPermissionRequestCreator(0) < permissions_creators_.size();
632 } 647 }
633 648
634 void SupervisedUserService::AddAccessRequest(const GURL& url, 649 void SupervisedUserService::AddURLAccessRequest(
635 const SuccessCallback& callback) { 650 const GURL& url,
636 AddAccessRequestInternal(SupervisedUserURLFilter::Normalize(url), callback, 651 const SuccessCallback& callback) {
637 0); 652 AddPermissionRequestInternal(
653 base::Bind(CreateURLAccessRequest,
654 SupervisedUserURLFilter::Normalize(url)),
655 callback, 0);
656 }
657
658 void SupervisedUserService::AddExtensionUpdateRequest(
659 const std::string& extension_id,
660 const SuccessCallback& callback) {
661 AddPermissionRequestInternal(
662 base::Bind(CreateExtensionUpdateRequest, extension_id),
663 callback, 0);
638 } 664 }
639 665
640 void SupervisedUserService::InitSync(const std::string& refresh_token) { 666 void SupervisedUserService::InitSync(const std::string& refresh_token) {
641 StartSetupSync(); 667 StartSetupSync();
642 668
643 ProfileOAuth2TokenService* token_service = 669 ProfileOAuth2TokenService* token_service =
644 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); 670 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
645 token_service->UpdateCredentials(supervised_users::kSupervisedUserPseudoEmail, 671 token_service->UpdateCredentials(supervised_users::kSupervisedUserPseudoEmail,
646 refresh_token); 672 refresh_token);
647 673
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 // The active user can be NULL in unit tests. 939 // The active user can be NULL in unit tests.
914 if (user_manager::UserManager::Get()->GetActiveUser()) { 940 if (user_manager::UserManager::Get()->GetActiveUser()) {
915 return UTF16ToUTF8(user_manager::UserManager::Get()->GetUserDisplayName( 941 return UTF16ToUTF8(user_manager::UserManager::Get()->GetUserDisplayName(
916 user_manager::UserManager::Get()->GetActiveUser()->GetUserID())); 942 user_manager::UserManager::Get()->GetActiveUser()->GetUserID()));
917 } 943 }
918 return std::string(); 944 return std::string();
919 #else 945 #else
920 return profile_->GetPrefs()->GetString(prefs::kProfileName); 946 return profile_->GetPrefs()->GetString(prefs::kProfileName);
921 #endif 947 #endif
922 } 948 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698