Index: chrome/browser/history/history_backend.cc |
=================================================================== |
--- chrome/browser/history/history_backend.cc (revision 107963) |
+++ chrome/browser/history/history_backend.cc (working copy) |
@@ -23,10 +23,13 @@ |
#include "chrome/browser/history/history_notifications.h" |
#include "chrome/browser/history/history_publisher.h" |
#include "chrome/browser/history/in_memory_history_backend.h" |
+#include "chrome/browser/history/in_memory_url_index.h" |
#include "chrome/browser/history/page_usage_data.h" |
#include "chrome/browser/history/top_sites.h" |
+#include "chrome/browser/profiles/profile.h" |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/chrome_notification_types.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/common/url_constants.h" |
#include "content/browser/cancelable_request.h" |
#include "content/browser/download/download_persistent_store_info.h" |
@@ -199,7 +202,8 @@ |
// HistoryBackend -------------------------------------------------------------- |
-HistoryBackend::HistoryBackend(const FilePath& history_dir, |
+HistoryBackend::HistoryBackend(Profile* profile, |
+ const FilePath& history_dir, |
int id, |
Delegate* delegate, |
BookmarkService* bookmark_service) |
@@ -212,13 +216,20 @@ |
backend_destroy_task_(NULL), |
segment_queried_(false), |
bookmark_service_(bookmark_service) { |
+ if (!CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kDisableHistoryQuickProvider)) |
+ in_memory_url_index_.reset(new InMemoryURLIndex(profile, history_dir_)); |
} |
HistoryBackend::~HistoryBackend() { |
DCHECK(!scheduled_commit_) << "Deleting without cleanup"; |
ReleaseDBTasks(); |
- // First close the databases before optionally running the "destroy" task. |
+ // Give the InMemoryURLIndex a chance to shutdown. |
+ if (in_memory_url_index_.get()) |
+ in_memory_url_index_->ShutDown(); |
+ |
+ // Close the databases before optionally running the "destroy" task. |
if (db_.get()) { |
// Commit the long-running transaction. |
db_->CommitTransaction(); |
@@ -651,6 +662,9 @@ |
archived_db_.reset(); |
} |
+ if (in_memory_url_index_.get()) |
+ in_memory_url_index_->Init(db_.get(), languages); |
+ |
// Tell the expiration module about all the nice databases we made. This must |
// happen before db_->Init() is called since the callback ForceArchiveHistory |
// may need to expire stuff. |
@@ -885,6 +899,7 @@ |
if (row_id && row.title() != title) { |
row.set_title(title); |
db_->UpdateURLRow(row_id, row); |
+ row.id_ = row_id; |
changed_urls.push_back(row); |
if (row.typed_count() > 0) |
typed_url_changed = true; |