Commit 8dce9302 authored by momohatt's avatar momohatt Committed by Commit Bot

ServiceWorker: Use TRACE_EVENT_WITH_FLOW for tracing fetch events

TRACE_EVENT is currently used but TRACE_EVENT_WITH_FLOW makes it easier to
track the flow of fetch events.

Bug: 860394
Change-Id: I7aa669ee3769763c31f6b8621bbb1bb466c17ae0
Reviewed-on: https://chromium-review.googlesource.com/1156334Reviewed-by: default avatarMakoto Shimazu <shimazu@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Momoko Hattori <momohatt@google.com>
Cr-Commit-Position: refs/heads/master@{#579761}
parent fdad9aee
...@@ -93,6 +93,9 @@ namespace content { ...@@ -93,6 +93,9 @@ namespace content {
namespace { namespace {
constexpr char kServiceWorkerContextClientScope[] =
"ServiceWorkerContextClient";
// For now client must be a per-thread instance. // For now client must be a per-thread instance.
base::LazyInstance<base::ThreadLocalPointer<ServiceWorkerContextClient>>:: base::LazyInstance<base::ThreadLocalPointer<ServiceWorkerContextClient>>::
Leaky g_worker_client_tls = LAZY_INSTANCE_INITIALIZER; Leaky g_worker_client_tls = LAZY_INSTANCE_INITIALIZER;
...@@ -1075,9 +1078,12 @@ void ServiceWorkerContextClient::DidHandleInstallEvent( ...@@ -1075,9 +1078,12 @@ void ServiceWorkerContextClient::DidHandleInstallEvent(
void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse( void ServiceWorkerContextClient::RespondToFetchEventWithNoResponse(
int fetch_event_id, int fetch_event_id,
double event_dispatch_time) { double event_dispatch_time) {
TRACE_EVENT1("ServiceWorker", TRACE_EVENT_WITH_FLOW0(
"ServiceWorkerContextClient::RespondToFetchEventWithNoResponse", "ServiceWorker",
"event_id", fetch_event_id); "ServiceWorkerContextClient::RespondToFetchEventWithNoResponse",
TRACE_ID_WITH_SCOPE(kServiceWorkerContextClientScope,
TRACE_ID_LOCAL(fetch_event_id)),
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback = const mojom::ServiceWorkerFetchResponseCallbackPtr& response_callback =
context_->fetch_response_callbacks[fetch_event_id]; context_->fetch_response_callbacks[fetch_event_id];
...@@ -1090,9 +1096,11 @@ void ServiceWorkerContextClient::RespondToFetchEvent( ...@@ -1090,9 +1096,11 @@ void ServiceWorkerContextClient::RespondToFetchEvent(
int fetch_event_id, int fetch_event_id,
const blink::WebServiceWorkerResponse& web_response, const blink::WebServiceWorkerResponse& web_response,
double event_dispatch_time) { double event_dispatch_time) {
TRACE_EVENT1("ServiceWorker", TRACE_EVENT_WITH_FLOW0(
"ServiceWorkerContextClient::RespondToFetchEvent", "event_id", "ServiceWorker", "ServiceWorkerContextClient::RespondToFetchEvent",
fetch_event_id); TRACE_ID_WITH_SCOPE(kServiceWorkerContextClientScope,
TRACE_ID_LOCAL(fetch_event_id)),
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
ServiceWorkerResponse response( ServiceWorkerResponse response(
GetServiceWorkerResponseFromWebResponse(web_response)); GetServiceWorkerResponseFromWebResponse(web_response));
...@@ -1121,10 +1129,12 @@ void ServiceWorkerContextClient::RespondToFetchEventWithResponseStream( ...@@ -1121,10 +1129,12 @@ void ServiceWorkerContextClient::RespondToFetchEventWithResponseStream(
const blink::WebServiceWorkerResponse& web_response, const blink::WebServiceWorkerResponse& web_response,
blink::WebServiceWorkerStreamHandle* web_body_as_stream, blink::WebServiceWorkerStreamHandle* web_body_as_stream,
double event_dispatch_time) { double event_dispatch_time) {
TRACE_EVENT1( TRACE_EVENT_WITH_FLOW0(
"ServiceWorker", "ServiceWorker",
"ServiceWorkerContextClient::RespondToFetchEventWithResponseStream", "ServiceWorkerContextClient::RespondToFetchEventWithResponseStream",
"event_id", fetch_event_id); TRACE_ID_WITH_SCOPE(kServiceWorkerContextClientScope,
TRACE_ID_LOCAL(fetch_event_id)),
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id)); DCHECK(base::ContainsKey(context_->fetch_response_callbacks, fetch_event_id));
ServiceWorkerResponse response( ServiceWorkerResponse response(
GetServiceWorkerResponseFromWebResponse(web_response)); GetServiceWorkerResponseFromWebResponse(web_response));
...@@ -1152,10 +1162,12 @@ void ServiceWorkerContextClient::DidHandleFetchEvent( ...@@ -1152,10 +1162,12 @@ void ServiceWorkerContextClient::DidHandleFetchEvent(
double event_dispatch_time) { double event_dispatch_time) {
// This TRACE_EVENT is used for perf benchmark to confirm if all of fetch // This TRACE_EVENT is used for perf benchmark to confirm if all of fetch
// events have completed. (crbug.com/736697) // events have completed. (crbug.com/736697)
TRACE_EVENT2("ServiceWorker", TRACE_EVENT_WITH_FLOW1("ServiceWorker",
"ServiceWorkerContextClient::DidHandleFetchEvent", "event_id", "ServiceWorkerContextClient::DidHandleFetchEvent",
event_id, "status", TRACE_ID_WITH_SCOPE(kServiceWorkerContextClientScope,
ServiceWorkerUtils::MojoEnumToString(status)); TRACE_ID_LOCAL(event_id)),
TRACE_EVENT_FLAG_FLOW_IN, "status",
ServiceWorkerUtils::MojoEnumToString(status));
if (RunEventCallback(&context_->fetch_event_callbacks, if (RunEventCallback(&context_->fetch_event_callbacks,
context_->timeout_timer.get(), event_id, status, context_->timeout_timer.get(), event_id, status,
base::Time::FromDoubleT(event_dispatch_time))) { base::Time::FromDoubleT(event_dispatch_time))) {
...@@ -1681,9 +1693,11 @@ void ServiceWorkerContextClient::DispatchFetchEvent( ...@@ -1681,9 +1693,11 @@ void ServiceWorkerContextClient::DispatchFetchEvent(
// This TRACE_EVENT is used for perf benchmark to confirm if all of fetch // This TRACE_EVENT is used for perf benchmark to confirm if all of fetch
// events have completed. (crbug.com/736697) // events have completed. (crbug.com/736697)
TRACE_EVENT2("ServiceWorker", TRACE_EVENT_WITH_FLOW1(
"ServiceWorkerContextClient::DispatchFetchEvent", "event_id", "ServiceWorker", "ServiceWorkerContextClient::DispatchFetchEvent",
event_id, "url", params->request.url.spec()); TRACE_ID_WITH_SCOPE(kServiceWorkerContextClientScope,
TRACE_ID_LOCAL(event_id)),
TRACE_EVENT_FLAG_FLOW_OUT, "url", params->request.url.spec());
// Set up for navigation preload (FetchEvent#preloadResponse) if needed. // Set up for navigation preload (FetchEvent#preloadResponse) if needed.
const bool navigation_preload_sent = !!params->preload_handle; const bool navigation_preload_sent = !!params->preload_handle;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment