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

Side by Side Diff: components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc

Issue 2518033002: [Bookmark suggestions] Clean-up in the api: switch const* to const& (Closed)
Patch Set: Rebase fix Created 4 years 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
« no previous file with comments | « components/ntp_snippets/bookmarks/bookmark_suggestions_provider.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_snippets/bookmarks/bookmark_suggestions_provider.h" 5 #include "components/ntp_snippets/bookmarks/bookmark_suggestions_provider.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 169
170 void BookmarkSuggestionsProvider::GetDismissedSuggestionsForDebugging( 170 void BookmarkSuggestionsProvider::GetDismissedSuggestionsForDebugging(
171 Category category, 171 Category category,
172 const DismissedSuggestionsCallback& callback) { 172 const DismissedSuggestionsCallback& callback) {
173 DCHECK_EQ(category, provided_category_); 173 DCHECK_EQ(category, provided_category_);
174 std::vector<const BookmarkNode*> bookmarks = 174 std::vector<const BookmarkNode*> bookmarks =
175 GetDismissedBookmarksForDebugging(bookmark_model_); 175 GetDismissedBookmarksForDebugging(bookmark_model_);
176 176
177 std::vector<ContentSuggestion> suggestions; 177 std::vector<ContentSuggestion> suggestions;
178 for (const BookmarkNode* bookmark : bookmarks) { 178 for (const BookmarkNode* bookmark : bookmarks) {
179 ConvertBookmark(bookmark, &suggestions); 179 ConvertBookmark(*bookmark, &suggestions);
180 } 180 }
181 callback.Run(std::move(suggestions)); 181 callback.Run(std::move(suggestions));
182 } 182 }
183 183
184 void BookmarkSuggestionsProvider::ClearDismissedSuggestionsForDebugging( 184 void BookmarkSuggestionsProvider::ClearDismissedSuggestionsForDebugging(
185 Category category) { 185 Category category) {
186 DCHECK_EQ(category, provided_category_); 186 DCHECK_EQ(category, provided_category_);
187 if (!bookmark_model_->loaded()) { 187 if (!bookmark_model_->loaded()) {
188 return; 188 return;
189 } 189 }
190 MarkAllBookmarksUndismissed(bookmark_model_); 190 MarkAllBookmarksUndismissed(bookmark_model_);
191 } 191 }
192 192
193 void BookmarkSuggestionsProvider::BookmarkModelLoaded( 193 void BookmarkSuggestionsProvider::BookmarkModelLoaded(
194 bookmarks::BookmarkModel* model, 194 bookmarks::BookmarkModel* model,
195 bool ids_reassigned) { 195 bool ids_reassigned) {
196 DCHECK_EQ(bookmark_model_, model); 196 DCHECK_EQ(bookmark_model_, model);
197 if (fetch_requested_) { 197 if (fetch_requested_) {
198 fetch_requested_ = false; 198 fetch_requested_ = false;
199 FetchBookmarksInternal(); 199 FetchBookmarksInternal();
200 } 200 }
201 } 201 }
202 202
203 void BookmarkSuggestionsProvider::OnWillChangeBookmarkMetaInfo( 203 void BookmarkSuggestionsProvider::OnWillChangeBookmarkMetaInfo(
204 BookmarkModel* model, 204 BookmarkModel* model,
205 const BookmarkNode* node) { 205 const BookmarkNode* node) {
206 // Store the last visit date of the node that is about to change. 206 // Store the last visit date of the node that is about to change.
207 if (!GetLastVisitDateForNTPBookmark(node, 207 if (!GetLastVisitDateForNTPBookmark(*node,
208 consider_bookmark_visits_from_desktop_, 208 consider_bookmark_visits_from_desktop_,
209 &node_to_change_last_visit_date_)) { 209 &node_to_change_last_visit_date_)) {
210 node_to_change_last_visit_date_ = base::Time::UnixEpoch(); 210 node_to_change_last_visit_date_ = base::Time::UnixEpoch();
211 } 211 }
212 } 212 }
213 213
214 void BookmarkSuggestionsProvider::BookmarkMetaInfoChanged( 214 void BookmarkSuggestionsProvider::BookmarkMetaInfoChanged(
215 BookmarkModel* model, 215 BookmarkModel* model,
216 const BookmarkNode* node) { 216 const BookmarkNode* node) {
217 base::Time time; 217 base::Time time;
218 if (!GetLastVisitDateForNTPBookmark( 218 if (!GetLastVisitDateForNTPBookmark(
219 node, consider_bookmark_visits_from_desktop_, &time)) { 219 *node, consider_bookmark_visits_from_desktop_, &time)) {
220 // Error in loading the last visit date after the change. This happens when 220 // Error in loading the last visit date after the change. This happens when
221 // the bookmark just got dismissed. We must not update the suggestion in 221 // the bookmark just got dismissed. We must not update the suggestion in
222 // such a case. 222 // such a case.
223 return; 223 return;
224 } 224 }
225 225
226 if (time == node_to_change_last_visit_date_ || 226 if (time == node_to_change_last_visit_date_ ||
227 time < end_of_list_last_visit_date_) { 227 time < end_of_list_last_visit_date_) {
228 // The last visit date has not changed or the change is irrelevant. 228 // The last visit date has not changed or the change is irrelevant.
229 return; 229 return;
230 } 230 }
231 231
232 // Otherwise, we should update the suggestions. 232 // Otherwise, we should update the suggestions.
233 FetchBookmarks(); 233 FetchBookmarks();
234 } 234 }
235 235
236 void BookmarkSuggestionsProvider::BookmarkNodeRemoved( 236 void BookmarkSuggestionsProvider::BookmarkNodeRemoved(
237 bookmarks::BookmarkModel* model, 237 bookmarks::BookmarkModel* model,
238 const bookmarks::BookmarkNode* parent, 238 const bookmarks::BookmarkNode* parent,
239 int old_index, 239 int old_index,
240 const bookmarks::BookmarkNode* node, 240 const bookmarks::BookmarkNode* node,
241 const std::set<GURL>& no_longer_bookmarked) { 241 const std::set<GURL>& no_longer_bookmarked) {
242 base::Time time; 242 base::Time time;
243 if (GetLastVisitDateForNTPBookmark( 243 if (GetLastVisitDateForNTPBookmark(
244 node, consider_bookmark_visits_from_desktop_, &time) && 244 *node, consider_bookmark_visits_from_desktop_, &time) &&
245 time < end_of_list_last_visit_date_) { 245 time < end_of_list_last_visit_date_) {
246 // We know the node is too old to influence the list. 246 // We know the node is too old to influence the list.
247 return; 247 return;
248 } 248 }
249 249
250 // Some node from our list got deleted, we should update the suggestions. 250 // Some node from our list got deleted, we should update the suggestions.
251 FetchBookmarks(); 251 FetchBookmarks();
252 } 252 }
253 253
254 void BookmarkSuggestionsProvider::BookmarkNodeAdded( 254 void BookmarkSuggestionsProvider::BookmarkNodeAdded(
255 bookmarks::BookmarkModel* model, 255 bookmarks::BookmarkModel* model,
256 const bookmarks::BookmarkNode* parent, 256 const bookmarks::BookmarkNode* parent,
257 int index) { 257 int index) {
258 base::Time time; 258 base::Time time;
259 if (!GetLastVisitDateForNTPBookmark(parent->GetChild(index), 259 if (!GetLastVisitDateForNTPBookmark(*parent->GetChild(index),
260 consider_bookmark_visits_from_desktop_, 260 consider_bookmark_visits_from_desktop_,
261 &time) || 261 &time) ||
262 time < end_of_list_last_visit_date_) { 262 time < end_of_list_last_visit_date_) {
263 // The new node has no last visited info or is too old to get into the list. 263 // The new node has no last visited info or is too old to get into the list.
264 return; 264 return;
265 } 265 }
266 266
267 // Some relevant node got created (e.g. by sync), we should update the list. 267 // Some relevant node got created (e.g. by sync), we should update the list.
268 FetchBookmarks(); 268 FetchBookmarks();
269 } 269 }
270 270
271 void BookmarkSuggestionsProvider::ConvertBookmark( 271 void BookmarkSuggestionsProvider::ConvertBookmark(
272 const BookmarkNode* bookmark, 272 const BookmarkNode& bookmark,
273 std::vector<ContentSuggestion>* suggestions) { 273 std::vector<ContentSuggestion>* suggestions) {
274 base::Time publish_date; 274 base::Time publish_date;
275 if (!GetLastVisitDateForNTPBookmark( 275 if (!GetLastVisitDateForNTPBookmark(
276 bookmark, consider_bookmark_visits_from_desktop_, &publish_date)) { 276 bookmark, consider_bookmark_visits_from_desktop_, &publish_date)) {
277 return; 277 return;
278 } 278 }
279 279
280 ContentSuggestion suggestion(provided_category_, bookmark->url().spec(), 280 ContentSuggestion suggestion(provided_category_, bookmark.url().spec(),
281 bookmark->url()); 281 bookmark.url());
282 suggestion.set_title(bookmark->GetTitle()); 282 suggestion.set_title(bookmark.GetTitle());
283 suggestion.set_snippet_text(base::string16()); 283 suggestion.set_snippet_text(base::string16());
284 suggestion.set_publish_date(publish_date); 284 suggestion.set_publish_date(publish_date);
285 suggestion.set_publisher_name(base::UTF8ToUTF16(bookmark->url().host())); 285 suggestion.set_publisher_name(base::UTF8ToUTF16(bookmark.url().host()));
286 286
287 suggestions->emplace_back(std::move(suggestion)); 287 suggestions->emplace_back(std::move(suggestion));
288 } 288 }
289 289
290 void BookmarkSuggestionsProvider::FetchBookmarksInternal() { 290 void BookmarkSuggestionsProvider::FetchBookmarksInternal() {
291 DCHECK(bookmark_model_->loaded()); 291 DCHECK(bookmark_model_->loaded());
292 292
293 NotifyStatusChanged(CategoryStatus::AVAILABLE); 293 NotifyStatusChanged(CategoryStatus::AVAILABLE);
294 294
295 base::Time threshold_time = GetThresholdTime(); 295 base::Time threshold_time = GetThresholdTime();
296 std::vector<const BookmarkNode*> bookmarks = GetRecentlyVisitedBookmarks( 296 std::vector<const BookmarkNode*> bookmarks = GetRecentlyVisitedBookmarks(
297 bookmark_model_, GetMaxCount(), threshold_time, 297 bookmark_model_, GetMaxCount(), threshold_time,
298 consider_bookmark_visits_from_desktop_); 298 consider_bookmark_visits_from_desktop_);
299 299
300 std::vector<ContentSuggestion> suggestions; 300 std::vector<ContentSuggestion> suggestions;
301 for (const BookmarkNode* bookmark : bookmarks) { 301 for (const BookmarkNode* bookmark : bookmarks) {
302 ConvertBookmark(bookmark, &suggestions); 302 ConvertBookmark(*bookmark, &suggestions);
303 } 303 }
304 304
305 if (suggestions.empty()) { 305 if (suggestions.empty()) {
306 end_of_list_last_visit_date_ = threshold_time; 306 end_of_list_last_visit_date_ = threshold_time;
307 } else { 307 } else {
308 end_of_list_last_visit_date_ = suggestions.back().publish_date(); 308 end_of_list_last_visit_date_ = suggestions.back().publish_date();
309 } 309 }
310 310
311 observer()->OnNewSuggestions(this, provided_category_, 311 observer()->OnNewSuggestions(this, provided_category_,
312 std::move(suggestions)); 312 std::move(suggestions));
(...skipping 10 matching lines...) Expand all
323 void BookmarkSuggestionsProvider::NotifyStatusChanged( 323 void BookmarkSuggestionsProvider::NotifyStatusChanged(
324 CategoryStatus new_status) { 324 CategoryStatus new_status) {
325 if (category_status_ == new_status) { 325 if (category_status_ == new_status) {
326 return; 326 return;
327 } 327 }
328 category_status_ = new_status; 328 category_status_ = new_status;
329 observer()->OnCategoryStatusChanged(this, provided_category_, new_status); 329 observer()->OnCategoryStatusChanged(this, provided_category_, new_status);
330 } 330 }
331 331
332 } // namespace ntp_snippets 332 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « components/ntp_snippets/bookmarks/bookmark_suggestions_provider.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698