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

Side by Side Diff: chrome/browser/history/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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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_HISTORY_BACKEND_H_ 5 #ifndef CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_
6 #define CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ 6 #define CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/containers/mru_cache.h" 13 #include "base/containers/mru_cache.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
16 #include "base/memory/memory_pressure_listener.h" 16 #include "base/memory/memory_pressure_listener.h"
17 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
18 #include "chrome/browser/history/archived_database.h"
19 #include "chrome/browser/history/expire_history_backend.h" 18 #include "chrome/browser/history/expire_history_backend.h"
20 #include "chrome/browser/history/history_database.h" 19 #include "chrome/browser/history/history_database.h"
21 #include "chrome/browser/history/history_marshaling.h" 20 #include "chrome/browser/history/history_marshaling.h"
22 #include "chrome/browser/history/history_types.h" 21 #include "chrome/browser/history/history_types.h"
23 #include "chrome/browser/history/thumbnail_database.h" 22 #include "chrome/browser/history/thumbnail_database.h"
24 #include "chrome/browser/history/visit_tracker.h" 23 #include "chrome/browser/history/visit_tracker.h"
25 #include "chrome/browser/search_engines/template_url_id.h" 24 #include "chrome/browser/search_engines/template_url_id.h"
26 #include "sql/init_status.h" 25 #include "sql/init_status.h"
27 #include "ui/base/layout.h" 26 #include "ui/base/layout.h"
28 27
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 // Update the visit_duration information in visits table. 599 // Update the visit_duration information in visits table.
601 void UpdateVisitDuration(VisitID visit_id, const base::Time end_ts); 600 void UpdateVisitDuration(VisitID visit_id, const base::Time end_ts);
602 601
603 // Querying ------------------------------------------------------------------ 602 // Querying ------------------------------------------------------------------
604 603
605 // Backends for QueryHistory. *Basic() handles queries that are not 604 // Backends for QueryHistory. *Basic() handles queries that are not
606 // text search queries and can just be given directly to the history DB. 605 // text search queries and can just be given directly to the history DB.
607 // The *Text() version performs a brute force query of the history DB to 606 // The *Text() version performs a brute force query of the history DB to
608 // search for results which match the given text query. 607 // search for results which match the given text query.
609 // Both functions assume QueryHistory already checked the DB for validity. 608 // Both functions assume QueryHistory already checked the DB for validity.
610 void QueryHistoryBasic(URLDatabase* url_db, VisitDatabase* visit_db, 609 void QueryHistoryBasic(const QueryOptions& options, QueryResults* result);
611 const QueryOptions& options, QueryResults* result); 610 void QueryHistoryText(const base::string16& text_query,
612 void QueryHistoryText(URLDatabase* url_db,
613 VisitDatabase* visit_db,
614 const base::string16& text_query,
615 const QueryOptions& options, 611 const QueryOptions& options,
616 QueryResults* result); 612 QueryResults* result);
617 613
618 // Committing ---------------------------------------------------------------- 614 // Committing ----------------------------------------------------------------
619 615
620 // We always keep a transaction open on the history database so that multiple 616 // We always keep a transaction open on the history database so that multiple
621 // transactions can be batched. Periodically, these are flushed (use 617 // transactions can be batched. Periodically, these are flushed (use
622 // ScheduleCommit). This function does the commit to write any new changes to 618 // ScheduleCommit). This function does the commit to write any new changes to
623 // disk and opens a new transaction. This will be called automatically by 619 // disk and opens a new transaction. This will be called automatically by
624 // ScheduleCommit, or it can be called explicitly if a caller really wants 620 // ScheduleCommit, or it can be called explicitly if a caller really wants
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 void ProcessDBTaskImpl(); 757 void ProcessDBTaskImpl();
762 758
763 // Release all tasks in history_db_tasks_ and clears it. 759 // Release all tasks in history_db_tasks_ and clears it.
764 void ReleaseDBTasks(); 760 void ReleaseDBTasks();
765 761
766 virtual void BroadcastNotifications( 762 virtual void BroadcastNotifications(
767 int type, 763 int type,
768 scoped_ptr<HistoryDetails> details) OVERRIDE; 764 scoped_ptr<HistoryDetails> details) OVERRIDE;
769 virtual void NotifySyncURLsModified(URLRows* rows) OVERRIDE; 765 virtual void NotifySyncURLsModified(URLRows* rows) OVERRIDE;
770 virtual void NotifySyncURLsDeleted(bool all_history, 766 virtual void NotifySyncURLsDeleted(bool all_history,
771 bool archived, 767 bool expired,
772 URLRows* rows) OVERRIDE; 768 URLRows* rows) OVERRIDE;
773 769
774 // Deleting all history ------------------------------------------------------ 770 // Deleting all history ------------------------------------------------------
775 771
776 // Deletes all history. This is a special case of deleting that is separated 772 // Deletes all history. This is a special case of deleting that is separated
777 // from our normal dependency-following method for performance reasons. The 773 // from our normal dependency-following method for performance reasons. The
778 // logic lives here instead of ExpireHistoryBackend since it will cause 774 // logic lives here instead of ExpireHistoryBackend since it will cause
779 // re-initialization of some databases such as Thumbnails or Archived that 775 // re-initialization of some databases (e.g. Thumbnails) that could fail.
780 // could fail. When these databases are not valid, our pointers must be NULL, 776 // When these databases are not valid, our pointers must be NULL, so we need
781 // so we need to handle this type of operation to keep the pointers in sync. 777 // to handle this type of operation to keep the pointers in sync.
782 void DeleteAllHistory(); 778 void DeleteAllHistory();
783 779
784 // Given a vector of all URLs that we will keep, removes all thumbnails 780 // Given a vector of all URLs that we will keep, removes all thumbnails
785 // referenced by any URL, and also all favicons that aren't used by those 781 // referenced by any URL, and also all favicons that aren't used by those
786 // URLs. 782 // URLs.
787 bool ClearAllThumbnailHistory(const URLRows& kept_urls); 783 bool ClearAllThumbnailHistory(const URLRows& kept_urls);
788 784
789 // Deletes all information in the history database, except for the supplied 785 // Deletes all information in the history database, except for the supplied
790 // set of URLs in the URL table (these should correspond to the bookmarked 786 // set of URLs in the URL table (these should correspond to the bookmarked
791 // URLs). 787 // URLs).
(...skipping 22 matching lines...) Expand all
814 base::FilePath history_dir_; 810 base::FilePath history_dir_;
815 811
816 // The history/thumbnail databases. Either MAY BE NULL if the database could 812 // The history/thumbnail databases. Either MAY BE NULL if the database could
817 // not be opened, all users must first check for NULL and return immediately 813 // not be opened, all users must first check for NULL and return immediately
818 // if it is. The thumbnail DB may be NULL when the history one isn't, but not 814 // if it is. The thumbnail DB may be NULL when the history one isn't, but not
819 // vice-versa. 815 // vice-versa.
820 scoped_ptr<HistoryDatabase> db_; 816 scoped_ptr<HistoryDatabase> db_;
821 bool scheduled_kill_db_; // Database is being killed due to error. 817 bool scheduled_kill_db_; // Database is being killed due to error.
822 scoped_ptr<ThumbnailDatabase> thumbnail_db_; 818 scoped_ptr<ThumbnailDatabase> thumbnail_db_;
823 819
824 // Stores old history in a larger, slower database.
825 scoped_ptr<ArchivedDatabase> archived_db_;
826
827 // Manages expiration between the various databases. 820 // Manages expiration between the various databases.
828 ExpireHistoryBackend expirer_; 821 ExpireHistoryBackend expirer_;
829 822
830 // A commit has been scheduled to occur sometime in the future. We can check 823 // A commit has been scheduled to occur sometime in the future. We can check
831 // non-null-ness to see if there is a commit scheduled in the future, and we 824 // non-null-ness to see if there is a commit scheduled in the future, and we
832 // can use the pointer to cancel the scheduled commit. There can be only one 825 // can use the pointer to cancel the scheduled commit. There can be only one
833 // scheduled commit at a time (see ScheduleCommit). 826 // scheduled commit at a time (see ScheduleCommit).
834 scoped_refptr<CommitLaterTask> scheduled_commit_; 827 scoped_refptr<CommitLaterTask> scheduled_commit_;
835 828
836 // Maps recent redirect destination pages to the chain of redirects that 829 // Maps recent redirect destination pages to the chain of redirects that
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 879
887 // Listens for the system being under memory pressure. 880 // Listens for the system being under memory pressure.
888 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_; 881 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
889 882
890 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); 883 DISALLOW_COPY_AND_ASSIGN(HistoryBackend);
891 }; 884 };
892 885
893 } // namespace history 886 } // namespace history
894 887
895 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ 888 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698