| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ | 5 #ifndef CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ |
| 6 #define CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ | 6 #define CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 ThumbnailDatabase* thumb_db, | 76 ThumbnailDatabase* thumb_db, |
| 77 TextDatabaseManager* text_db); | 77 TextDatabaseManager* text_db); |
| 78 | 78 |
| 79 // Begins periodic expiration of history older than the given threshold. This | 79 // Begins periodic expiration of history older than the given threshold. This |
| 80 // will continue until the object is deleted. | 80 // will continue until the object is deleted. |
| 81 void StartArchivingOldStuff(base::TimeDelta expiration_threshold); | 81 void StartArchivingOldStuff(base::TimeDelta expiration_threshold); |
| 82 | 82 |
| 83 // Deletes everything associated with a URL. | 83 // Deletes everything associated with a URL. |
| 84 void DeleteURL(const GURL& url); | 84 void DeleteURL(const GURL& url); |
| 85 | 85 |
| 86 // Deletes everything associated with each URL in the list. |
| 87 void DeleteURLs(const std::vector<GURL>& url); |
| 88 |
| 86 // Removes all visits to restrict_urls (or all URLs if empty) in the given | 89 // Removes all visits to restrict_urls (or all URLs if empty) in the given |
| 87 // time range, updating the URLs accordingly, | 90 // time range, updating the URLs accordingly, |
| 88 void ExpireHistoryBetween(const std::set<GURL>& restrict_urls, | 91 void ExpireHistoryBetween(const std::set<GURL>& restrict_urls, |
| 89 base::Time begin_time, base::Time end_time); | 92 base::Time begin_time, base::Time end_time); |
| 90 | 93 |
| 91 // Removes the given list of visits, updating the URLs accordingly (similar to | 94 // Removes the given list of visits, updating the URLs accordingly (similar to |
| 92 // ExpireHistoryBetween(), but affecting a specific set of visits). | 95 // ExpireHistoryBetween(), but affecting a specific set of visits). |
| 93 void ExpireVisits(const VisitVector& visits); | 96 void ExpireVisits(const VisitVector& visits); |
| 94 | 97 |
| 95 // Archives all visits before and including the given time, updating the URLs | 98 // Archives all visits before and including the given time, updating the URLs |
| 96 // accordingly. This function is intended for migrating old databases | 99 // accordingly. This function is intended for migrating old databases |
| 97 // (which encompased all time) to the tiered structure and testing, and | 100 // (which encompased all time) to the tiered structure and testing, and |
| 98 // probably isn't useful for anything else. | 101 // probably isn't useful for anything else. |
| 99 void ArchiveHistoryBefore(base::Time end_time); | 102 void ArchiveHistoryBefore(base::Time end_time); |
| 100 | 103 |
| 101 // Returns the current time that we are archiving stuff to. This will return | 104 // Returns the current time that we are archiving stuff to. This will return |
| 102 // the threshold in absolute time rather than a delta, so the caller should | 105 // the threshold in absolute time rather than a delta, so the caller should |
| 103 // not save it. | 106 // not save it. |
| 104 base::Time GetCurrentArchiveTime() const { | 107 base::Time GetCurrentArchiveTime() const { |
| 105 return base::Time::Now() - expiration_threshold_; | 108 return base::Time::Now() - expiration_threshold_; |
| 106 } | 109 } |
| 107 | 110 |
| 108 private: | 111 private: |
| 109 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, DeleteTextIndexForURL); | |
| 110 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, DeleteFaviconsIfPossible); | 112 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, DeleteFaviconsIfPossible); |
| 111 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistory); | 113 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistory); |
| 112 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ExpiringVisitsReader); | 114 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ExpiringVisitsReader); |
| 113 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistoryWithSource); | 115 FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistoryWithSource); |
| 114 friend class ::TestingProfile; | 116 friend class ::TestingProfile; |
| 115 | 117 |
| 116 struct DeleteDependencies; | 118 struct DeleteDependencies; |
| 117 | 119 |
| 118 // Removes the data from the full text index associated with the given URL | 120 // Used by DeleteURL and DeleteURLs. |
| 119 // string/ID pair. If |update_visits| is set, the visits that reference the | 121 void DeleteURLHelper(const GURL& url, DeleteDependencies* dependencies); |
| 120 // indexed data will be updated to reflect the fact that the indexed data is | |
| 121 // gone. Setting this to false is a performance optimization when the caller | |
| 122 // knows that the visits will be deleted after the call. | |
| 123 // | |
| 124 // TODO(brettw) when we have an "archived" history database, this should take | |
| 125 // a flag to optionally delete from there. This way it can be used for page | |
| 126 // re-indexing as well as for full URL deletion. | |
| 127 void DeleteTextIndexForURL(const GURL& url, URLID url_id, bool update_visits); | |
| 128 | 122 |
| 129 // Deletes the visit-related stuff for all the visits in the given list, and | 123 // Deletes the visit-related stuff for all the visits in the given list, and |
| 130 // adds the rows for unique URLs affected to the affected_urls list in | 124 // adds the rows for unique URLs affected to the affected_urls list in |
| 131 // the dependencies structure. | 125 // the dependencies structure. |
| 132 // | 126 // |
| 133 // Deleted information is the visits themselves and the full-text index | 127 // Deleted information is the visits themselves and the full-text index |
| 134 // entries corresponding to them. | 128 // entries corresponding to them. |
| 135 void DeleteVisitRelatedInfo(const VisitVector& visits, | 129 void DeleteVisitRelatedInfo(const VisitVector& visits, |
| 136 DeleteDependencies* dependencies); | 130 DeleteDependencies* dependencies); |
| 137 | 131 |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 // Use GetBookmarkService to access this, which makes sure the service is | 281 // Use GetBookmarkService to access this, which makes sure the service is |
| 288 // loaded. | 282 // loaded. |
| 289 BookmarkService* bookmark_service_; | 283 BookmarkService* bookmark_service_; |
| 290 | 284 |
| 291 DISALLOW_COPY_AND_ASSIGN(ExpireHistoryBackend); | 285 DISALLOW_COPY_AND_ASSIGN(ExpireHistoryBackend); |
| 292 }; | 286 }; |
| 293 | 287 |
| 294 } // namespace history | 288 } // namespace history |
| 295 | 289 |
| 296 #endif // CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ | 290 #endif // CHROME_BROWSER_HISTORY_EXPIRE_HISTORY_BACKEND_H_ |
| OLD | NEW |