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

Unified Diff: chrome/browser/android/ntp/most_visited_sites.cc

Issue 1954973004: Remove MostVisitedSites => SupervisedUserService dep. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/ntp/most_visited_sites.cc
diff --git a/chrome/browser/android/ntp/most_visited_sites.cc b/chrome/browser/android/ntp/most_visited_sites.cc
index 31de1d8818deb67581230646fdf0d7053c2de7b1..bacc9dafac15524886a774489ccea4d006bf9c17 100644
--- a/chrome/browser/android/ntp/most_visited_sites.cc
+++ b/chrome/browser/android/ntp/most_visited_sites.cc
@@ -163,6 +163,45 @@ std::string GetSourceHistogramName(
} // namespace
+SupervisedUserServiceSupervisor::SupervisedUserServiceSupervisor(Profile* profile)
+ : profile_(profile) {}
+
+void SupervisedUserServiceSupervisor::AddObserver(Observer* observer) {
+ DCHECK(observers_.find(observer) == observers_.end());
+ SupervisedUserService* supervised_user_service =
+ SupervisedUserServiceFactory::GetForProfile(profile_);
+ std::unique_ptr<SUSObserver> ptr(
+ new SUSObserver(supervised_user_service, observer));
+ observers_.emplace(observer, std::move(ptr));
+}
+
+void SupervisedUserServiceSupervisor::RemoveObserver(Observer* observer) {
+ auto it = observers_.find(observer);
+ DCHECK(it != observers_.end());
+ observers_.erase(it);
+}
+
+SupervisedUserURLFilter* SupervisedUserServiceSupervisor::GetURLFilterForUIThread() {
+ SupervisedUserService* supervised_user_service =
+ SupervisedUserServiceFactory::GetForProfile(profile_);
+ return supervised_user_service->GetURLFilterForUIThread();
+}
+
+std::vector<Supervisor::Whitelist>
+SupervisedUserServiceSupervisor::whitelists() const {
+ std::vector<Supervisor::Whitelist> results;
+ SupervisedUserService* supervised_user_service =
+ SupervisedUserServiceFactory::GetForProfile(profile_);
+ for (const auto& whitelist : supervised_user_service->whitelists()) {
+ results.emplace_back(Whitelist{
+ whitelist->title(),
+ whitelist->entry_point(),
+ whitelist->large_icon_path(),
+ });
+ }
+ return results;
+}
+
MostVisitedSites::Suggestion::Suggestion() : provider_index(-1) {}
MostVisitedSites::Suggestion::~Suggestion() {}
@@ -179,25 +218,20 @@ MostVisitedSites::MostVisitedSites(
scoped_refptr<history::TopSites> top_sites,
SuggestionsService* suggestions,
bool is_child_profile,
- Profile* profile)
- : profile_(profile), prefs_(prefs),
- template_url_service_(template_url_service),
+ Supervisor* supervisor)
+ : prefs_(prefs), template_url_service_(template_url_service),
variations_service_(variations_service),
download_context_(download_context), top_sites_(top_sites),
- suggestions_service_(suggestions), is_child_profile_(is_child_profile),
- observer_(nullptr), num_sites_(0), received_most_visited_sites_(false),
- received_popular_sites_(false), recorded_uma_(false),
- scoped_observer_(this), mv_source_(SUGGESTIONS_SERVICE),
- weak_ptr_factory_(this) {
- SupervisedUserService* supervised_user_service =
- SupervisedUserServiceFactory::GetForProfile(profile_);
- supervised_user_service->AddObserver(this);
+ suggestions_service_(suggestions), supervisor_(supervisor),
+ is_child_profile_(is_child_profile), observer_(nullptr), num_sites_(0),
+ received_most_visited_sites_(false), received_popular_sites_(false),
+ recorded_uma_(false), scoped_observer_(this),
+ mv_source_(SUGGESTIONS_SERVICE), weak_ptr_factory_(this) {
+ supervisor_->AddObserver(this);
}
MostVisitedSites::~MostVisitedSites() {
- SupervisedUserService* supervised_user_service =
- SupervisedUserServiceFactory::GetForProfile(profile_);
- supervised_user_service->RemoveObserver(this);
+ supervisor_->RemoveObserver(this);
}
void MostVisitedSites::SetMostVisitedURLsObserver(
@@ -380,21 +414,16 @@ void MostVisitedSites::InitiateTopSitesQuery() {
}
base::FilePath MostVisitedSites::GetWhitelistLargeIconPath(const GURL& url) {
- SupervisedUserService* supervised_user_service =
- SupervisedUserServiceFactory::GetForProfile(profile_);
-
- for (const auto& whitelist : supervised_user_service->whitelists()) {
- if (AreURLsEquivalent(whitelist->entry_point(), url))
- return whitelist->large_icon_path();
+ for (const auto& whitelist : supervisor_->whitelists()) {
+ if (AreURLsEquivalent(whitelist.entry_point, url))
+ return whitelist.large_icon_path;
}
return base::FilePath();
}
void MostVisitedSites::OnMostVisitedURLsAvailable(
const history::MostVisitedURLList& visited_list) {
- SupervisedUserURLFilter* url_filter =
- SupervisedUserServiceFactory::GetForProfile(profile_)
- ->GetURLFilterForUIThread();
+ SupervisedUserURLFilter* url_filter = supervisor_->GetURLFilterForUIThread();
MostVisitedSites::SuggestionsPtrVector suggestions;
size_t num_tiles =
@@ -436,9 +465,7 @@ void MostVisitedSites::OnSuggestionsProfileAvailable(
if (num_sites_ < num_tiles)
num_tiles = num_sites_;
- SupervisedUserURLFilter* url_filter =
- SupervisedUserServiceFactory::GetForProfile(profile_)
- ->GetURLFilterForUIThread();
+ SupervisedUserURLFilter* url_filter = supervisor_->GetURLFilterForUIThread();
MostVisitedSites::SuggestionsPtrVector suggestions;
for (int i = 0; i < num_tiles; ++i) {
const ChromeSuggestion& suggestion = suggestions_profile.suggestions(i);
@@ -474,36 +501,34 @@ MostVisitedSites::CreateWhitelistEntryPointSuggestions(
size_t num_whitelist_suggestions = num_sites_ - num_personal_suggestions;
MostVisitedSites::SuggestionsPtrVector whitelist_suggestions;
- SupervisedUserService* supervised_user_service =
- SupervisedUserServiceFactory::GetForProfile(profile_);
SupervisedUserURLFilter* url_filter =
- supervised_user_service->GetURLFilterForUIThread();
+ supervisor_->GetURLFilterForUIThread();
std::set<std::string> personal_hosts;
for (const auto& suggestion : personal_suggestions)
personal_hosts.insert(suggestion->url.host());
- for (const auto& whitelist : supervised_user_service->whitelists()) {
+ for (const auto& whitelist : supervisor_->whitelists()) {
// Skip blacklisted sites.
- if (top_sites_ && top_sites_->IsBlacklisted(whitelist->entry_point()))
+ if (top_sites_ && top_sites_->IsBlacklisted(whitelist.entry_point))
continue;
// Skip suggestions already present.
- if (personal_hosts.find(whitelist->entry_point().host()) !=
+ if (personal_hosts.find(whitelist.entry_point.host()) !=
personal_hosts.end())
continue;
// Skip whitelist entry points that are manually blocked.
- if (url_filter->GetFilteringBehaviorForURL(whitelist->entry_point()) ==
+ if (url_filter->GetFilteringBehaviorForURL(whitelist.entry_point) ==
SupervisedUserURLFilter::FilteringBehavior::BLOCK) {
continue;
}
std::unique_ptr<Suggestion> suggestion(new Suggestion());
- suggestion->title = whitelist->title();
- suggestion->url = whitelist->entry_point();
+ suggestion->title = whitelist.title;
+ suggestion->url = whitelist.entry_point;
suggestion->source = WHITELIST;
- suggestion->whitelist_icon_path = whitelist->large_icon_path();
+ suggestion->whitelist_icon_path = whitelist.large_icon_path;
whitelist_suggestions.push_back(std::move(suggestion));
if (whitelist_suggestions.size() >= num_whitelist_suggestions)

Powered by Google App Engine
This is Rietveld 408576698