File: bookmark_last_visit_utils.h

package info (click to toggle)
chromium-browser 57.0.2987.98-1~deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 2,637,852 kB
  • ctags: 2,544,394
  • sloc: cpp: 12,815,961; ansic: 3,676,222; python: 1,147,112; asm: 526,608; java: 523,212; xml: 286,794; perl: 92,654; sh: 86,408; objc: 73,271; makefile: 27,698; cs: 18,487; yacc: 13,031; tcl: 12,957; pascal: 4,875; ml: 4,716; lex: 3,904; sql: 3,862; ruby: 1,982; lisp: 1,508; php: 1,368; exp: 404; awk: 325; csh: 117; jsp: 39; sed: 37
file content (82 lines) | stat: -rw-r--r-- 3,518 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_LAST_VISIT_UTILS_H_
#define COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_LAST_VISIT_UTILS_H_

#include <vector>

#include "base/callback.h"

class GURL;

namespace base {
class Time;
}  // namespace base

namespace bookmarks {
class BookmarkModel;
class BookmarkNode;
}  // namespace bookmarks

namespace ntp_snippets {

// If there is a bookmark for |url|, this function updates its last visit date
// to now. If there are multiple bookmarks for a given URL, it updates all of
// them. The last visit dates are kept separate for mobile and desktop,
// according to |is_mobile_platform|.
void UpdateBookmarkOnURLVisitedInMainFrame(
    bookmarks::BookmarkModel* bookmark_model,
    const GURL& url,
    bool is_mobile_platform);

// Reads the last visit date for a given bookmark |node|. On success, |out| is
// set to the extracted time and 'true' is returned. Otherwise returns false
// which also includes the case that the bookmark was dismissed from the NTP.
// As visits, we primarily understand visits on Android (the visit when the
// bookmark is created also counts). Visits on desktop platforms are considered
// only if |consider_visits_from_desktop|.
bool GetLastVisitDateForNTPBookmark(const bookmarks::BookmarkNode& node,
                                    bool consider_visits_from_desktop,
                                    base::Time* out);

// Marks all bookmarks with the given URL as dismissed.
void MarkBookmarksDismissed(bookmarks::BookmarkModel* bookmark_model,
                            const GURL& url);

// Gets the dismissed flag for a given bookmark |node|. Defaults to false.
bool IsDismissedFromNTPForBookmark(const bookmarks::BookmarkNode& node);

// Removes the dismissed flag from all bookmarks (only for debugging).
void MarkAllBookmarksUndismissed(bookmarks::BookmarkModel* bookmark_model);

// Returns the list of most recently visited, non-dismissed bookmarks.
// For each bookmarked URL, it returns the most recently created bookmark.
// The result is ordered by visit time (the most recent first). Only bookmarks
// visited after |min_visit_time| are considered, at most |max_count| bookmarks
// are returned.
// If |consider_visits_from_desktop|, also visits to bookmarks on synced desktop
// platforms are considered (and not only on this and other synced Android
// devices).
std::vector<const bookmarks::BookmarkNode*> GetRecentlyVisitedBookmarks(
    bookmarks::BookmarkModel* bookmark_model,
    int max_count,
    const base::Time& min_visit_time,
    bool consider_visits_from_desktop);

// Returns the list of all dismissed bookmarks. Only used for debugging.
std::vector<const bookmarks::BookmarkNode*> GetDismissedBookmarksForDebugging(
    bookmarks::BookmarkModel* bookmark_model);

// Removes last-visited data (incl. any other metadata managed by content
// suggestions) for bookmarks within the provided time range.
// TODO(tschumann): Implement URL filtering.
void RemoveLastVisitedDatesBetween(const base::Time& begin,
                                   const base::Time& end,
                                   base::Callback<bool(const GURL& url)> filter,
                                   bookmarks::BookmarkModel* bookmark_model);

}  // namespace ntp_snippets

#endif  // COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_LAST_VISIT_UTILS_H_