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 |