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

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

Issue 1271733002: [2/3 chromium] Support redirect option of Request and "opaqueredirect" response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add _MODE to avoid compile error at Windows. Created 5 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
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « content/browser/cache_storage/cache_storage.proto ('k') | content/browser/loader/resource_dispatcher_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698