summaryrefslogtreecommitdiffstats
path: root/webkit/quota/mock_storage_client.cc
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 11:49:57 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 11:49:57 +0000
commite855d81135b9a6e4d3b8b3f3d36315fc1c464393 (patch)
treea0490ad6e949d67416e4b3bee0054dbb8fdbf09a /webkit/quota/mock_storage_client.cc
parent549b7e2b1e215aba3617e346c822272e1ec8f04f (diff)
downloadchromium_src-e855d81135b9a6e4d3b8b3f3d36315fc1c464393.zip
chromium_src-e855d81135b9a6e4d3b8b3f3d36315fc1c464393.tar.gz
chromium_src-e855d81135b9a6e4d3b8b3f3d36315fc1c464393.tar.bz2
Added {Get,Set}PersistentHostQuota and Get{Global,Host}Usage to QuotaManager.
Fixed version of issue 6904042. BUG=61676 TEST='QuotaManagerTests.*' Review URL: http://codereview.chromium.org/7004019 Patch from Taiju Tsuiki <tzik@google.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85263 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/quota/mock_storage_client.cc')
-rw-r--r--webkit/quota/mock_storage_client.cc32
1 files changed, 19 insertions, 13 deletions
diff --git a/webkit/quota/mock_storage_client.cc b/webkit/quota/mock_storage_client.cc
index ee1a0b1..e2e8a69 100644
--- a/webkit/quota/mock_storage_client.cc
+++ b/webkit/quota/mock_storage_client.cc
@@ -19,6 +19,8 @@ namespace quota {
namespace {
+using std::make_pair;
+
class MockStorageClientIDSequencer {
public:
static MockStorageClientIDSequencer* GetInstance() {
@@ -54,17 +56,21 @@ MockStorageClient::~MockStorageClient() {
void MockStorageClient::AddMockOriginData(
const GURL& origin_url, StorageType type, int64 size) {
- origin_data_.insert(std::make_pair(origin_url, MockOriginData(type, size)));
+ origin_data_[make_pair(origin_url, type)] = size;
}
void MockStorageClient::ModifyMockOriginDataSize(
const GURL& origin_url, StorageType type, int64 delta) {
- std::map<GURL, MockOriginData>::iterator find = origin_data_.find(origin_url);
- if (find == origin_data_.end() || find->second.type != type) {
- DCHECK(delta >= 0);
+ OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type));
+ if (find == origin_data_.end()) {
+ DCHECK_GE(delta, 0);
AddMockOriginData(origin_url, type, delta);
return;
}
+ find->second += delta;
+ DCHECK_GE(find->second, 0);
+
+ // TODO(tzik): Check quota to prevent usage exceed
quota_manager_proxy_->NotifyStorageModified(id(), origin_url, type, delta);
}
@@ -109,11 +115,11 @@ void MockStorageClient::RunGetOriginUsage(
const GURL& origin_url, StorageType type, GetUsageCallback* callback_ptr) {
usage_callbacks_.erase(callback_ptr);
scoped_ptr<GetUsageCallback> callback(callback_ptr);
- std::map<GURL, MockOriginData>::iterator find = origin_data_.find(origin_url);
+ OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type));
if (find == origin_data_.end()) {
callback->Run(0);
} else {
- callback->Run(find->second.usage);
+ callback->Run(find->second);
}
}
@@ -122,10 +128,10 @@ void MockStorageClient::RunGetOriginsForType(
scoped_ptr<GetOriginsCallback> callback(callback_ptr);
origins_callbacks_.erase(callback_ptr);
std::set<GURL> origins;
- for (std::map<GURL, MockOriginData>::iterator iter = origin_data_.begin();
+ for (OriginDataMap::iterator iter = origin_data_.begin();
iter != origin_data_.end(); ++iter) {
- if (type == iter->second.type)
- origins.insert(iter->first);
+ if (type == iter->first.second)
+ origins.insert(iter->first.first);
}
callback->Run(origins);
}
@@ -136,11 +142,11 @@ void MockStorageClient::RunGetOriginsForHost(
scoped_ptr<GetOriginsCallback> callback(callback_ptr);
origins_callbacks_.erase(callback_ptr);
std::set<GURL> origins;
- for (std::map<GURL, MockOriginData>::iterator iter = origin_data_.begin();
+ for (OriginDataMap::iterator iter = origin_data_.begin();
iter != origin_data_.end(); ++iter) {
- std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first);
- if (type == iter->second.type && host == host_or_spec)
- origins.insert(iter->first);
+ std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first.first);
+ if (type == iter->first.second && host == host_or_spec)
+ origins.insert(iter->first.first);
}
callback->Run(origins);
}