| 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;
|
|
|