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

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: fix 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 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 524
525 size_t SupervisedUserService::FindEnabledPermissionRequestCreator( 525 size_t SupervisedUserService::FindEnabledPermissionRequestCreator(
526 size_t start) { 526 size_t start) {
527 for (size_t i = start; i < permissions_creators_.size(); ++i) { 527 for (size_t i = start; i < permissions_creators_.size(); ++i) {
528 if (permissions_creators_[i]->IsEnabled()) 528 if (permissions_creators_[i]->IsEnabled())
529 return i; 529 return i;
530 } 530 }
531 return permissions_creators_.size(); 531 return permissions_creators_.size();
532 } 532 }
533 533
534 void SupervisedUserService::AddAccessRequestInternal( 534 void SupervisedUserService::AddURLAccessRequestInternal(
535 const GURL& url, 535 const GURL& url,
536 const SuccessCallback& callback, 536 const SuccessCallback& callback,
537 size_t index) { 537 size_t index) {
538 // Find a permission request creator that is enabled. 538 // Find a permission request creator that is enabled.
539 size_t next_index = FindEnabledPermissionRequestCreator(index); 539 size_t next_index = FindEnabledPermissionRequestCreator(index);
540 if (next_index >= permissions_creators_.size()) { 540 if (next_index >= permissions_creators_.size()) {
541 callback.Run(false); 541 callback.Run(false);
542 return; 542 return;
543 } 543 }
544 544
545 permissions_creators_[next_index]->CreatePermissionRequest( 545 permissions_creators_[next_index]->CreateURLAccessRequest(
546 url, 546 url,
547 base::Bind(&SupervisedUserService::OnPermissionRequestIssued, 547 base::Bind(&SupervisedUserService::OnURLAccessRequestIssued,
548 weak_ptr_factory_.GetWeakPtr(), url, callback, next_index)); 548 weak_ptr_factory_.GetWeakPtr(), url, callback, next_index));
549 } 549 }
550 550
551 void SupervisedUserService::OnPermissionRequestIssued( 551 void SupervisedUserService::OnURLAccessRequestIssued(
552 const GURL& url, 552 const GURL& url,
553 const SuccessCallback& callback, 553 const SuccessCallback& callback,
554 size_t index, 554 size_t index,
555 bool success) { 555 bool success) {
556 if (success) { 556 if (success) {
557 callback.Run(true); 557 callback.Run(true);
558 return; 558 return;
559 } 559 }
560 560
561 AddAccessRequestInternal(url, callback, index + 1); 561 AddURLAccessRequestInternal(url, callback, index + 1);
562 }
563
564 void SupervisedUserService::AddExtensionUpdateRequestInternal(
565 const std::string& extension_id,
566 const SuccessCallback& callback,
567 size_t index) {
568 // Find a permission request creator that is enabled.
Bernhard Bauer 2015/03/02 16:41:56 Urr... it's not particularly nice to duplicate thi
Marc Treib 2015/03/02 18:26:00 Done.
569 size_t next_index = FindEnabledPermissionRequestCreator(index);
570 if (next_index >= permissions_creators_.size()) {
571 callback.Run(false);
572 return;
573 }
574
575 permissions_creators_[next_index]->CreateExtensionUpdateRequest(
576 extension_id,
577 base::Bind(&SupervisedUserService::OnExtensionUpdateRequestIssued,
578 weak_ptr_factory_.GetWeakPtr(),
579 extension_id, callback, next_index));
580 }
581
582 void SupervisedUserService::OnExtensionUpdateRequestIssued(
583 const std::string& extension_id,
584 const SuccessCallback& callback,
585 size_t index,
586 bool success) {
587 if (success) {
588 callback.Run(true);
589 return;
590 }
591
592 AddExtensionUpdateRequestInternal(extension_id, callback, index + 1);
562 } 593 }
563 594
564 void SupervisedUserService::OnSupervisedUserIdChanged() { 595 void SupervisedUserService::OnSupervisedUserIdChanged() {
565 SetActive(ProfileIsSupervised()); 596 SetActive(ProfileIsSupervised());
566 } 597 }
567 598
568 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() { 599 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() {
569 DCHECK(ProfileIsSupervised()); 600 DCHECK(ProfileIsSupervised());
570 601
571 int behavior_value = profile_->GetPrefs()->GetInteger( 602 int behavior_value = profile_->GetPrefs()->GetInteger(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 655
625 void SupervisedUserService::OnBlacklistLoaded() { 656 void SupervisedUserService::OnBlacklistLoaded() {
626 FOR_EACH_OBSERVER( 657 FOR_EACH_OBSERVER(
627 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged()); 658 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged());
628 } 659 }
629 660
630 bool SupervisedUserService::AccessRequestsEnabled() { 661 bool SupervisedUserService::AccessRequestsEnabled() {
631 return FindEnabledPermissionRequestCreator(0) < permissions_creators_.size(); 662 return FindEnabledPermissionRequestCreator(0) < permissions_creators_.size();
632 } 663 }
633 664
634 void SupervisedUserService::AddAccessRequest(const GURL& url, 665 void SupervisedUserService::AddURLAccessRequest(
635 const SuccessCallback& callback) { 666 const GURL& url,
636 AddAccessRequestInternal(SupervisedUserURLFilter::Normalize(url), callback, 667 const SuccessCallback& callback) {
637 0); 668 AddURLAccessRequestInternal(
669 SupervisedUserURLFilter::Normalize(url), callback, 0);
670 }
671
672 void SupervisedUserService::AddExtensionUpdateRequest(
673 const std::string& extension_id,
674 const SuccessCallback& callback) {
675 AddExtensionUpdateRequestInternal(extension_id, callback, 0);
638 } 676 }
639 677
640 void SupervisedUserService::InitSync(const std::string& refresh_token) { 678 void SupervisedUserService::InitSync(const std::string& refresh_token) {
641 StartSetupSync(); 679 StartSetupSync();
642 680
643 ProfileOAuth2TokenService* token_service = 681 ProfileOAuth2TokenService* token_service =
644 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); 682 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_);
645 token_service->UpdateCredentials(supervised_users::kSupervisedUserPseudoEmail, 683 token_service->UpdateCredentials(supervised_users::kSupervisedUserPseudoEmail,
646 refresh_token); 684 refresh_token);
647 685
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 // The active user can be NULL in unit tests. 951 // The active user can be NULL in unit tests.
914 if (user_manager::UserManager::Get()->GetActiveUser()) { 952 if (user_manager::UserManager::Get()->GetActiveUser()) {
915 return UTF16ToUTF8(user_manager::UserManager::Get()->GetUserDisplayName( 953 return UTF16ToUTF8(user_manager::UserManager::Get()->GetUserDisplayName(
916 user_manager::UserManager::Get()->GetActiveUser()->GetUserID())); 954 user_manager::UserManager::Get()->GetActiveUser()->GetUserID()));
917 } 955 }
918 return std::string(); 956 return std::string();
919 #else 957 #else
920 return profile_->GetPrefs()->GetString(prefs::kProfileName); 958 return profile_->GetPrefs()->GetString(prefs::kProfileName);
921 #endif 959 #endif
922 } 960 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698