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

Side by Side Diff: components/ntp_tiles/most_visited_sites.cc

Issue 2179233003: Start PopularSites fetch from separate function. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/ntp_tiles/most_visited_sites.h" 5 #include "components/ntp_tiles/most_visited_sites.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 MostVisitedSites::Suggestion::~Suggestion() {} 126 MostVisitedSites::Suggestion::~Suggestion() {}
127 127
128 MostVisitedSites::Suggestion::Suggestion(Suggestion&&) = default; 128 MostVisitedSites::Suggestion::Suggestion(Suggestion&&) = default;
129 MostVisitedSites::Suggestion& 129 MostVisitedSites::Suggestion&
130 MostVisitedSites::Suggestion::operator=(Suggestion&&) = default; 130 MostVisitedSites::Suggestion::operator=(Suggestion&&) = default;
131 131
132 MostVisitedSites::MostVisitedSites( 132 MostVisitedSites::MostVisitedSites(
133 scoped_refptr<base::SequencedWorkerPool> blocking_pool, 133 scoped_refptr<base::SequencedWorkerPool> blocking_pool,
134 PrefService* prefs, 134 PrefService* prefs,
135 const TemplateURLService* template_url_service,
136 variations::VariationsService* variations_service,
137 net::URLRequestContextGetter* download_context,
138 const base::FilePath& popular_sites_directory,
139 scoped_refptr<history::TopSites> top_sites, 135 scoped_refptr<history::TopSites> top_sites,
140 SuggestionsService* suggestions, 136 SuggestionsService* suggestions,
137 PopularSites* popular_sites,
141 MostVisitedSitesSupervisor* supervisor) 138 MostVisitedSitesSupervisor* supervisor)
142 : prefs_(prefs), 139 : prefs_(prefs),
143 template_url_service_(template_url_service),
144 variations_service_(variations_service),
145 download_context_(download_context),
146 popular_sites_directory_(popular_sites_directory),
147 top_sites_(top_sites), 140 top_sites_(top_sites),
148 suggestions_service_(suggestions), 141 suggestions_service_(suggestions),
142 popular_sites_(popular_sites),
149 supervisor_(supervisor), 143 supervisor_(supervisor),
150 observer_(nullptr), 144 observer_(nullptr),
151 num_sites_(0), 145 num_sites_(0),
152 received_most_visited_sites_(false), 146 received_most_visited_sites_(false),
153 received_popular_sites_(false), 147 received_popular_sites_(false),
154 recorded_uma_(false), 148 recorded_uma_(false),
155 scoped_observer_(this), 149 scoped_observer_(this),
156 mv_source_(SUGGESTIONS_SERVICE), 150 mv_source_(SUGGESTIONS_SERVICE),
157 blocking_pool_(std::move(blocking_pool)), 151 blocking_runner_(blocking_pool->GetTaskRunnerWithShutdownBehavior(
158 blocking_runner_(blocking_pool_->GetTaskRunnerWithShutdownBehavior(
159 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)), 152 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)),
160 weak_ptr_factory_(this) { 153 weak_ptr_factory_(this) {
161 DCHECK(suggestions_service_); 154 DCHECK(suggestions_service_);
162 supervisor_->SetObserver(this); 155 supervisor_->SetObserver(this);
163 } 156 }
164 157
165 MostVisitedSites::~MostVisitedSites() { 158 MostVisitedSites::~MostVisitedSites() {
166 supervisor_->SetObserver(nullptr); 159 supervisor_->SetObserver(nullptr);
167 } 160 }
168 161
169 void MostVisitedSites::SetMostVisitedURLsObserver(Observer* observer, 162 void MostVisitedSites::SetMostVisitedURLsObserver(Observer* observer,
170 int num_sites) { 163 int num_sites) {
171 DCHECK(observer); 164 DCHECK(observer);
172 observer_ = observer; 165 observer_ = observer;
173 num_sites_ = num_sites; 166 num_sites_ = num_sites;
174 167
175 if (ShouldShowPopularSites() && NeedPopularSites(prefs_, num_sites_)) { 168 if (popular_sites_ && ShouldShowPopularSites() &&
176 popular_sites_.reset(new PopularSites( 169 NeedPopularSites(prefs_, num_sites_)) {
177 blocking_pool_, prefs_, template_url_service_, variations_service_, 170 popular_sites_->StartFetch(
178 download_context_, popular_sites_directory_, false, 171 false, base::Bind(&MostVisitedSites::OnPopularSitesAvailable,
179 base::Bind(&MostVisitedSites::OnPopularSitesAvailable, 172 base::Unretained(this)));
180 base::Unretained(this))));
181 } else { 173 } else {
182 received_popular_sites_ = true; 174 received_popular_sites_ = true;
183 } 175 }
184 176
185 if (top_sites_) { 177 if (top_sites_) {
186 // TopSites updates itself after a delay. To ensure up-to-date results, 178 // TopSites updates itself after a delay. To ensure up-to-date results,
187 // force an update now. 179 // force an update now.
188 top_sites_->SyncWithHistory(); 180 top_sites_->SyncWithHistory();
189 181
190 // Register as TopSitesObserver so that we can update ourselves when the 182 // Register as TopSitesObserver so that we can update ourselves when the
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 533
542 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, 534 void MostVisitedSites::TopSitesChanged(TopSites* top_sites,
543 ChangeReason change_reason) { 535 ChangeReason change_reason) {
544 if (mv_source_ == TOP_SITES) { 536 if (mv_source_ == TOP_SITES) {
545 // The displayed suggestions are invalidated. 537 // The displayed suggestions are invalidated.
546 InitiateTopSitesQuery(); 538 InitiateTopSitesQuery();
547 } 539 }
548 } 540 }
549 541
550 } // namespace ntp_tiles 542 } // namespace ntp_tiles
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698