Chromium Code Reviews| Index: third_party/WebKit/Source/core/timing/PerformanceServerTiming.cpp |
| diff --git a/third_party/WebKit/Source/core/timing/PerformanceServerTiming.cpp b/third_party/WebKit/Source/core/timing/PerformanceServerTiming.cpp |
| index 120613c1a004af37ed673a7f47916b422cc173e1..7d3e696da49f5503de01bb49a85fd3d701fafe76 100644 |
| --- a/third_party/WebKit/Source/core/timing/PerformanceServerTiming.cpp |
| +++ b/third_party/WebKit/Source/core/timing/PerformanceServerTiming.cpp |
| @@ -3,20 +3,20 @@ |
| // found in the LICENSE file. |
| #include "core/timing/PerformanceServerTiming.h" |
| - |
| #include "bindings/core/v8/V8ObjectBuilder.h" |
| -#include "core/timing/PerformanceBase.h" |
| +#include "platform/loader/fetch/ResourceTimingInfo.h" |
| #include "platform/wtf/text/WTFString.h" |
| namespace blink { |
| -PerformanceServerTiming::PerformanceServerTiming(const String& name, |
| - const String& metric, |
| - double duration, |
| - const String& description) |
| - : PerformanceEntry(name, "server", 0.0, duration), |
| - metric_(metric), |
| - description_(description) {} |
| +PerformanceServerTiming::PerformanceServerTiming(const String& metric, |
| + double value, |
| + const String& description, |
| + bool allow_timing_details) |
| + : metric_(metric), |
| + value_(value), |
| + description_(description), |
| + allow_timing_details_(allow_timing_details) {} |
| PerformanceServerTiming::~PerformanceServerTiming() {} |
| @@ -24,14 +24,36 @@ String PerformanceServerTiming::metric() const { |
| return metric_; |
| } |
| +double PerformanceServerTiming::value() const { |
| + return allow_timing_details_ ? value_ : 0.0; |
| +} |
| + |
| String PerformanceServerTiming::description() const { |
| - return description_; |
| + return allow_timing_details_ ? description_ : ""; |
| } |
| void PerformanceServerTiming::BuildJSONValue(V8ObjectBuilder& builder) const { |
| - PerformanceEntry::BuildJSONValue(builder); |
| builder.AddString("metric", metric()); |
| + builder.AddNumber("value", value()); |
| builder.AddString("description", description()); |
| } |
| +PerformanceServerTimingVector PerformanceServerTiming::ParseServerTiming( |
| + const ResourceTimingInfo& info, |
| + ShouldAllowTimingDetails shouldAllowTimingDetails) { |
| + PerformanceServerTimingVector entries; |
| + if (RuntimeEnabledFeatures::ServerTimingEnabled()) { |
| + const ResourceResponse& response = info.FinalResponse(); |
| + std::unique_ptr<ServerTimingHeaderVector> headers = ParseServerTimingHeader( |
| + response.HttpHeaderField(HTTPNames::Server_Timing)); |
| + for (const auto& header : *headers) { |
| + entries.push_back(new PerformanceServerTiming( |
| + header->metric, header->value, header->description, |
| + shouldAllowTimingDetails == ShouldAllowTimingDetails::Yes ? true |
| + : false)); |
|
Yoav Weiss
2017/06/29 16:23:21
Might be better to avoid translating the enum back
|
| + } |
| + } |
| + return entries; |
| +} |
| + |
| } // namespace blink |