Chromium Code Reviews| Index: third_party/WebKit/Source/platform/network/NetworkInstrumentation.cpp |
| diff --git a/third_party/WebKit/Source/platform/network/NetworkInstrumentation.cpp b/third_party/WebKit/Source/platform/network/NetworkInstrumentation.cpp |
| index bb2a7d232488411a64581b04fb068c5efe9621f2..6d78538cc602798b6b2215de38a9b89926dff9f0 100644 |
| --- a/third_party/WebKit/Source/platform/network/NetworkInstrumentation.cpp |
| +++ b/third_party/WebKit/Source/platform/network/NetworkInstrumentation.cpp |
| @@ -32,16 +32,38 @@ const char* RequestOutcomeToString(RequestOutcome outcome) { |
| } |
| } |
| +// Note: network_instrumentation code should do as much work as possible inside |
| +// the arguments of trace macros so that very little instrumentation overhead is |
| +// incurred if the trace category is disabled. See https://crbug.com/669666. |
| + |
| +std::unique_ptr<TracedValue> scopedResourceTrackerBeginData( |
|
caseq
2016/12/01 18:10:24
All three could be in anonymous namespace -- unles
|
| + const blink::ResourceRequest& request) { |
| + std::unique_ptr<TracedValue> data = TracedValue::create(); |
| + data->setString("url", request.url().getString()); |
| + return data; |
| +} |
| + |
| +std::unique_ptr<TracedValue> resourcePrioritySetData( |
| + blink::ResourceLoadPriority priority) { |
| + std::unique_ptr<TracedValue> data = TracedValue::create(); |
| + data->setInteger("priority", priority); |
| + return data; |
| +} |
| + |
| +std::unique_ptr<TracedValue> endResourceLoadData(RequestOutcome outcome) { |
| + std::unique_ptr<TracedValue> data = TracedValue::create(); |
| + data->setString("outcome", RequestOutcomeToString(outcome)); |
| + return data; |
| +} |
| + |
| ScopedResourceLoadTracker::ScopedResourceLoadTracker( |
| unsigned long resourceID, |
| const blink::ResourceRequest& request) |
| : m_resourceLoadContinuesBeyondScope(false), m_resourceID(resourceID) { |
| - std::unique_ptr<TracedValue> beginData = TracedValue::create(); |
| - beginData->setString("url", request.url().getString()); |
| TRACE_EVENT_NESTABLE_ASYNC_BEGIN1( |
| kNetInstrumentationCategory, kResourceLoadTitle, |
| TRACE_ID_WITH_SCOPE(kBlinkResourceID, TRACE_ID_LOCAL(resourceID)), |
| - "beginData", std::move(beginData)); |
| + "beginData", scopedResourceTrackerBeginData(request)); |
| } |
| ScopedResourceLoadTracker::~ScopedResourceLoadTracker() { |
| @@ -55,21 +77,17 @@ void ScopedResourceLoadTracker::resourceLoadContinuesBeyondScope() { |
| void resourcePrioritySet(unsigned long resourceID, |
| blink::ResourceLoadPriority priority) { |
| - std::unique_ptr<TracedValue> data = TracedValue::create(); |
| - data->setInteger("priority", priority); |
| TRACE_EVENT_NESTABLE_ASYNC_INSTANT1( |
| kNetInstrumentationCategory, kResourcePrioritySetTitle, |
| TRACE_ID_WITH_SCOPE(kBlinkResourceID, TRACE_ID_LOCAL(resourceID)), "data", |
| - std::move(data)); |
| + resourcePrioritySetData(priority)); |
| } |
| void endResourceLoad(unsigned long resourceID, RequestOutcome outcome) { |
| - std::unique_ptr<TracedValue> endData = TracedValue::create(); |
| - endData->setString("outcome", RequestOutcomeToString(outcome)); |
| TRACE_EVENT_NESTABLE_ASYNC_END1( |
| kNetInstrumentationCategory, kResourceLoadTitle, |
| TRACE_ID_WITH_SCOPE(kBlinkResourceID, TRACE_ID_LOCAL(resourceID)), |
| - "endData", std::move(endData)); |
| + "endData", endResourceLoadData(outcome)); |
| } |
| } // namespace network_instrumentation |