OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |