| 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 "content/browser/cache_storage/cache_storage_cache.h" | 5 #include "content/browser/cache_storage/cache_storage_cache.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/barrier_closure.h" | 9 #include "base/barrier_closure.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 case CacheResponse::BASIC_TYPE: | 69 case CacheResponse::BASIC_TYPE: |
| 70 return blink::WebServiceWorkerResponseTypeBasic; | 70 return blink::WebServiceWorkerResponseTypeBasic; |
| 71 case CacheResponse::CORS_TYPE: | 71 case CacheResponse::CORS_TYPE: |
| 72 return blink::WebServiceWorkerResponseTypeCORS; | 72 return blink::WebServiceWorkerResponseTypeCORS; |
| 73 case CacheResponse::DEFAULT_TYPE: | 73 case CacheResponse::DEFAULT_TYPE: |
| 74 return blink::WebServiceWorkerResponseTypeDefault; | 74 return blink::WebServiceWorkerResponseTypeDefault; |
| 75 case CacheResponse::ERROR_TYPE: | 75 case CacheResponse::ERROR_TYPE: |
| 76 return blink::WebServiceWorkerResponseTypeError; | 76 return blink::WebServiceWorkerResponseTypeError; |
| 77 case CacheResponse::OPAQUE_TYPE: | 77 case CacheResponse::OPAQUE_TYPE: |
| 78 return blink::WebServiceWorkerResponseTypeOpaque; | 78 return blink::WebServiceWorkerResponseTypeOpaque; |
| 79 case CacheResponse::OPAQUE_REDIRECT_TYPE: |
| 80 return blink::WebServiceWorkerResponseTypeOpaqueRedirect; |
| 79 } | 81 } |
| 80 NOTREACHED(); | 82 NOTREACHED(); |
| 81 return blink::WebServiceWorkerResponseTypeOpaque; | 83 return blink::WebServiceWorkerResponseTypeOpaque; |
| 82 } | 84 } |
| 83 | 85 |
| 84 CacheResponse::ResponseType WebResponseTypeToProtoResponseType( | 86 CacheResponse::ResponseType WebResponseTypeToProtoResponseType( |
| 85 blink::WebServiceWorkerResponseType response_type) { | 87 blink::WebServiceWorkerResponseType response_type) { |
| 86 switch (response_type) { | 88 switch (response_type) { |
| 87 case blink::WebServiceWorkerResponseTypeBasic: | 89 case blink::WebServiceWorkerResponseTypeBasic: |
| 88 return CacheResponse::BASIC_TYPE; | 90 return CacheResponse::BASIC_TYPE; |
| 89 case blink::WebServiceWorkerResponseTypeCORS: | 91 case blink::WebServiceWorkerResponseTypeCORS: |
| 90 return CacheResponse::CORS_TYPE; | 92 return CacheResponse::CORS_TYPE; |
| 91 case blink::WebServiceWorkerResponseTypeDefault: | 93 case blink::WebServiceWorkerResponseTypeDefault: |
| 92 return CacheResponse::DEFAULT_TYPE; | 94 return CacheResponse::DEFAULT_TYPE; |
| 93 case blink::WebServiceWorkerResponseTypeError: | 95 case blink::WebServiceWorkerResponseTypeError: |
| 94 return CacheResponse::ERROR_TYPE; | 96 return CacheResponse::ERROR_TYPE; |
| 95 case blink::WebServiceWorkerResponseTypeOpaque: | 97 case blink::WebServiceWorkerResponseTypeOpaque: |
| 96 return CacheResponse::OPAQUE_TYPE; | 98 return CacheResponse::OPAQUE_TYPE; |
| 97 default: | 99 case blink::WebServiceWorkerResponseTypeOpaqueRedirect: |
| 98 // TODO(horo): Remove this when WebServiceWorkerResponseTypeOpaqueRedirect | 100 return CacheResponse::OPAQUE_REDIRECT_TYPE; |
| 99 // will be added in blink's WebServiceWorkerResponseType.h. | |
| 100 NOTREACHED(); | |
| 101 } | 101 } |
| 102 NOTREACHED(); | 102 NOTREACHED(); |
| 103 return CacheResponse::OPAQUE_TYPE; | 103 return CacheResponse::OPAQUE_TYPE; |
| 104 } | 104 } |
| 105 | 105 |
| 106 // Copy headers out of a cache entry and into a protobuf. The callback is | 106 // Copy headers out of a cache entry and into a protobuf. The callback is |
| 107 // guaranteed to be run. | 107 // guaranteed to be run. |
| 108 void ReadMetadata(disk_cache::Entry* entry, const MetadataCallback& callback); | 108 void ReadMetadata(disk_cache::Entry* entry, const MetadataCallback& callback); |
| 109 void ReadMetadataDidReadMetadata( | 109 void ReadMetadataDidReadMetadata( |
| 110 disk_cache::Entry* entry, | 110 disk_cache::Entry* entry, |
| (...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 DCHECK(BACKEND_OPEN == backend_state_ || initializing_); | 718 DCHECK(BACKEND_OPEN == backend_state_ || initializing_); |
| 719 DCHECK_EQ(CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT, operation.operation_type); | 719 DCHECK_EQ(CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT, operation.operation_type); |
| 720 | 720 |
| 721 scoped_ptr<ServiceWorkerFetchRequest> request(new ServiceWorkerFetchRequest( | 721 scoped_ptr<ServiceWorkerFetchRequest> request(new ServiceWorkerFetchRequest( |
| 722 operation.request.url, operation.request.method, | 722 operation.request.url, operation.request.method, |
| 723 operation.request.headers, operation.request.referrer, | 723 operation.request.headers, operation.request.referrer, |
| 724 operation.request.is_reload)); | 724 operation.request.is_reload)); |
| 725 | 725 |
| 726 // We don't support streaming for cache. | 726 // We don't support streaming for cache. |
| 727 DCHECK(operation.response.stream_url.is_empty()); | 727 DCHECK(operation.response.stream_url.is_empty()); |
| 728 // We don't support the body of redirect response. |
| 729 DCHECK(!(operation.response.response_type == |
| 730 blink::WebServiceWorkerResponseTypeOpaqueRedirect && |
| 731 operation.response.blob_size)); |
| 728 scoped_ptr<ServiceWorkerResponse> response(new ServiceWorkerResponse( | 732 scoped_ptr<ServiceWorkerResponse> response(new ServiceWorkerResponse( |
| 729 operation.response.url, operation.response.status_code, | 733 operation.response.url, operation.response.status_code, |
| 730 operation.response.status_text, operation.response.response_type, | 734 operation.response.status_text, operation.response.response_type, |
| 731 operation.response.headers, operation.response.blob_uuid, | 735 operation.response.headers, operation.response.blob_uuid, |
| 732 operation.response.blob_size, operation.response.stream_url, | 736 operation.response.blob_size, operation.response.stream_url, |
| 733 operation.response.error)); | 737 operation.response.error)); |
| 734 | 738 |
| 735 scoped_ptr<storage::BlobDataHandle> blob_data_handle; | 739 scoped_ptr<storage::BlobDataHandle> blob_data_handle; |
| 736 | 740 |
| 737 if (!response->blob_uuid.empty()) { | 741 if (!response->blob_uuid.empty()) { |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1242 storage::BlobDataBuilder blob_data(response->blob_uuid); | 1246 storage::BlobDataBuilder blob_data(response->blob_uuid); |
| 1243 | 1247 |
| 1244 disk_cache::Entry* temp_entry = entry.get(); | 1248 disk_cache::Entry* temp_entry = entry.get(); |
| 1245 blob_data.AppendDiskCacheEntry( | 1249 blob_data.AppendDiskCacheEntry( |
| 1246 new CacheStorageCacheDataHandle(this, entry.Pass()), temp_entry, | 1250 new CacheStorageCacheDataHandle(this, entry.Pass()), temp_entry, |
| 1247 INDEX_RESPONSE_BODY); | 1251 INDEX_RESPONSE_BODY); |
| 1248 return blob_storage_context_->AddFinishedBlob(&blob_data); | 1252 return blob_storage_context_->AddFinishedBlob(&blob_data); |
| 1249 } | 1253 } |
| 1250 | 1254 |
| 1251 } // namespace content | 1255 } // namespace content |
| OLD | NEW |