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

Side by Side Diff: content/renderer/service_worker/service_worker_type_util.cc

Issue 2516353002: Introduce url_list to the Response scheme of CacheStorage. (Closed)
Patch Set: implicit conversion WebURL <-> GURL and WebVector <- vector Created 4 years 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/renderer/service_worker/service_worker_type_util.h" 5 #include "content/renderer/service_worker/service_worker_type_util.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/ptr_util.h"
10 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
11 #include "content/common/service_worker/service_worker_types.h" 12 #include "content/common/service_worker/service_worker_types.h"
12 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h" 13 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
13 #include "third_party/WebKit/public/platform/WebString.h" 14 #include "third_party/WebKit/public/platform/WebString.h"
14 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h" 15 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerRequest.h"
15 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h" 16 #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWor kerResponse.h"
16 17
17 namespace content { 18 namespace content {
18 19
19 namespace { 20 namespace {
(...skipping 16 matching lines...) Expand all
36 37
37 private: 38 private:
38 ServiceWorkerHeaderMap* const headers_; 39 ServiceWorkerHeaderMap* const headers_;
39 }; 40 };
40 41
41 std::unique_ptr<HeaderVisitor> MakeHeaderVisitor( 42 std::unique_ptr<HeaderVisitor> MakeHeaderVisitor(
42 ServiceWorkerHeaderMap* headers) { 43 ServiceWorkerHeaderMap* headers) {
43 return std::unique_ptr<HeaderVisitor>(new HeaderVisitor(headers)); 44 return std::unique_ptr<HeaderVisitor>(new HeaderVisitor(headers));
44 } 45 }
45 46
47 std::unique_ptr<ServiceWorkerHeaderMap> GetHeaderMap(
48 const blink::WebServiceWorkerResponse& web_response) {
49 std::unique_ptr<ServiceWorkerHeaderMap> result =
50 base::MakeUnique<ServiceWorkerHeaderMap>();
51 web_response.visitHTTPHeaderFields(MakeHeaderVisitor(result.get()).get());
52 return result;
53 }
54
55 std::unique_ptr<ServiceWorkerHeaderList> GetHeaderList(
56 const blink::WebVector<blink::WebString>& web_headers) {
57 std::unique_ptr<ServiceWorkerHeaderList> result =
58 base::MakeUnique<ServiceWorkerHeaderList>(web_headers.size());
59 std::transform(web_headers.begin(), web_headers.end(), result->begin(),
60 [](const blink::WebString& s) { return s.latin1(); });
61 return result;
62 }
63
64 std::unique_ptr<std::vector<GURL>> GetURLList(
65 const blink::WebVector<blink::WebURL>& web_url_list) {
66 std::unique_ptr<std::vector<GURL>> result =
67 base::MakeUnique<std::vector<GURL>>(web_url_list.size());
68 std::transform(web_url_list.begin(), web_url_list.end(), result->begin(),
69 [](const blink::WebURL& url) { return url; });
70 return result;
71 }
72
46 } // namespace 73 } // namespace
47 74
48 void GetServiceWorkerHeaderMapFromWebRequest( 75 void GetServiceWorkerHeaderMapFromWebRequest(
49 const blink::WebServiceWorkerRequest& web_request, 76 const blink::WebServiceWorkerRequest& web_request,
50 ServiceWorkerHeaderMap* headers) { 77 ServiceWorkerHeaderMap* headers) {
51 DCHECK(headers); 78 DCHECK(headers);
52 DCHECK(headers->empty()); 79 DCHECK(headers->empty());
53 web_request.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get()); 80 web_request.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get());
54 } 81 }
55 82
56 void GetServiceWorkerHeaderMapFromWebResponse( 83 ServiceWorkerResponse GetServiceWorkerResponseFromWebResponse(
57 const blink::WebServiceWorkerResponse& web_response, 84 const blink::WebServiceWorkerResponse& web_response) {
58 ServiceWorkerHeaderMap* headers) { 85 return ServiceWorkerResponse(
59 DCHECK(headers); 86 GetURLList(web_response.urlList()), web_response.status(),
60 DCHECK(headers->empty()); 87 web_response.statusText().utf8(), web_response.responseType(),
61 web_response.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get()); 88 GetHeaderMap(web_response), web_response.blobUUID().utf8(),
62 } 89 web_response.blobSize(), web_response.streamURL(), web_response.error(),
63 90 base::Time::FromInternalValue(web_response.responseTime()),
64 void GetCorsExposedHeaderNamesFromWebResponse( 91 !web_response.cacheStorageCacheName().isNull(),
65 const blink::WebServiceWorkerResponse& web_response, 92 web_response.cacheStorageCacheName().utf8(),
66 ServiceWorkerHeaderList* result) { 93 GetHeaderList(web_response.corsExposedHeaderNames()));
67 blink::WebVector<blink::WebString> headers =
68 web_response.corsExposedHeaderNames();
69 result->resize(headers.size());
70 std::transform(headers.begin(), headers.end(), result->begin(),
71 [](const blink::WebString& s) { return s.latin1(); });
72 } 94 }
73 95
74 } // namespace content 96 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/service_worker/service_worker_type_util.h ('k') | media/blink/multibuffer_data_source_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698