| OLD | NEW |
| 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_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 | 393 |
| 394 class ServiceWorkerContextClient::NavigationPreloadRequest final | 394 class ServiceWorkerContextClient::NavigationPreloadRequest final |
| 395 : public mojom::URLLoaderClient { | 395 : public mojom::URLLoaderClient { |
| 396 public: | 396 public: |
| 397 NavigationPreloadRequest(int fetch_event_id, | 397 NavigationPreloadRequest(int fetch_event_id, |
| 398 const GURL& url, | 398 const GURL& url, |
| 399 mojom::FetchEventPreloadHandlePtr preload_handle) | 399 mojom::FetchEventPreloadHandlePtr preload_handle) |
| 400 : fetch_event_id_(fetch_event_id), | 400 : fetch_event_id_(fetch_event_id), |
| 401 url_(url), | 401 url_(url), |
| 402 url_loader_(std::move(preload_handle->url_loader)), | 402 url_loader_(std::move(preload_handle->url_loader)), |
| 403 binding_(this, std::move(preload_handle->url_loader_client_request)) {} | 403 binding_(this, std::move(preload_handle->url_loader_client_request)) { |
| 404 TRACE_EVENT0("ServiceWorker", |
| 405 "NavigationPreloadRequest::NavigationPreloadRequest"); |
| 406 } |
| 404 | 407 |
| 405 ~NavigationPreloadRequest() override {} | 408 ~NavigationPreloadRequest() override {} |
| 406 | 409 |
| 407 void OnReceiveResponse( | 410 void OnReceiveResponse( |
| 408 const ResourceResponseHead& response_head, | 411 const ResourceResponseHead& response_head, |
| 409 const base::Optional<net::SSLInfo>& ssl_info, | 412 const base::Optional<net::SSLInfo>& ssl_info, |
| 410 mojom::DownloadedTempFilePtr downloaded_file) override { | 413 mojom::DownloadedTempFilePtr downloaded_file) override { |
| 414 TRACE_EVENT0("ServiceWorker", |
| 415 "NavigationPreloadRequest::OnReceiveResponse"); |
| 411 DCHECK(!response_); | 416 DCHECK(!response_); |
| 412 DCHECK(!downloaded_file); | 417 DCHECK(!downloaded_file); |
| 413 response_ = base::MakeUnique<blink::WebURLResponse>(); | 418 response_ = base::MakeUnique<blink::WebURLResponse>(); |
| 414 // TODO(horo): Set report_security_info to true when DevTools is attached. | 419 // TODO(horo): Set report_security_info to true when DevTools is attached. |
| 415 const bool report_security_info = false; | 420 const bool report_security_info = false; |
| 416 WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(), | 421 WebURLLoaderImpl::PopulateURLResponse(url_, response_head, response_.get(), |
| 417 report_security_info); | 422 report_security_info); |
| 418 MaybeReportResponseToClient(); | 423 MaybeReportResponseToClient(); |
| 419 } | 424 } |
| 420 | 425 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 451 NOTREACHED(); | 456 NOTREACHED(); |
| 452 } | 457 } |
| 453 | 458 |
| 454 void OnReceiveCachedMetadata(const std::vector<uint8_t>& data) override {} | 459 void OnReceiveCachedMetadata(const std::vector<uint8_t>& data) override {} |
| 455 | 460 |
| 456 void OnTransferSizeUpdated(int32_t transfer_size_diff) override { | 461 void OnTransferSizeUpdated(int32_t transfer_size_diff) override { |
| 457 } | 462 } |
| 458 | 463 |
| 459 void OnStartLoadingResponseBody( | 464 void OnStartLoadingResponseBody( |
| 460 mojo::ScopedDataPipeConsumerHandle body) override { | 465 mojo::ScopedDataPipeConsumerHandle body) override { |
| 466 TRACE_EVENT0("ServiceWorker", |
| 467 "NavigationPreloadRequest::OnStartLoadingResponseBody"); |
| 461 DCHECK(!body_.is_valid()); | 468 DCHECK(!body_.is_valid()); |
| 462 body_ = std::move(body); | 469 body_ = std::move(body); |
| 463 MaybeReportResponseToClient(); | 470 MaybeReportResponseToClient(); |
| 464 } | 471 } |
| 465 | 472 |
| 466 void OnComplete(const ResourceRequestCompletionStatus& status) override { | 473 void OnComplete(const ResourceRequestCompletionStatus& status) override { |
| 474 TRACE_EVENT0("ServiceWorker", "NavigationPreloadRequest::OnComplete"); |
| 467 if (status.error_code != net::OK) { | 475 if (status.error_code != net::OK) { |
| 468 std::string message; | 476 std::string message; |
| 469 std::string unsanitized_message; | 477 std::string unsanitized_message; |
| 470 if (status.error_code == net::ERR_ABORTED) { | 478 if (status.error_code == net::ERR_ABORTED) { |
| 471 message = | 479 message = |
| 472 "The service worker navigation preload request was cancelled " | 480 "The service worker navigation preload request was cancelled " |
| 473 "before 'preloadResponse' settled. If you intend to use " | 481 "before 'preloadResponse' settled. If you intend to use " |
| 474 "'preloadResponse', use waitUntil() or respondWith() to wait for " | 482 "'preloadResponse', use waitUntil() or respondWith() to wait for " |
| 475 "the promise to settle."; | 483 "the promise to settle."; |
| 476 } else { | 484 } else { |
| (...skipping 1212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1689 } | 1697 } |
| 1690 | 1698 |
| 1691 base::WeakPtr<ServiceWorkerContextClient> | 1699 base::WeakPtr<ServiceWorkerContextClient> |
| 1692 ServiceWorkerContextClient::GetWeakPtr() { | 1700 ServiceWorkerContextClient::GetWeakPtr() { |
| 1693 DCHECK(worker_task_runner_->RunsTasksInCurrentSequence()); | 1701 DCHECK(worker_task_runner_->RunsTasksInCurrentSequence()); |
| 1694 DCHECK(context_); | 1702 DCHECK(context_); |
| 1695 return context_->weak_factory.GetWeakPtr(); | 1703 return context_->weak_factory.GetWeakPtr(); |
| 1696 } | 1704 } |
| 1697 | 1705 |
| 1698 } // namespace content | 1706 } // namespace content |
| OLD | NEW |