Index: chrome/browser/browsing_data/browsing_data_database_helper.cc |
diff --git a/chrome/browser/browsing_data/browsing_data_database_helper.cc b/chrome/browser/browsing_data/browsing_data_database_helper.cc |
index 29f65fdc4c9b034f41bb4ee4d544b03c86168d29..9317f8be9a32016d222b892cea02f4dca3ed7c49 100644 |
--- a/chrome/browser/browsing_data/browsing_data_database_helper.cc |
+++ b/chrome/browser/browsing_data/browsing_data_database_helper.cc |
@@ -7,7 +7,6 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/file_util.h" |
-#include "base/message_loop/message_loop.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browsing_data/browsing_data_helper.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -191,20 +190,16 @@ CannedBrowsingDataDatabaseHelper::GetPendingDatabaseInfo() { |
void CannedBrowsingDataDatabaseHelper::StartFetching( |
const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DCHECK(!is_fetching_); |
- DCHECK_EQ(false, callback.is_null()); |
- |
- is_fetching_ = true; |
- completion_callback_ = callback; |
+ DCHECK(!callback.is_null()); |
- database_info_.clear(); |
+ std::list<DatabaseInfo> result; |
for (std::set<PendingDatabaseInfo>::const_iterator |
info = pending_database_info_.begin(); |
info != pending_database_info_.end(); ++info) { |
DatabaseIdentifier identifier = |
DatabaseIdentifier::CreateFromOrigin(info->origin); |
- database_info_.push_back(DatabaseInfo( |
+ result.push_back(DatabaseInfo( |
identifier, |
info->name, |
info->description, |
@@ -213,8 +208,24 @@ void CannedBrowsingDataDatabaseHelper::StartFetching( |
} |
BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- base::Bind(&CannedBrowsingDataDatabaseHelper::NotifyInUIThread, this)); |
+ BrowserThread::UI, FROM_HERE, base::Bind(callback, result)); |
+} |
+ |
+void CannedBrowsingDataDatabaseHelper::DeleteDatabase( |
+ const std::string& origin_identifier, |
+ const std::string& name) { |
+ GURL origin = |
+ webkit_database::DatabaseIdentifier::Parse(origin_identifier).ToOrigin(); |
+ for (std::set<PendingDatabaseInfo>::iterator it = |
+ pending_database_info_.begin(); |
+ it != pending_database_info_.end(); |
+ ++it) { |
+ if (it->origin == origin && it->name == name) { |
+ pending_database_info_.erase(it); |
+ break; |
+ } |
+ } |
+ BrowsingDataDatabaseHelper::DeleteDatabase(origin_identifier, name); |
} |
CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {} |