Chromium Code Reviews| Index: chrome/browser/supervised_user/supervised_user_service.cc |
| diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc |
| index e464400c0cc5618681451f5eba6191d746681cc7..b5ae8e40eb07ca7ba3a43cf7544150c6428d776f 100644 |
| --- a/chrome/browser/supervised_user/supervised_user_service.cc |
| +++ b/chrome/browser/supervised_user/supervised_user_service.cc |
| @@ -531,7 +531,7 @@ size_t SupervisedUserService::FindEnabledPermissionRequestCreator( |
| return permissions_creators_.size(); |
| } |
| -void SupervisedUserService::AddAccessRequestInternal( |
| +void SupervisedUserService::AddURLAccessRequestInternal( |
| const GURL& url, |
| const SuccessCallback& callback, |
| size_t index) { |
| @@ -542,13 +542,13 @@ void SupervisedUserService::AddAccessRequestInternal( |
| return; |
| } |
| - permissions_creators_[next_index]->CreatePermissionRequest( |
| + permissions_creators_[next_index]->CreateURLAccessRequest( |
| url, |
| - base::Bind(&SupervisedUserService::OnPermissionRequestIssued, |
| + base::Bind(&SupervisedUserService::OnURLAccessRequestIssued, |
| weak_ptr_factory_.GetWeakPtr(), url, callback, next_index)); |
| } |
| -void SupervisedUserService::OnPermissionRequestIssued( |
| +void SupervisedUserService::OnURLAccessRequestIssued( |
| const GURL& url, |
| const SuccessCallback& callback, |
| size_t index, |
| @@ -558,7 +558,38 @@ void SupervisedUserService::OnPermissionRequestIssued( |
| return; |
| } |
| - AddAccessRequestInternal(url, callback, index + 1); |
| + AddURLAccessRequestInternal(url, callback, index + 1); |
| +} |
| + |
| +void SupervisedUserService::AddExtensionUpdateRequestInternal( |
| + const std::string& extension_id, |
| + const SuccessCallback& callback, |
| + size_t index) { |
| + // 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.
|
| + size_t next_index = FindEnabledPermissionRequestCreator(index); |
| + if (next_index >= permissions_creators_.size()) { |
| + callback.Run(false); |
| + return; |
| + } |
| + |
| + permissions_creators_[next_index]->CreateExtensionUpdateRequest( |
| + extension_id, |
| + base::Bind(&SupervisedUserService::OnExtensionUpdateRequestIssued, |
| + weak_ptr_factory_.GetWeakPtr(), |
| + extension_id, callback, next_index)); |
| +} |
| + |
| +void SupervisedUserService::OnExtensionUpdateRequestIssued( |
| + const std::string& extension_id, |
| + const SuccessCallback& callback, |
| + size_t index, |
| + bool success) { |
| + if (success) { |
| + callback.Run(true); |
| + return; |
| + } |
| + |
| + AddExtensionUpdateRequestInternal(extension_id, callback, index + 1); |
| } |
| void SupervisedUserService::OnSupervisedUserIdChanged() { |
| @@ -631,10 +662,17 @@ bool SupervisedUserService::AccessRequestsEnabled() { |
| return FindEnabledPermissionRequestCreator(0) < permissions_creators_.size(); |
| } |
| -void SupervisedUserService::AddAccessRequest(const GURL& url, |
| - const SuccessCallback& callback) { |
| - AddAccessRequestInternal(SupervisedUserURLFilter::Normalize(url), callback, |
| - 0); |
| +void SupervisedUserService::AddURLAccessRequest( |
| + const GURL& url, |
| + const SuccessCallback& callback) { |
| + AddURLAccessRequestInternal( |
| + SupervisedUserURLFilter::Normalize(url), callback, 0); |
| +} |
| + |
| +void SupervisedUserService::AddExtensionUpdateRequest( |
| + const std::string& extension_id, |
| + const SuccessCallback& callback) { |
| + AddExtensionUpdateRequestInternal(extension_id, callback, 0); |
| } |
| void SupervisedUserService::InitSync(const std::string& refresh_token) { |