• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Structs that hold data used in broadcasting notifications.
6 
7 #ifndef CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__
8 #define CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__
9 
10 #include <set>
11 
12 #include "chrome/browser/history/history_details.h"
13 #include "components/history/core/browser/history_types.h"
14 #include "components/history/core/browser/keyword_id.h"
15 #include "url/gurl.h"
16 
17 namespace history {
18 
19 // Details for NOTIFICATION_HISTORY_URL_VISITED.
20 struct URLVisitedDetails : public HistoryDetails {
21   URLVisitedDetails();
22   virtual ~URLVisitedDetails();
23 
24   ui::PageTransition transition;
25 
26   // The affected URLRow. The ID will be set to the value that is currently in
27   // effect in the main history database.
28   URLRow row;
29 
30   // A list of redirects leading up to the URL represented by this struct. If
31   // we have the redirect chain A -> B -> C and this struct represents visiting
32   // C, then redirects[0]=B and redirects[1]=A.  If there are no redirects,
33   // this will be an empty vector.
34   history::RedirectList redirects;
35 
36   base::Time visit_time;
37 };
38 
39 // Details for NOTIFICATION_HISTORY_TYPED_URLS_MODIFIED.
40 struct URLsModifiedDetails : public HistoryDetails {
41   URLsModifiedDetails();
42   virtual ~URLsModifiedDetails();
43 
44   // Lists the information for each of the URLs affected. The rows will have the
45   // IDs that are currently in effect in the main history database.
46   URLRows changed_urls;
47 };
48 
49 // Details for NOTIFICATION_HISTORY_URLS_DELETED.
50 struct URLsDeletedDetails : public HistoryDetails {
51   URLsDeletedDetails();
52   virtual ~URLsDeletedDetails();
53 
54   // Set when all history was deleted. False means just a subset was deleted.
55   bool all_history;
56 
57   // True if the data was expired due to old age. False if the data was deleted
58   // in response to an explicit user action through the History UI.
59   bool expired;
60 
61   // The URLRows of URLs deleted. This is valid only when |all_history| is false
62   // indicating that a subset of history has been deleted. The rows will have
63   // the IDs that had been in effect before the deletion in the main history
64   // database.
65   URLRows rows;
66 
67   // The list of deleted favicon urls. This is valid only when |all_history| is
68   // false, indicating that a subset of history has been deleted.
69   std::set<GURL> favicon_urls;
70 };
71 
72 // Details for HISTORY_KEYWORD_SEARCH_TERM_UPDATED.
73 struct KeywordSearchUpdatedDetails : public HistoryDetails {
74   KeywordSearchUpdatedDetails(const URLRow& url_row,
75                               KeywordID keyword_id,
76                               const base::string16& term);
77   virtual ~KeywordSearchUpdatedDetails();
78 
79   // The affected URLRow. The ID will be set to the value that is currently in
80   // effect in the main history database.
81   URLRow url_row;
82   KeywordID keyword_id;
83   base::string16 term;
84 };
85 
86 // Details for HISTORY_KEYWORD_SEARCH_TERM_DELETED.
87 struct KeywordSearchDeletedDetails : public HistoryDetails {
88   explicit KeywordSearchDeletedDetails(URLID url_row_id);
89   virtual ~KeywordSearchDeletedDetails();
90 
91   // The ID of the corresponding URLRow in the main history database.
92   URLID url_row_id;
93 };
94 
95 }  // namespace history
96 
97 #endif  // CHROME_BROWSER_HISTORY_HISTORY_NOTIFICATIONS_H__
98