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

Side by Side Diff: content/browser/cache_storage/cache_storage_dispatcher_host.cc

Issue 1132683003: CacheStorage: Merge CacheStorage::CacheStorageError and CacheStorageCache::ErrorType (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix more Created 5 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
OLDNEW
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/cache_storage/cache_storage_dispatcher_host.h" 5 #include "content/browser/cache_storage/cache_storage_dispatcher_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "base/trace_event/trace_event.h" 11 #include "base/trace_event/trace_event.h"
12 #include "content/browser/cache_storage/cache_storage_cache.h" 12 #include "content/browser/cache_storage/cache_storage_cache.h"
13 #include "content/browser/cache_storage/cache_storage_context_impl.h" 13 #include "content/browser/cache_storage/cache_storage_context_impl.h"
14 #include "content/browser/cache_storage/cache_storage_manager.h" 14 #include "content/browser/cache_storage/cache_storage_manager.h"
15 #include "content/common/cache_storage/cache_storage_messages.h" 15 #include "content/common/cache_storage/cache_storage_messages.h"
16 #include "content/public/browser/content_browser_client.h" 16 #include "content/public/browser/content_browser_client.h"
17 #include "storage/browser/blob/blob_data_handle.h" 17 #include "storage/browser/blob/blob_data_handle.h"
18 #include "third_party/WebKit/public/platform/WebServiceWorkerCacheError.h" 18 #include "third_party/WebKit/public/platform/WebServiceWorkerCacheError.h"
19 19
20 namespace content { 20 namespace content {
21 21
22 namespace { 22 namespace {
23 23
24 const uint32 kFilteredMessageClasses[] = {CacheStorageMsgStart}; 24 const uint32 kFilteredMessageClasses[] = {CacheStorageMsgStart};
25 25
26 blink::WebServiceWorkerCacheError ToWebServiceWorkerCacheError( 26 blink::WebServiceWorkerCacheError ToWebServiceWorkerCacheError(
27 CacheStorage::CacheStorageError err) { 27 CacheStorageError err) {
28 switch (err) { 28 switch (err) {
29 case CacheStorage::CACHE_STORAGE_ERROR_NO_ERROR: 29 case CACHE_STORAGE_OK:
30 NOTREACHED(); 30 NOTREACHED();
31 return blink::WebServiceWorkerCacheErrorNotImplemented; 31 return blink::WebServiceWorkerCacheErrorNotImplemented;
32 case CacheStorage::CACHE_STORAGE_ERROR_NOT_IMPLEMENTED: 32 case CACHE_STORAGE_ERROR_EXISTS:
33 return blink::WebServiceWorkerCacheErrorNotImplemented; 33 return blink::WebServiceWorkerCacheErrorExists;
34 case CacheStorage::CACHE_STORAGE_ERROR_NOT_FOUND: 34 case CACHE_STORAGE_ERROR_STORAGE:
35 // TODO(nhiroki): Add WebServiceWorkerCacheError equivalent to
36 // CACHE_STORAGE_ERROR_STORAGE.
35 return blink::WebServiceWorkerCacheErrorNotFound; 37 return blink::WebServiceWorkerCacheErrorNotFound;
36 case CacheStorage::CACHE_STORAGE_ERROR_EXISTS: 38 case CACHE_STORAGE_ERROR_NOT_FOUND:
37 return blink::WebServiceWorkerCacheErrorExists;
38 case CacheStorage::CACHE_STORAGE_ERROR_STORAGE:
39 // TODO(jkarlin): Change this to CACHE_STORAGE_ERROR_STORAGE once that's
40 // added.
41 return blink::WebServiceWorkerCacheErrorNotFound;
42 case CacheStorage::CACHE_STORAGE_ERROR_CLOSING:
43 // TODO(jkarlin): Update this to CACHE_STORAGE_ERROR_CLOSING once that's
44 // added.
45 return blink::WebServiceWorkerCacheErrorNotFound; 39 return blink::WebServiceWorkerCacheErrorNotFound;
46 } 40 }
47 NOTREACHED(); 41 NOTREACHED();
48 return blink::WebServiceWorkerCacheErrorNotImplemented;
49 }
50
51 // TODO(jkarlin): CacheStorageCache and CacheStorage should share
52 // an error enum type.
53 blink::WebServiceWorkerCacheError CacheErrorToWebServiceWorkerCacheError(
54 CacheStorageCache::ErrorType err) {
55 switch (err) {
56 case CacheStorageCache::ERROR_TYPE_OK:
57 NOTREACHED();
58 return blink::WebServiceWorkerCacheErrorNotImplemented;
59 case CacheStorageCache::ERROR_TYPE_EXISTS:
60 return blink::WebServiceWorkerCacheErrorExists;
61 case CacheStorageCache::ERROR_TYPE_STORAGE:
62 // TODO(jkarlin): Change this to CACHE_STORAGE_ERROR_STORAGE once that's
63 // added.
64 return blink::WebServiceWorkerCacheErrorNotFound;
65 case CacheStorageCache::ERROR_TYPE_NOT_FOUND:
66 return blink::WebServiceWorkerCacheErrorNotFound;
67 }
68 NOTREACHED();
69 return blink::WebServiceWorkerCacheErrorNotImplemented; 42 return blink::WebServiceWorkerCacheErrorNotImplemented;
70 } 43 }
71 44
72 } // namespace 45 } // namespace
73 46
74 CacheStorageDispatcherHost::CacheStorageDispatcherHost() 47 CacheStorageDispatcherHost::CacheStorageDispatcherHost()
75 : BrowserMessageFilter(kFilteredMessageClasses, 48 : BrowserMessageFilter(kFilteredMessageClasses,
76 arraysize(kFilteredMessageClasses)) { 49 arraysize(kFilteredMessageClasses)) {
77 } 50 }
78 51
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 } 285 }
313 286
314 void CacheStorageDispatcherHost::OnBlobDataHandled(const std::string& uuid) { 287 void CacheStorageDispatcherHost::OnBlobDataHandled(const std::string& uuid) {
315 DropBlobDataHandle(uuid); 288 DropBlobDataHandle(uuid);
316 } 289 }
317 290
318 void CacheStorageDispatcherHost::OnCacheStorageHasCallback( 291 void CacheStorageDispatcherHost::OnCacheStorageHasCallback(
319 int thread_id, 292 int thread_id,
320 int request_id, 293 int request_id,
321 bool has_cache, 294 bool has_cache,
322 CacheStorage::CacheStorageError error) { 295 CacheStorageError error) {
323 if (error != CacheStorage::CACHE_STORAGE_ERROR_NO_ERROR) { 296 if (error != CACHE_STORAGE_OK) {
324 Send(new CacheStorageMsg_CacheStorageHasError( 297 Send(new CacheStorageMsg_CacheStorageHasError(
325 thread_id, request_id, ToWebServiceWorkerCacheError(error))); 298 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
326 return; 299 return;
327 } 300 }
328 if (!has_cache) { 301 if (!has_cache) {
329 Send(new CacheStorageMsg_CacheStorageHasError( 302 Send(new CacheStorageMsg_CacheStorageHasError(
330 thread_id, request_id, blink::WebServiceWorkerCacheErrorNotFound)); 303 thread_id, request_id, blink::WebServiceWorkerCacheErrorNotFound));
331 return; 304 return;
332 } 305 }
333 Send(new CacheStorageMsg_CacheStorageHasSuccess(thread_id, request_id)); 306 Send(new CacheStorageMsg_CacheStorageHasSuccess(thread_id, request_id));
334 } 307 }
335 308
336 void CacheStorageDispatcherHost::OnCacheStorageOpenCallback( 309 void CacheStorageDispatcherHost::OnCacheStorageOpenCallback(
337 int thread_id, 310 int thread_id,
338 int request_id, 311 int request_id,
339 const scoped_refptr<CacheStorageCache>& cache, 312 const scoped_refptr<CacheStorageCache>& cache,
340 CacheStorage::CacheStorageError error) { 313 CacheStorageError error) {
341 if (error != CacheStorage::CACHE_STORAGE_ERROR_NO_ERROR) { 314 if (error != CACHE_STORAGE_OK) {
342 Send(new CacheStorageMsg_CacheStorageOpenError( 315 Send(new CacheStorageMsg_CacheStorageOpenError(
343 thread_id, request_id, ToWebServiceWorkerCacheError(error))); 316 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
344 return; 317 return;
345 } 318 }
346 CacheID cache_id = StoreCacheReference(cache); 319 CacheID cache_id = StoreCacheReference(cache);
347 Send(new CacheStorageMsg_CacheStorageOpenSuccess(thread_id, request_id, 320 Send(new CacheStorageMsg_CacheStorageOpenSuccess(thread_id, request_id,
348 cache_id)); 321 cache_id));
349 } 322 }
350 323
351 void CacheStorageDispatcherHost::OnCacheStorageDeleteCallback( 324 void CacheStorageDispatcherHost::OnCacheStorageDeleteCallback(
352 int thread_id, 325 int thread_id,
353 int request_id, 326 int request_id,
354 bool deleted, 327 bool deleted,
355 CacheStorage::CacheStorageError error) { 328 CacheStorageError error) {
356 if (!deleted || error != CacheStorage::CACHE_STORAGE_ERROR_NO_ERROR) { 329 if (!deleted || error != CACHE_STORAGE_OK) {
357 Send(new CacheStorageMsg_CacheStorageDeleteError( 330 Send(new CacheStorageMsg_CacheStorageDeleteError(
358 thread_id, request_id, ToWebServiceWorkerCacheError(error))); 331 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
359 return; 332 return;
360 } 333 }
361 Send(new CacheStorageMsg_CacheStorageDeleteSuccess(thread_id, request_id)); 334 Send(new CacheStorageMsg_CacheStorageDeleteSuccess(thread_id, request_id));
362 } 335 }
363 336
364 void CacheStorageDispatcherHost::OnCacheStorageKeysCallback( 337 void CacheStorageDispatcherHost::OnCacheStorageKeysCallback(
365 int thread_id, 338 int thread_id,
366 int request_id, 339 int request_id,
367 const std::vector<std::string>& strings, 340 const std::vector<std::string>& strings,
368 CacheStorage::CacheStorageError error) { 341 CacheStorageError error) {
369 if (error != CacheStorage::CACHE_STORAGE_ERROR_NO_ERROR) { 342 if (error != CACHE_STORAGE_OK) {
370 Send(new CacheStorageMsg_CacheStorageKeysError( 343 Send(new CacheStorageMsg_CacheStorageKeysError(
371 thread_id, request_id, ToWebServiceWorkerCacheError(error))); 344 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
372 return; 345 return;
373 } 346 }
374 347
375 std::vector<base::string16> string16s; 348 std::vector<base::string16> string16s;
376 for (size_t i = 0, max = strings.size(); i < max; ++i) { 349 for (size_t i = 0, max = strings.size(); i < max; ++i) {
377 string16s.push_back(base::UTF8ToUTF16(strings[i])); 350 string16s.push_back(base::UTF8ToUTF16(strings[i]));
378 } 351 }
379 Send(new CacheStorageMsg_CacheStorageKeysSuccess(thread_id, request_id, 352 Send(new CacheStorageMsg_CacheStorageKeysSuccess(thread_id, request_id,
380 string16s)); 353 string16s));
381 } 354 }
382 355
383 void CacheStorageDispatcherHost::OnCacheStorageMatchCallback( 356 void CacheStorageDispatcherHost::OnCacheStorageMatchCallback(
384 int thread_id, 357 int thread_id,
385 int request_id, 358 int request_id,
386 CacheStorageCache::ErrorType error, 359 CacheStorageError error,
387 scoped_ptr<ServiceWorkerResponse> response, 360 scoped_ptr<ServiceWorkerResponse> response,
388 scoped_ptr<storage::BlobDataHandle> blob_data_handle) { 361 scoped_ptr<storage::BlobDataHandle> blob_data_handle) {
389 if (error != CacheStorageCache::ERROR_TYPE_OK) { 362 if (error != CACHE_STORAGE_OK) {
390 Send(new CacheStorageMsg_CacheStorageMatchError( 363 Send(new CacheStorageMsg_CacheStorageMatchError(
391 thread_id, request_id, CacheErrorToWebServiceWorkerCacheError(error))); 364 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
392 return; 365 return;
393 } 366 }
394 367
395 if (blob_data_handle) 368 if (blob_data_handle)
396 StoreBlobDataHandle(blob_data_handle.Pass()); 369 StoreBlobDataHandle(blob_data_handle.Pass());
397 370
398 Send(new CacheStorageMsg_CacheStorageMatchSuccess(thread_id, request_id, 371 Send(new CacheStorageMsg_CacheStorageMatchSuccess(thread_id, request_id,
399 *response)); 372 *response));
400 } 373 }
401 374
402 void CacheStorageDispatcherHost::OnCacheMatchCallback( 375 void CacheStorageDispatcherHost::OnCacheMatchCallback(
403 int thread_id, 376 int thread_id,
404 int request_id, 377 int request_id,
405 const scoped_refptr<CacheStorageCache>& cache, 378 const scoped_refptr<CacheStorageCache>& cache,
406 CacheStorageCache::ErrorType error, 379 CacheStorageError error,
407 scoped_ptr<ServiceWorkerResponse> response, 380 scoped_ptr<ServiceWorkerResponse> response,
408 scoped_ptr<storage::BlobDataHandle> blob_data_handle) { 381 scoped_ptr<storage::BlobDataHandle> blob_data_handle) {
409 if (error != CacheStorageCache::ERROR_TYPE_OK) { 382 if (error != CACHE_STORAGE_OK) {
410 Send(new CacheStorageMsg_CacheMatchError( 383 Send(new CacheStorageMsg_CacheMatchError(
411 thread_id, request_id, CacheErrorToWebServiceWorkerCacheError(error))); 384 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
412 return; 385 return;
413 } 386 }
414 387
415 if (blob_data_handle) 388 if (blob_data_handle)
416 StoreBlobDataHandle(blob_data_handle.Pass()); 389 StoreBlobDataHandle(blob_data_handle.Pass());
417 390
418 Send(new CacheStorageMsg_CacheMatchSuccess(thread_id, request_id, *response)); 391 Send(new CacheStorageMsg_CacheMatchSuccess(thread_id, request_id, *response));
419 } 392 }
420 393
421 void CacheStorageDispatcherHost::OnCacheKeysCallback( 394 void CacheStorageDispatcherHost::OnCacheKeysCallback(
422 int thread_id, 395 int thread_id,
423 int request_id, 396 int request_id,
424 const scoped_refptr<CacheStorageCache>& cache, 397 const scoped_refptr<CacheStorageCache>& cache,
425 CacheStorageCache::ErrorType error, 398 CacheStorageError error,
426 scoped_ptr<CacheStorageCache::Requests> requests) { 399 scoped_ptr<CacheStorageCache::Requests> requests) {
427 if (error != CacheStorageCache::ERROR_TYPE_OK) { 400 if (error != CACHE_STORAGE_OK) {
428 Send(new CacheStorageMsg_CacheKeysError( 401 Send(new CacheStorageMsg_CacheKeysError(
429 thread_id, request_id, CacheErrorToWebServiceWorkerCacheError(error))); 402 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
430 return; 403 return;
431 } 404 }
432 405
433 CacheStorageCache::Requests out; 406 CacheStorageCache::Requests out;
434 407
435 for (CacheStorageCache::Requests::const_iterator it = requests->begin(); 408 for (CacheStorageCache::Requests::const_iterator it = requests->begin();
436 it != requests->end(); ++it) { 409 it != requests->end(); ++it) {
437 ServiceWorkerFetchRequest request(it->url, it->method, it->headers, 410 ServiceWorkerFetchRequest request(it->url, it->method, it->headers,
438 it->referrer, it->is_reload); 411 it->referrer, it->is_reload);
439 out.push_back(request); 412 out.push_back(request);
440 } 413 }
441 414
442 Send(new CacheStorageMsg_CacheKeysSuccess(thread_id, request_id, out)); 415 Send(new CacheStorageMsg_CacheKeysSuccess(thread_id, request_id, out));
443 } 416 }
444 417
445 void CacheStorageDispatcherHost::OnCacheBatchCallback( 418 void CacheStorageDispatcherHost::OnCacheBatchCallback(
446 int thread_id, 419 int thread_id,
447 int request_id, 420 int request_id,
448 const scoped_refptr<CacheStorageCache>& cache, 421 const scoped_refptr<CacheStorageCache>& cache,
449 CacheStorageCache::ErrorType error) { 422 CacheStorageError error) {
450 if (error != CacheStorageCache::ERROR_TYPE_OK) { 423 if (error != CACHE_STORAGE_OK) {
451 Send(new CacheStorageMsg_CacheBatchError( 424 Send(new CacheStorageMsg_CacheBatchError(
452 thread_id, request_id, CacheErrorToWebServiceWorkerCacheError(error))); 425 thread_id, request_id, ToWebServiceWorkerCacheError(error)));
453 return; 426 return;
454 } 427 }
455 428
456 Send(new CacheStorageMsg_CacheBatchSuccess(thread_id, request_id)); 429 Send(new CacheStorageMsg_CacheBatchSuccess(thread_id, request_id));
457 } 430 }
458 431
459 CacheStorageDispatcherHost::CacheID 432 CacheStorageDispatcherHost::CacheID
460 CacheStorageDispatcherHost::StoreCacheReference( 433 CacheStorageDispatcherHost::StoreCacheReference(
461 const scoped_refptr<CacheStorageCache>& cache) { 434 const scoped_refptr<CacheStorageCache>& cache) {
462 int cache_id = next_cache_id_++; 435 int cache_id = next_cache_id_++;
(...skipping 18 matching lines...) Expand all
481 UUIDToBlobDataHandleList::iterator it = blob_handle_store_.find(uuid); 454 UUIDToBlobDataHandleList::iterator it = blob_handle_store_.find(uuid);
482 if (it == blob_handle_store_.end()) 455 if (it == blob_handle_store_.end())
483 return; 456 return;
484 DCHECK(!it->second.empty()); 457 DCHECK(!it->second.empty());
485 it->second.pop_front(); 458 it->second.pop_front();
486 if (it->second.empty()) 459 if (it->second.empty())
487 blob_handle_store_.erase(it); 460 blob_handle_store_.erase(it);
488 } 461 }
489 462
490 } // namespace content 463 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698