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

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

Issue 1750333002: Reland of Pipe response_time from FetchManager to CacheStorage and ServiceWorkerURLRequestJob. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 <stddef.h> 7 #include <stddef.h>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 DCHECK(operation.response.stream_url.is_empty()); 766 DCHECK(operation.response.stream_url.is_empty());
767 // We don't support the body of redirect response. 767 // We don't support the body of redirect response.
768 DCHECK(!(operation.response.response_type == 768 DCHECK(!(operation.response.response_type ==
769 blink::WebServiceWorkerResponseTypeOpaqueRedirect && 769 blink::WebServiceWorkerResponseTypeOpaqueRedirect &&
770 operation.response.blob_size)); 770 operation.response.blob_size));
771 scoped_ptr<ServiceWorkerResponse> response(new ServiceWorkerResponse( 771 scoped_ptr<ServiceWorkerResponse> response(new ServiceWorkerResponse(
772 operation.response.url, operation.response.status_code, 772 operation.response.url, operation.response.status_code,
773 operation.response.status_text, operation.response.response_type, 773 operation.response.status_text, operation.response.response_type,
774 operation.response.headers, operation.response.blob_uuid, 774 operation.response.headers, operation.response.blob_uuid,
775 operation.response.blob_size, operation.response.stream_url, 775 operation.response.blob_size, operation.response.stream_url,
776 operation.response.error)); 776 operation.response.error, operation.response.response_time));
777 777
778 scoped_ptr<storage::BlobDataHandle> blob_data_handle; 778 scoped_ptr<storage::BlobDataHandle> blob_data_handle;
779 779
780 if (!response->blob_uuid.empty()) { 780 if (!response->blob_uuid.empty()) {
781 if (!blob_storage_context_) { 781 if (!blob_storage_context_) {
782 callback.Run(CACHE_STORAGE_ERROR_STORAGE); 782 callback.Run(CACHE_STORAGE_ERROR_STORAGE);
783 return; 783 return;
784 } 784 }
785 blob_data_handle = 785 blob_data_handle =
786 blob_storage_context_->GetBlobDataFromUUID(response->blob_uuid); 786 blob_storage_context_->GetBlobDataFromUUID(response->blob_uuid);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 header_map->set_name(it->first); 891 header_map->set_name(it->first);
892 header_map->set_value(it->second); 892 header_map->set_value(it->second);
893 } 893 }
894 894
895 CacheResponse* response_metadata = metadata.mutable_response(); 895 CacheResponse* response_metadata = metadata.mutable_response();
896 response_metadata->set_status_code(put_context->response->status_code); 896 response_metadata->set_status_code(put_context->response->status_code);
897 response_metadata->set_status_text(put_context->response->status_text); 897 response_metadata->set_status_text(put_context->response->status_text);
898 response_metadata->set_response_type( 898 response_metadata->set_response_type(
899 WebResponseTypeToProtoResponseType(put_context->response->response_type)); 899 WebResponseTypeToProtoResponseType(put_context->response->response_type));
900 response_metadata->set_url(put_context->response->url.spec()); 900 response_metadata->set_url(put_context->response->url.spec());
901 response_metadata->set_response_time(
902 put_context->response->response_time.ToInternalValue());
901 for (ServiceWorkerHeaderMap::const_iterator it = 903 for (ServiceWorkerHeaderMap::const_iterator it =
902 put_context->response->headers.begin(); 904 put_context->response->headers.begin();
903 it != put_context->response->headers.end(); ++it) { 905 it != put_context->response->headers.end(); ++it) {
904 DCHECK_EQ(std::string::npos, it->first.find('\0')); 906 DCHECK_EQ(std::string::npos, it->first.find('\0'));
905 DCHECK_EQ(std::string::npos, it->second.find('\0')); 907 DCHECK_EQ(std::string::npos, it->second.find('\0'));
906 CacheHeaderMap* header_map = response_metadata->add_headers(); 908 CacheHeaderMap* header_map = response_metadata->add_headers();
907 header_map->set_name(it->first); 909 header_map->set_name(it->first);
908 header_map->set_value(it->second); 910 header_map->set_value(it->second);
909 } 911 }
910 912
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 } 1366 }
1365 1367
1366 void CacheStorageCache::PopulateResponseMetadata( 1368 void CacheStorageCache::PopulateResponseMetadata(
1367 const CacheMetadata& metadata, 1369 const CacheMetadata& metadata,
1368 ServiceWorkerResponse* response) { 1370 ServiceWorkerResponse* response) {
1369 *response = ServiceWorkerResponse( 1371 *response = ServiceWorkerResponse(
1370 GURL(metadata.response().url()), metadata.response().status_code(), 1372 GURL(metadata.response().url()), metadata.response().status_code(),
1371 metadata.response().status_text(), 1373 metadata.response().status_text(),
1372 ProtoResponseTypeToWebResponseType(metadata.response().response_type()), 1374 ProtoResponseTypeToWebResponseType(metadata.response().response_type()),
1373 ServiceWorkerHeaderMap(), "", 0, GURL(), 1375 ServiceWorkerHeaderMap(), "", 0, GURL(),
1374 blink::WebServiceWorkerResponseErrorUnknown); 1376 blink::WebServiceWorkerResponseErrorUnknown,
1377 base::Time::FromInternalValue(metadata.response().response_time()));
1375 1378
1376 for (int i = 0; i < metadata.response().headers_size(); ++i) { 1379 for (int i = 0; i < metadata.response().headers_size(); ++i) {
1377 const CacheHeaderMap header = metadata.response().headers(i); 1380 const CacheHeaderMap header = metadata.response().headers(i);
1378 DCHECK_EQ(std::string::npos, header.name().find('\0')); 1381 DCHECK_EQ(std::string::npos, header.name().find('\0'));
1379 DCHECK_EQ(std::string::npos, header.value().find('\0')); 1382 DCHECK_EQ(std::string::npos, header.value().find('\0'));
1380 response->headers.insert(std::make_pair(header.name(), header.value())); 1383 response->headers.insert(std::make_pair(header.name(), header.value()));
1381 } 1384 }
1382 } 1385 }
1383 1386
1384 scoped_ptr<storage::BlobDataHandle> CacheStorageCache::PopulateResponseBody( 1387 scoped_ptr<storage::BlobDataHandle> CacheStorageCache::PopulateResponseBody(
1385 disk_cache::ScopedEntryPtr entry, 1388 disk_cache::ScopedEntryPtr entry,
1386 ServiceWorkerResponse* response) { 1389 ServiceWorkerResponse* response) {
1387 DCHECK(blob_storage_context_); 1390 DCHECK(blob_storage_context_);
1388 1391
1389 // Create a blob with the response body data. 1392 // Create a blob with the response body data.
1390 response->blob_size = entry->GetDataSize(INDEX_RESPONSE_BODY); 1393 response->blob_size = entry->GetDataSize(INDEX_RESPONSE_BODY);
1391 response->blob_uuid = base::GenerateGUID(); 1394 response->blob_uuid = base::GenerateGUID();
1392 storage::BlobDataBuilder blob_data(response->blob_uuid); 1395 storage::BlobDataBuilder blob_data(response->blob_uuid);
1393 1396
1394 disk_cache::Entry* temp_entry = entry.get(); 1397 disk_cache::Entry* temp_entry = entry.get();
1395 blob_data.AppendDiskCacheEntry( 1398 blob_data.AppendDiskCacheEntry(
1396 new CacheStorageCacheDataHandle(this, std::move(entry)), temp_entry, 1399 new CacheStorageCacheDataHandle(this, std::move(entry)), temp_entry,
1397 INDEX_RESPONSE_BODY); 1400 INDEX_RESPONSE_BODY);
1398 return blob_storage_context_->AddFinishedBlob(&blob_data); 1401 return blob_storage_context_->AddFinishedBlob(&blob_data);
1399 } 1402 }
1400 1403
1401 } // namespace content 1404 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/cache_storage/cache_storage.proto ('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