Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp

Issue 2615533002: Remove duplicate domHighResTimestamp conversion in NavigationTiming (Closed)
Patch Set: fixed layout test failures Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/timing/PerformanceNavigationTiming.h" 5 #include "core/timing/PerformanceNavigationTiming.h"
6 6
7 #include "bindings/core/v8/V8ObjectBuilder.h" 7 #include "bindings/core/v8/V8ObjectBuilder.h"
8 #include "core/timing/PerformanceBase.h" 8 #include "core/timing/PerformanceBase.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 // TODO(sunjian): Move this logic into PerformanceBase
13 static double monotonicTimeToDOMHighResTimeStamp(double timeOrigin,
14 double seconds) {
15 DCHECK(seconds >= 0.0);
16 if (!seconds || !timeOrigin)
17 return 0.0;
18 if (seconds < timeOrigin)
19 return 0.0;
20 return PerformanceBase::clampTimeResolution(seconds - timeOrigin) * 1000.0;
21 }
22
23 PerformanceNavigationTiming::PerformanceNavigationTiming( 12 PerformanceNavigationTiming::PerformanceNavigationTiming(
24 double timeOrigin, 13 double timeOrigin,
25 double unloadEventStart, 14 double unloadEventStart,
26 double unloadEventEnd, 15 double unloadEventEnd,
27 double loadEventStart, 16 double loadEventStart,
28 double loadEventEnd, 17 double loadEventEnd,
29 unsigned short redirectCount, 18 unsigned short redirectCount,
30 double domInteractive, 19 double domInteractive,
31 double domContentLoadedEventStart, 20 double domContentLoadedEventStart,
32 double domContentLoadedEventEnd, 21 double domContentLoadedEventEnd,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 m_type(type), 63 m_type(type),
75 m_redirectStart(redirectStart), 64 m_redirectStart(redirectStart),
76 m_redirectEnd(redirectEnd), 65 m_redirectEnd(redirectEnd),
77 m_fetchStart(fetchStart), 66 m_fetchStart(fetchStart),
78 m_responseEnd(responseEnd), 67 m_responseEnd(responseEnd),
79 m_allowRedirectDetails(allowRedirectDetails), 68 m_allowRedirectDetails(allowRedirectDetails),
80 m_hasSameOriginAsPreviousDocument(hasSameOriginAsPreviousDocument) {} 69 m_hasSameOriginAsPreviousDocument(hasSameOriginAsPreviousDocument) {}
81 70
82 PerformanceNavigationTiming::~PerformanceNavigationTiming() {} 71 PerformanceNavigationTiming::~PerformanceNavigationTiming() {}
83 72
84 double PerformanceNavigationTiming::unloadEventStart() const { 73 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventStart() const {
85 if (!m_allowRedirectDetails || !m_hasSameOriginAsPreviousDocument) 74 if (!m_allowRedirectDetails || !m_hasSameOriginAsPreviousDocument)
86 return 0; 75 return 0;
87 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_unloadEventStart); 76 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(
77 m_timeOrigin, m_unloadEventStart);
88 } 78 }
89 79
90 double PerformanceNavigationTiming::unloadEventEnd() const { 80 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventEnd() const {
91 if (!m_allowRedirectDetails || !m_hasSameOriginAsPreviousDocument) 81 if (!m_allowRedirectDetails || !m_hasSameOriginAsPreviousDocument)
92 return 0; 82 return 0;
93 83
94 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_unloadEventEnd); 84 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
85 m_unloadEventEnd);
95 } 86 }
96 87
97 double PerformanceNavigationTiming::domInteractive() const { 88 DOMHighResTimeStamp PerformanceNavigationTiming::domInteractive() const {
98 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_domInteractive); 89 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
90 m_domInteractive);
99 } 91 }
100 92
101 double PerformanceNavigationTiming::domContentLoadedEventStart() const { 93 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventStart()
102 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, 94 const {
103 m_domContentLoadedEventStart); 95 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(
96 m_timeOrigin, m_domContentLoadedEventStart);
104 } 97 }
105 98
106 double PerformanceNavigationTiming::domContentLoadedEventEnd() const { 99 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventEnd()
107 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, 100 const {
108 m_domContentLoadedEventEnd); 101 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(
102 m_timeOrigin, m_domContentLoadedEventEnd);
109 } 103 }
110 104
111 double PerformanceNavigationTiming::domComplete() const { 105 DOMHighResTimeStamp PerformanceNavigationTiming::domComplete() const {
112 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_domComplete); 106 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
107 m_domComplete);
113 } 108 }
114 109
115 double PerformanceNavigationTiming::loadEventStart() const { 110 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventStart() const {
116 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_loadEventStart); 111 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
112 m_loadEventStart);
117 } 113 }
118 114
119 double PerformanceNavigationTiming::loadEventEnd() const { 115 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventEnd() const {
120 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_loadEventEnd); 116 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
117 m_loadEventEnd);
121 } 118 }
122 119
123 AtomicString PerformanceNavigationTiming::type() const { 120 AtomicString PerformanceNavigationTiming::type() const {
124 switch (m_type) { 121 switch (m_type) {
125 case NavigationType::Reload: 122 case NavigationType::Reload:
126 return "reload"; 123 return "reload";
127 case NavigationType::BackForward: 124 case NavigationType::BackForward:
128 return "back_forward"; 125 return "back_forward";
129 case NavigationType::Prerender: 126 case NavigationType::Prerender:
130 return "prerender"; 127 return "prerender";
131 case NavigationType::Navigate: 128 case NavigationType::Navigate:
132 return "navigate"; 129 return "navigate";
133 } 130 }
134 NOTREACHED(); 131 NOTREACHED();
135 return "navigate"; 132 return "navigate";
136 } 133 }
137 134
138 unsigned short PerformanceNavigationTiming::redirectCount() const { 135 unsigned short PerformanceNavigationTiming::redirectCount() const {
139 if (!m_allowRedirectDetails) 136 if (!m_allowRedirectDetails)
140 return 0; 137 return 0;
141 return m_redirectCount; 138 return m_redirectCount;
142 } 139 }
143 140
144 double PerformanceNavigationTiming::fetchStart() const { 141 DOMHighResTimeStamp PerformanceNavigationTiming::fetchStart() const {
145 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_fetchStart); 142 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
143 m_fetchStart);
146 } 144 }
147 145
148 double PerformanceNavigationTiming::redirectStart() const { 146 DOMHighResTimeStamp PerformanceNavigationTiming::redirectStart() const {
149 if (!m_allowRedirectDetails) 147 if (!m_allowRedirectDetails)
150 return 0; 148 return 0;
151 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_redirectStart); 149 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
150 m_redirectStart);
152 } 151 }
153 152
154 double PerformanceNavigationTiming::redirectEnd() const { 153 DOMHighResTimeStamp PerformanceNavigationTiming::redirectEnd() const {
155 if (!m_allowRedirectDetails) 154 if (!m_allowRedirectDetails)
156 return 0; 155 return 0;
157 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_redirectEnd); 156 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
157 m_redirectEnd);
158 } 158 }
159 159
160 double PerformanceNavigationTiming::responseEnd() const { 160 DOMHighResTimeStamp PerformanceNavigationTiming::responseEnd() const {
161 return monotonicTimeToDOMHighResTimeStamp(m_timeOrigin, m_responseEnd); 161 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp(m_timeOrigin,
162 m_responseEnd);
162 } 163 }
163 164
164 void PerformanceNavigationTiming::buildJSONValue( 165 void PerformanceNavigationTiming::buildJSONValue(
165 V8ObjectBuilder& builder) const { 166 V8ObjectBuilder& builder) const {
166 PerformanceResourceTiming::buildJSONValue(builder); 167 PerformanceResourceTiming::buildJSONValue(builder);
167 builder.addNumber("unloadEventStart", unloadEventStart()); 168 builder.addNumber("unloadEventStart", unloadEventStart());
168 builder.addNumber("unloadEventEnd", unloadEventEnd()); 169 builder.addNumber("unloadEventEnd", unloadEventEnd());
169 builder.addNumber("domInteractive", domInteractive()); 170 builder.addNumber("domInteractive", domInteractive());
170 builder.addNumber("domContentLoadedEventStart", domContentLoadedEventStart()); 171 builder.addNumber("domContentLoadedEventStart", domContentLoadedEventStart());
171 builder.addNumber("domContentLoadedEventEnd", domContentLoadedEventEnd()); 172 builder.addNumber("domContentLoadedEventEnd", domContentLoadedEventEnd());
172 builder.addNumber("domComplete", domComplete()); 173 builder.addNumber("domComplete", domComplete());
173 builder.addNumber("loadEventStart", loadEventStart()); 174 builder.addNumber("loadEventStart", loadEventStart());
174 builder.addNumber("loadEventEnd", loadEventEnd()); 175 builder.addNumber("loadEventEnd", loadEventEnd());
175 builder.addString("type", type()); 176 builder.addString("type", type());
176 builder.addNumber("redirectCount", redirectCount()); 177 builder.addNumber("redirectCount", redirectCount());
177 } 178 }
178 } 179 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698