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

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

Issue 2821253002: [ServiceWorker] Integrate trace events in embedded worker instance (Closed)
Patch Set: 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 93aaf34f42abaaa282680702e999b9091afaefdf..2eda94ee26b411f615938659ff066988fd59a0a2 100644
--- a/content/browser/service_worker/embedded_worker_instance.cc
+++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -240,14 +240,15 @@ 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",
leonhsl(Using Gerrit) 2017/04/19 03:43:43 I think using StartTask ctor/dtor to control "Embe
shimazu 2017/04/19 07:54:35 Thanks for explanation! It makes sense.
+ "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;
@@ -320,8 +321,8 @@ class EmbeddedWorkerInstance::StartTask {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (status != SERVICE_WORKER_OK) {
- TRACE_EVENT_ASYNC_STEP_PAST1(
- "ServiceWorker", "EmbeddedWorkerInstance::Start", this,
+ TRACE_EVENT_NESTABLE_ASYNC_INSTANT2(
+ "ServiceWorker", "EmbeddedWorkerInstance::Start", instance_, "Step",
shimazu 2017/04/19 07:54:35 Each INSTANT can have different name as long as yo
leonhsl(Using Gerrit) 2017/04/19 10:40:23 I'm not quite sure about this, instead of NESTABLE
shimazu 2017/04/20 04:51:46 Yes, exactly. According to the CL which introduces
leonhsl(Using Gerrit) 2017/04/21 02:46:29 Done.
"OnProcessAllocated", "Error", ServiceWorkerStatusToString(status));
DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, process_id);
StatusCallback callback = start_callback_;
@@ -331,8 +332,8 @@ class EmbeddedWorkerInstance::StartTask {
return;
}
- TRACE_EVENT_ASYNC_STEP_PAST1(
- "ServiceWorker", "EmbeddedWorkerInstance::Start", this,
+ TRACE_EVENT_NESTABLE_ASYNC_INSTANT2(
+ "ServiceWorker", "EmbeddedWorkerInstance::Start", instance_, "Step",
"OnProcessAllocated", "Is New Process", is_new_process);
if (is_installed_)
ServiceWorkerMetrics::RecordProcessCreated(is_new_process);
@@ -377,9 +378,9 @@ class EmbeddedWorkerInstance::StartTask {
int worker_devtools_agent_route_id,
bool wait_for_debugger) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker",
- "EmbeddedWorkerInstance::Start", this,
- "OnSetupOnUICompleted");
+ TRACE_EVENT_NESTABLE_ASYNC_INSTANT1(
+ "ServiceWorker", "EmbeddedWorkerInstance::Start", instance_, "Step",
+ "OnSetupOnUICompleted");
// Notify the instance that it is registered to the devtools manager.
instance_->OnRegisteredToDevToolsManager(
@@ -591,8 +592,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_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "SendStartWorker");
OnStartWorkerMessageSent();
return SERVICE_WORKER_OK;
}
@@ -612,7 +614,9 @@ void EmbeddedWorkerInstance::OnStartWorkerMessageSent() {
}
void EmbeddedWorkerInstance::OnReadyForInspection() {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnReadyForInspection");
+ TRACE_EVENT_NESTABLE_ASYNC_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "OnReadyForInspection");
if (devtools_proxy_)
devtools_proxy_->NotifyWorkerReadyForInspection();
}
@@ -628,8 +632,6 @@ void EmbeddedWorkerInstance::OnScriptReadFinished() {
void EmbeddedWorkerInstance::OnScriptLoaded() {
using LoadSource = ServiceWorkerMetrics::LoadSource;
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptLoaded");
-
if (!inflight_start_task_)
return;
LoadSource source;
@@ -641,9 +643,9 @@ 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_INSTANT2(
+ "ServiceWorker", "EmbeddedWorkerInstance::Start", this, "Step",
+ "OnScriptLoaded", "Source",
ServiceWorkerMetrics::LoadSourceToString(source));
if (!step_time_.is_null()) {
@@ -660,8 +662,10 @@ 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_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "OnURLJobCreated");
+
if (!step_time_.is_null()) {
base::TimeDelta duration = UpdateStepTime();
if (inflight_start_task_->is_installed())
@@ -680,7 +684,12 @@ void EmbeddedWorkerInstance::OnWorkerVersionDoomed() {
}
void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
- TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnThreadStarted");
+ if (!inflight_start_task_)
+ return;
+ TRACE_EVENT_NESTABLE_ASYNC_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "OnThreadStarted");
+
if (!context_)
return;
@@ -694,11 +703,6 @@ void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
provider_host->SetReadyToSendMessagesToWorker(thread_id);
- if (!inflight_start_task_)
- return;
- TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start",
- inflight_start_task_.get(), "OnThreadStarted");
-
starting_phase_ = THREAD_STARTED;
if (!step_time_.is_null()) {
base::TimeDelta duration = UpdateStepTime();
@@ -712,25 +716,25 @@ void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) {
}
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_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "OnScriptLoadFailed");
+
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_INSTANT2(
+ "ServiceWorker", "EmbeddedWorkerInstance::Start", this, "Step",
+ "OnScriptEvaluated", "Success", success);
+
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();
@@ -748,12 +752,15 @@ 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_INSTANT1("ServiceWorker",
+ "EmbeddedWorkerInstance::Start", this,
+ "Step", "OnStarted");
+
DCHECK(status_ == EmbeddedWorkerStatus::STARTING);
status_ = EmbeddedWorkerStatus::RUNNING;
inflight_start_task_.reset();
« 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