Index: webkit/quota/mock_quota_manager.cc |
diff --git a/webkit/quota/mock_quota_manager.cc b/webkit/quota/mock_quota_manager.cc |
index 52d27351e60015b0483889370e9e2827c657a1c3..fd66facdc2c87a1427dac2d64a7aa8677be5b823 100644 |
--- a/webkit/quota/mock_quota_manager.cc |
+++ b/webkit/quota/mock_quota_manager.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -75,9 +75,11 @@ class MockQuotaManager::DeleteOriginDataTask : public QuotaThreadTask { |
MockQuotaManager::OriginInfo::OriginInfo( |
const GURL& origin, |
StorageType type, |
+ int quota_client_mask, |
base::Time modified) |
: origin(origin), |
type(type), |
+ quota_client_mask(quota_client_mask), |
modified(modified) { |
} |
@@ -94,17 +96,19 @@ MockQuotaManager::MockQuotaManager(bool is_incognito, |
MockQuotaManager::~MockQuotaManager() {} |
bool MockQuotaManager::AddOrigin(const GURL& origin, StorageType type, |
- base::Time modified) { |
- origins_.push_back(OriginInfo(origin, type, modified)); |
+ int quota_client_mask, base::Time modified) { |
+ origins_.push_back(OriginInfo(origin, type, quota_client_mask, modified)); |
return true; |
} |
bool MockQuotaManager::OriginHasData(const GURL& origin, |
- StorageType type) const { |
+ StorageType type, QuotaClient::ID quota_client) const { |
for (std::vector<OriginInfo>::const_iterator current = origins_.begin(); |
current != origins_.end(); |
++current) { |
- if (current->origin == origin && current->type == type) |
+ if (current->origin == origin && current->type == type && |
+ (current->quota_client_mask & quota_client || |
+ current->quota_client_mask == QuotaClient::kAllClientsMask)) |
kinuko
2012/01/19 13:53:11
the second check is not necessary?
Mike West
2012/01/19 16:51:00
Done.
|
return true; |
} |
return false; |
@@ -126,12 +130,15 @@ void MockQuotaManager::GetOriginsModifiedSince( |
} |
void MockQuotaManager::DeleteOriginData(const GURL& origin, StorageType type, |
- const StatusCallback& callback) { |
+ int quota_client_mask, const StatusCallback& callback) { |
for (std::vector<OriginInfo>::iterator current = origins_.begin(); |
current != origins_.end(); |
++current) { |
if (current->origin == origin && current->type == type) { |
- origins_.erase(current); |
+ // Modify the mask: if it's 0 after "deletion", remove the origin. |
+ current->quota_client_mask &= ~quota_client_mask; |
+ if (current->quota_client_mask == 0) |
+ origins_.erase(current); |
break; |
} |
} |