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

Unified Diff: chrome/browser/history/expire_history_backend.h

Issue 235863023: Eliminate the archived history database and clean up related code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename a few outstanding instances of "archived" to "expired". Created 6 years, 6 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/history/expire_history_backend.h
diff --git a/chrome/browser/history/expire_history_backend.h b/chrome/browser/history/expire_history_backend.h
index 1e631cdcfa896c022532efd91edd95b0ae0fb4f1..fdabd77095b98a74d9c88fe51d03113dfb6405eb 100644
--- a/chrome/browser/history/expire_history_backend.h
+++ b/chrome/browser/history/expire_history_backend.h
@@ -21,7 +21,6 @@ class TestingProfile;
namespace history {
-class ArchivedDatabase;
class HistoryClient;
class HistoryDatabase;
struct HistoryDetails;
@@ -38,7 +37,7 @@ class BroadcastNotificationDelegate {
// Tells typed url sync code to handle URL modifications or deletions.
virtual void NotifySyncURLsModified(URLRows* rows) = 0;
virtual void NotifySyncURLsDeleted(bool all_history,
- bool archived,
+ bool expired,
URLRows* rows) = 0;
protected:
@@ -58,11 +57,10 @@ class ExpiringVisitsReader {
typedef std::vector<const ExpiringVisitsReader*> ExpiringVisitsReaders;
// Helper component to HistoryBackend that manages expiration and deleting of
-// history, as well as moving data from the main database to the archived
-// database as it gets old.
+// history.
//
-// It will automatically start periodically archiving old history once you call
-// StartArchivingOldStuff().
+// It will automatically start periodically expiring old history once you call
+// StartExpiringOldStuff().
class ExpireHistoryBackend {
public:
// The delegate pointer must be non-NULL. We will NOT take ownership of it.
@@ -75,12 +73,11 @@ class ExpireHistoryBackend {
// Completes initialization by setting the databases that this class will use.
void SetDatabases(HistoryDatabase* main_db,
- ArchivedDatabase* archived_db,
ThumbnailDatabase* thumb_db);
// Begins periodic expiration of history older than the given threshold. This
// will continue until the object is deleted.
- void StartArchivingOldStuff(base::TimeDelta expiration_threshold);
+ void StartExpiringOldStuff(base::TimeDelta expiration_threshold);
// Deletes everything associated with a URL.
void DeleteURL(const GURL& url);
@@ -102,24 +99,22 @@ class ExpireHistoryBackend {
// ExpireHistoryBetween(), but affecting a specific set of visits).
void ExpireVisits(const VisitVector& visits);
- // Archives all visits before and including the given time, updating the URLs
- // accordingly. This function is intended for migrating old databases
- // (which encompased all time) to the tiered structure and testing, and
- // probably isn't useful for anything else.
- void ArchiveHistoryBefore(base::Time end_time);
+ // Expires all visits before and including the given time, updating the URLs
+ // accordingly. Currently only used for testing.
+ void ExpireHistoryBefore(base::Time end_time);
- // Returns the current time that we are archiving stuff to. This will return
- // the threshold in absolute time rather than a delta, so the caller should
- // not save it.
- base::Time GetCurrentArchiveTime() const {
+ // Returns the current cut-off time before which we will start expiring stuff.
+ // Note that this as an absolute time rather than a delta, so the caller
+ // should not save it.
+ base::Time GetCurrentExpirationTime() const {
return base::Time::Now() - expiration_threshold_;
}
private:
FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, DeleteFaviconsIfPossible);
- FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistory);
+ FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ExpireSomeOldHistory);
FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ExpiringVisitsReader);
- FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ArchiveSomeOldHistoryWithSource);
+ FRIEND_TEST_ALL_PREFIXES(ExpireHistoryTest, ExpireSomeOldHistoryWithSource);
friend class ::TestingProfile;
struct DeleteEffects {
@@ -154,9 +149,6 @@ class ExpireHistoryBackend {
void DeleteVisitRelatedInfo(const VisitVector& visits,
DeleteEffects* effects);
- // Moves the given visits from the main database to the archived one.
- void ArchiveVisits(const VisitVector& visits);
-
// Finds or deletes dependency information for the given URL. Information that
// is specific to this URL (URL row, thumbnails, etc.) is deleted.
//
@@ -178,13 +170,6 @@ class ExpireHistoryBackend {
bool is_bookmarked,
DeleteEffects* effects);
- // Adds or merges the given URL row with the archived database, returning the
- // ID of the URL in the archived database, or 0 on failure. The main (source)
- // database will not be affected (the URL will have to be deleted later).
- //
- // Assumes the archived database is not NULL.
- URLID ArchiveOneURL(const URLRow& url_row);
-
// Deletes all the URLs in the given vector and handles their dependencies.
// This will delete starred URLs
void DeleteURLs(const URLRows& urls, DeleteEffects* effects);
@@ -194,10 +179,8 @@ class ExpireHistoryBackend {
// field of the dependencies and DeleteOneURL will handle deleting out from
// there. This function does not handle favicons.
//
- // When a URL is not deleted and |archive| is not set, the last visit time and
- // the visit and typed counts will be updated (we want to clear these when a
- // user is deleting history manually, but not when we're normally expiring old
- // things from history).
+ // When a URL is not deleted, the last visit time and the visit and typed
+ // counts will be updated.
//
// The visits in the given vector should have already been deleted from the
// database, and the list of affected URLs already be filled into
@@ -208,42 +191,38 @@ class ExpireHistoryBackend {
// any now-unused favicons.
void ExpireURLsForVisits(const VisitVector& visits, DeleteEffects* effects);
- // Creates entries in the archived database for the unique URLs referenced
- // by the given visits. It will then add versions of the visits to that
- // database. The source database WILL NOT BE MODIFIED. The source URLs and
- // visits will have to be deleted in another pass.
- void ArchiveURLsAndVisits(const VisitVector& visits);
-
- // Deletes the favicons listed in effects->affected_favicons if unused.
- // Fills effects->deleted_favicons with the set of favicon urls that were
- // actually deleted.
+ // Deletes the favicons listed in |effects->affected_favicons| if they are
+ // unsued. Fails silently (we don't care about favicons so much, so don't want
+ // to stop everything if it fails). Fills |expired_favicons| with the set of
+ // favicon urls that no longer have associated visits and were therefore
+ // expired.
void DeleteFaviconsIfPossible(DeleteEffects* effects);
// Enum representing what type of action resulted in the history DB deletion.
enum DeletionType {
// User initiated the deletion from the History UI.
DELETION_USER_INITIATED,
- // History data was automatically archived due to being more than 90 days
+ // History data was automatically expired due to being more than 90 days
// old.
- DELETION_ARCHIVED
+ DELETION_EXPIRED
};
// Broadcasts URL modified and deleted notifications.
void BroadcastNotifications(DeleteEffects* effects, DeletionType type);
- // Schedules a call to DoArchiveIteration.
- void ScheduleArchive();
+ // Schedules a call to DoExpireIteration.
+ void ScheduleExpire();
- // Calls ArchiveSomeOldHistory to expire some amount of old history, according
+ // Calls ExpireSomeOldHistory to expire some amount of old history, according
// to the items in work queue, and schedules another call to happen in the
// future.
- void DoArchiveIteration();
+ void DoExpireIteration();
// Tries to expire the oldest |max_visits| visits from history that are older
// than |time_threshold|. The return value indicates if we think there might
// be more history to expire with the current time threshold (it does not
// indicate success or failure).
- bool ArchiveSomeOldHistory(base::Time end_time,
+ bool ExpireSomeOldHistory(base::Time end_time,
const ExpiringVisitsReader* reader,
int max_visits);
@@ -272,22 +251,20 @@ class ExpireHistoryBackend {
// Non-owning pointers to the databases we deal with (MAY BE NULL).
HistoryDatabase* main_db_; // Main history database.
- ArchivedDatabase* archived_db_; // Old history.
ThumbnailDatabase* thumb_db_; // Thumbnails and favicons.
// Used to generate runnable methods to do timers on this class. They will be
// automatically canceled when this class is deleted.
base::WeakPtrFactory<ExpireHistoryBackend> weak_factory_;
- // The threshold for "old" history where we will automatically expire it to
- // the archived database.
+ // The threshold for "old" history where we will automatically delete it.
base::TimeDelta expiration_threshold_;
// List of all distinct types of readers. This list is used to populate the
// work queue.
ExpiringVisitsReaders readers_;
- // Work queue for periodic expiration tasks, used by DoArchiveIteration() to
+ // Work queue for periodic expiration tasks, used by DoExpireIteration() to
// determine what to do at an iteration, as well as populate it for future
// iterations.
std::queue<const ExpiringVisitsReader*> work_queue_;

Powered by Google App Engine
This is Rietveld 408576698