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

Unified Diff: content/browser/service_worker/embedded_worker_instance.cc

Issue 2821253002: [ServiceWorker] Integrate trace events in embedded worker instance (Closed)
Patch Set: Rebase only Created 3 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/service_worker/embedded_worker_instance.cc
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc
index e130e4b9e8aaef93f9bb5442214731c710d4dc4b..4919648b1aa2e354567134d71b7c00e5ce1d77f6 100644
--- a/content/browser/service_worker/embedded_worker_instance.cc
+++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -244,14 +244,16 @@ class EmbeddedWorkerInstance::StartTask {
is_installed_(false),
started_during_browser_startup_(false),
weak_factory_(this) {
- TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", "EmbeddedWorkerInstance::Start",
- this, "Script", script_url.spec());
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start",
+ instance_, "Script", script_url.spec());
}
~StartTask() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- TRACE_EVENT_ASYNC_END0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- this);
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", instance_);
+
if (!instance_->context_)
return;
@@ -323,9 +325,11 @@ class EmbeddedWorkerInstance::StartTask {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status != SERVICE_WORKER_OK) {
- TRACE_EVENT_ASYNC_STEP_PAST1(
- "ServiceWorker", "EmbeddedWorkerInstance::Start", this,
- "OnProcessAllocated", "Error", ServiceWorkerStatusToString(status));
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("ServiceWorker", "OnProcessAllocated",
+ instance_, "Error",
+ ServiceWorkerStatusToString(status));
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnProcessAllocated",
+ instance_);
DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, process_id);
StatusCallback callback = start_callback_;
start_callback_.Reset();
@@ -334,9 +338,9 @@ class EmbeddedWorkerInstance::StartTask {
return;
}
- TRACE_EVENT_ASYNC_STEP_PAST1(
- "ServiceWorker", "EmbeddedWorkerInstance::Start", this,
- "OnProcessAllocated", "Is New Process", is_new_process);
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("ServiceWorker", "OnProcessAllocated",
+ instance_, "Is New Process",
+ is_new_process);
shimazu 2017/04/21 03:05:41 My explanation was bad, sorry. We want to track t
if (is_installed_)
ServiceWorkerMetrics::RecordProcessCreated(is_new_process);
@@ -373,6 +377,8 @@ class EmbeddedWorkerInstance::StartTask {
base::Bind(&StartTask::OnSetupOnUICompleted,
weak_factory_.GetWeakPtr(), base::Passed(&params),
is_new_process)));
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnProcessAllocated",
+ instance_);
}
void OnSetupOnUICompleted(
@@ -381,9 +387,8 @@ class EmbeddedWorkerInstance::StartTask {
std::unique_ptr<EmbeddedWorkerInstance::DevToolsProxy> devtools_proxy,
bool wait_for_debugger) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker",
- "EmbeddedWorkerInstance::Start", this,
- "OnSetupOnUICompleted");
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnSetupOnUICompleted",
+ instance_);
params->worker_devtools_agent_route_id = devtools_proxy->agent_route_id();
params->wait_for_debugger = wait_for_debugger;
@@ -394,6 +399,8 @@ class EmbeddedWorkerInstance::StartTask {
ServiceWorkerStatusCode status =
instance_->SendStartWorker(std::move(params));
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnSetupOnUICompleted",
+ instance_);
if (status != SERVICE_WORKER_OK) {
StatusCallback callback = start_callback_;
start_callback_.Reset();
@@ -594,9 +601,9 @@ ServiceWorkerStatusCode EmbeddedWorkerInstance::SendStartWorker(
client_->StartWorker(*params, std::move(pending_dispatcher_request_),
std::move(host_ptr_info));
registry_->BindWorkerToProcess(process_id(), embedded_worker_id());
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- this, "SendStartWorker");
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "SendStartWorker", this);
OnStartWorkerMessageSent();
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "SendStartWorker", this);
return SERVICE_WORKER_OK;
}
@@ -615,9 +622,12 @@ void EmbeddedWorkerInstance::OnStartWorkerMessageSent() {
}
void EmbeddedWorkerInstance::OnReadyForInspection() {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnReadyForInspection");
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnReadyForInspection",
+ this);
if (devtools_proxy_)
devtools_proxy_->NotifyWorkerReadyForInspection();
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnReadyForInspection",
+ this);
}
void EmbeddedWorkerInstance::OnScriptReadStarted() {
@@ -630,7 +640,6 @@ void EmbeddedWorkerInstance::OnScriptReadFinished() {
void EmbeddedWorkerInstance::OnScriptLoaded() {
using LoadSource = ServiceWorkerMetrics::LoadSource;
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptLoaded");
if (!inflight_start_task_)
return;
@@ -643,10 +652,10 @@ void EmbeddedWorkerInstance::OnScriptLoaded() {
} else {
source = LoadSource::HTTP_CACHE;
}
- TRACE_EVENT_ASYNC_STEP_PAST1(
- "ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(), "OnScriptLoaded", "Source",
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(
+ "ServiceWorker", "OnScriptLoaded", this, "Source",
ServiceWorkerMetrics::LoadSourceToString(source));
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnScriptLoaded", this);
if (!step_time_.is_null()) {
base::TimeDelta duration = UpdateStepTime();
@@ -662,13 +671,14 @@ void EmbeddedWorkerInstance::OnScriptLoaded() {
void EmbeddedWorkerInstance::OnURLJobCreatedForMainScript() {
if (!inflight_start_task_)
return;
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(), "OnURLJobCreated");
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnURLJobCreated", this);
+
if (!step_time_.is_null()) {
base::TimeDelta duration = UpdateStepTime();
if (inflight_start_task_->is_installed())
ServiceWorkerMetrics::RecordTimeToURLJob(duration, start_situation_);
}
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnURLJobCreated", this);
}
void EmbeddedWorkerInstance::OnWorkerVersionInstalled() {
@@ -682,7 +692,8 @@ void EmbeddedWorkerInstance::OnWorkerVersionDoomed() {
}
void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnThreadStarted");
+ if (!inflight_start_task_)
+ return;
if (!context_)
return;
@@ -694,12 +705,9 @@ void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
return;
}
- provider_host->SetReadyToSendMessagesToWorker(thread_id);
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnThreadStarted", this);
- if (!inflight_start_task_)
- return;
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(), "OnThreadStarted");
+ provider_host->SetReadyToSendMessagesToWorker(thread_id);
starting_phase_ = THREAD_STARTED;
if (!step_time_.is_null()) {
@@ -711,28 +719,29 @@ void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
thread_id_ = thread_id;
for (auto& observer : listener_list_)
observer.OnThreadStarted();
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnThreadStarted", this);
}
void EmbeddedWorkerInstance::OnScriptLoadFailed() {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptLoadFailed");
if (!inflight_start_task_)
return;
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(),
- "OnScriptLoadFailed");
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnScriptLoadFailed",
+ this);
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnScriptLoadFailed", this);
+
for (auto& observer : listener_list_)
observer.OnScriptLoadFailed();
}
void EmbeddedWorkerInstance::OnScriptEvaluated(bool success) {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptEvaluated");
if (!inflight_start_task_)
return;
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("ServiceWorker", "OnScriptEvaluated", this,
+ "Success", success);
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnScriptEvaluated", this);
+
DCHECK_EQ(EmbeddedWorkerStatus::STARTING, status_);
- TRACE_EVENT_ASYNC_STEP_PAST1("ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(), "OnScriptEvaluated",
- "Success", success);
starting_phase_ = SCRIPT_EVALUATED;
if (!step_time_.is_null()) {
base::TimeDelta duration = UpdateStepTime();
@@ -750,14 +759,16 @@ void EmbeddedWorkerInstance::OnScriptEvaluated(bool success) {
}
void EmbeddedWorkerInstance::OnStarted() {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnStarted");
if (!registry_->OnWorkerStarted(process_id(), embedded_worker_id_))
return;
// Stop is requested before OnStarted is sent back from the worker.
if (status_ == EmbeddedWorkerStatus::STOPPING)
return;
+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "OnStarted", this);
+
DCHECK(status_ == EmbeddedWorkerStatus::STARTING);
status_ = EmbeddedWorkerStatus::RUNNING;
+ TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "OnStarted", this);
inflight_start_task_.reset();
for (auto& observer : listener_list_)
observer.OnStarted();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698