| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "chrome/browser/history/top_sites_backend.h" | 5 #include "chrome/browser/history/top_sites_backend.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 base::Bind(&TopSitesBackend::ShutdownDBOnDBThread, this)); | 34 base::Bind(&TopSitesBackend::ShutdownDBOnDBThread, this)); |
| 35 } | 35 } |
| 36 | 36 |
| 37 void TopSitesBackend::GetMostVisitedThumbnails( | 37 void TopSitesBackend::GetMostVisitedThumbnails( |
| 38 const GetMostVisitedThumbnailsCallback& callback, | 38 const GetMostVisitedThumbnailsCallback& callback, |
| 39 CancelableTaskTracker* tracker) { | 39 CancelableTaskTracker* tracker) { |
| 40 scoped_refptr<MostVisitedThumbnails> thumbnails = new MostVisitedThumbnails(); | 40 scoped_refptr<MostVisitedThumbnails> thumbnails = new MostVisitedThumbnails(); |
| 41 bool* need_history_migration = new bool(false); | 41 bool* need_history_migration = new bool(false); |
| 42 | 42 |
| 43 tracker->PostTaskAndReply( | 43 tracker->PostTaskAndReply( |
| 44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), |
| 45 FROM_HERE, | 45 FROM_HERE, |
| 46 base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, | 46 base::Bind(&TopSitesBackend::GetMostVisitedThumbnailsOnDBThread, |
| 47 this, thumbnails, need_history_migration), | 47 this, |
| 48 thumbnails, |
| 49 need_history_migration), |
| 48 base::Bind(callback, thumbnails, base::Owned(need_history_migration))); | 50 base::Bind(callback, thumbnails, base::Owned(need_history_migration))); |
| 49 } | 51 } |
| 50 | 52 |
| 51 void TopSitesBackend::UpdateTopSites(const TopSitesDelta& delta) { | 53 void TopSitesBackend::UpdateTopSites(const TopSitesDelta& delta) { |
| 52 BrowserThread::PostTask( | 54 BrowserThread::PostTask( |
| 53 BrowserThread::DB, FROM_HERE, | 55 BrowserThread::DB, FROM_HERE, |
| 54 base::Bind(&TopSitesBackend::UpdateTopSitesOnDBThread, this, delta)); | 56 base::Bind(&TopSitesBackend::UpdateTopSitesOnDBThread, this, delta)); |
| 55 } | 57 } |
| 56 | 58 |
| 57 void TopSitesBackend::SetPageThumbnail(const MostVisitedURL& url, | 59 void TopSitesBackend::SetPageThumbnail(const MostVisitedURL& url, |
| 58 int url_rank, | 60 int url_rank, |
| 59 const Images& thumbnail) { | 61 const Images& thumbnail) { |
| 60 BrowserThread::PostTask( | 62 BrowserThread::PostTask( |
| 61 BrowserThread::DB, FROM_HERE, | 63 BrowserThread::DB, FROM_HERE, |
| 62 base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this, url, | 64 base::Bind(&TopSitesBackend::SetPageThumbnailOnDBThread, this, url, |
| 63 url_rank, thumbnail)); | 65 url_rank, thumbnail)); |
| 64 } | 66 } |
| 65 | 67 |
| 66 void TopSitesBackend::ResetDatabase() { | 68 void TopSitesBackend::ResetDatabase() { |
| 67 BrowserThread::PostTask( | 69 BrowserThread::PostTask( |
| 68 BrowserThread::DB, FROM_HERE, | 70 BrowserThread::DB, FROM_HERE, |
| 69 base::Bind(&TopSitesBackend::ResetDatabaseOnDBThread, this, db_path_)); | 71 base::Bind(&TopSitesBackend::ResetDatabaseOnDBThread, this, db_path_)); |
| 70 } | 72 } |
| 71 | 73 |
| 72 void TopSitesBackend::DoEmptyRequest(const base::Closure& reply, | 74 void TopSitesBackend::DoEmptyRequest(const base::Closure& reply, |
| 73 CancelableTaskTracker* tracker) { | 75 CancelableTaskTracker* tracker) { |
| 74 tracker->PostTaskAndReply( | 76 tracker->PostTaskAndReply( |
| 75 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 77 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), |
| 76 FROM_HERE, | 78 FROM_HERE, |
| 77 base::Bind(&base::DoNothing), | 79 base::Bind(&base::DoNothing), |
| 78 reply); | 80 reply); |
| 79 } | 81 } |
| 80 | 82 |
| 81 TopSitesBackend::~TopSitesBackend() { | 83 TopSitesBackend::~TopSitesBackend() { |
| 82 DCHECK(!db_); // Shutdown should have happened first (which results in | 84 DCHECK(!db_); // Shutdown should have happened first (which results in |
| 83 // nulling out db). | 85 // nulling out db). |
| 84 } | 86 } |
| 85 | 87 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 | 136 |
| 135 void TopSitesBackend::ResetDatabaseOnDBThread(const base::FilePath& file_path) { | 137 void TopSitesBackend::ResetDatabaseOnDBThread(const base::FilePath& file_path) { |
| 136 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 138 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
| 137 db_.reset(NULL); | 139 db_.reset(NULL); |
| 138 file_util::Delete(db_path_, false); | 140 file_util::Delete(db_path_, false); |
| 139 db_.reset(new TopSitesDatabase()); | 141 db_.reset(new TopSitesDatabase()); |
| 140 InitDBOnDBThread(db_path_); | 142 InitDBOnDBThread(db_path_); |
| 141 } | 143 } |
| 142 | 144 |
| 143 } // namespace history | 145 } // namespace history |
| OLD | NEW |