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..bb923eb013aa331f52594f6aa74682249859329d 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::ExecutingJob", |
+ 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::ExecutingJob", |
+ 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::ExecutingJob", |
+ 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::ExecutingJob", |
+ this, |
+ "WriteHeadersToCacheCompleted"); |
NotifyHeadersComplete(); |
} |
void ServiceWorkerWriteToCacheJob::WriteDataToCache(int amount_to_write) { |
DCHECK_NE(0, amount_to_write); |
+ TRACE_EVENT_ASYNC_STEP_INTO1("ServiceWorker", |
+ "ServiceWorkerWriteToCacheJob::ExecutingJob", |
+ 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::ExecutingJob", |
+ 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::ExecutingJob", |
+ this, |
+ "WriteHeadersToCache"); |
// We're done with all. |
AsyncNotifyDoneHelper(request->status()); |
return; |