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

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

Issue 2703343002: ServiceWorker: Use mojo's data pipe for respondWith(stream) (Closed)
Patch Set: Addressed comments from kinuko and haraken Created 3 years, 8 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
« no previous file with comments | « content/browser/DEPS ('k') | content/browser/cache_storage/cache_storage_cache_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 const proto::CacheHeaderMap header = metadata.response().headers(i); 233 const proto::CacheHeaderMap header = metadata.response().headers(i);
234 DCHECK_EQ(std::string::npos, header.name().find('\0')); 234 DCHECK_EQ(std::string::npos, header.name().find('\0'));
235 DCHECK_EQ(std::string::npos, header.value().find('\0')); 235 DCHECK_EQ(std::string::npos, header.value().find('\0'));
236 headers->insert(std::make_pair(header.name(), header.value())); 236 headers->insert(std::make_pair(header.name(), header.value()));
237 } 237 }
238 238
239 return base::MakeUnique<ServiceWorkerResponse>( 239 return base::MakeUnique<ServiceWorkerResponse>(
240 std::move(url_list), metadata.response().status_code(), 240 std::move(url_list), metadata.response().status_code(),
241 metadata.response().status_text(), 241 metadata.response().status_text(),
242 ProtoResponseTypeToWebResponseType(metadata.response().response_type()), 242 ProtoResponseTypeToWebResponseType(metadata.response().response_type()),
243 std::move(headers), "", 0, GURL(), 243 std::move(headers), "", 0, blink::kWebServiceWorkerResponseErrorUnknown,
244 blink::kWebServiceWorkerResponseErrorUnknown,
245 base::Time::FromInternalValue(metadata.response().response_time()), 244 base::Time::FromInternalValue(metadata.response().response_time()),
246 true /* is_in_cache_storage */, cache_name, 245 true /* is_in_cache_storage */, cache_name,
247 base::MakeUnique<ServiceWorkerHeaderList>( 246 base::MakeUnique<ServiceWorkerHeaderList>(
248 metadata.response().cors_exposed_header_names().begin(), 247 metadata.response().cors_exposed_header_names().begin(),
249 metadata.response().cors_exposed_header_names().end())); 248 metadata.response().cors_exposed_header_names().end()));
250 } 249 }
251 250
252 } // namespace 251 } // namespace
253 252
254 // The state needed to pass between CacheStorageCache::Put callbacks. 253 // The state needed to pass between CacheStorageCache::Put callbacks.
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 const ErrorCallback& callback) { 1009 const ErrorCallback& callback) {
1011 DCHECK(BACKEND_OPEN == backend_state_ || initializing_); 1010 DCHECK(BACKEND_OPEN == backend_state_ || initializing_);
1012 DCHECK_EQ(CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT, operation.operation_type); 1011 DCHECK_EQ(CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT, operation.operation_type);
1013 1012
1014 std::unique_ptr<ServiceWorkerFetchRequest> request( 1013 std::unique_ptr<ServiceWorkerFetchRequest> request(
1015 new ServiceWorkerFetchRequest( 1014 new ServiceWorkerFetchRequest(
1016 operation.request.url, operation.request.method, 1015 operation.request.url, operation.request.method,
1017 operation.request.headers, operation.request.referrer, 1016 operation.request.headers, operation.request.referrer,
1018 operation.request.is_reload)); 1017 operation.request.is_reload));
1019 1018
1020 // We don't support streaming for cache.
1021 DCHECK(operation.response.stream_url.is_empty());
1022
1023 std::unique_ptr<ServiceWorkerResponse> response = 1019 std::unique_ptr<ServiceWorkerResponse> response =
1024 base::MakeUnique<ServiceWorkerResponse>(operation.response); 1020 base::MakeUnique<ServiceWorkerResponse>(operation.response);
1025 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1021 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1026 1022
1027 if (!response->blob_uuid.empty()) { 1023 if (!response->blob_uuid.empty()) {
1028 if (!blob_storage_context_) { 1024 if (!blob_storage_context_) {
1029 callback.Run(CACHE_STORAGE_ERROR_STORAGE); 1025 callback.Run(CACHE_STORAGE_ERROR_STORAGE);
1030 return; 1026 return;
1031 } 1027 }
1032 blob_data_handle = 1028 blob_data_handle =
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 temp_entry, INDEX_RESPONSE_BODY, INDEX_SIDE_DATA); 1483 temp_entry, INDEX_RESPONSE_BODY, INDEX_SIDE_DATA);
1488 return blob_storage_context_->AddFinishedBlob(&blob_data); 1484 return blob_storage_context_->AddFinishedBlob(&blob_data);
1489 } 1485 }
1490 1486
1491 std::unique_ptr<CacheStorageCacheHandle> 1487 std::unique_ptr<CacheStorageCacheHandle>
1492 CacheStorageCache::CreateCacheHandle() { 1488 CacheStorageCache::CreateCacheHandle() {
1493 return cache_storage_->CreateCacheHandle(this); 1489 return cache_storage_->CreateCacheHandle(this);
1494 } 1490 }
1495 1491
1496 } // namespace content 1492 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/DEPS ('k') | content/browser/cache_storage/cache_storage_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698