Index: components/page_load_metrics/common/page_load_timing.cc |
diff --git a/components/page_load_metrics/common/page_load_timing.cc b/components/page_load_metrics/common/page_load_timing.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eea791c479272feca0df504726b7d3b70ffe2b3f |
--- /dev/null |
+++ b/components/page_load_metrics/common/page_load_timing.cc |
@@ -0,0 +1,46 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "components/page_load_metrics/common/page_load_timing.h" |
+#include "third_party/WebKit/public/web/WebPerformance.h" |
+ |
+namespace page_load_metrics { |
+ |
+namespace { |
+ |
+base::TimeDelta ClampDelta(double event_ms, double start_ms) { |
+ double delta = event_ms - start_ms; |
+ return base::TimeDelta::FromMillisecondsD(delta < 0 ? 0 : delta); |
+} |
+ |
+} // namespace |
+ |
+PageLoadTiming::PageLoadTiming() {} |
+PageLoadTiming::PageLoadTiming(const blink::WebPerformance& perf) { |
Bryan McQuade
2015/09/10 00:45:58
let's insert a newline between the 2 constructor d
Charlie Harrison
2015/09/10 19:22:41
Done.
|
+ double start = perf.navigationStart(); |
+ navigation_start = base::Time::FromDoubleT(start); |
+ response_start = ClampDelta(perf.responseStart(), start); |
+ dom_content_loaded_event_start = |
+ ClampDelta(perf.domContentLoadedEventStart(), start); |
+ load_event_start = ClampDelta(perf.loadEventStart(), start); |
+ first_layout = ClampDelta(perf.firstLayout(), start); |
+} |
+ |
+PageLoadTiming::~PageLoadTiming() {} |
+ |
+bool PageLoadTiming::operator==(const PageLoadTiming& other) const { |
+ return navigation_start == other.navigation_start && |
+ response_start == other.response_start && |
+ dom_content_loaded_event_start == |
+ other.dom_content_loaded_event_start && |
+ load_event_start == other.load_event_start && |
+ first_layout == other.first_layout; |
+} |
+ |
+bool PageLoadTiming::IsEmpty() const { |
+ return navigation_start.is_null() && response_start.is_zero() && |
+ dom_content_loaded_event_start.is_zero() && |
+ load_event_start.is_zero() && first_layout.is_zero(); |
+} |
+} // namespace page_load_metrics |