| 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 f3c6ad03427cef82c5916b9e545ad67aac23ba5f..740f42b0be56e96be6ecec23cdd2aa08e2d0be17 100644
|
| --- a/chrome/browser/supervised_user/supervised_user_service.cc
|
| +++ b/chrome/browser/supervised_user/supervised_user_service.cc
|
| @@ -107,6 +107,13 @@ void CreateURLAccessRequest(
|
| creator->CreateURLAccessRequest(url, callback);
|
| }
|
|
|
| +void CreateReportUrlRequest(
|
| + const GURL& url,
|
| + ReportUrlRequestCreator* creator,
|
| + const SupervisedUserService::SuccessCallback& callback) {
|
| + creator->CreateReportUrlRequest(url, callback);
|
| +}
|
| +
|
| void CreateExtensionUpdateRequest(
|
| const std::string& id,
|
| PermissionRequestCreator* creator,
|
| @@ -256,6 +263,14 @@ void SupervisedUserService::AddURLAccessRequest(
|
| callback, 0);
|
| }
|
|
|
| +void SupervisedUserService::AddReportUrlRequest(
|
| + const GURL& url,
|
| + const SuccessCallback& callback) {
|
| + AddReportUrlRequestInternal(
|
| + base::Bind(CreateReportUrlRequest, url),
|
| + callback, 0);
|
| +}
|
| +
|
| void SupervisedUserService::AddExtensionUpdateRequest(
|
| const std::string& extension_id,
|
| const base::Version& version,
|
| @@ -396,6 +411,11 @@ void SupervisedUserService::AddPermissionRequestCreator(
|
| permissions_creators_.push_back(creator.release());
|
| }
|
|
|
| +void SupervisedUserService::AddReportUrlRequestCreator(
|
| + scoped_ptr<ReportUrlRequestCreator> creator) {
|
| + report_url_creators_.push_back(std::move(creator));
|
| +}
|
| +
|
| SupervisedUserService::URLFilterContext::URLFilterContext()
|
| : ui_url_filter_(new SupervisedUserURLFilter),
|
| io_url_filter_(new SupervisedUserURLFilter) {}
|
| @@ -601,6 +621,7 @@ void SupervisedUserService::SetActive(bool active) {
|
| #endif
|
| } else {
|
| permissions_creators_.clear();
|
| + report_url_creators_.clear();
|
|
|
| pref_change_registrar_.Remove(
|
| prefs::kDefaultSupervisedUserFilteringBehavior);
|
| @@ -754,6 +775,35 @@ void SupervisedUserService::OnPermissionRequestIssued(
|
| AddPermissionRequestInternal(create_request, callback, index + 1);
|
| }
|
|
|
| +void SupervisedUserService::AddReportUrlRequestInternal(
|
| + const CreateReportUrlRequestCallback& report_url_request,
|
| + const SuccessCallback& callback,
|
| + size_t index) {
|
| + if (index >= report_url_creators_.size()) {
|
| + callback.Run(false);
|
| + return;
|
| + }
|
| +
|
| + report_url_request.Run(
|
| + report_url_creators_[index].get(),
|
| + base::Bind(&SupervisedUserService::OnReportUrlRequestIssues,
|
| + weak_ptr_factory_.GetWeakPtr(), report_url_request,
|
| + callback, index));
|
| +}
|
| +
|
| +void SupervisedUserService::OnReportUrlRequestIssues(
|
| + const CreateReportUrlRequestCallback& report_url_request,
|
| + const SuccessCallback& callback,
|
| + size_t index,
|
| + bool success) {
|
| + if (success) {
|
| + callback.Run(true);
|
| + return;
|
| + }
|
| +
|
| + AddReportUrlRequestInternal(report_url_request, callback, index + 1);
|
| +}
|
| +
|
| void SupervisedUserService::OnSupervisedUserIdChanged() {
|
| SetActive(ProfileIsSupervised());
|
| }
|
|
|