| Index: content/browser/service_worker/service_worker_write_to_cache_job.cc
|
| diff --git a/content/browser/service_worker/service_worker_write_to_cache_job.cc b/content/browser/service_worker/service_worker_write_to_cache_job.cc
|
| index 1928a531e3ff8c844b0df52ea405ee72b6046760..ede1cd15c37d081c0dd2e1977302773a60cfa5fb 100644
|
| --- a/content/browser/service_worker/service_worker_write_to_cache_job.cc
|
| +++ b/content/browser/service_worker/service_worker_write_to_cache_job.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "content/browser/service_worker/service_worker_write_to_cache_job.h"
|
|
|
| +#include "base/debug/trace_event.h"
|
| #include "content/browser/service_worker/service_worker_context_core.h"
|
| #include "content/browser/service_worker/service_worker_disk_cache.h"
|
| #include "content/browser/service_worker/service_worker_metrics.h"
|
| @@ -44,6 +45,10 @@ ServiceWorkerWriteToCacheJob::~ServiceWorkerWriteToCacheJob() {
|
| }
|
|
|
| void ServiceWorkerWriteToCacheJob::Start() {
|
| + TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "URL", request_->url().spec());
|
| if (!context_) {
|
| NotifyStartError(net::URLRequestStatus(
|
| net::URLRequestStatus::FAILED, net::ERR_FAILED));
|
| @@ -154,6 +159,10 @@ void ServiceWorkerWriteToCacheJob::InitNetRequest(
|
| }
|
|
|
| void ServiceWorkerWriteToCacheJob::StartNetRequest() {
|
| + TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "NetRequest");
|
| net_request_->Start(); // We'll continue in OnResponseStarted.
|
| }
|
|
|
| @@ -190,6 +199,10 @@ void ServiceWorkerWriteToCacheJob::WriteHeadersToCache() {
|
| net::URLRequestStatus::FAILED, net::ERR_FAILED));
|
| return;
|
| }
|
| + TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "WriteHeadersToCache");
|
| writer_ = context_->storage()->CreateResponseWriter(response_id_);
|
| info_buffer_ = new HttpResponseInfoIOBuffer(
|
| new net::HttpResponseInfo(net_request_->response_info()));
|
| @@ -211,11 +224,20 @@ void ServiceWorkerWriteToCacheJob::OnWriteHeadersComplete(int result) {
|
| }
|
| http_info_.reset(info_buffer_->http_info.release());
|
| info_buffer_ = NULL;
|
| + TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "WriteHeadersToCacheCompleted");
|
| NotifyHeadersComplete();
|
| }
|
|
|
| void ServiceWorkerWriteToCacheJob::WriteDataToCache(int amount_to_write) {
|
| DCHECK_NE(0, amount_to_write);
|
| + TRACE_EVENT_ASYNC_STEP_INTO1("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "WriteDataToCache",
|
| + "Amount to write", amount_to_write);
|
| SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0));
|
| writer_->WriteData(
|
| io_buffer_.get(),
|
| @@ -243,6 +265,9 @@ void ServiceWorkerWriteToCacheJob::OnWriteDataComplete(int result) {
|
| ServiceWorkerMetrics::WRITE_OK);
|
| SetStatus(net::URLRequestStatus()); // Clear the IO_PENDING status
|
| NotifyReadComplete(result);
|
| + TRACE_EVENT_ASYNC_END0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this);
|
| }
|
|
|
| void ServiceWorkerWriteToCacheJob::OnReceivedRedirect(
|
| @@ -250,6 +275,8 @@ void ServiceWorkerWriteToCacheJob::OnReceivedRedirect(
|
| const net::RedirectInfo& redirect_info,
|
| bool* defer_redirect) {
|
| DCHECK_EQ(net_request_, request);
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob::OnReceivedRedirect");
|
| // Script resources can't redirect.
|
| AsyncNotifyDoneHelper(net::URLRequestStatus(
|
| net::URLRequestStatus::FAILED, net::ERR_FAILED));
|
| @@ -259,6 +286,8 @@ void ServiceWorkerWriteToCacheJob::OnAuthRequired(
|
| net::URLRequest* request,
|
| net::AuthChallengeInfo* auth_info) {
|
| DCHECK_EQ(net_request_, request);
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob::OnAuthRequired");
|
| // TODO(michaeln): Pass this thru to our jobs client.
|
| AsyncNotifyDoneHelper(net::URLRequestStatus(
|
| net::URLRequestStatus::FAILED, net::ERR_FAILED));
|
| @@ -268,6 +297,8 @@ void ServiceWorkerWriteToCacheJob::OnCertificateRequested(
|
| net::URLRequest* request,
|
| net::SSLCertRequestInfo* cert_request_info) {
|
| DCHECK_EQ(net_request_, request);
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob::OnCertificateRequested");
|
| // TODO(michaeln): Pass this thru to our jobs client.
|
| // see NotifyCertificateRequested.
|
| AsyncNotifyDoneHelper(net::URLRequestStatus(
|
| @@ -279,6 +310,8 @@ void ServiceWorkerWriteToCacheJob:: OnSSLCertificateError(
|
| const net::SSLInfo& ssl_info,
|
| bool fatal) {
|
| DCHECK_EQ(net_request_, request);
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob::OnSSLCertificateError");
|
| // TODO(michaeln): Pass this thru to our jobs client,
|
| // see NotifySSLCertificateError.
|
| AsyncNotifyDoneHelper(net::URLRequestStatus(
|
| @@ -289,6 +322,8 @@ void ServiceWorkerWriteToCacheJob::OnBeforeNetworkStart(
|
| net::URLRequest* request,
|
| bool* defer) {
|
| DCHECK_EQ(net_request_, request);
|
| + TRACE_EVENT0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob::OnBeforeNetworkStart");
|
| NotifyBeforeNetworkStart(defer);
|
| }
|
|
|
| @@ -333,6 +368,10 @@ void ServiceWorkerWriteToCacheJob::OnReadCompleted(
|
| WriteDataToCache(bytes_read);
|
| return;
|
| }
|
| + TRACE_EVENT_ASYNC_STEP_INTO0("ServiceWorker",
|
| + "ServiceWorkerWriteToCacheJob",
|
| + this,
|
| + "WriteHeadersToCache");
|
| // We're done with all.
|
| AsyncNotifyDoneHelper(request->status());
|
| return;
|
|
|