Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: webkit/quota/mock_storage_client.cc

Issue 7003021: Added DeleteOriginData to QuotaClient (Closed)
Patch Set: '' Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webkit/quota/mock_storage_client.h ('k') | webkit/quota/quota_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/quota/mock_storage_client.h" 5 #include "webkit/quota/mock_storage_client.h"
6 6
7 #include "base/atomic_sequence_num.h" 7 #include "base/atomic_sequence_num.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/singleton.h" 9 #include "base/memory/singleton.h"
10 #include "base/message_loop_proxy.h" 10 #include "base/message_loop_proxy.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 MockStorageClient::MockStorageClient(QuotaManagerProxy* quota_manager_proxy) 45 MockStorageClient::MockStorageClient(QuotaManagerProxy* quota_manager_proxy)
46 : quota_manager_proxy_(quota_manager_proxy), 46 : quota_manager_proxy_(quota_manager_proxy),
47 id_(MockStorageClientIDSequencer::GetInstance()->NextMockID()), 47 id_(MockStorageClientIDSequencer::GetInstance()->NextMockID()),
48 runnable_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 48 runnable_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
49 } 49 }
50 50
51 MockStorageClient::~MockStorageClient() { 51 MockStorageClient::~MockStorageClient() {
52 STLDeleteContainerPointers(usage_callbacks_.begin(), usage_callbacks_.end()); 52 STLDeleteContainerPointers(usage_callbacks_.begin(), usage_callbacks_.end());
53 STLDeleteContainerPointers( 53 STLDeleteContainerPointers(
54 origins_callbacks_.begin(), origins_callbacks_.end()); 54 origins_callbacks_.begin(), origins_callbacks_.end());
55 STLDeleteContainerPointers(
56 deletion_callbacks_.begin(), deletion_callbacks_.end());
55 } 57 }
56 58
57 void MockStorageClient::AddMockOriginData( 59 void MockStorageClient::AddMockOriginData(
58 const GURL& origin_url, StorageType type, int64 size) { 60 const GURL& origin_url, StorageType type, int64 size) {
59 origin_data_[make_pair(origin_url, type)] = size; 61 origin_data_[make_pair(origin_url, type)] = size;
60 } 62 }
61 63
62 void MockStorageClient::ModifyMockOriginDataSize( 64 void MockStorageClient::ModifyMockOriginDataSize(
63 const GURL& origin_url, StorageType type, int64 delta) { 65 const GURL& origin_url, StorageType type, int64 delta) {
64 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type)); 66 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 void MockStorageClient::GetOriginsForHost( 106 void MockStorageClient::GetOriginsForHost(
105 StorageType type, const std::string& host, 107 StorageType type, const std::string& host,
106 GetOriginsCallback* callback) { 108 GetOriginsCallback* callback) {
107 origins_callbacks_.insert(callback); 109 origins_callbacks_.insert(callback);
108 base::MessageLoopProxy::CreateForCurrentThread()->PostTask( 110 base::MessageLoopProxy::CreateForCurrentThread()->PostTask(
109 FROM_HERE, runnable_factory_.NewRunnableMethod( 111 FROM_HERE, runnable_factory_.NewRunnableMethod(
110 &MockStorageClient::RunGetOriginsForHost, 112 &MockStorageClient::RunGetOriginsForHost,
111 type, host, callback)); 113 type, host, callback));
112 } 114 }
113 115
116 void MockStorageClient::DeleteOriginData(
117 const GURL& origin, StorageType type,
118 DeletionCallback* callback) {
119 deletion_callbacks_.insert(callback);
120 base::MessageLoopProxy::CreateForCurrentThread()->PostTask(
121 FROM_HERE, runnable_factory_.NewRunnableMethod(
122 &MockStorageClient::RunDeleteOriginData,
123 origin, type, callback));
124 }
125
114 void MockStorageClient::RunGetOriginUsage( 126 void MockStorageClient::RunGetOriginUsage(
115 const GURL& origin_url, StorageType type, GetUsageCallback* callback_ptr) { 127 const GURL& origin_url, StorageType type, GetUsageCallback* callback_ptr) {
116 usage_callbacks_.erase(callback_ptr); 128 usage_callbacks_.erase(callback_ptr);
117 scoped_ptr<GetUsageCallback> callback(callback_ptr); 129 scoped_ptr<GetUsageCallback> callback(callback_ptr);
118 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type)); 130 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type));
119 if (find == origin_data_.end()) { 131 if (find == origin_data_.end()) {
120 callback->Run(0); 132 callback->Run(0);
121 } else { 133 } else {
122 callback->Run(find->second); 134 callback->Run(find->second);
123 } 135 }
(...skipping 20 matching lines...) Expand all
144 std::set<GURL> origins; 156 std::set<GURL> origins;
145 for (OriginDataMap::iterator iter = origin_data_.begin(); 157 for (OriginDataMap::iterator iter = origin_data_.begin();
146 iter != origin_data_.end(); ++iter) { 158 iter != origin_data_.end(); ++iter) {
147 std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first.first); 159 std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first.first);
148 if (type == iter->first.second && host == host_or_spec) 160 if (type == iter->first.second && host == host_or_spec)
149 origins.insert(iter->first.first); 161 origins.insert(iter->first.first);
150 } 162 }
151 callback->Run(origins); 163 callback->Run(origins);
152 } 164 }
153 165
166 void MockStorageClient::RunDeleteOriginData(
167 const GURL& origin_url,
168 StorageType type,
169 DeletionCallback* callback_ptr) {
170 OriginDataMap::iterator itr
171 = origin_data_.find(make_pair(origin_url, type));
172 if (itr != origin_data_.end()) {
173 int64 delta = itr->second;
174 quota_manager_proxy_->
175 NotifyStorageModified(id(), origin_url, type, -delta);
176 origin_data_.erase(itr);
177 }
178
179 scoped_ptr<DeletionCallback> callback(callback_ptr);
180 deletion_callbacks_.erase(callback_ptr);
181 callback->Run(kQuotaStatusOk);
182 }
183
154 } // namespace quota 184 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/quota/mock_storage_client.h ('k') | webkit/quota/quota_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698