| Index: chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc
|
| diff --git a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc
|
| index b517ee63c24e8e587ef755f2689f8b1f1350024c..d1de2f85565281d474ecd5cb01d544c4fd02f436 100644
|
| --- a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc
|
| +++ b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc
|
| @@ -14,14 +14,16 @@
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/browsing_data/browsing_data_helper.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "content/public/browser/browser_context.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/indexed_db_context.h"
|
| -#include "webkit/browser/database/database_util.h"
|
| +#include "content/public/browser/storage_partition.h"
|
|
|
| +using content::BrowserContext;
|
| using content::BrowserThread;
|
| using content::IndexedDBContext;
|
| using content::IndexedDBInfo;
|
| -using webkit_database::DatabaseUtil;
|
|
|
| namespace {
|
|
|
| @@ -38,12 +40,12 @@ class BrowsingDataIndexedDBHelperImpl : public BrowsingDataIndexedDBHelper {
|
| private:
|
| virtual ~BrowsingDataIndexedDBHelperImpl();
|
|
|
| - // Enumerates all indexed database files in the WEBKIT thread.
|
| - void FetchIndexedDBInfoInWebKitThread();
|
| + // Enumerates all indexed database files in the IndexedDB thread.
|
| + void FetchIndexedDBInfoInIndexedDBThread();
|
| // Notifies the completion callback in the UI thread.
|
| void NotifyInUIThread();
|
| - // Delete a single indexed database in the WEBKIT thread.
|
| - void DeleteIndexedDBInWebKitThread(const GURL& origin);
|
| + // Delete a single indexed database in the IndexedDB thread.
|
| + void DeleteIndexedDBInIndexedDBThread(const GURL& origin);
|
|
|
| scoped_refptr<IndexedDBContext> indexed_db_context_;
|
|
|
| @@ -52,7 +54,7 @@ class BrowsingDataIndexedDBHelperImpl : public BrowsingDataIndexedDBHelper {
|
| // while |is_fetching_| is true. The flag |is_fetching_| is only accessed on
|
| // the UI thread.
|
| // In the context of this class |indexed_db_info_| is only accessed on the
|
| - // WEBKIT thread.
|
| + // context's IndexedDB thread.
|
| std::list<IndexedDBInfo> indexed_db_info_;
|
|
|
| // This only mutates on the UI thread.
|
| @@ -85,25 +87,26 @@ void BrowsingDataIndexedDBHelperImpl::StartFetching(
|
|
|
| is_fetching_ = true;
|
| completion_callback_ = callback;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
|
| + indexed_db_context_->TaskRunner()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(
|
| - &BrowsingDataIndexedDBHelperImpl::FetchIndexedDBInfoInWebKitThread,
|
| + &BrowsingDataIndexedDBHelperImpl::FetchIndexedDBInfoInIndexedDBThread,
|
| this));
|
| }
|
|
|
| void BrowsingDataIndexedDBHelperImpl::DeleteIndexedDB(
|
| const GURL& origin) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
|
| + indexed_db_context_->TaskRunner()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(
|
| - &BrowsingDataIndexedDBHelperImpl::DeleteIndexedDBInWebKitThread, this,
|
| + &BrowsingDataIndexedDBHelperImpl::DeleteIndexedDBInIndexedDBThread,
|
| + this,
|
| origin));
|
| }
|
|
|
| -void BrowsingDataIndexedDBHelperImpl::FetchIndexedDBInfoInWebKitThread() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED));
|
| +void BrowsingDataIndexedDBHelperImpl::FetchIndexedDBInfoInIndexedDBThread() {
|
| + DCHECK(indexed_db_context_->OnIndexedDBThread());
|
| std::vector<IndexedDBInfo> origins = indexed_db_context_->GetAllOriginsInfo();
|
| for (std::vector<IndexedDBInfo>::const_iterator iter = origins.begin();
|
| iter != origins.end(); ++iter) {
|
| @@ -127,9 +130,9 @@ void BrowsingDataIndexedDBHelperImpl::NotifyInUIThread() {
|
| is_fetching_ = false;
|
| }
|
|
|
| -void BrowsingDataIndexedDBHelperImpl::DeleteIndexedDBInWebKitThread(
|
| +void BrowsingDataIndexedDBHelperImpl::DeleteIndexedDBInIndexedDBThread(
|
| const GURL& origin) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::WEBKIT_DEPRECATED));
|
| + DCHECK(indexed_db_context_->OnIndexedDBThread());
|
| indexed_db_context_->DeleteForOrigin(origin);
|
| }
|
|
|
| @@ -160,16 +163,19 @@ bool CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo::operator<(
|
| return origin < other.origin;
|
| }
|
|
|
| -CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper()
|
| - : is_fetching_(false) {
|
| -}
|
| +CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper(
|
| + Profile* profile)
|
| + : profile_(profile),
|
| + indexed_db_context_(BrowserContext::GetDefaultStoragePartition(profile)
|
| + ->GetIndexedDBContext()),
|
| + is_fetching_(false) {}
|
|
|
| CannedBrowsingDataIndexedDBHelper::~CannedBrowsingDataIndexedDBHelper() {}
|
|
|
| CannedBrowsingDataIndexedDBHelper* CannedBrowsingDataIndexedDBHelper::Clone() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| CannedBrowsingDataIndexedDBHelper* clone =
|
| - new CannedBrowsingDataIndexedDBHelper();
|
| + new CannedBrowsingDataIndexedDBHelper(profile_);
|
|
|
| base::AutoLock auto_lock(lock_);
|
| clone->pending_indexed_db_info_ = pending_indexed_db_info_;
|
| @@ -216,14 +222,14 @@ void CannedBrowsingDataIndexedDBHelper::StartFetching(
|
|
|
| is_fetching_ = true;
|
| completion_callback_ = callback;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::WEBKIT_DEPRECATED, FROM_HERE,
|
| - base::Bind(
|
| - &CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread,
|
| - this));
|
| + indexed_db_context_->TaskRunner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&CannedBrowsingDataIndexedDBHelper::
|
| + ConvertPendingInfoInIndexedDBThread,
|
| + this));
|
| }
|
|
|
| -void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInWebKitThread() {
|
| +void CannedBrowsingDataIndexedDBHelper::ConvertPendingInfoInIndexedDBThread() {
|
| base::AutoLock auto_lock(lock_);
|
| indexed_db_info_.clear();
|
| for (std::set<PendingIndexedDBInfo>::const_iterator
|
|
|