OLD | NEW |
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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 | 144 |
145 MostVisitedSites::Suggestion::~Suggestion() {} | 145 MostVisitedSites::Suggestion::~Suggestion() {} |
146 | 146 |
147 MostVisitedSites::Suggestion::Suggestion(Suggestion&&) = default; | 147 MostVisitedSites::Suggestion::Suggestion(Suggestion&&) = default; |
148 MostVisitedSites::Suggestion& | 148 MostVisitedSites::Suggestion& |
149 MostVisitedSites::Suggestion::operator=(Suggestion&&) = default; | 149 MostVisitedSites::Suggestion::operator=(Suggestion&&) = default; |
150 | 150 |
151 MostVisitedSites::MostVisitedSites( | 151 MostVisitedSites::MostVisitedSites( |
152 scoped_refptr<base::SequencedWorkerPool> blocking_pool, | 152 scoped_refptr<base::SequencedWorkerPool> blocking_pool, |
153 PrefService* prefs, | 153 PrefService* prefs, |
154 const TemplateURLService* template_url_service, | |
155 variations::VariationsService* variations_service, | |
156 net::URLRequestContextGetter* download_context, | |
157 const base::FilePath& popular_sites_directory, | |
158 scoped_refptr<history::TopSites> top_sites, | 154 scoped_refptr<history::TopSites> top_sites, |
159 SuggestionsService* suggestions, | 155 SuggestionsService* suggestions, |
| 156 PopularSites* popular_sites, |
160 MostVisitedSitesSupervisor* supervisor) | 157 MostVisitedSitesSupervisor* supervisor) |
161 : prefs_(prefs), | 158 : prefs_(prefs), |
162 template_url_service_(template_url_service), | |
163 variations_service_(variations_service), | |
164 download_context_(download_context), | |
165 popular_sites_directory_(popular_sites_directory), | |
166 top_sites_(top_sites), | 159 top_sites_(top_sites), |
167 suggestions_service_(suggestions), | 160 suggestions_service_(suggestions), |
| 161 popular_sites_(popular_sites), |
168 supervisor_(supervisor), | 162 supervisor_(supervisor), |
169 observer_(nullptr), | 163 observer_(nullptr), |
170 num_sites_(0), | 164 num_sites_(0), |
171 received_most_visited_sites_(false), | 165 received_most_visited_sites_(false), |
172 received_popular_sites_(false), | 166 received_popular_sites_(false), |
173 recorded_uma_(false), | 167 recorded_uma_(false), |
174 scoped_observer_(this), | 168 scoped_observer_(this), |
175 mv_source_(SUGGESTIONS_SERVICE), | 169 mv_source_(SUGGESTIONS_SERVICE), |
176 blocking_pool_(std::move(blocking_pool)), | 170 blocking_runner_(blocking_pool->GetTaskRunnerWithShutdownBehavior( |
177 blocking_runner_(blocking_pool_->GetTaskRunnerWithShutdownBehavior( | |
178 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)), | 171 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)), |
179 weak_ptr_factory_(this) { | 172 weak_ptr_factory_(this) { |
180 DCHECK(suggestions_service_); | 173 DCHECK(suggestions_service_); |
181 supervisor_->SetObserver(this); | 174 supervisor_->SetObserver(this); |
182 } | 175 } |
183 | 176 |
184 MostVisitedSites::~MostVisitedSites() { | 177 MostVisitedSites::~MostVisitedSites() { |
185 supervisor_->SetObserver(nullptr); | 178 supervisor_->SetObserver(nullptr); |
186 } | 179 } |
187 | 180 |
188 #if defined(OS_ANDROID) | 181 #if defined(OS_ANDROID) |
189 // static | 182 // static |
190 bool MostVisitedSites::Register(JNIEnv* env) { | 183 bool MostVisitedSites::Register(JNIEnv* env) { |
191 return RegisterNativesImpl(env); | 184 return RegisterNativesImpl(env); |
192 } | 185 } |
193 #endif | 186 #endif |
194 | 187 |
195 void MostVisitedSites::SetMostVisitedURLsObserver(Observer* observer, | 188 void MostVisitedSites::SetMostVisitedURLsObserver(Observer* observer, |
196 int num_sites) { | 189 int num_sites) { |
197 DCHECK(observer); | 190 DCHECK(observer); |
198 observer_ = observer; | 191 observer_ = observer; |
199 num_sites_ = num_sites; | 192 num_sites_ = num_sites; |
200 | 193 |
201 if (ShouldShowPopularSites() && NeedPopularSites(prefs_, num_sites_)) { | 194 if (popular_sites_ && ShouldShowPopularSites() && |
202 popular_sites_.reset(new PopularSites( | 195 NeedPopularSites(prefs_, num_sites_)) { |
203 blocking_pool_, prefs_, template_url_service_, variations_service_, | 196 popular_sites_->StartFetch( |
204 download_context_, popular_sites_directory_, false, | 197 false, base::Bind(&MostVisitedSites::OnPopularSitesAvailable, |
205 base::Bind(&MostVisitedSites::OnPopularSitesAvailable, | 198 base::Unretained(this))); |
206 base::Unretained(this)))); | |
207 } else { | 199 } else { |
208 received_popular_sites_ = true; | 200 received_popular_sites_ = true; |
209 } | 201 } |
210 | 202 |
211 if (top_sites_) { | 203 if (top_sites_) { |
212 // TopSites updates itself after a delay. To ensure up-to-date results, | 204 // TopSites updates itself after a delay. To ensure up-to-date results, |
213 // force an update now. | 205 // force an update now. |
214 top_sites_->SyncWithHistory(); | 206 top_sites_->SyncWithHistory(); |
215 | 207 |
216 // Register as TopSitesObserver so that we can update ourselves when the | 208 // Register as TopSitesObserver so that we can update ourselves when the |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 | 559 |
568 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, | 560 void MostVisitedSites::TopSitesChanged(TopSites* top_sites, |
569 ChangeReason change_reason) { | 561 ChangeReason change_reason) { |
570 if (mv_source_ == TOP_SITES) { | 562 if (mv_source_ == TOP_SITES) { |
571 // The displayed suggestions are invalidated. | 563 // The displayed suggestions are invalidated. |
572 InitiateTopSitesQuery(); | 564 InitiateTopSitesQuery(); |
573 } | 565 } |
574 } | 566 } |
575 | 567 |
576 } // namespace ntp_tiles | 568 } // namespace ntp_tiles |
OLD | NEW |