summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
diff options
context:
space:
mode:
authorcramya@chromium.org <cramya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 20:48:55 +0000
committercramya@chromium.org <cramya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-11 20:48:55 +0000
commitff402386115448de1e4cbcf6fd62251b91ababa6 (patch)
tree08f555aec6d0d32a2a537890153c4676b99958fa /chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
parent3f05e9167ba720356bdcf866d7456e3c3e53056d (diff)
downloadchromium_src-ff402386115448de1e4cbcf6fd62251b91ababa6.zip
chromium_src-ff402386115448de1e4cbcf6fd62251b91ababa6.tar.gz
chromium_src-ff402386115448de1e4cbcf6fd62251b91ababa6.tar.bz2
Clear browsing data clears data for type kStorageTypeTemporary but not for kStorageTypeSyncable.
This bug is visible in Android for mail.google.com Even after Clearing all the data, the syncable data was left behind. This CL should fix this bug. BUG=180249 Review URL: https://chromiumcodereview.appspot.com/13357004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193738 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc')
-rw-r--r--chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
index fd63afe..1c163d7 100644
--- a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
+++ b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
@@ -93,16 +93,24 @@ void BrowsingDataQuotaHelperImpl::GotOrigins(
pending_hosts_.insert(std::make_pair(itr->host(), type));
DCHECK(type == quota::kStorageTypeTemporary ||
- type == quota::kStorageTypePersistent);
+ type == quota::kStorageTypePersistent ||
+ type == quota::kStorageTypeSyncable);
+ // Calling GetOriginsModifiedSince() for all types by chaining callbacks.
if (type == quota::kStorageTypeTemporary) {
quota_manager_->GetOriginsModifiedSince(
quota::kStorageTypePersistent,
base::Time(),
base::Bind(&BrowsingDataQuotaHelperImpl::GotOrigins,
weak_factory_.GetWeakPtr()));
+ } else if (type == quota::kStorageTypePersistent) {
+ quota_manager_->GetOriginsModifiedSince(
+ quota::kStorageTypeSyncable,
+ base::Time(),
+ base::Bind(&BrowsingDataQuotaHelperImpl::GotOrigins,
+ weak_factory_.GetWeakPtr()));
} else {
- // type == quota::kStorageTypePersistent
+ DCHECK(type == quota::kStorageTypeSyncable);
ProcessPendingHosts();
}
}
@@ -139,6 +147,9 @@ void BrowsingDataQuotaHelperImpl::GotHostUsage(const std::string& host,
case quota::kStorageTypePersistent:
quota_info_[host].persistent_usage = usage;
break;
+ case quota::kStorageTypeSyncable:
+ quota_info_[host].syncable_usage = usage;
+ break;
default:
NOTREACHED();
}
@@ -163,7 +174,8 @@ void BrowsingDataQuotaHelperImpl::OnComplete() {
QuotaInfo* info = &itr->second;
// Skip unused entries
if (info->temporary_usage <= 0 &&
- info->persistent_usage <= 0)
+ info->persistent_usage <= 0 &&
+ info->syncable_usage <= 0)
continue;
info->host = itr->first;