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

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

Issue 2520843002: [NTP] Cleanup: add brackets in components/ntp_snippets. [1/2] (Closed)
Patch Set: 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 | « no previous file | components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc » ('j') | 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_last_visit_utils.h" 5 #include "components/ntp_snippets/bookmarks/bookmark_last_visit_utils.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <numeric> 8 #include <numeric>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 28 matching lines...) Expand all
39 const char kBookmarkDismissedFromNTP[] = "dismissed_from_ntp"; 39 const char kBookmarkDismissedFromNTP[] = "dismissed_from_ntp";
40 40
41 std::string FormatLastVisitDate(const base::Time& date) { 41 std::string FormatLastVisitDate(const base::Time& date) {
42 return base::Int64ToString(date.ToInternalValue()); 42 return base::Int64ToString(date.ToInternalValue());
43 } 43 }
44 44
45 bool ExtractLastVisitDate(const BookmarkNode& node, 45 bool ExtractLastVisitDate(const BookmarkNode& node,
46 const std::string& meta_info_key, 46 const std::string& meta_info_key,
47 base::Time* out) { 47 base::Time* out) {
48 std::string last_visit_date_string; 48 std::string last_visit_date_string;
49 if (!node.GetMetaInfo(meta_info_key, &last_visit_date_string)) 49 if (!node.GetMetaInfo(meta_info_key, &last_visit_date_string)) {
50 return false; 50 return false;
51 }
51 52
52 int64_t date = 0; 53 int64_t date = 0;
53 if (!base::StringToInt64(last_visit_date_string, &date) || date < 0) 54 if (!base::StringToInt64(last_visit_date_string, &date) || date < 0) {
54 return false; 55 return false;
56 }
55 57
56 *out = base::Time::FromInternalValue(date); 58 *out = base::Time::FromInternalValue(date);
57 return true; 59 return true;
58 } 60 }
59 61
60 bool IsBlacklisted(const GURL& url) { 62 bool IsBlacklisted(const GURL& url) {
61 for (const char* blacklisted : kBookmarksURLBlacklist) { 63 for (const char* blacklisted : kBookmarksURLBlacklist) {
62 if (url.spec() == blacklisted) 64 if (url.spec() == blacklisted) {
63 return true; 65 return true;
66 }
64 } 67 }
65 return false; 68 return false;
66 } 69 }
67 70
68 std::vector<const BookmarkNode*>::const_iterator FindMostRecentBookmark( 71 std::vector<const BookmarkNode*>::const_iterator FindMostRecentBookmark(
69 const std::vector<const BookmarkNode*>& bookmarks, 72 const std::vector<const BookmarkNode*>& bookmarks,
70 bool creation_date_fallback, 73 bool creation_date_fallback,
71 bool consider_visits_from_desktop) { 74 bool consider_visits_from_desktop) {
72 auto most_recent = bookmarks.end(); 75 auto most_recent = bookmarks.end();
73 base::Time most_recent_last_visited = base::Time::UnixEpoch(); 76 base::Time most_recent_last_visited = base::Time::UnixEpoch();
(...skipping 11 matching lines...) Expand all
85 88
86 return most_recent; 89 return most_recent;
87 } 90 }
88 91
89 } // namespace 92 } // namespace
90 93
91 void UpdateBookmarkOnURLVisitedInMainFrame(BookmarkModel* bookmark_model, 94 void UpdateBookmarkOnURLVisitedInMainFrame(BookmarkModel* bookmark_model,
92 const GURL& url, 95 const GURL& url,
93 bool is_mobile_platform) { 96 bool is_mobile_platform) {
94 // Skip URLs that are blacklisted. 97 // Skip URLs that are blacklisted.
95 if (IsBlacklisted(url)) 98 if (IsBlacklisted(url)) {
96 return; 99 return;
100 }
97 101
98 // Skip URLs that are not bookmarked. 102 // Skip URLs that are not bookmarked.
99 std::vector<const BookmarkNode*> bookmarks_for_url; 103 std::vector<const BookmarkNode*> bookmarks_for_url;
100 bookmark_model->GetNodesByURL(url, &bookmarks_for_url); 104 bookmark_model->GetNodesByURL(url, &bookmarks_for_url);
101 if (bookmarks_for_url.empty()) 105 if (bookmarks_for_url.empty()) {
102 return; 106 return;
107 }
103 108
104 // If there are bookmarks for |url|, set their last visit date to now. 109 // If there are bookmarks for |url|, set their last visit date to now.
105 std::string now = FormatLastVisitDate(base::Time::Now()); 110 std::string now = FormatLastVisitDate(base::Time::Now());
106 for (const BookmarkNode* node : bookmarks_for_url) { 111 for (const BookmarkNode* node : bookmarks_for_url) {
107 bookmark_model->SetNodeMetaInfo( 112 bookmark_model->SetNodeMetaInfo(
108 node, is_mobile_platform ? kBookmarkLastVisitDateOnMobileKey 113 node, is_mobile_platform ? kBookmarkLastVisitDateOnMobileKey
109 : kBookmarkLastVisitDateOnDesktopKey, 114 : kBookmarkLastVisitDateOnDesktopKey,
110 now); 115 now);
111 // If the bookmark has been dismissed from NTP before, a new visit overrides 116 // If the bookmark has been dismissed from NTP before, a new visit overrides
112 // such a dismissal. 117 // such a dismissal.
(...skipping 30 matching lines...) Expand all
143 *out = node->date_added(); 148 *out = node->date_added();
144 return true; 149 return true;
145 } 150 }
146 151
147 return got_mobile_date; 152 return got_mobile_date;
148 } 153 }
149 154
150 void MarkBookmarksDismissed(BookmarkModel* bookmark_model, const GURL& url) { 155 void MarkBookmarksDismissed(BookmarkModel* bookmark_model, const GURL& url) {
151 std::vector<const BookmarkNode*> nodes; 156 std::vector<const BookmarkNode*> nodes;
152 bookmark_model->GetNodesByURL(url, &nodes); 157 bookmark_model->GetNodesByURL(url, &nodes);
153 for (const BookmarkNode* node : nodes) 158 for (const BookmarkNode* node : nodes) {
154 bookmark_model->SetNodeMetaInfo(node, kBookmarkDismissedFromNTP, "1"); 159 bookmark_model->SetNodeMetaInfo(node, kBookmarkDismissedFromNTP, "1");
160 }
155 } 161 }
156 162
157 bool IsDismissedFromNTPForBookmark(const BookmarkNode* node) { 163 bool IsDismissedFromNTPForBookmark(const BookmarkNode* node) {
158 if (!node) 164 if (!node) {
159 return false; 165 return false;
166 }
160 167
161 std::string dismissed_from_ntp; 168 std::string dismissed_from_ntp;
162 bool result = 169 bool result =
163 node->GetMetaInfo(kBookmarkDismissedFromNTP, &dismissed_from_ntp); 170 node->GetMetaInfo(kBookmarkDismissedFromNTP, &dismissed_from_ntp);
164 DCHECK(!result || dismissed_from_ntp == "1"); 171 DCHECK(!result || dismissed_from_ntp == "1");
165 return result; 172 return result;
166 } 173 }
167 174
168 void MarkAllBookmarksUndismissed(BookmarkModel* bookmark_model) { 175 void MarkAllBookmarksUndismissed(BookmarkModel* bookmark_model) {
169 // Get all the bookmark URLs. 176 // Get all the bookmark URLs.
170 std::vector<BookmarkModel::URLAndTitle> bookmarks; 177 std::vector<BookmarkModel::URLAndTitle> bookmarks;
171 bookmark_model->GetBookmarks(&bookmarks); 178 bookmark_model->GetBookmarks(&bookmarks);
172 179
173 // Remove dismissed flag from all bookmarks 180 // Remove dismissed flag from all bookmarks
174 for (const BookmarkModel::URLAndTitle& bookmark : bookmarks) { 181 for (const BookmarkModel::URLAndTitle& bookmark : bookmarks) {
175 std::vector<const BookmarkNode*> nodes; 182 std::vector<const BookmarkNode*> nodes;
176 bookmark_model->GetNodesByURL(bookmark.url, &nodes); 183 bookmark_model->GetNodesByURL(bookmark.url, &nodes);
177 for (const BookmarkNode* node : nodes) 184 for (const BookmarkNode* node : nodes) {
178 bookmark_model->DeleteNodeMetaInfo(node, kBookmarkDismissedFromNTP); 185 bookmark_model->DeleteNodeMetaInfo(node, kBookmarkDismissedFromNTP);
186 }
179 } 187 }
180 } 188 }
181 189
182 std::vector<const BookmarkNode*> GetRecentlyVisitedBookmarks( 190 std::vector<const BookmarkNode*> GetRecentlyVisitedBookmarks(
183 BookmarkModel* bookmark_model, 191 BookmarkModel* bookmark_model,
184 int min_count, 192 int min_count,
185 int max_count, 193 int max_count,
186 const base::Time& min_visit_time, 194 const base::Time& min_visit_time,
187 bool creation_date_fallback, 195 bool creation_date_fallback,
188 bool consider_visits_from_desktop) { 196 bool consider_visits_from_desktop) {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 std::vector<const BookmarkNode*> result; 272 std::vector<const BookmarkNode*> result;
265 for (const RecentBookmark& bookmark : bookmarks) { 273 for (const RecentBookmark& bookmark : bookmarks) {
266 // TODO(jkrcal): The following break rule is in conflict with the comment 274 // TODO(jkrcal): The following break rule is in conflict with the comment
267 // and code above that we give at least |min_count| bookmarks (irrespective 275 // and code above that we give at least |min_count| bookmarks (irrespective
268 // of creation_date_fallback). Discuss with treib@ and clear up. 276 // of creation_date_fallback). Discuss with treib@ and clear up.
269 if (!creation_date_fallback && bookmark.last_visited < min_visit_time) { 277 if (!creation_date_fallback && bookmark.last_visited < min_visit_time) {
270 break; 278 break;
271 } 279 }
272 280
273 result.push_back(bookmark.node); 281 result.push_back(bookmark.node);
274 if (result.size() >= static_cast<size_t>(max_count)) 282 if (result.size() >= static_cast<size_t>(max_count)) {
275 break; 283 break;
284 }
276 } 285 }
277 return result; 286 return result;
278 } 287 }
279 288
280 std::vector<const BookmarkNode*> GetDismissedBookmarksForDebugging( 289 std::vector<const BookmarkNode*> GetDismissedBookmarksForDebugging(
281 BookmarkModel* bookmark_model) { 290 BookmarkModel* bookmark_model) {
282 // Get all the bookmark URLs. 291 // Get all the bookmark URLs.
283 std::vector<BookmarkModel::URLAndTitle> bookmarks; 292 std::vector<BookmarkModel::URLAndTitle> bookmarks;
284 bookmark_model->GetBookmarks(&bookmarks); 293 bookmark_model->GetBookmarks(&bookmarks);
285 294
286 // Remove the bookmark URLs which have at least one non-dismissed bookmark. 295 // Remove the bookmark URLs which have at least one non-dismissed bookmark.
287 bookmarks.erase( 296 bookmarks.erase(
288 std::remove_if( 297 std::remove_if(
289 bookmarks.begin(), bookmarks.end(), 298 bookmarks.begin(), bookmarks.end(),
290 [&bookmark_model](const BookmarkModel::URLAndTitle& bookmark) { 299 [&bookmark_model](const BookmarkModel::URLAndTitle& bookmark) {
291 std::vector<const BookmarkNode*> bookmarks_for_url; 300 std::vector<const BookmarkNode*> bookmarks_for_url;
292 bookmark_model->GetNodesByURL(bookmark.url, &bookmarks_for_url); 301 bookmark_model->GetNodesByURL(bookmark.url, &bookmarks_for_url);
293 DCHECK(!bookmarks_for_url.empty()); 302 DCHECK(!bookmarks_for_url.empty());
294 303
295 for (const BookmarkNode* node : bookmarks_for_url) { 304 for (const BookmarkNode* node : bookmarks_for_url) {
296 if (!IsDismissedFromNTPForBookmark(node)) 305 if (!IsDismissedFromNTPForBookmark(node)) {
297 return true; 306 return true;
307 }
298 } 308 }
299 return false; 309 return false;
300 }), 310 }),
301 bookmarks.end()); 311 bookmarks.end());
302 312
303 // Insert into |result|. 313 // Insert into |result|.
304 std::vector<const BookmarkNode*> result; 314 std::vector<const BookmarkNode*> result;
305 for (const BookmarkModel::URLAndTitle& bookmark : bookmarks) { 315 for (const BookmarkModel::URLAndTitle& bookmark : bookmarks) {
306 result.push_back( 316 result.push_back(
307 bookmark_model->GetMostRecentlyAddedUserNodeForURL(bookmark.url)); 317 bookmark_model->GetMostRecentlyAddedUserNodeForURL(bookmark.url));
(...skipping 14 matching lines...) Expand all
322 for (const BookmarkNode* bookmark : bookmarks_for_url) { 332 for (const BookmarkNode* bookmark : bookmarks_for_url) {
323 bookmark_model->DeleteNodeMetaInfo(bookmark, 333 bookmark_model->DeleteNodeMetaInfo(bookmark,
324 kBookmarkLastVisitDateOnMobileKey); 334 kBookmarkLastVisitDateOnMobileKey);
325 bookmark_model->DeleteNodeMetaInfo(bookmark, 335 bookmark_model->DeleteNodeMetaInfo(bookmark,
326 kBookmarkLastVisitDateOnDesktopKey); 336 kBookmarkLastVisitDateOnDesktopKey);
327 } 337 }
328 } 338 }
329 } 339 }
330 340
331 } // namespace ntp_snippets 341 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « no previous file | components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698