diff options
author | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 19:36:01 +0000 |
---|---|---|
committer | huanr@chromium.org <huanr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 19:36:01 +0000 |
commit | fc48aa2703cfc9e4dca98031671fd5e7af05d8b5 (patch) | |
tree | 6199f031875ef2c8270136d9493340b66ab62f12 /chrome/browser/history/history.cc | |
parent | c4b3858cc5dbae4bb28bf8c8a9bf9b7d0ca146d0 (diff) | |
download | chromium_src-fc48aa2703cfc9e4dca98031671fd5e7af05d8b5.zip chromium_src-fc48aa2703cfc9e4dca98031671fd5e7af05d8b5.tar.gz chromium_src-fc48aa2703cfc9e4dca98031671fd5e7af05d8b5.tar.bz2 |
Enable database logging on history thread.
BUG=16591
TEST=History UI test
Review URL: http://codereview.chromium.org/198011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25770 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/history/history.cc')
-rw-r--r-- | chrome/browser/history/history.cc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/chrome/browser/history/history.cc b/chrome/browser/history/history.cc index 8310c23..965770f 100644 --- a/chrome/browser/history/history.cc +++ b/chrome/browser/history/history.cc @@ -40,6 +40,7 @@ #include "chrome/browser/history/history_types.h" #include "chrome/browser/history/in_memory_database.h" #include "chrome/browser/history/in_memory_history_backend.h" +#include "chrome/browser/history/visit_log.h" #include "chrome/browser/profile.h" #include "chrome/browser/visitedlink_master.h" #include "chrome/common/chrome_constants.h" @@ -53,7 +54,26 @@ using base::Time; using history::HistoryBackend; -static const char* kHistoryThreadName = "Chrome_HistoryThread"; +namespace { + +class ChromeHistoryThread : public ChromeThread { + public: + ChromeHistoryThread() : ChromeThread(ChromeThread::HISTORY) {} + virtual ~ChromeHistoryThread() { + // We cannot rely on our base class to call Stop() in case we want our + // CleanUp function to run. + Stop(); + } + protected: + virtual void Run(MessageLoop* message_loop) { + // Allocate VisitLog on local stack so it will be saved in crash dump. + history::VisitLog visit_log; + history::InitVisitLog(&visit_log); + message_loop->Run(); + } +}; + +} // namespace // Sends messages from the backend to us on the main thread. This must be a // separate class from the history service so that it can hold a reference to @@ -100,7 +120,7 @@ class HistoryService::BackendDelegate : public HistoryBackend::Delegate { const history::StarID HistoryService::kBookmarkBarID = 1; HistoryService::HistoryService() - : thread_(new base::Thread(kHistoryThreadName)), + : thread_(new ChromeHistoryThread()), profile_(NULL), backend_loaded_(false) { // Is NULL when running generate_profile. @@ -111,7 +131,7 @@ HistoryService::HistoryService() } HistoryService::HistoryService(Profile* profile) - : thread_(new base::Thread(kHistoryThreadName)), + : thread_(new ChromeHistoryThread()), profile_(profile), backend_loaded_(false) { registrar_.Add(this, NotificationType::HISTORY_URLS_DELETED, |