| 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 be5f9a2f43a854d59c8eff410c006ef1217f11f6..c88028fe2a1b09d170237b4784aa4ddd807832e6 100644
|
| --- a/chrome/browser/supervised_user/supervised_user_service.cc
|
| +++ b/chrome/browser/supervised_user/supervised_user_service.cc
|
| @@ -30,6 +30,7 @@
|
| #include "chrome/browser/supervised_user/permission_request_creator.h"
|
| #include "chrome/browser/supervised_user/supervised_user_constants.h"
|
| #include "chrome/browser/supervised_user/supervised_user_features.h"
|
| +#include "chrome/browser/supervised_user/supervised_user_navigation_throttle.h"
|
| #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
|
| #include "chrome/browser/supervised_user/supervised_user_service_observer.h"
|
| #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
|
| @@ -157,7 +158,7 @@ base::FilePath GetBlacklistPath() {
|
|
|
| SupervisedUserService::~SupervisedUserService() {
|
| DCHECK(!did_init_ || did_shutdown_);
|
| - url_filter_context_.ui_url_filter()->RemoveObserver(this);
|
| + url_filter_.RemoveObserver(this);
|
| }
|
|
|
| // static
|
| @@ -220,13 +221,8 @@ void SupervisedUserService::SetDelegate(Delegate* delegate) {
|
| delegate_ = delegate;
|
| }
|
|
|
| -scoped_refptr<const SupervisedUserURLFilter>
|
| -SupervisedUserService::GetURLFilterForIOThread() {
|
| - return url_filter_context_.io_url_filter();
|
| -}
|
| -
|
| -SupervisedUserURLFilter* SupervisedUserService::GetURLFilterForUIThread() {
|
| - return url_filter_context_.ui_url_filter();
|
| +SupervisedUserURLFilter* SupervisedUserService::GetURLFilter() {
|
| + return &url_filter_;
|
| }
|
|
|
| SupervisedUserWhitelistService* SupervisedUserService::GetWhitelistService() {
|
| @@ -240,7 +236,7 @@ bool SupervisedUserService::AccessRequestsEnabled() {
|
| void SupervisedUserService::AddURLAccessRequest(
|
| const GURL& url,
|
| const SuccessCallback& callback) {
|
| - GURL effective_url = GetURLFilterForUIThread()->GetEmbeddedURL(url);
|
| + GURL effective_url = url_filter_.GetEmbeddedURL(url);
|
| if (!effective_url.is_valid())
|
| effective_url = url;
|
| AddPermissionRequestInternal(
|
| @@ -427,105 +423,6 @@ bool SupervisedUserService::IncludesSyncSessionsType() const {
|
| return includes_sync_sessions_type_;
|
| }
|
|
|
| -SupervisedUserService::URLFilterContext::URLFilterContext()
|
| - : ui_url_filter_(new SupervisedUserURLFilter),
|
| - io_url_filter_(new SupervisedUserURLFilter) {}
|
| -SupervisedUserService::URLFilterContext::~URLFilterContext() {}
|
| -
|
| -SupervisedUserURLFilter*
|
| -SupervisedUserService::URLFilterContext::ui_url_filter() const {
|
| - return ui_url_filter_.get();
|
| -}
|
| -
|
| -SupervisedUserURLFilter*
|
| -SupervisedUserService::URLFilterContext::io_url_filter() const {
|
| - return io_url_filter_.get();
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::SetDefaultFilteringBehavior(
|
| - SupervisedUserURLFilter::FilteringBehavior behavior) {
|
| - ui_url_filter_->SetDefaultFilteringBehavior(behavior);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::SetDefaultFilteringBehavior,
|
| - io_url_filter_, behavior));
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::LoadWhitelists(
|
| - const std::vector<scoped_refptr<SupervisedUserSiteList> >& site_lists) {
|
| - ui_url_filter_->LoadWhitelists(site_lists);
|
| - BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::LoadWhitelists,
|
| - io_url_filter_, site_lists));
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::SetBlacklist(
|
| - const SupervisedUserBlacklist* blacklist) {
|
| - ui_url_filter_->SetBlacklist(blacklist);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::SetBlacklist,
|
| - io_url_filter_,
|
| - blacklist));
|
| -}
|
| -
|
| -bool SupervisedUserService::URLFilterContext::HasBlacklist() const {
|
| - return ui_url_filter_->HasBlacklist();
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::SetManualHosts(
|
| - std::unique_ptr<std::map<std::string, bool>> host_map) {
|
| - ui_url_filter_->SetManualHosts(host_map.get());
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::SetManualHosts,
|
| - io_url_filter_, base::Owned(host_map.release())));
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::SetManualURLs(
|
| - std::unique_ptr<std::map<GURL, bool>> url_map) {
|
| - ui_url_filter_->SetManualURLs(url_map.get());
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::SetManualURLs,
|
| - io_url_filter_, base::Owned(url_map.release())));
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::Clear() {
|
| - ui_url_filter_->Clear();
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::Clear,
|
| - io_url_filter_));
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::InitAsyncURLChecker(
|
| - const scoped_refptr<net::URLRequestContextGetter>& context) {
|
| - ui_url_filter_->InitAsyncURLChecker(context.get());
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::InitAsyncURLChecker, io_url_filter_,
|
| - base::RetainedRef(context)));
|
| -}
|
| -
|
| -bool SupervisedUserService::URLFilterContext::HasAsyncURLChecker() const {
|
| - return ui_url_filter_->HasAsyncURLChecker();
|
| -}
|
| -
|
| -void SupervisedUserService::URLFilterContext::ClearAsyncURLChecker() {
|
| - ui_url_filter_->ClearAsyncURLChecker();
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&SupervisedUserURLFilter::ClearAsyncURLChecker,
|
| - io_url_filter_));
|
| -}
|
| -
|
| SupervisedUserService::SupervisedUserService(Profile* profile)
|
| : includes_sync_sessions_type_(true),
|
| profile_(profile),
|
| @@ -540,7 +437,7 @@ SupervisedUserService::SupervisedUserService(Profile* profile)
|
| registry_observer_(this),
|
| #endif
|
| weak_ptr_factory_(this) {
|
| - url_filter_context_.ui_url_filter()->AddObserver(this);
|
| + url_filter_.AddObserver(this);
|
| #if BUILDFLAG(ENABLE_EXTENSIONS)
|
| registry_observer_.Add(extensions::ExtensionRegistry::Get(profile));
|
| #endif
|
| @@ -660,7 +557,7 @@ void SupervisedUserService::SetActive(bool active) {
|
| pref_change_registrar_.Remove(pref);
|
| }
|
|
|
| - url_filter_context_.Clear();
|
| + url_filter_.Clear();
|
| for (SupervisedUserServiceObserver& observer : observer_list_)
|
| observer.OnURLFilterChanged();
|
|
|
| @@ -814,7 +711,7 @@ void SupervisedUserService::OnDefaultFilteringBehaviorChanged() {
|
| prefs::kDefaultSupervisedUserFilteringBehavior);
|
| SupervisedUserURLFilter::FilteringBehavior behavior =
|
| SupervisedUserURLFilter::BehaviorFromInt(behavior_value);
|
| - url_filter_context_.SetDefaultFilteringBehavior(behavior);
|
| + url_filter_.SetDefaultFilteringBehavior(behavior);
|
|
|
| for (SupervisedUserServiceObserver& observer : observer_list_)
|
| observer.OnURLFilterChanged();
|
| @@ -822,7 +719,7 @@ void SupervisedUserService::OnDefaultFilteringBehaviorChanged() {
|
|
|
| void SupervisedUserService::OnSafeSitesSettingChanged() {
|
| bool use_blacklist = supervised_users::IsSafeSitesBlacklistEnabled(profile_);
|
| - if (use_blacklist != url_filter_context_.HasBlacklist()) {
|
| + if (use_blacklist != url_filter_.HasBlacklist()) {
|
| if (use_blacklist && blacklist_state_ == BlacklistLoadState::NOT_LOADED) {
|
| LoadBlacklist(GetBlacklistPath(), GURL(kBlacklistURL));
|
| } else if (!use_blacklist ||
|
| @@ -837,18 +734,18 @@ void SupervisedUserService::OnSafeSitesSettingChanged() {
|
|
|
| bool use_online_check =
|
| supervised_users::IsSafeSitesOnlineCheckEnabled(profile_);
|
| - if (use_online_check != url_filter_context_.HasAsyncURLChecker()) {
|
| + if (use_online_check != url_filter_.HasAsyncURLChecker()) {
|
| if (use_online_check)
|
| - url_filter_context_.InitAsyncURLChecker(profile_->GetRequestContext());
|
| + url_filter_.InitAsyncURLChecker(profile_->GetRequestContext());
|
| else
|
| - url_filter_context_.ClearAsyncURLChecker();
|
| + url_filter_.ClearAsyncURLChecker();
|
| }
|
| }
|
|
|
| void SupervisedUserService::OnSiteListsChanged(
|
| const std::vector<scoped_refptr<SupervisedUserSiteList> >& site_lists) {
|
| whitelists_ = site_lists;
|
| - url_filter_context_.LoadWhitelists(site_lists);
|
| + url_filter_.LoadWhitelists(site_lists);
|
| }
|
|
|
| void SupervisedUserService::LoadBlacklist(const base::FilePath& path,
|
| @@ -943,7 +840,7 @@ void SupervisedUserService::OnBlacklistLoaded() {
|
|
|
| void SupervisedUserService::UpdateBlacklist() {
|
| bool use_blacklist = supervised_users::IsSafeSitesBlacklistEnabled(profile_);
|
| - url_filter_context_.SetBlacklist(use_blacklist ? &blacklist_ : nullptr);
|
| + url_filter_.SetBlacklist(use_blacklist ? &blacklist_ : nullptr);
|
| for (SupervisedUserServiceObserver& observer : observer_list_)
|
| observer.OnURLFilterChanged();
|
| }
|
| @@ -951,15 +848,14 @@ void SupervisedUserService::UpdateBlacklist() {
|
| void SupervisedUserService::UpdateManualHosts() {
|
| const base::DictionaryValue* dict =
|
| profile_->GetPrefs()->GetDictionary(prefs::kSupervisedUserManualHosts);
|
| - std::unique_ptr<std::map<std::string, bool>> host_map(
|
| - new std::map<std::string, bool>());
|
| + std::map<std::string, bool> host_map;
|
| for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) {
|
| bool allow = false;
|
| bool result = it.value().GetAsBoolean(&allow);
|
| DCHECK(result);
|
| - (*host_map)[it.key()] = allow;
|
| + host_map[it.key()] = allow;
|
| }
|
| - url_filter_context_.SetManualHosts(std::move(host_map));
|
| + url_filter_.SetManualHosts(std::move(host_map));
|
|
|
| for (SupervisedUserServiceObserver& observer : observer_list_)
|
| observer.OnURLFilterChanged();
|
| @@ -968,14 +864,14 @@ void SupervisedUserService::UpdateManualHosts() {
|
| void SupervisedUserService::UpdateManualURLs() {
|
| const base::DictionaryValue* dict =
|
| profile_->GetPrefs()->GetDictionary(prefs::kSupervisedUserManualURLs);
|
| - std::unique_ptr<std::map<GURL, bool>> url_map(new std::map<GURL, bool>());
|
| + std::map<GURL, bool> url_map;
|
| for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) {
|
| bool allow = false;
|
| bool result = it.value().GetAsBoolean(&allow);
|
| DCHECK(result);
|
| - (*url_map)[GURL(it.key())] = allow;
|
| + url_map[GURL(it.key())] = allow;
|
| }
|
| - url_filter_context_.SetManualURLs(std::move(url_map));
|
| + url_filter_.SetManualURLs(std::move(url_map));
|
|
|
| for (SupervisedUserServiceObserver& observer : observer_list_)
|
| observer.OnURLFilterChanged();
|
|
|