OLD | NEW |
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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 prefs::kSupervisedUserSecondCustodianProfileURL, | 100 prefs::kSupervisedUserSecondCustodianProfileURL, |
101 }; | 101 }; |
102 | 102 |
103 void CreateURLAccessRequest( | 103 void CreateURLAccessRequest( |
104 const GURL& url, | 104 const GURL& url, |
105 PermissionRequestCreator* creator, | 105 PermissionRequestCreator* creator, |
106 const SupervisedUserService::SuccessCallback& callback) { | 106 const SupervisedUserService::SuccessCallback& callback) { |
107 creator->CreateURLAccessRequest(url, callback); | 107 creator->CreateURLAccessRequest(url, callback); |
108 } | 108 } |
109 | 109 |
| 110 void CreateReportUrlRequest( |
| 111 const GURL& url, |
| 112 ReportUrlRequestCreator* creator, |
| 113 const SupervisedUserService::SuccessCallback& callback) { |
| 114 creator->CreateReportUrlRequest(url, callback); |
| 115 } |
| 116 |
110 void CreateExtensionUpdateRequest( | 117 void CreateExtensionUpdateRequest( |
111 const std::string& id, | 118 const std::string& id, |
112 PermissionRequestCreator* creator, | 119 PermissionRequestCreator* creator, |
113 const SupervisedUserService::SuccessCallback& callback) { | 120 const SupervisedUserService::SuccessCallback& callback) { |
114 creator->CreateExtensionUpdateRequest(id, callback); | 121 creator->CreateExtensionUpdateRequest(id, callback); |
115 } | 122 } |
116 | 123 |
117 // Default callback for AddExtensionUpdateRequest. | 124 // Default callback for AddExtensionUpdateRequest. |
118 void ExtensionUpdateRequestSent(const std::string& id, bool success) { | 125 void ExtensionUpdateRequestSent(const std::string& id, bool success) { |
119 VLOG_IF(1, !success) << "Failed sending update request for " << id; | 126 VLOG_IF(1, !success) << "Failed sending update request for " << id; |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 | 256 |
250 void SupervisedUserService::AddURLAccessRequest( | 257 void SupervisedUserService::AddURLAccessRequest( |
251 const GURL& url, | 258 const GURL& url, |
252 const SuccessCallback& callback) { | 259 const SuccessCallback& callback) { |
253 AddPermissionRequestInternal( | 260 AddPermissionRequestInternal( |
254 base::Bind(CreateURLAccessRequest, | 261 base::Bind(CreateURLAccessRequest, |
255 SupervisedUserURLFilter::Normalize(url)), | 262 SupervisedUserURLFilter::Normalize(url)), |
256 callback, 0); | 263 callback, 0); |
257 } | 264 } |
258 | 265 |
| 266 void SupervisedUserService::AddReportUrlRequest( |
| 267 const GURL& url, |
| 268 const SuccessCallback& callback) { |
| 269 AddReportUrlRequestInternal( |
| 270 base::Bind(CreateReportUrlRequest, url), |
| 271 callback, 0); |
| 272 } |
| 273 |
259 void SupervisedUserService::AddExtensionUpdateRequest( | 274 void SupervisedUserService::AddExtensionUpdateRequest( |
260 const std::string& extension_id, | 275 const std::string& extension_id, |
261 const base::Version& version, | 276 const base::Version& version, |
262 const SuccessCallback& callback) { | 277 const SuccessCallback& callback) { |
263 std::string id = GetExtensionUpdateRequestId(extension_id, version); | 278 std::string id = GetExtensionUpdateRequestId(extension_id, version); |
264 AddPermissionRequestInternal( | 279 AddPermissionRequestInternal( |
265 base::Bind(CreateExtensionUpdateRequest, id), callback, 0); | 280 base::Bind(CreateExtensionUpdateRequest, id), callback, 0); |
266 } | 281 } |
267 | 282 |
268 void SupervisedUserService::AddExtensionUpdateRequest( | 283 void SupervisedUserService::AddExtensionUpdateRequest( |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 void SupervisedUserService::RemoveObserver( | 404 void SupervisedUserService::RemoveObserver( |
390 SupervisedUserServiceObserver* observer) { | 405 SupervisedUserServiceObserver* observer) { |
391 observer_list_.RemoveObserver(observer); | 406 observer_list_.RemoveObserver(observer); |
392 } | 407 } |
393 | 408 |
394 void SupervisedUserService::AddPermissionRequestCreator( | 409 void SupervisedUserService::AddPermissionRequestCreator( |
395 scoped_ptr<PermissionRequestCreator> creator) { | 410 scoped_ptr<PermissionRequestCreator> creator) { |
396 permissions_creators_.push_back(creator.release()); | 411 permissions_creators_.push_back(creator.release()); |
397 } | 412 } |
398 | 413 |
| 414 void SupervisedUserService::AddReportUrlRequestCreator( |
| 415 scoped_ptr<ReportUrlRequestCreator> creator) { |
| 416 report_url_creators_.push_back(std::move(creator)); |
| 417 } |
| 418 |
399 SupervisedUserService::URLFilterContext::URLFilterContext() | 419 SupervisedUserService::URLFilterContext::URLFilterContext() |
400 : ui_url_filter_(new SupervisedUserURLFilter), | 420 : ui_url_filter_(new SupervisedUserURLFilter), |
401 io_url_filter_(new SupervisedUserURLFilter) {} | 421 io_url_filter_(new SupervisedUserURLFilter) {} |
402 SupervisedUserService::URLFilterContext::~URLFilterContext() {} | 422 SupervisedUserService::URLFilterContext::~URLFilterContext() {} |
403 | 423 |
404 SupervisedUserURLFilter* | 424 SupervisedUserURLFilter* |
405 SupervisedUserService::URLFilterContext::ui_url_filter() const { | 425 SupervisedUserService::URLFilterContext::ui_url_filter() const { |
406 return ui_url_filter_.get(); | 426 return ui_url_filter_.get(); |
407 } | 427 } |
408 | 428 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 UpdateManualHosts(); | 614 UpdateManualHosts(); |
595 UpdateManualURLs(); | 615 UpdateManualURLs(); |
596 | 616 |
597 #if !defined(OS_ANDROID) | 617 #if !defined(OS_ANDROID) |
598 // TODO(bauerb): Get rid of the platform-specific #ifdef here. | 618 // TODO(bauerb): Get rid of the platform-specific #ifdef here. |
599 // http://crbug.com/313377 | 619 // http://crbug.com/313377 |
600 BrowserList::AddObserver(this); | 620 BrowserList::AddObserver(this); |
601 #endif | 621 #endif |
602 } else { | 622 } else { |
603 permissions_creators_.clear(); | 623 permissions_creators_.clear(); |
| 624 report_url_creators_.clear(); |
604 | 625 |
605 pref_change_registrar_.Remove( | 626 pref_change_registrar_.Remove( |
606 prefs::kDefaultSupervisedUserFilteringBehavior); | 627 prefs::kDefaultSupervisedUserFilteringBehavior); |
607 pref_change_registrar_.Remove(prefs::kSupervisedUserManualHosts); | 628 pref_change_registrar_.Remove(prefs::kSupervisedUserManualHosts); |
608 pref_change_registrar_.Remove(prefs::kSupervisedUserManualURLs); | 629 pref_change_registrar_.Remove(prefs::kSupervisedUserManualURLs); |
609 for (const char* pref : kCustodianInfoPrefs) { | 630 for (const char* pref : kCustodianInfoPrefs) { |
610 pref_change_registrar_.Remove(pref); | 631 pref_change_registrar_.Remove(pref); |
611 } | 632 } |
612 | 633 |
613 url_filter_context_.Clear(); | 634 url_filter_context_.Clear(); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
747 size_t index, | 768 size_t index, |
748 bool success) { | 769 bool success) { |
749 if (success) { | 770 if (success) { |
750 callback.Run(true); | 771 callback.Run(true); |
751 return; | 772 return; |
752 } | 773 } |
753 | 774 |
754 AddPermissionRequestInternal(create_request, callback, index + 1); | 775 AddPermissionRequestInternal(create_request, callback, index + 1); |
755 } | 776 } |
756 | 777 |
| 778 void SupervisedUserService::AddReportUrlRequestInternal( |
| 779 const CreateReportUrlRequestCallback& report_url_request, |
| 780 const SuccessCallback& callback, |
| 781 size_t index) { |
| 782 if (index >= report_url_creators_.size()) { |
| 783 callback.Run(false); |
| 784 return; |
| 785 } |
| 786 |
| 787 report_url_request.Run( |
| 788 report_url_creators_[index].get(), |
| 789 base::Bind(&SupervisedUserService::OnReportUrlRequestIssues, |
| 790 weak_ptr_factory_.GetWeakPtr(), report_url_request, |
| 791 callback, index)); |
| 792 } |
| 793 |
| 794 void SupervisedUserService::OnReportUrlRequestIssues( |
| 795 const CreateReportUrlRequestCallback& report_url_request, |
| 796 const SuccessCallback& callback, |
| 797 size_t index, |
| 798 bool success) { |
| 799 if (success) { |
| 800 callback.Run(true); |
| 801 return; |
| 802 } |
| 803 |
| 804 AddReportUrlRequestInternal(report_url_request, callback, index + 1); |
| 805 } |
| 806 |
757 void SupervisedUserService::OnSupervisedUserIdChanged() { | 807 void SupervisedUserService::OnSupervisedUserIdChanged() { |
758 SetActive(ProfileIsSupervised()); | 808 SetActive(ProfileIsSupervised()); |
759 } | 809 } |
760 | 810 |
761 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() { | 811 void SupervisedUserService::OnDefaultFilteringBehaviorChanged() { |
762 int behavior_value = profile_->GetPrefs()->GetInteger( | 812 int behavior_value = profile_->GetPrefs()->GetInteger( |
763 prefs::kDefaultSupervisedUserFilteringBehavior); | 813 prefs::kDefaultSupervisedUserFilteringBehavior); |
764 SupervisedUserURLFilter::FilteringBehavior behavior = | 814 SupervisedUserURLFilter::FilteringBehavior behavior = |
765 SupervisedUserURLFilter::BehaviorFromInt(behavior_value); | 815 SupervisedUserURLFilter::BehaviorFromInt(behavior_value); |
766 url_filter_context_.SetDefaultFilteringBehavior(behavior); | 816 url_filter_context_.SetDefaultFilteringBehavior(behavior); |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1045 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); | 1095 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); |
1046 | 1096 |
1047 is_profile_active_ = profile_became_active; | 1097 is_profile_active_ = profile_became_active; |
1048 } | 1098 } |
1049 #endif // !defined(OS_ANDROID) | 1099 #endif // !defined(OS_ANDROID) |
1050 | 1100 |
1051 void SupervisedUserService::OnSiteListUpdated() { | 1101 void SupervisedUserService::OnSiteListUpdated() { |
1052 FOR_EACH_OBSERVER( | 1102 FOR_EACH_OBSERVER( |
1053 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged()); | 1103 SupervisedUserServiceObserver, observer_list_, OnURLFilterChanged()); |
1054 } | 1104 } |
OLD | NEW |