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

Side by Side Diff: chrome/browser/history/history_backend.h

Issue 16951015: Remove TextDatabase from the history service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@replace_fts
Patch Set: Sync and rebase. Created 7 years, 5 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
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" 18 #include "chrome/browser/history/archived_database.h"
19 #include "chrome/browser/history/expire_history_backend.h" 19 #include "chrome/browser/history/expire_history_backend.h"
20 #include "chrome/browser/history/history_database.h" 20 #include "chrome/browser/history/history_database.h"
21 #include "chrome/browser/history/history_marshaling.h" 21 #include "chrome/browser/history/history_marshaling.h"
22 #include "chrome/browser/history/history_types.h" 22 #include "chrome/browser/history/history_types.h"
23 #include "chrome/browser/history/text_database_manager.h"
24 #include "chrome/browser/history/thumbnail_database.h" 23 #include "chrome/browser/history/thumbnail_database.h"
25 #include "chrome/browser/history/visit_tracker.h" 24 #include "chrome/browser/history/visit_tracker.h"
26 #include "chrome/browser/search_engines/template_url_id.h" 25 #include "chrome/browser/search_engines/template_url_id.h"
27 #include "sql/init_status.h" 26 #include "sql/init_status.h"
28 #include "ui/base/layout.h" 27 #include "ui/base/layout.h"
29 28
30 class BookmarkService; 29 class BookmarkService;
31 class TestingProfile; 30 class TestingProfile;
32 class TypedUrlSyncableService; 31 class TypedUrlSyncableService;
33 struct ThumbnailScore; 32 struct ThumbnailScore;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 // The page can be identified by the combination of the pointer to 154 // The page can be identified by the combination of the pointer to
156 // a RenderProcessHost, the page id and the url. 155 // a RenderProcessHost, the page id and the url.
157 // 156 //
158 // The given pointer will not be dereferenced, it is only used for 157 // The given pointer will not be dereferenced, it is only used for
159 // identification purposes, hence it is a void*. 158 // identification purposes, hence it is a void*.
160 void UpdateWithPageEndTime(const void* host, 159 void UpdateWithPageEndTime(const void* host,
161 int32 page_id, 160 int32 page_id,
162 const GURL& url, 161 const GURL& url,
163 base::Time end_ts); 162 base::Time end_ts);
164 163
165
166 // Indexing ------------------------------------------------------------------
167
168 void SetPageContents(const GURL& url, const string16& contents);
169
170 // Querying ------------------------------------------------------------------ 164 // Querying ------------------------------------------------------------------
171 165
172 // ScheduleAutocomplete() never frees |provider| (which is globally live). 166 // ScheduleAutocomplete() never frees |provider| (which is globally live).
173 // It passes |params| on to the autocomplete system which will eventually 167 // It passes |params| on to the autocomplete system which will eventually
174 // free it. 168 // free it.
175 void ScheduleAutocomplete(HistoryURLProvider* provider, 169 void ScheduleAutocomplete(HistoryURLProvider* provider,
176 HistoryURLProviderParams* params); 170 HistoryURLProviderParams* params);
177 171
178 void IterateURLs( 172 void IterateURLs(
179 const scoped_refptr<visitedlink::VisitedLinkDelegate::URLEnumerator>& 173 const scoped_refptr<visitedlink::VisitedLinkDelegate::URLEnumerator>&
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBSingleIconURL); 551 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBSingleIconURL);
558 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBIconType); 552 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBIconType);
559 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBExpired); 553 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconsFromDBExpired);
560 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, 554 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest,
561 UpdateFaviconMappingsAndFetchNoDB); 555 UpdateFaviconMappingsAndFetchNoDB);
562 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, 556 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest,
563 CloneFaviconIsRestrictedToSameDomain); 557 CloneFaviconIsRestrictedToSameDomain);
564 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs); 558 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, QueryFilteredURLs);
565 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration); 559 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, UpdateVisitDuration);
566 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ExpireHistoryForTimes); 560 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ExpireHistoryForTimes);
561 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteFTSIndexDatabases);
567 562
568 friend class ::TestingProfile; 563 friend class ::TestingProfile;
569 564
570 // Computes the name of the specified database on disk. 565 // Computes the name of the specified database on disk.
571 base::FilePath GetThumbnailFileName() const; 566 base::FilePath GetThumbnailFileName() const;
572 567
573 // Returns the name of the Favicons database. This is the new name 568 // Returns the name of the Favicons database. This is the new name
574 // of the Thumbnails database. 569 // of the Thumbnails database.
575 // See ThumbnailDatabase::RenameAndDropThumbnails. 570 // See ThumbnailDatabase::RenameAndDropThumbnails.
576 base::FilePath GetFaviconsFileName() const; 571 base::FilePath GetFaviconsFileName() const;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 // The *Text() version performs a brute force query of the history DB to 646 // The *Text() version performs a brute force query of the history DB to
652 // search for results which match the given text query. 647 // search for results which match the given text query.
653 // Both functions assume QueryHistory already checked the DB for validity. 648 // Both functions assume QueryHistory already checked the DB for validity.
654 void QueryHistoryBasic(URLDatabase* url_db, VisitDatabase* visit_db, 649 void QueryHistoryBasic(URLDatabase* url_db, VisitDatabase* visit_db,
655 const QueryOptions& options, QueryResults* result); 650 const QueryOptions& options, QueryResults* result);
656 void QueryHistoryText(URLDatabase* url_db, 651 void QueryHistoryText(URLDatabase* url_db,
657 VisitDatabase* visit_db, 652 VisitDatabase* visit_db,
658 const string16& text_query, 653 const string16& text_query,
659 const QueryOptions& options, 654 const QueryOptions& options,
660 QueryResults* result); 655 QueryResults* result);
661 void QueryHistoryFTS(const string16& text_query,
662 const QueryOptions& options,
663 QueryResults* result);
664 656
665 // Committing ---------------------------------------------------------------- 657 // Committing ----------------------------------------------------------------
666 658
667 // We always keep a transaction open on the history database so that multiple 659 // We always keep a transaction open on the history database so that multiple
668 // transactions can be batched. Periodically, these are flushed (use 660 // transactions can be batched. Periodically, these are flushed (use
669 // ScheduleCommit). This function does the commit to write any new changes to 661 // ScheduleCommit). This function does the commit to write any new changes to
670 // disk and opens a new transaction. This will be called automatically by 662 // disk and opens a new transaction. This will be called automatically by
671 // ScheduleCommit, or it can be called explicitly if a caller really wants 663 // ScheduleCommit, or it can be called explicitly if a caller really wants
672 // to write something to disk. 664 // to write something to disk.
673 void Commit(); 665 void Commit();
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 // vector to reference the new IDs. 828 // vector to reference the new IDs.
837 bool ClearAllThumbnailHistory(URLRows* kept_urls); 829 bool ClearAllThumbnailHistory(URLRows* kept_urls);
838 830
839 // Deletes all information in the history database, except for the supplied 831 // Deletes all information in the history database, except for the supplied
840 // set of URLs in the URL table (these should correspond to the bookmarked 832 // set of URLs in the URL table (these should correspond to the bookmarked
841 // URLs). 833 // URLs).
842 // 834 //
843 // The IDs of the URLs may change. 835 // The IDs of the URLs may change.
844 bool ClearAllMainHistory(const URLRows& kept_urls); 836 bool ClearAllMainHistory(const URLRows& kept_urls);
845 837
838 // Deletes the FTS index database files, which are no longer used.
839 void DeleteFTSIndexDatabases();
840
846 // Returns the BookmarkService, blocking until it is loaded. This may return 841 // Returns the BookmarkService, blocking until it is loaded. This may return
847 // NULL during testing. 842 // NULL during testing.
848 BookmarkService* GetBookmarkService(); 843 BookmarkService* GetBookmarkService();
849 844
850 // Notify any observers of an addition to the visit database. 845 // Notify any observers of an addition to the visit database.
851 void NotifyVisitObservers(const VisitRow& visit); 846 void NotifyVisitObservers(const VisitRow& visit);
852 847
853 // Data ---------------------------------------------------------------------- 848 // Data ----------------------------------------------------------------------
854 849
855 // Delegate. See the class definition above for more information. This will 850 // Delegate. See the class definition above for more information. This will
(...skipping 12 matching lines...) Expand all
868 // not be opened, all users must first check for NULL and return immediately 863 // not be opened, all users must first check for NULL and return immediately
869 // if it is. The thumbnail DB may be NULL when the history one isn't, but not 864 // if it is. The thumbnail DB may be NULL when the history one isn't, but not
870 // vice-versa. 865 // vice-versa.
871 scoped_ptr<HistoryDatabase> db_; 866 scoped_ptr<HistoryDatabase> db_;
872 bool scheduled_kill_db_; // Database is being killed due to error. 867 bool scheduled_kill_db_; // Database is being killed due to error.
873 scoped_ptr<ThumbnailDatabase> thumbnail_db_; 868 scoped_ptr<ThumbnailDatabase> thumbnail_db_;
874 869
875 // Stores old history in a larger, slower database. 870 // Stores old history in a larger, slower database.
876 scoped_ptr<ArchivedDatabase> archived_db_; 871 scoped_ptr<ArchivedDatabase> archived_db_;
877 872
878 // Full text database manager, possibly NULL if the database could not be
879 // created.
880 scoped_ptr<TextDatabaseManager> text_database_;
881
882 // Manages expiration between the various databases. 873 // Manages expiration between the various databases.
883 ExpireHistoryBackend expirer_; 874 ExpireHistoryBackend expirer_;
884 875
885 // A commit has been scheduled to occur sometime in the future. We can check 876 // A commit has been scheduled to occur sometime in the future. We can check
886 // non-null-ness to see if there is a commit scheduled in the future, and we 877 // non-null-ness to see if there is a commit scheduled in the future, and we
887 // can use the pointer to cancel the scheduled commit. There can be only one 878 // can use the pointer to cancel the scheduled commit. There can be only one
888 // scheduled commit at a time (see ScheduleCommit). 879 // scheduled commit at a time (see ScheduleCommit).
889 scoped_refptr<CommitLaterTask> scheduled_commit_; 880 scoped_refptr<CommitLaterTask> scheduled_commit_;
890 881
891 // Maps recent redirect destination pages to the chain of redirects that 882 // Maps recent redirect destination pages to the chain of redirects that
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 937
947 // Listens for the system being under memory pressure. 938 // Listens for the system being under memory pressure.
948 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_; 939 scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
949 940
950 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); 941 DISALLOW_COPY_AND_ASSIGN(HistoryBackend);
951 }; 942 };
952 943
953 } // namespace history 944 } // namespace history
954 945
955 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_ 946 #endif // CHROME_BROWSER_HISTORY_HISTORY_BACKEND_H_
OLDNEW
« no previous file with comments | « chrome/browser/history/expire_history_backend_unittest.cc ('k') | chrome/browser/history/history_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698