| Index: chrome/browser/browsing_data_database_helper.cc
|
| diff --git a/chrome/browser/browsing_data_database_helper.cc b/chrome/browser/browsing_data_database_helper.cc
|
| index c4d89beeec65b3ab975898a50a9f6f20252453d5..4acacb5f5d33e2589ddd435da510c415b95054a8 100644
|
| --- a/chrome/browser/browsing_data_database_helper.cc
|
| +++ b/chrome/browser/browsing_data_database_helper.cc
|
| @@ -22,10 +22,6 @@ using content::BrowserContext;
|
| using content::BrowserThread;
|
| using WebKit::WebSecurityOrigin;
|
|
|
| -BrowsingDataDatabaseHelper::DatabaseInfo::DatabaseInfo()
|
| - : size(0) {
|
| -}
|
| -
|
| BrowsingDataDatabaseHelper::DatabaseInfo::DatabaseInfo(
|
| const std::string& host,
|
| const std::string& database_name,
|
| @@ -135,8 +131,6 @@ void BrowsingDataDatabaseHelper::DeleteDatabaseOnFileThread(
|
| net::CompletionCallback());
|
| }
|
|
|
| -CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo() {}
|
| -
|
| CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo(
|
| const GURL& origin,
|
| const std::string& name,
|
| @@ -148,6 +142,13 @@ CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::PendingDatabaseInfo(
|
|
|
| CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::~PendingDatabaseInfo() {}
|
|
|
| +bool CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo::operator<(
|
| + const PendingDatabaseInfo& other) const {
|
| + if (origin == other.origin)
|
| + return name < other.name;
|
| + return origin < other.origin;
|
| +}
|
| +
|
| CannedBrowsingDataDatabaseHelper::CannedBrowsingDataDatabaseHelper(
|
| Profile* profile)
|
| : BrowsingDataDatabaseHelper(profile),
|
| @@ -171,7 +172,7 @@ void CannedBrowsingDataDatabaseHelper::AddDatabase(
|
| const std::string& description) {
|
| base::AutoLock auto_lock(lock_);
|
| if (BrowsingDataHelper::HasValidScheme(origin)) {
|
| - pending_database_info_.push_back(PendingDatabaseInfo(
|
| + pending_database_info_.insert(PendingDatabaseInfo(
|
| origin, name, description));
|
| }
|
| }
|
| @@ -184,13 +185,19 @@ void CannedBrowsingDataDatabaseHelper::Reset() {
|
|
|
| bool CannedBrowsingDataDatabaseHelper::empty() const {
|
| base::AutoLock auto_lock(lock_);
|
| - return database_info_.empty() && pending_database_info_.empty();
|
| + return pending_database_info_.empty();
|
| }
|
|
|
| size_t CannedBrowsingDataDatabaseHelper::GetDatabaseCount() const {
|
| + base::AutoLock auto_lock(lock_);
|
| return pending_database_info_.size();
|
| }
|
|
|
| +const std::set<CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo>&
|
| +CannedBrowsingDataDatabaseHelper::GetPendingDatabaseInfo() {
|
| + return pending_database_info_;
|
| +}
|
| +
|
| void CannedBrowsingDataDatabaseHelper::StartFetching(
|
| const base::Callback<void(const std::list<DatabaseInfo>&)>& callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| @@ -209,7 +216,8 @@ CannedBrowsingDataDatabaseHelper::~CannedBrowsingDataDatabaseHelper() {}
|
|
|
| void CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread() {
|
| base::AutoLock auto_lock(lock_);
|
| - for (std::list<PendingDatabaseInfo>::const_iterator
|
| + database_info_.clear();
|
| + for (std::set<PendingDatabaseInfo>::const_iterator
|
| info = pending_database_info_.begin();
|
| info != pending_database_info_.end(); ++info) {
|
| WebSecurityOrigin web_security_origin =
|
| @@ -218,18 +226,6 @@ void CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread() {
|
| std::string origin_identifier =
|
| web_security_origin.databaseIdentifier().utf8();
|
|
|
| - bool duplicate = false;
|
| - for (std::list<DatabaseInfo>::iterator database = database_info_.begin();
|
| - database != database_info_.end(); ++database) {
|
| - if (database->origin_identifier == origin_identifier &&
|
| - database->database_name == info->name) {
|
| - duplicate = true;
|
| - break;
|
| - }
|
| - }
|
| - if (duplicate)
|
| - continue;
|
| -
|
| database_info_.push_back(DatabaseInfo(
|
| web_security_origin.host().utf8(),
|
| info->name,
|
| @@ -239,7 +235,6 @@ void CannedBrowsingDataDatabaseHelper::ConvertInfoInWebKitThread() {
|
| 0,
|
| base::Time()));
|
| }
|
| - pending_database_info_.clear();
|
|
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
|
|