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

Side by Side Diff: chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc

Issue 492873002: Collapse fileapi, webkit_blob, webkit_database, quota, and webkit_common namespaces into single sto… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos build Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h" 5 #include "chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "chrome/browser/ui/webui/quota_internals/quota_internals_handler.h" 11 #include "chrome/browser/ui/webui/quota_internals/quota_internals_handler.h"
12 #include "chrome/browser/ui/webui/quota_internals/quota_internals_types.h" 12 #include "chrome/browser/ui/webui/quota_internals/quota_internals_types.h"
13 #include "net/base/net_util.h" 13 #include "net/base/net_util.h"
14 14
15 using content::BrowserThread; 15 using content::BrowserThread;
16 16
17 namespace quota_internals { 17 namespace quota_internals {
18 18
19 QuotaInternalsProxy::QuotaInternalsProxy(QuotaInternalsHandler* handler) 19 QuotaInternalsProxy::QuotaInternalsProxy(QuotaInternalsHandler* handler)
20 : handler_(handler), 20 : handler_(handler),
21 weak_factory_(this) { 21 weak_factory_(this) {
22 } 22 }
23 23
24 void QuotaInternalsProxy::RequestInfo( 24 void QuotaInternalsProxy::RequestInfo(
25 scoped_refptr<quota::QuotaManager> quota_manager) { 25 scoped_refptr<storage::QuotaManager> quota_manager) {
26 DCHECK(quota_manager.get()); 26 DCHECK(quota_manager.get());
27 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 27 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
28 BrowserThread::PostTask( 28 BrowserThread::PostTask(
29 BrowserThread::IO, FROM_HERE, 29 BrowserThread::IO, FROM_HERE,
30 base::Bind(&QuotaInternalsProxy::RequestInfo, this, quota_manager)); 30 base::Bind(&QuotaInternalsProxy::RequestInfo, this, quota_manager));
31 return; 31 return;
32 } 32 }
33 33
34 quota_manager_ = quota_manager; 34 quota_manager_ = quota_manager;
35 quota_manager_->GetAvailableSpace( 35 quota_manager_->GetAvailableSpace(
36 base::Bind(&QuotaInternalsProxy::DidGetAvailableSpace, 36 base::Bind(&QuotaInternalsProxy::DidGetAvailableSpace,
37 weak_factory_.GetWeakPtr())); 37 weak_factory_.GetWeakPtr()));
38 38
39 quota_manager_->GetTemporaryGlobalQuota( 39 quota_manager_->GetTemporaryGlobalQuota(
40 base::Bind(&QuotaInternalsProxy::DidGetGlobalQuota, 40 base::Bind(&QuotaInternalsProxy::DidGetGlobalQuota,
41 weak_factory_.GetWeakPtr(), quota::kStorageTypeTemporary)); 41 weak_factory_.GetWeakPtr(),
42 storage::kStorageTypeTemporary));
42 43
43 quota_manager_->GetGlobalUsage( 44 quota_manager_->GetGlobalUsage(
44 quota::kStorageTypeTemporary, 45 storage::kStorageTypeTemporary,
45 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage, 46 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage,
46 weak_factory_.GetWeakPtr(), 47 weak_factory_.GetWeakPtr(),
47 quota::kStorageTypeTemporary)); 48 storage::kStorageTypeTemporary));
48 49
49 quota_manager_->GetGlobalUsage( 50 quota_manager_->GetGlobalUsage(
50 quota::kStorageTypePersistent, 51 storage::kStorageTypePersistent,
51 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage, 52 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage,
52 weak_factory_.GetWeakPtr(), 53 weak_factory_.GetWeakPtr(),
53 quota::kStorageTypePersistent)); 54 storage::kStorageTypePersistent));
54 55
55 quota_manager_->GetGlobalUsage( 56 quota_manager_->GetGlobalUsage(
56 quota::kStorageTypeSyncable, 57 storage::kStorageTypeSyncable,
57 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage, 58 base::Bind(&QuotaInternalsProxy::DidGetGlobalUsage,
58 weak_factory_.GetWeakPtr(), 59 weak_factory_.GetWeakPtr(),
59 quota::kStorageTypeSyncable)); 60 storage::kStorageTypeSyncable));
60 61
61 quota_manager_->DumpQuotaTable( 62 quota_manager_->DumpQuotaTable(
62 base::Bind(&QuotaInternalsProxy::DidDumpQuotaTable, 63 base::Bind(&QuotaInternalsProxy::DidDumpQuotaTable,
63 weak_factory_.GetWeakPtr())); 64 weak_factory_.GetWeakPtr()));
64 65
65 quota_manager_->DumpOriginInfoTable( 66 quota_manager_->DumpOriginInfoTable(
66 base::Bind(&QuotaInternalsProxy::DidDumpOriginInfoTable, 67 base::Bind(&QuotaInternalsProxy::DidDumpOriginInfoTable,
67 weak_factory_.GetWeakPtr())); 68 weak_factory_.GetWeakPtr()));
68 69
69 std::map<std::string, std::string> stats; 70 std::map<std::string, std::string> stats;
(...skipping 18 matching lines...) Expand all
88 } 89 }
89 90
90 RELAY_TO_HANDLER(ReportAvailableSpace, int64) 91 RELAY_TO_HANDLER(ReportAvailableSpace, int64)
91 RELAY_TO_HANDLER(ReportGlobalInfo, const GlobalStorageInfo&) 92 RELAY_TO_HANDLER(ReportGlobalInfo, const GlobalStorageInfo&)
92 RELAY_TO_HANDLER(ReportPerHostInfo, const std::vector<PerHostStorageInfo>&) 93 RELAY_TO_HANDLER(ReportPerHostInfo, const std::vector<PerHostStorageInfo>&)
93 RELAY_TO_HANDLER(ReportPerOriginInfo, const std::vector<PerOriginStorageInfo>&) 94 RELAY_TO_HANDLER(ReportPerOriginInfo, const std::vector<PerOriginStorageInfo>&)
94 RELAY_TO_HANDLER(ReportStatistics, const Statistics&) 95 RELAY_TO_HANDLER(ReportStatistics, const Statistics&)
95 96
96 #undef RELAY_TO_HANDLER 97 #undef RELAY_TO_HANDLER
97 98
98 void QuotaInternalsProxy::DidGetAvailableSpace(quota::QuotaStatusCode status, 99 void QuotaInternalsProxy::DidGetAvailableSpace(storage::QuotaStatusCode status,
99 int64 space) { 100 int64 space) {
100 if (status == quota::kQuotaStatusOk) 101 if (status == storage::kQuotaStatusOk)
101 ReportAvailableSpace(space); 102 ReportAvailableSpace(space);
102 } 103 }
103 104
104 void QuotaInternalsProxy::DidGetGlobalQuota(quota::StorageType type, 105 void QuotaInternalsProxy::DidGetGlobalQuota(storage::StorageType type,
105 quota::QuotaStatusCode status, 106 storage::QuotaStatusCode status,
106 int64 quota) { 107 int64 quota) {
107 if (status == quota::kQuotaStatusOk) { 108 if (status == storage::kQuotaStatusOk) {
108 GlobalStorageInfo info(type); 109 GlobalStorageInfo info(type);
109 info.set_quota(quota); 110 info.set_quota(quota);
110 ReportGlobalInfo(info); 111 ReportGlobalInfo(info);
111 } 112 }
112 } 113 }
113 114
114 void QuotaInternalsProxy::DidGetGlobalUsage(quota::StorageType type, 115 void QuotaInternalsProxy::DidGetGlobalUsage(storage::StorageType type,
115 int64 usage, 116 int64 usage,
116 int64 unlimited_usage) { 117 int64 unlimited_usage) {
117 GlobalStorageInfo info(type); 118 GlobalStorageInfo info(type);
118 info.set_usage(usage); 119 info.set_usage(usage);
119 info.set_unlimited_usage(unlimited_usage); 120 info.set_unlimited_usage(unlimited_usage);
120 121
121 ReportGlobalInfo(info); 122 ReportGlobalInfo(info);
122 RequestPerOriginInfo(type); 123 RequestPerOriginInfo(type);
123 } 124 }
124 125
(...skipping 23 matching lines...) Expand all
148 info.set_last_access_time(itr->last_access_time); 149 info.set_last_access_time(itr->last_access_time);
149 info.set_last_modified_time(itr->last_modified_time); 150 info.set_last_modified_time(itr->last_modified_time);
150 151
151 origin_info.push_back(info); 152 origin_info.push_back(info);
152 } 153 }
153 154
154 ReportPerOriginInfo(origin_info); 155 ReportPerOriginInfo(origin_info);
155 } 156 }
156 157
157 void QuotaInternalsProxy::DidGetHostUsage(const std::string& host, 158 void QuotaInternalsProxy::DidGetHostUsage(const std::string& host,
158 quota::StorageType type, 159 storage::StorageType type,
159 int64 usage) { 160 int64 usage) {
160 DCHECK(type == quota::kStorageTypeTemporary || 161 DCHECK(type == storage::kStorageTypeTemporary ||
161 type == quota::kStorageTypePersistent || 162 type == storage::kStorageTypePersistent ||
162 type == quota::kStorageTypeSyncable); 163 type == storage::kStorageTypeSyncable);
163 164
164 PerHostStorageInfo info(host, type); 165 PerHostStorageInfo info(host, type);
165 info.set_usage(usage); 166 info.set_usage(usage);
166 167
167 report_pending_.push_back(info); 168 report_pending_.push_back(info);
168 hosts_pending_.erase(make_pair(host, type)); 169 hosts_pending_.erase(make_pair(host, type));
169 if (report_pending_.size() >= 10 || hosts_pending_.empty()) { 170 if (report_pending_.size() >= 10 || hosts_pending_.empty()) {
170 ReportPerHostInfo(report_pending_); 171 ReportPerHostInfo(report_pending_);
171 report_pending_.clear(); 172 report_pending_.clear();
172 } 173 }
173 174
174 if (!hosts_pending_.empty()) 175 if (!hosts_pending_.empty())
175 GetHostUsage(hosts_pending_.begin()->first, 176 GetHostUsage(hosts_pending_.begin()->first,
176 hosts_pending_.begin()->second); 177 hosts_pending_.begin()->second);
177 } 178 }
178 179
179 void QuotaInternalsProxy::RequestPerOriginInfo(quota::StorageType type) { 180 void QuotaInternalsProxy::RequestPerOriginInfo(storage::StorageType type) {
180 DCHECK(quota_manager_.get()); 181 DCHECK(quota_manager_.get());
181 182
182 std::set<GURL> origins; 183 std::set<GURL> origins;
183 quota_manager_->GetCachedOrigins(type, &origins); 184 quota_manager_->GetCachedOrigins(type, &origins);
184 185
185 std::vector<PerOriginStorageInfo> origin_info; 186 std::vector<PerOriginStorageInfo> origin_info;
186 origin_info.reserve(origins.size()); 187 origin_info.reserve(origins.size());
187 188
188 std::set<std::string> hosts; 189 std::set<std::string> hosts;
189 std::vector<PerHostStorageInfo> host_info; 190 std::vector<PerHostStorageInfo> host_info;
190 191
191 for (std::set<GURL>::iterator itr(origins.begin()); 192 for (std::set<GURL>::iterator itr(origins.begin());
192 itr != origins.end(); ++itr) { 193 itr != origins.end(); ++itr) {
193 PerOriginStorageInfo info(*itr, type); 194 PerOriginStorageInfo info(*itr, type);
194 info.set_in_use(quota_manager_->IsOriginInUse(*itr)); 195 info.set_in_use(quota_manager_->IsOriginInUse(*itr));
195 origin_info.push_back(info); 196 origin_info.push_back(info);
196 197
197 std::string host(net::GetHostOrSpecFromURL(*itr)); 198 std::string host(net::GetHostOrSpecFromURL(*itr));
198 if (hosts.insert(host).second) { 199 if (hosts.insert(host).second) {
199 PerHostStorageInfo info(host, type); 200 PerHostStorageInfo info(host, type);
200 host_info.push_back(info); 201 host_info.push_back(info);
201 VisitHost(host, type); 202 VisitHost(host, type);
202 } 203 }
203 } 204 }
204 ReportPerOriginInfo(origin_info); 205 ReportPerOriginInfo(origin_info);
205 ReportPerHostInfo(host_info); 206 ReportPerHostInfo(host_info);
206 } 207 }
207 208
208 void QuotaInternalsProxy::VisitHost(const std::string& host, 209 void QuotaInternalsProxy::VisitHost(const std::string& host,
209 quota::StorageType type) { 210 storage::StorageType type) {
210 if (hosts_visited_.insert(std::make_pair(host, type)).second) { 211 if (hosts_visited_.insert(std::make_pair(host, type)).second) {
211 hosts_pending_.insert(std::make_pair(host, type)); 212 hosts_pending_.insert(std::make_pair(host, type));
212 if (hosts_pending_.size() == 1) { 213 if (hosts_pending_.size() == 1) {
213 GetHostUsage(host, type); 214 GetHostUsage(host, type);
214 } 215 }
215 } 216 }
216 } 217 }
217 218
218 void QuotaInternalsProxy::GetHostUsage(const std::string& host, 219 void QuotaInternalsProxy::GetHostUsage(const std::string& host,
219 quota::StorageType type) { 220 storage::StorageType type) {
220 DCHECK(quota_manager_.get()); 221 DCHECK(quota_manager_.get());
221 quota_manager_->GetHostUsage(host, 222 quota_manager_->GetHostUsage(host,
222 type, 223 type,
223 base::Bind(&QuotaInternalsProxy::DidGetHostUsage, 224 base::Bind(&QuotaInternalsProxy::DidGetHostUsage,
224 weak_factory_.GetWeakPtr(), 225 weak_factory_.GetWeakPtr(),
225 host, 226 host,
226 type)); 227 type));
227 } 228 }
228 229
229 } // namespace quota_internals 230 } // namespace quota_internals
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698