OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "modules/cachestorage/InspectorCacheStorageAgent.h" | 5 #include "modules/cachestorage/InspectorCacheStorageAgent.h" |
6 | 6 |
7 #include "platform/heap/Handle.h" | 7 #include "platform/heap/Handle.h" |
8 #include "platform/inspector_protocol/Dispatcher.h" | 8 #include "platform/inspector_protocol/Dispatcher.h" |
9 #include "platform/inspector_protocol/TypeBuilder.h" | 9 #include "platform/inspector_protocol/TypeBuilder.h" |
10 #include "platform/inspector_protocol/Values.h" | 10 #include "platform/inspector_protocol/Values.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 return CString("unknown error."); | 108 return CString("unknown error."); |
109 break; | 109 break; |
110 } | 110 } |
111 } | 111 } |
112 | 112 |
113 class RequestCacheNames | 113 class RequestCacheNames |
114 : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { | 114 : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { |
115 WTF_MAKE_NONCOPYABLE(RequestCacheNames); | 115 WTF_MAKE_NONCOPYABLE(RequestCacheNames); |
116 | 116 |
117 public: | 117 public: |
118 RequestCacheNames(const String& securityOrigin, PassRefPtr<RequestCacheNames
Callback> callback) | 118 RequestCacheNames(const String& securityOrigin, PassOwnPtr<RequestCacheNames
Callback> callback) |
119 : m_securityOrigin(securityOrigin) | 119 : m_securityOrigin(securityOrigin) |
120 , m_callback(callback) | 120 , m_callback(callback) |
121 { | 121 { |
122 } | 122 } |
123 | 123 |
124 ~RequestCacheNames() override { } | 124 ~RequestCacheNames() override { } |
125 | 125 |
126 void onSuccess(const WebVector<WebString>& caches) override | 126 void onSuccess(const WebVector<WebString>& caches) override |
127 { | 127 { |
128 OwnPtr<Array<Cache>> array = Array<Cache>::create(); | 128 OwnPtr<Array<Cache>> array = Array<Cache>::create(); |
129 for (size_t i = 0; i < caches.size(); i++) { | 129 for (size_t i = 0; i < caches.size(); i++) { |
130 String name = String(caches[i]); | 130 String name = String(caches[i]); |
131 OwnPtr<Cache> entry = Cache::create() | 131 OwnPtr<Cache> entry = Cache::create() |
132 .setSecurityOrigin(m_securityOrigin) | 132 .setSecurityOrigin(m_securityOrigin) |
133 .setCacheName(name) | 133 .setCacheName(name) |
134 .setCacheId(buildCacheId(m_securityOrigin, name)).build(); | 134 .setCacheId(buildCacheId(m_securityOrigin, name)).build(); |
135 array->addItem(entry.release()); | 135 array->addItem(entry.release()); |
136 } | 136 } |
137 m_callback->sendSuccess(array.release()); | 137 m_callback->sendSuccess(array.release()); |
138 } | 138 } |
139 | 139 |
140 void onError(WebServiceWorkerCacheError error) override | 140 void onError(WebServiceWorkerCacheError error) override |
141 { | 141 { |
142 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); | 142 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
143 } | 143 } |
144 | 144 |
145 private: | 145 private: |
146 String m_securityOrigin; | 146 String m_securityOrigin; |
147 RefPtr<RequestCacheNamesCallback> m_callback; | 147 OwnPtr<RequestCacheNamesCallback> m_callback; |
148 }; | 148 }; |
149 | 149 |
150 struct DataRequestParams { | 150 struct DataRequestParams { |
151 String cacheName; | 151 String cacheName; |
152 int skipCount; | 152 int skipCount; |
153 int pageSize; | 153 int pageSize; |
154 }; | 154 }; |
155 | 155 |
156 struct RequestResponse { | 156 struct RequestResponse { |
157 RequestResponse() { } | 157 RequestResponse() { } |
158 RequestResponse(const String& request, const String& response) | 158 RequestResponse(const String& request, const String& response) |
159 : request(request) | 159 : request(request) |
160 , response(response) | 160 , response(response) |
161 { | 161 { |
162 } | 162 } |
163 String request; | 163 String request; |
164 String response; | 164 String response; |
165 }; | 165 }; |
166 | 166 |
167 class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { | 167 class ResponsesAccumulator : public RefCounted<ResponsesAccumulator> { |
168 WTF_MAKE_NONCOPYABLE(ResponsesAccumulator); | 168 WTF_MAKE_NONCOPYABLE(ResponsesAccumulator); |
169 | 169 |
170 public: | 170 public: |
171 ResponsesAccumulator(int numResponses, const DataRequestParams& params, Pass
RefPtr<RequestEntriesCallback> callback) | 171 ResponsesAccumulator(int numResponses, const DataRequestParams& params, Pass
OwnPtr<RequestEntriesCallback> callback) |
172 : m_params(params) | 172 : m_params(params) |
173 , m_numResponsesLeft(numResponses) | 173 , m_numResponsesLeft(numResponses) |
174 , m_responses(static_cast<size_t>(numResponses)) | 174 , m_responses(static_cast<size_t>(numResponses)) |
175 , m_callback(callback) | 175 , m_callback(callback) |
176 { | 176 { |
177 } | 177 } |
178 | 178 |
179 void addRequestResponsePair(const WebServiceWorkerRequest& request, const We
bServiceWorkerResponse& response) | 179 void addRequestResponsePair(const WebServiceWorkerRequest& request, const We
bServiceWorkerResponse& response) |
180 { | 180 { |
181 ASSERT(m_numResponsesLeft > 0); | 181 ASSERT(m_numResponsesLeft > 0); |
(...skipping 19 matching lines...) Expand all Loading... |
201 OwnPtr<Array<DataEntry>> array = Array<DataEntry>::create(); | 201 OwnPtr<Array<DataEntry>> array = Array<DataEntry>::create(); |
202 for (const auto& requestResponse : m_responses) { | 202 for (const auto& requestResponse : m_responses) { |
203 OwnPtr<DataEntry> entry = DataEntry::create() | 203 OwnPtr<DataEntry> entry = DataEntry::create() |
204 .setRequest(requestResponse.request) | 204 .setRequest(requestResponse.request) |
205 .setResponse(requestResponse.response).build(); | 205 .setResponse(requestResponse.response).build(); |
206 array->addItem(entry.release()); | 206 array->addItem(entry.release()); |
207 } | 207 } |
208 m_callback->sendSuccess(array.release(), hasMore); | 208 m_callback->sendSuccess(array.release(), hasMore); |
209 } | 209 } |
210 | 210 |
| 211 void sendFailure(const String& error) |
| 212 { |
| 213 m_callback->sendFailure(error); |
| 214 } |
| 215 |
211 private: | 216 private: |
212 DataRequestParams m_params; | 217 DataRequestParams m_params; |
213 int m_numResponsesLeft; | 218 int m_numResponsesLeft; |
214 Vector<RequestResponse> m_responses; | 219 Vector<RequestResponse> m_responses; |
215 RefPtr<RequestEntriesCallback> m_callback; | 220 OwnPtr<RequestEntriesCallback> m_callback; |
216 }; | 221 }; |
217 | 222 |
218 class GetCacheResponsesForRequestData : public WebServiceWorkerCache::CacheMatch
Callbacks { | 223 class GetCacheResponsesForRequestData : public WebServiceWorkerCache::CacheMatch
Callbacks { |
219 WTF_MAKE_NONCOPYABLE(GetCacheResponsesForRequestData); | 224 WTF_MAKE_NONCOPYABLE(GetCacheResponsesForRequestData); |
220 | 225 |
221 public: | 226 public: |
222 GetCacheResponsesForRequestData( | 227 GetCacheResponsesForRequestData(const DataRequestParams& params, const WebSe
rviceWorkerRequest& request, PassRefPtr<ResponsesAccumulator> accum) |
223 const DataRequestParams& params, const WebServiceWorkerRequest& request, | |
224 PassRefPtr<ResponsesAccumulator> accum, PassRefPtr<RequestEntriesCallbac
k> callback) | |
225 : m_params(params) | 228 : m_params(params) |
226 , m_request(request) | 229 , m_request(request) |
227 , m_accumulator(accum) | 230 , m_accumulator(accum) |
228 , m_callback(callback) | |
229 { | 231 { |
230 } | 232 } |
231 ~GetCacheResponsesForRequestData() override { } | 233 ~GetCacheResponsesForRequestData() override { } |
232 | 234 |
233 void onSuccess(const WebServiceWorkerResponse& response) override | 235 void onSuccess(const WebServiceWorkerResponse& response) override |
234 { | 236 { |
235 m_accumulator->addRequestResponsePair(m_request, response); | 237 m_accumulator->addRequestResponsePair(m_request, response); |
236 } | 238 } |
237 | 239 |
238 void onError(WebServiceWorkerCacheError error) override | 240 void onError(WebServiceWorkerCacheError error) override |
239 { | 241 { |
240 m_callback->sendFailure(String::format("Error requesting responses for c
ache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(e
rror).data())); | 242 m_accumulator->sendFailure(String::format("Error requesting responses fo
r cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorStrin
g(error).data())); |
241 } | 243 } |
242 | 244 |
243 private: | 245 private: |
244 DataRequestParams m_params; | 246 DataRequestParams m_params; |
245 WebServiceWorkerRequest m_request; | 247 WebServiceWorkerRequest m_request; |
246 RefPtr<ResponsesAccumulator> m_accumulator; | 248 RefPtr<ResponsesAccumulator> m_accumulator; |
247 RefPtr<RequestEntriesCallback> m_callback; | |
248 }; | 249 }; |
249 | 250 |
250 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { | 251 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { |
251 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData); | 252 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData); |
252 | 253 |
253 public: | 254 public: |
254 GetCacheKeysForRequestData(const DataRequestParams& params, PassOwnPtr<WebSe
rviceWorkerCache> cache, PassRefPtr<RequestEntriesCallback> callback) | 255 GetCacheKeysForRequestData(const DataRequestParams& params, PassOwnPtr<WebSe
rviceWorkerCache> cache, PassOwnPtr<RequestEntriesCallback> callback) |
255 : m_params(params) | 256 : m_params(params) |
256 , m_cache(cache) | 257 , m_cache(cache) |
257 , m_callback(callback) | 258 , m_callback(callback) |
258 { | 259 { |
259 } | 260 } |
260 ~GetCacheKeysForRequestData() override { } | 261 ~GetCacheKeysForRequestData() override { } |
261 | 262 |
262 WebServiceWorkerCache* cache() { return m_cache.get(); } | 263 WebServiceWorkerCache* cache() { return m_cache.get(); } |
263 void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override | 264 void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override |
264 { | 265 { |
265 if (requests.isEmpty()) { | 266 if (requests.isEmpty()) { |
266 OwnPtr<Array<DataEntry>> array = Array<DataEntry>::create(); | 267 OwnPtr<Array<DataEntry>> array = Array<DataEntry>::create(); |
267 m_callback->sendSuccess(array.release(), false); | 268 m_callback->sendSuccess(array.release(), false); |
268 return; | 269 return; |
269 } | 270 } |
270 RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumul
ator(requests.size(), m_params, m_callback)); | 271 RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumul
ator(requests.size(), m_params, m_callback.release())); |
271 | 272 |
272 for (size_t i = 0; i < requests.size(); i++) { | 273 for (size_t i = 0; i < requests.size(); i++) { |
273 const auto& request = requests[i]; | 274 const auto& request = requests[i]; |
274 auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, r
equest, accumulator, m_callback); | 275 auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, r
equest, accumulator); |
275 m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache:
:QueryParams()); | 276 m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache:
:QueryParams()); |
276 } | 277 } |
277 } | 278 } |
278 | 279 |
279 void onError(WebServiceWorkerCacheError error) override | 280 void onError(WebServiceWorkerCacheError error) override |
280 { | 281 { |
281 m_callback->sendFailure(String::format("Error requesting requests for ca
che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(err
or).data())); | 282 m_callback->sendFailure(String::format("Error requesting requests for ca
che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(err
or).data())); |
282 } | 283 } |
283 | 284 |
284 private: | 285 private: |
285 DataRequestParams m_params; | 286 DataRequestParams m_params; |
286 OwnPtr<WebServiceWorkerCache> m_cache; | 287 OwnPtr<WebServiceWorkerCache> m_cache; |
287 RefPtr<RequestEntriesCallback> m_callback; | 288 OwnPtr<RequestEntriesCallback> m_callback; |
288 }; | 289 }; |
289 | 290 |
290 class GetCacheForRequestData | 291 class GetCacheForRequestData |
291 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 292 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
292 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); | 293 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); |
293 | 294 |
294 public: | 295 public: |
295 GetCacheForRequestData(const DataRequestParams& params, PassRefPtr<RequestEn
triesCallback> callback) | 296 GetCacheForRequestData(const DataRequestParams& params, PassOwnPtr<RequestEn
triesCallback> callback) |
296 : m_params(params) | 297 : m_params(params) |
297 , m_callback(callback) | 298 , m_callback(callback) |
298 { | 299 { |
299 } | 300 } |
300 ~GetCacheForRequestData() override { } | 301 ~GetCacheForRequestData() override { } |
301 | 302 |
302 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override | 303 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override |
303 { | 304 { |
304 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, cache.rele
ase(), m_callback); | 305 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, cache.rele
ase(), m_callback.release()); |
305 cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWor
kerCache::QueryParams()); | 306 cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWor
kerCache::QueryParams()); |
306 } | 307 } |
307 | 308 |
308 void onError(WebServiceWorkerCacheError error) override | 309 void onError(WebServiceWorkerCacheError error) override |
309 { | 310 { |
310 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); | 311 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); |
311 } | 312 } |
312 | 313 |
313 private: | 314 private: |
314 DataRequestParams m_params; | 315 DataRequestParams m_params; |
315 RefPtr<RequestEntriesCallback> m_callback; | 316 OwnPtr<RequestEntriesCallback> m_callback; |
316 }; | 317 }; |
317 | 318 |
318 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { | 319 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { |
319 WTF_MAKE_NONCOPYABLE(DeleteCache); | 320 WTF_MAKE_NONCOPYABLE(DeleteCache); |
320 | 321 |
321 public: | 322 public: |
322 DeleteCache(PassRefPtr<DeleteCacheCallback> callback) | 323 DeleteCache(PassOwnPtr<DeleteCacheCallback> callback) |
323 : m_callback(callback) | 324 : m_callback(callback) |
324 { | 325 { |
325 } | 326 } |
326 ~DeleteCache() override { } | 327 ~DeleteCache() override { } |
327 | 328 |
328 void onSuccess() override | 329 void onSuccess() override |
329 { | 330 { |
330 m_callback->sendSuccess(); | 331 m_callback->sendSuccess(); |
331 } | 332 } |
332 | 333 |
333 void onError(WebServiceWorkerCacheError error) override | 334 void onError(WebServiceWorkerCacheError error) override |
334 { | 335 { |
335 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); | 336 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
336 } | 337 } |
337 | 338 |
338 private: | 339 private: |
339 RefPtr<DeleteCacheCallback> m_callback; | 340 OwnPtr<DeleteCacheCallback> m_callback; |
340 }; | 341 }; |
341 | 342 |
342 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { | 343 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { |
343 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); | 344 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); |
344 public: | 345 public: |
345 | 346 |
346 DeleteCacheEntry(PassRefPtr<DeleteEntryCallback> callback) | 347 DeleteCacheEntry(PassOwnPtr<DeleteEntryCallback> callback) |
347 : m_callback(callback) | 348 : m_callback(callback) |
348 { | 349 { |
349 } | 350 } |
350 ~DeleteCacheEntry() override { } | 351 ~DeleteCacheEntry() override { } |
351 | 352 |
352 void onSuccess() override | 353 void onSuccess() override |
353 { | 354 { |
354 m_callback->sendSuccess(); | 355 m_callback->sendSuccess(); |
355 } | 356 } |
356 | 357 |
357 void onError(WebServiceWorkerCacheError error) override | 358 void onError(WebServiceWorkerCacheError error) override |
358 { | 359 { |
359 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); | 360 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
360 } | 361 } |
361 | 362 |
362 private: | 363 private: |
363 RefPtr<DeleteEntryCallback> m_callback; | 364 OwnPtr<DeleteEntryCallback> m_callback; |
364 }; | 365 }; |
365 | 366 |
366 class GetCacheForDeleteEntry | 367 class GetCacheForDeleteEntry |
367 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 368 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
368 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); | 369 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); |
369 | 370 |
370 public: | 371 public: |
371 GetCacheForDeleteEntry(const String& requestSpec, const String& cacheName, P
assRefPtr<DeleteEntryCallback> callback) | 372 GetCacheForDeleteEntry(const String& requestSpec, const String& cacheName, P
assOwnPtr<DeleteEntryCallback> callback) |
372 : m_requestSpec(requestSpec) | 373 : m_requestSpec(requestSpec) |
373 , m_cacheName(cacheName) | 374 , m_cacheName(cacheName) |
374 , m_callback(callback) | 375 , m_callback(callback) |
375 { | 376 { |
376 } | 377 } |
377 ~GetCacheForDeleteEntry() override { } | 378 ~GetCacheForDeleteEntry() override { } |
378 | 379 |
379 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override | 380 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override |
380 { | 381 { |
381 auto* deleteRequest = new DeleteCacheEntry(m_callback); | 382 auto* deleteRequest = new DeleteCacheEntry(m_callback.release()); |
382 BatchOperation deleteOperation; | 383 BatchOperation deleteOperation; |
383 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDele
te; | 384 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDele
te; |
384 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); | 385 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); |
385 Vector<BatchOperation> operations; | 386 Vector<BatchOperation> operations; |
386 operations.append(deleteOperation); | 387 operations.append(deleteOperation); |
387 cache.release()->dispatchBatch(deleteRequest, WebVector<BatchOperation>(
operations)); | 388 cache.release()->dispatchBatch(deleteRequest, WebVector<BatchOperation>(
operations)); |
388 } | 389 } |
389 | 390 |
390 void onError(WebServiceWorkerCacheError error) override | 391 void onError(WebServiceWorkerCacheError error) override |
391 { | 392 { |
392 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); | 393 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); |
393 } | 394 } |
394 | 395 |
395 private: | 396 private: |
396 String m_requestSpec; | 397 String m_requestSpec; |
397 String m_cacheName; | 398 String m_cacheName; |
398 RefPtr<DeleteEntryCallback> m_callback; | 399 OwnPtr<DeleteEntryCallback> m_callback; |
399 }; | 400 }; |
400 | 401 |
401 } // namespace | 402 } // namespace |
402 | 403 |
403 InspectorCacheStorageAgent::InspectorCacheStorageAgent() | 404 InspectorCacheStorageAgent::InspectorCacheStorageAgent() |
404 : InspectorBaseAgent<InspectorCacheStorageAgent, protocol::Frontend::CacheSt
orage>("CacheStorage") | 405 : InspectorBaseAgent<InspectorCacheStorageAgent, protocol::Frontend::CacheSt
orage>("CacheStorage") |
405 { | 406 { |
406 } | 407 } |
407 | 408 |
408 InspectorCacheStorageAgent::~InspectorCacheStorageAgent() { } | 409 InspectorCacheStorageAgent::~InspectorCacheStorageAgent() { } |
409 | 410 |
410 DEFINE_TRACE(InspectorCacheStorageAgent) | 411 DEFINE_TRACE(InspectorCacheStorageAgent) |
411 { | 412 { |
412 InspectorBaseAgent::trace(visitor); | 413 InspectorBaseAgent::trace(visitor); |
413 } | 414 } |
414 | 415 |
415 void InspectorCacheStorageAgent::requestCacheNames(ErrorString* errorString, con
st String& securityOrigin, PassRefPtr<RequestCacheNamesCallback> callback) | 416 void InspectorCacheStorageAgent::requestCacheNames(ErrorString* errorString, con
st String& securityOrigin, PassOwnPtr<RequestCacheNamesCallback> callback) |
416 { | 417 { |
417 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security
Origin); | 418 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security
Origin); |
418 | 419 |
419 // Cache Storage API is restricted to trustworthy origins. | 420 // Cache Storage API is restricted to trustworthy origins. |
420 if (!secOrigin->isPotentiallyTrustworthy()) { | 421 if (!secOrigin->isPotentiallyTrustworthy()) { |
421 // Don't treat this as an error, just don't attempt to open and enumerat
e the caches. | 422 // Don't treat this as an error, just don't attempt to open and enumerat
e the caches. |
422 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create()); | 423 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create()); |
423 return; | 424 return; |
424 } | 425 } |
425 | 426 |
426 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorage(errorString,
securityOrigin); | 427 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorage(errorString,
securityOrigin); |
427 if (!cache) { | 428 if (!cache) { |
428 callback->sendFailure(*errorString); | 429 callback->sendFailure(*errorString); |
429 return; | 430 return; |
430 } | 431 } |
431 cache->dispatchKeys(new RequestCacheNames(securityOrigin, callback)); | 432 cache->dispatchKeys(new RequestCacheNames(securityOrigin, callback)); |
432 } | 433 } |
433 | 434 |
434 void InspectorCacheStorageAgent::requestEntries(ErrorString* errorString, const
String& cacheId, int skipCount, int pageSize, PassRefPtr<RequestEntriesCallback>
callback) | 435 void InspectorCacheStorageAgent::requestEntries(ErrorString* errorString, const
String& cacheId, int skipCount, int pageSize, PassOwnPtr<RequestEntriesCallback>
callback) |
435 { | 436 { |
436 String cacheName; | 437 String cacheName; |
437 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); | 438 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); |
438 if (!cache) { | 439 if (!cache) { |
439 callback->sendFailure(*errorString); | 440 callback->sendFailure(*errorString); |
440 return; | 441 return; |
441 } | 442 } |
442 DataRequestParams params; | 443 DataRequestParams params; |
443 params.cacheName = cacheName; | 444 params.cacheName = cacheName; |
444 params.pageSize = pageSize; | 445 params.pageSize = pageSize; |
445 params.skipCount = skipCount; | 446 params.skipCount = skipCount; |
446 cache->dispatchOpen(new GetCacheForRequestData(params, callback), WebString(
cacheName)); | 447 cache->dispatchOpen(new GetCacheForRequestData(params, callback), WebString(
cacheName)); |
447 } | 448 } |
448 | 449 |
449 void InspectorCacheStorageAgent::deleteCache(ErrorString* errorString, const Str
ing& cacheId, PassRefPtr<DeleteCacheCallback> callback) | 450 void InspectorCacheStorageAgent::deleteCache(ErrorString* errorString, const Str
ing& cacheId, PassOwnPtr<DeleteCacheCallback> callback) |
450 { | 451 { |
451 String cacheName; | 452 String cacheName; |
452 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); | 453 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); |
453 if (!cache) { | 454 if (!cache) { |
454 callback->sendFailure(*errorString); | 455 callback->sendFailure(*errorString); |
455 return; | 456 return; |
456 } | 457 } |
457 cache->dispatchDelete(new DeleteCache(callback), WebString(cacheName)); | 458 cache->dispatchDelete(new DeleteCache(callback), WebString(cacheName)); |
458 } | 459 } |
459 | 460 |
460 void InspectorCacheStorageAgent::deleteEntry(ErrorString* errorString, const Str
ing& cacheId, const String& request, PassRefPtr<DeleteEntryCallback> callback) | 461 void InspectorCacheStorageAgent::deleteEntry(ErrorString* errorString, const Str
ing& cacheId, const String& request, PassOwnPtr<DeleteEntryCallback> callback) |
461 { | 462 { |
462 String cacheName; | 463 String cacheName; |
463 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); | 464 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); |
464 if (!cache) { | 465 if (!cache) { |
465 callback->sendFailure(*errorString); | 466 callback->sendFailure(*errorString); |
466 return; | 467 return; |
467 } | 468 } |
468 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, callback)
, WebString(cacheName)); | 469 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, callback)
, WebString(cacheName)); |
469 } | 470 } |
470 | 471 |
471 | 472 |
472 } // namespace blink | 473 } // namespace blink |
OLD | NEW |