| Index: content/renderer/service_worker/service_worker_type_util.cc
|
| diff --git a/content/renderer/service_worker/service_worker_type_util.cc b/content/renderer/service_worker/service_worker_type_util.cc
|
| index 220ee229312cf4b0653077cedc9bf2e80f1140a8..7db72e907bee5da0e0754569c9fc35762627a953 100644
|
| --- a/content/renderer/service_worker/service_worker_type_util.cc
|
| +++ b/content/renderer/service_worker/service_worker_type_util.cc
|
| @@ -7,6 +7,7 @@
|
| #include <memory>
|
| #include <string>
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "content/common/service_worker/service_worker_types.h"
|
| #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
|
| @@ -43,6 +44,32 @@ std::unique_ptr<HeaderVisitor> MakeHeaderVisitor(
|
| return std::unique_ptr<HeaderVisitor>(new HeaderVisitor(headers));
|
| }
|
|
|
| +std::unique_ptr<ServiceWorkerHeaderMap> GetHeaderMap(
|
| + const blink::WebServiceWorkerResponse& web_response) {
|
| + std::unique_ptr<ServiceWorkerHeaderMap> result =
|
| + base::MakeUnique<ServiceWorkerHeaderMap>();
|
| + web_response.visitHTTPHeaderFields(MakeHeaderVisitor(result.get()).get());
|
| + return result;
|
| +}
|
| +
|
| +std::unique_ptr<ServiceWorkerHeaderList> GetHeaderList(
|
| + const blink::WebVector<blink::WebString>& web_headers) {
|
| + std::unique_ptr<ServiceWorkerHeaderList> result =
|
| + base::MakeUnique<ServiceWorkerHeaderList>(web_headers.size());
|
| + std::transform(web_headers.begin(), web_headers.end(), result->begin(),
|
| + [](const blink::WebString& s) { return s.latin1(); });
|
| + return result;
|
| +}
|
| +
|
| +std::unique_ptr<std::vector<GURL>> GetURLList(
|
| + const blink::WebVector<blink::WebURL>& web_url_list) {
|
| + std::unique_ptr<std::vector<GURL>> result =
|
| + base::MakeUnique<std::vector<GURL>>(web_url_list.size());
|
| + std::transform(web_url_list.begin(), web_url_list.end(), result->begin(),
|
| + [](const blink::WebURL& url) { return url; });
|
| + return result;
|
| +}
|
| +
|
| } // namespace
|
|
|
| void GetServiceWorkerHeaderMapFromWebRequest(
|
| @@ -53,22 +80,17 @@ void GetServiceWorkerHeaderMapFromWebRequest(
|
| web_request.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get());
|
| }
|
|
|
| -void GetServiceWorkerHeaderMapFromWebResponse(
|
| - const blink::WebServiceWorkerResponse& web_response,
|
| - ServiceWorkerHeaderMap* headers) {
|
| - DCHECK(headers);
|
| - DCHECK(headers->empty());
|
| - web_response.visitHTTPHeaderFields(MakeHeaderVisitor(headers).get());
|
| -}
|
| -
|
| -void GetCorsExposedHeaderNamesFromWebResponse(
|
| - const blink::WebServiceWorkerResponse& web_response,
|
| - ServiceWorkerHeaderList* result) {
|
| - blink::WebVector<blink::WebString> headers =
|
| - web_response.corsExposedHeaderNames();
|
| - result->resize(headers.size());
|
| - std::transform(headers.begin(), headers.end(), result->begin(),
|
| - [](const blink::WebString& s) { return s.latin1(); });
|
| +ServiceWorkerResponse GetServiceWorkerResponseFromWebResponse(
|
| + const blink::WebServiceWorkerResponse& web_response) {
|
| + return ServiceWorkerResponse(
|
| + GetURLList(web_response.urlList()), web_response.status(),
|
| + web_response.statusText().utf8(), web_response.responseType(),
|
| + GetHeaderMap(web_response), web_response.blobUUID().utf8(),
|
| + web_response.blobSize(), web_response.streamURL(), web_response.error(),
|
| + base::Time::FromInternalValue(web_response.responseTime()),
|
| + !web_response.cacheStorageCacheName().isNull(),
|
| + web_response.cacheStorageCacheName().utf8(),
|
| + GetHeaderList(web_response.corsExposedHeaderNames()));
|
| }
|
|
|
| } // namespace content
|
|
|