OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/browser/appcache/appcache_internals_ui.h" | 5 #include "content/browser/appcache/appcache_internals_ui.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 int64_t i = 0; | 48 int64_t i = 0; |
49 base::StringToInt64(str.c_str(), &i); | 49 base::StringToInt64(str.c_str(), &i); |
50 return i; | 50 return i; |
51 } | 51 } |
52 | 52 |
53 bool SortByResourceUrl(const AppCacheResourceInfo& lhs, | 53 bool SortByResourceUrl(const AppCacheResourceInfo& lhs, |
54 const AppCacheResourceInfo& rhs) { | 54 const AppCacheResourceInfo& rhs) { |
55 return lhs.url.spec() < rhs.url.spec(); | 55 return lhs.url.spec() < rhs.url.spec(); |
56 } | 56 } |
57 | 57 |
58 scoped_ptr<base::DictionaryValue> GetDictionaryValueForResponseEnquiry( | 58 std::unique_ptr<base::DictionaryValue> GetDictionaryValueForResponseEnquiry( |
59 const content::AppCacheInternalsUI::Proxy::ResponseEnquiry& | 59 const content::AppCacheInternalsUI::Proxy::ResponseEnquiry& |
60 response_enquiry) { | 60 response_enquiry) { |
61 scoped_ptr<base::DictionaryValue> dict_value(new base::DictionaryValue()); | 61 std::unique_ptr<base::DictionaryValue> dict_value( |
| 62 new base::DictionaryValue()); |
62 dict_value->SetString("manifestURL", response_enquiry.manifest_url); | 63 dict_value->SetString("manifestURL", response_enquiry.manifest_url); |
63 dict_value->SetString("groupId", | 64 dict_value->SetString("groupId", |
64 base::Int64ToString(response_enquiry.group_id)); | 65 base::Int64ToString(response_enquiry.group_id)); |
65 dict_value->SetString("responseId", | 66 dict_value->SetString("responseId", |
66 base::Int64ToString(response_enquiry.response_id)); | 67 base::Int64ToString(response_enquiry.response_id)); |
67 return dict_value; | 68 return dict_value; |
68 } | 69 } |
69 | 70 |
70 scoped_ptr<base::DictionaryValue> GetDictionaryValueForAppCacheInfo( | 71 std::unique_ptr<base::DictionaryValue> GetDictionaryValueForAppCacheInfo( |
71 const content::AppCacheInfo& appcache_info) { | 72 const content::AppCacheInfo& appcache_info) { |
72 scoped_ptr<base::DictionaryValue> dict_value(new base::DictionaryValue()); | 73 std::unique_ptr<base::DictionaryValue> dict_value( |
| 74 new base::DictionaryValue()); |
73 dict_value->SetString("manifestURL", appcache_info.manifest_url.spec()); | 75 dict_value->SetString("manifestURL", appcache_info.manifest_url.spec()); |
74 dict_value->SetDouble("creationTime", appcache_info.creation_time.ToJsTime()); | 76 dict_value->SetDouble("creationTime", appcache_info.creation_time.ToJsTime()); |
75 dict_value->SetDouble("lastUpdateTime", | 77 dict_value->SetDouble("lastUpdateTime", |
76 appcache_info.last_update_time.ToJsTime()); | 78 appcache_info.last_update_time.ToJsTime()); |
77 dict_value->SetDouble("lastAccessTime", | 79 dict_value->SetDouble("lastAccessTime", |
78 appcache_info.last_access_time.ToJsTime()); | 80 appcache_info.last_access_time.ToJsTime()); |
79 dict_value->SetString( | 81 dict_value->SetString( |
80 "size", | 82 "size", |
81 base::UTF16ToUTF8(base::FormatBytesUnlocalized(appcache_info.size))); | 83 base::UTF16ToUTF8(base::FormatBytesUnlocalized(appcache_info.size))); |
82 dict_value->SetString("groupId", base::Int64ToString(appcache_info.group_id)); | 84 dict_value->SetString("groupId", base::Int64ToString(appcache_info.group_id)); |
83 | 85 |
84 return dict_value; | 86 return dict_value; |
85 } | 87 } |
86 | 88 |
87 scoped_ptr<base::ListValue> GetListValueForAppCacheInfoVector( | 89 std::unique_ptr<base::ListValue> GetListValueForAppCacheInfoVector( |
88 const AppCacheInfoVector& appcache_info_vector) { | 90 const AppCacheInfoVector& appcache_info_vector) { |
89 scoped_ptr<base::ListValue> list(new base::ListValue()); | 91 std::unique_ptr<base::ListValue> list(new base::ListValue()); |
90 for (const AppCacheInfo& info : appcache_info_vector) | 92 for (const AppCacheInfo& info : appcache_info_vector) |
91 list->Append(GetDictionaryValueForAppCacheInfo(info)); | 93 list->Append(GetDictionaryValueForAppCacheInfo(info)); |
92 return list; | 94 return list; |
93 } | 95 } |
94 | 96 |
95 scoped_ptr<base::ListValue> GetListValueFromAppCacheInfoCollection( | 97 std::unique_ptr<base::ListValue> GetListValueFromAppCacheInfoCollection( |
96 AppCacheInfoCollection* appcache_collection) { | 98 AppCacheInfoCollection* appcache_collection) { |
97 scoped_ptr<base::ListValue> list(new base::ListValue()); | 99 std::unique_ptr<base::ListValue> list(new base::ListValue()); |
98 for (const auto& key_value : appcache_collection->infos_by_origin) { | 100 for (const auto& key_value : appcache_collection->infos_by_origin) { |
99 base::DictionaryValue* dict = new base::DictionaryValue; | 101 base::DictionaryValue* dict = new base::DictionaryValue; |
100 dict->SetString("originURL", key_value.first.spec()); | 102 dict->SetString("originURL", key_value.first.spec()); |
101 dict->Set("manifests", GetListValueForAppCacheInfoVector(key_value.second)); | 103 dict->Set("manifests", GetListValueForAppCacheInfoVector(key_value.second)); |
102 list->Append(scoped_ptr<base::Value>(dict)); | 104 list->Append(std::unique_ptr<base::Value>(dict)); |
103 } | 105 } |
104 return list; | 106 return list; |
105 } | 107 } |
106 | 108 |
107 scoped_ptr<base::DictionaryValue> GetDictionaryValueForAppCacheResourceInfo( | 109 std::unique_ptr<base::DictionaryValue> |
| 110 GetDictionaryValueForAppCacheResourceInfo( |
108 const AppCacheResourceInfo& resource_info) { | 111 const AppCacheResourceInfo& resource_info) { |
109 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 112 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
110 dict->SetString("url", resource_info.url.spec()); | 113 dict->SetString("url", resource_info.url.spec()); |
111 dict->SetString( | 114 dict->SetString( |
112 "size", | 115 "size", |
113 base::UTF16ToUTF8(base::FormatBytesUnlocalized(resource_info.size))); | 116 base::UTF16ToUTF8(base::FormatBytesUnlocalized(resource_info.size))); |
114 dict->SetString("responseId", base::Int64ToString(resource_info.response_id)); | 117 dict->SetString("responseId", base::Int64ToString(resource_info.response_id)); |
115 dict->SetBoolean("isExplicit", resource_info.is_explicit); | 118 dict->SetBoolean("isExplicit", resource_info.is_explicit); |
116 dict->SetBoolean("isManifest", resource_info.is_manifest); | 119 dict->SetBoolean("isManifest", resource_info.is_manifest); |
117 dict->SetBoolean("isMaster", resource_info.is_master); | 120 dict->SetBoolean("isMaster", resource_info.is_master); |
118 dict->SetBoolean("isFallback", resource_info.is_fallback); | 121 dict->SetBoolean("isFallback", resource_info.is_fallback); |
119 dict->SetBoolean("isIntercept", resource_info.is_intercept); | 122 dict->SetBoolean("isIntercept", resource_info.is_intercept); |
120 dict->SetBoolean("isForeign", resource_info.is_foreign); | 123 dict->SetBoolean("isForeign", resource_info.is_foreign); |
121 | 124 |
122 return dict; | 125 return dict; |
123 } | 126 } |
124 | 127 |
125 scoped_ptr<base::ListValue> GetListValueForAppCacheResourceInfoVector( | 128 std::unique_ptr<base::ListValue> GetListValueForAppCacheResourceInfoVector( |
126 AppCacheResourceInfoVector* resource_info_vector) { | 129 AppCacheResourceInfoVector* resource_info_vector) { |
127 scoped_ptr<base::ListValue> list(new base::ListValue); | 130 std::unique_ptr<base::ListValue> list(new base::ListValue); |
128 for (const AppCacheResourceInfo& res_info : *resource_info_vector) | 131 for (const AppCacheResourceInfo& res_info : *resource_info_vector) |
129 list->Append(GetDictionaryValueForAppCacheResourceInfo(res_info)); | 132 list->Append(GetDictionaryValueForAppCacheResourceInfo(res_info)); |
130 return list; | 133 return list; |
131 } | 134 } |
132 | 135 |
133 } // namespace | 136 } // namespace |
134 | 137 |
135 AppCacheInternalsUI::Proxy::Proxy( | 138 AppCacheInternalsUI::Proxy::Proxy( |
136 base::WeakPtr<AppCacheInternalsUI> appcache_internals_ui, | 139 base::WeakPtr<AppCacheInternalsUI> appcache_internals_ui, |
137 const base::FilePath& partition_path) | 140 const base::FilePath& partition_path) |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 base::Bind(&Proxy::RequestAppCacheDetails, this, manifest_url)); | 229 base::Bind(&Proxy::RequestAppCacheDetails, this, manifest_url)); |
227 return; | 230 return; |
228 } | 231 } |
229 | 232 |
230 if (appcache_service_) | 233 if (appcache_service_) |
231 appcache_service_->storage()->LoadOrCreateGroup(GURL(manifest_url), this); | 234 appcache_service_->storage()->LoadOrCreateGroup(GURL(manifest_url), this); |
232 } | 235 } |
233 | 236 |
234 void AppCacheInternalsUI::Proxy::OnGroupLoaded(AppCacheGroup* appcache_group, | 237 void AppCacheInternalsUI::Proxy::OnGroupLoaded(AppCacheGroup* appcache_group, |
235 const GURL& manifest_gurl) { | 238 const GURL& manifest_gurl) { |
236 scoped_ptr<AppCacheResourceInfoVector> resource_info_vector; | 239 std::unique_ptr<AppCacheResourceInfoVector> resource_info_vector; |
237 if (appcache_group && appcache_group->newest_complete_cache()) { | 240 if (appcache_group && appcache_group->newest_complete_cache()) { |
238 resource_info_vector.reset(new AppCacheResourceInfoVector); | 241 resource_info_vector.reset(new AppCacheResourceInfoVector); |
239 appcache_group->newest_complete_cache()->ToResourceInfoVector( | 242 appcache_group->newest_complete_cache()->ToResourceInfoVector( |
240 resource_info_vector.get()); | 243 resource_info_vector.get()); |
241 std::sort(resource_info_vector->begin(), resource_info_vector->end(), | 244 std::sort(resource_info_vector->begin(), resource_info_vector->end(), |
242 SortByResourceUrl); | 245 SortByResourceUrl); |
243 } | 246 } |
244 BrowserThread::PostTask( | 247 BrowserThread::PostTask( |
245 BrowserThread::UI, FROM_HERE, | 248 BrowserThread::UI, FROM_HERE, |
246 base::Bind(&AppCacheInternalsUI::OnAppCacheDetailsReady, | 249 base::Bind(&AppCacheInternalsUI::OnAppCacheDetailsReady, |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 return; | 283 return; |
281 ResponseEnquiry response_enquiry = response_enquiries_.front(); | 284 ResponseEnquiry response_enquiry = response_enquiries_.front(); |
282 response_enquiries_.pop_front(); | 285 response_enquiries_.pop_front(); |
283 if (response) { | 286 if (response) { |
284 scoped_refptr<AppCacheResponseInfo> response_info = response; | 287 scoped_refptr<AppCacheResponseInfo> response_info = response; |
285 const int64_t kLimit = 100 * 1000; | 288 const int64_t kLimit = 100 * 1000; |
286 int64_t amount_to_read = | 289 int64_t amount_to_read = |
287 std::min(kLimit, response_info->response_data_size()); | 290 std::min(kLimit, response_info->response_data_size()); |
288 scoped_refptr<net::IOBuffer> response_data(new net::IOBuffer( | 291 scoped_refptr<net::IOBuffer> response_data(new net::IOBuffer( |
289 base::CheckedNumeric<size_t>(amount_to_read).ValueOrDie())); | 292 base::CheckedNumeric<size_t>(amount_to_read).ValueOrDie())); |
290 scoped_ptr<AppCacheResponseReader> reader( | 293 std::unique_ptr<AppCacheResponseReader> reader( |
291 appcache_service_->storage()->CreateResponseReader( | 294 appcache_service_->storage()->CreateResponseReader( |
292 GURL(response_enquiry.manifest_url), response_enquiry.group_id, | 295 GURL(response_enquiry.manifest_url), response_enquiry.group_id, |
293 response_enquiry.response_id)); | 296 response_enquiry.response_id)); |
294 | 297 |
295 reader->ReadData( | 298 reader->ReadData( |
296 response_data.get(), amount_to_read, | 299 response_data.get(), amount_to_read, |
297 base::Bind(&Proxy::OnResponseDataReadComplete, this, response_enquiry, | 300 base::Bind(&Proxy::OnResponseDataReadComplete, this, response_enquiry, |
298 response_info, base::Passed(&reader), response_data)); | 301 response_info, base::Passed(&reader), response_data)); |
299 } else { | 302 } else { |
300 OnResponseDataReadComplete(response_enquiry, nullptr, nullptr, nullptr, -1); | 303 OnResponseDataReadComplete(response_enquiry, nullptr, nullptr, nullptr, -1); |
301 } | 304 } |
302 } | 305 } |
303 | 306 |
304 void AppCacheInternalsUI::Proxy::OnResponseDataReadComplete( | 307 void AppCacheInternalsUI::Proxy::OnResponseDataReadComplete( |
305 const ResponseEnquiry& response_enquiry, | 308 const ResponseEnquiry& response_enquiry, |
306 scoped_refptr<AppCacheResponseInfo> response_info, | 309 scoped_refptr<AppCacheResponseInfo> response_info, |
307 scoped_ptr<AppCacheResponseReader> reader, | 310 std::unique_ptr<AppCacheResponseReader> reader, |
308 scoped_refptr<net::IOBuffer> response_data, | 311 scoped_refptr<net::IOBuffer> response_data, |
309 int net_result_code) { | 312 int net_result_code) { |
310 if (shutdown_called_) | 313 if (shutdown_called_) |
311 return; | 314 return; |
312 if (!response_info || net_result_code < 0) { | 315 if (!response_info || net_result_code < 0) { |
313 BrowserThread::PostTask( | 316 BrowserThread::PostTask( |
314 BrowserThread::UI, FROM_HERE, | 317 BrowserThread::UI, FROM_HERE, |
315 base::Bind(&AppCacheInternalsUI::OnFileDetailsFailed, | 318 base::Bind(&AppCacheInternalsUI::OnFileDetailsFailed, |
316 appcache_internals_ui_, response_enquiry, net_result_code)); | 319 appcache_internals_ui_, response_enquiry, net_result_code)); |
317 } else { | 320 } else { |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 bool deleted) { | 433 bool deleted) { |
431 web_ui()->CallJavascriptFunction( | 434 web_ui()->CallJavascriptFunction( |
432 kFunctionOnAppCacheInfoDeleted, | 435 kFunctionOnAppCacheInfoDeleted, |
433 base::StringValue(partition_path.AsUTF8Unsafe()), | 436 base::StringValue(partition_path.AsUTF8Unsafe()), |
434 base::StringValue(manifest_url), base::FundamentalValue(deleted)); | 437 base::StringValue(manifest_url), base::FundamentalValue(deleted)); |
435 } | 438 } |
436 | 439 |
437 void AppCacheInternalsUI::OnAppCacheDetailsReady( | 440 void AppCacheInternalsUI::OnAppCacheDetailsReady( |
438 const base::FilePath& partition_path, | 441 const base::FilePath& partition_path, |
439 const std::string& manifest_url, | 442 const std::string& manifest_url, |
440 scoped_ptr<AppCacheResourceInfoVector> resource_info_vector) { | 443 std::unique_ptr<AppCacheResourceInfoVector> resource_info_vector) { |
441 if (resource_info_vector) { | 444 if (resource_info_vector) { |
442 web_ui()->CallJavascriptFunction( | 445 web_ui()->CallJavascriptFunction( |
443 kFunctionOnAppCacheDetailsReady, base::StringValue(manifest_url), | 446 kFunctionOnAppCacheDetailsReady, base::StringValue(manifest_url), |
444 base::StringValue(partition_path.AsUTF8Unsafe()), | 447 base::StringValue(partition_path.AsUTF8Unsafe()), |
445 *GetListValueForAppCacheResourceInfoVector(resource_info_vector.get())); | 448 *GetListValueForAppCacheResourceInfoVector(resource_info_vector.get())); |
446 } else { | 449 } else { |
447 web_ui()->CallJavascriptFunction( | 450 web_ui()->CallJavascriptFunction( |
448 kFunctionOnAppCacheDetailsReady, base::StringValue(manifest_url), | 451 kFunctionOnAppCacheDetailsReady, base::StringValue(manifest_url), |
449 base::StringValue(partition_path.AsUTF8Unsafe())); | 452 base::StringValue(partition_path.AsUTF8Unsafe())); |
450 } | 453 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 const base::FilePath& partition_path) { | 504 const base::FilePath& partition_path) { |
502 for (const scoped_refptr<Proxy>& proxy : appcache_proxies_) { | 505 for (const scoped_refptr<Proxy>& proxy : appcache_proxies_) { |
503 if (proxy->partition_path_ == partition_path) | 506 if (proxy->partition_path_ == partition_path) |
504 return proxy.get(); | 507 return proxy.get(); |
505 } | 508 } |
506 NOTREACHED(); | 509 NOTREACHED(); |
507 return nullptr; | 510 return nullptr; |
508 } | 511 } |
509 | 512 |
510 } // namespace content | 513 } // namespace content |
OLD | NEW |