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

Unified Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 2618313003: Use WebURLResponse to pass the navigation preload response from SWContextClient to FetchEvent. (Closed)
Patch Set: incorporated falken's comment Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/service_worker/service_worker_context_client.cc
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index 715a35eab81fc59620d0caaf7ceeaedd7a0efd06..4cd459b6e06611c7437bfa3add1e9bcf1667f74c 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -30,6 +30,7 @@
#include "content/child/service_worker/web_service_worker_registration_impl.h"
#include "content/child/thread_safe_sender.h"
#include "content/child/web_data_consumer_handle_impl.h"
+#include "content/child/web_url_loader_impl.h"
#include "content/child/webmessageportchannel_impl.h"
#include "content/common/devtools_messages.h"
#include "content/common/message_port_messages.h"
@@ -54,6 +55,7 @@
#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
#include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
#include "third_party/WebKit/public/platform/WebString.h"
+#include "third_party/WebKit/public/platform/WebURLResponse.h"
#include "third_party/WebKit/public/platform/modules/notifications/WebNotificationData.h"
#include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerClientQueryOptions.h"
#include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerError.h"
@@ -258,22 +260,11 @@ class ServiceWorkerContextClient::NavigationPreloadRequest final
mojom::DownloadedTempFilePtr downloaded_file) override {
DCHECK(!response_);
DCHECK(!downloaded_file);
- response_ = base::MakeUnique<blink::WebServiceWorkerResponse>();
- response_->setURLList(std::vector<blink::WebURL>({url_}));
- DCHECK(response_head.headers);
- response_->setStatus(response_head.headers->response_code());
- response_->setStatusText(
- blink::WebString::fromUTF8(response_head.headers->GetStatusText()));
- response_->setResponseType(blink::WebServiceWorkerResponseTypeBasic);
- size_t iter = 0;
- std::string header_name;
- std::string header_value;
- while (response_head.headers->EnumerateHeaderLines(&iter, &header_name,
- &header_value)) {
- response_->appendHeader(blink::WebString::fromUTF8(header_name),
- blink::WebString::fromUTF8(header_value));
- }
- response_->setResponseTime(response_head.response_time.ToInternalValue());
+ response_ = base::MakeUnique<blink::WebURLResponse>();
+ // TODO(horo): Set report_security_info to true when DevTools is attached.
+ const bool report_security_info = false;
+ WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(),
+ report_security_info);
MaybeReportResponseToClient();
}
@@ -343,7 +334,7 @@ class ServiceWorkerContextClient::NavigationPreloadRequest final
mojom::URLLoaderPtr url_loader_;
mojo::Binding<mojom::URLLoaderClient> binding_;
- std::unique_ptr<blink::WebServiceWorkerResponse> response_;
+ std::unique_ptr<blink::WebURLResponse> response_;
mojo::ScopedDataPipeConsumerHandle body_;
bool result_reported_ = false;
};
@@ -1260,7 +1251,7 @@ void ServiceWorkerContextClient::OnPing() {
void ServiceWorkerContextClient::OnNavigationPreloadResponse(
int fetch_event_id,
- std::unique_ptr<blink::WebServiceWorkerResponse> response,
+ std::unique_ptr<blink::WebURLResponse> response,
std::unique_ptr<blink::WebDataConsumerHandle> data_consumer_handle) {
proxy_->onNavigationPreloadResponse(fetch_event_id, std::move(response),
std::move(data_consumer_handle));

Powered by Google App Engine
This is Rietveld 408576698