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

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

Issue 2837943006: [WIP] Support PerformanceResourceTiming for Service Worker Navigation Preload (Closed)
Patch Set: clean up Created 3 years, 7 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/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/dom/DocumentTiming.h" 9 #include "core/dom/DocumentTiming.h"
10 #include "core/frame/LocalFrame.h" 10 #include "core/frame/LocalFrame.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 } 126 }
127 127
128 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventStart() const { 128 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventStart() const {
129 bool allow_redirect_details = GetAllowRedirectDetails(); 129 bool allow_redirect_details = GetAllowRedirectDetails();
130 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 130 DocumentLoadTiming* timing = GetDocumentLoadTiming();
131 131
132 if (!allow_redirect_details || !timing || 132 if (!allow_redirect_details || !timing ||
133 !timing->HasSameOriginAsPreviousDocument()) 133 !timing->HasSameOriginAsPreviousDocument())
134 return 0; 134 return 0;
135 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 135 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
136 time_origin_, timing->UnloadEventStart()); 136 time_origin_, timing->UnloadEventStart(),
137 false /* allow_negative_value */);
137 } 138 }
138 139
139 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventEnd() const { 140 DOMHighResTimeStamp PerformanceNavigationTiming::unloadEventEnd() const {
140 bool allow_redirect_details = GetAllowRedirectDetails(); 141 bool allow_redirect_details = GetAllowRedirectDetails();
141 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 142 DocumentLoadTiming* timing = GetDocumentLoadTiming();
142 143
143 if (!allow_redirect_details || !timing || 144 if (!allow_redirect_details || !timing ||
144 !timing->HasSameOriginAsPreviousDocument()) 145 !timing->HasSameOriginAsPreviousDocument())
145 return 0; 146 return 0;
146 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 147 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
147 time_origin_, timing->UnloadEventEnd()); 148 time_origin_, timing->UnloadEventEnd(), false /* allow_negative_value */);
148 } 149 }
149 150
150 DOMHighResTimeStamp PerformanceNavigationTiming::domInteractive() const { 151 DOMHighResTimeStamp PerformanceNavigationTiming::domInteractive() const {
151 const DocumentTiming* timing = GetDocumentTiming(); 152 const DocumentTiming* timing = GetDocumentTiming();
152 if (!timing) 153 if (!timing)
153 return 0.0; 154 return 0.0;
154 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 155 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
155 time_origin_, timing->DomInteractive()); 156 time_origin_, timing->DomInteractive(), false /* allow_negative_value */);
156 } 157 }
157 158
158 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventStart() 159 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventStart()
159 const { 160 const {
160 const DocumentTiming* timing = GetDocumentTiming(); 161 const DocumentTiming* timing = GetDocumentTiming();
161 if (!timing) 162 if (!timing)
162 return 0.0; 163 return 0.0;
163 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 164 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
164 time_origin_, timing->DomContentLoadedEventStart()); 165 time_origin_, timing->DomContentLoadedEventStart(),
166 false /* allow_negative_value */);
165 } 167 }
166 168
167 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventEnd() 169 DOMHighResTimeStamp PerformanceNavigationTiming::domContentLoadedEventEnd()
168 const { 170 const {
169 const DocumentTiming* timing = GetDocumentTiming(); 171 const DocumentTiming* timing = GetDocumentTiming();
170 if (!timing) 172 if (!timing)
171 return 0.0; 173 return 0.0;
172 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 174 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
173 time_origin_, timing->DomContentLoadedEventEnd()); 175 time_origin_, timing->DomContentLoadedEventEnd(),
176 false /* allow_negative_value */);
174 } 177 }
175 178
176 DOMHighResTimeStamp PerformanceNavigationTiming::domComplete() const { 179 DOMHighResTimeStamp PerformanceNavigationTiming::domComplete() const {
177 const DocumentTiming* timing = GetDocumentTiming(); 180 const DocumentTiming* timing = GetDocumentTiming();
178 if (!timing) 181 if (!timing)
179 return 0.0; 182 return 0.0;
180 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 183 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
181 time_origin_, timing->DomComplete()); 184 time_origin_, timing->DomComplete(), false /* allow_negative_value */);
182 } 185 }
183 186
184 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventStart() const { 187 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventStart() const {
185 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 188 DocumentLoadTiming* timing = GetDocumentLoadTiming();
186 if (!timing) 189 if (!timing)
187 return 0.0; 190 return 0.0;
188 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 191 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
189 time_origin_, timing->LoadEventStart()); 192 time_origin_, timing->LoadEventStart(), false /* allow_negative_value */);
190 } 193 }
191 194
192 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventEnd() const { 195 DOMHighResTimeStamp PerformanceNavigationTiming::loadEventEnd() const {
193 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 196 DocumentLoadTiming* timing = GetDocumentLoadTiming();
194 if (!timing) 197 if (!timing)
195 return 0.0; 198 return 0.0;
196 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 199 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
197 time_origin_, timing->LoadEventEnd()); 200 time_origin_, timing->LoadEventEnd(), false /* allow_negative_value */);
198 } 201 }
199 202
200 AtomicString PerformanceNavigationTiming::type() const { 203 AtomicString PerformanceNavigationTiming::type() const {
201 DocumentLoader* loader = GetDocumentLoader(); 204 DocumentLoader* loader = GetDocumentLoader();
202 if (GetFrame() && loader) 205 if (GetFrame() && loader)
203 return GetNavigationType(loader->GetNavigationType(), 206 return GetNavigationType(loader->GetNavigationType(),
204 GetFrame()->GetDocument()); 207 GetFrame()->GetDocument());
205 return "navigate"; 208 return "navigate";
206 } 209 }
207 210
208 unsigned short PerformanceNavigationTiming::redirectCount() const { 211 unsigned short PerformanceNavigationTiming::redirectCount() const {
209 bool allow_redirect_details = GetAllowRedirectDetails(); 212 bool allow_redirect_details = GetAllowRedirectDetails();
210 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 213 DocumentLoadTiming* timing = GetDocumentLoadTiming();
211 if (!allow_redirect_details || !timing) 214 if (!allow_redirect_details || !timing)
212 return 0; 215 return 0;
213 return timing->RedirectCount(); 216 return timing->RedirectCount();
214 } 217 }
215 218
216 DOMHighResTimeStamp PerformanceNavigationTiming::redirectStart() const { 219 DOMHighResTimeStamp PerformanceNavigationTiming::redirectStart() const {
217 bool allow_redirect_details = GetAllowRedirectDetails(); 220 bool allow_redirect_details = GetAllowRedirectDetails();
218 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 221 DocumentLoadTiming* timing = GetDocumentLoadTiming();
219 if (!allow_redirect_details || !timing) 222 if (!allow_redirect_details || !timing)
220 return 0; 223 return 0;
221 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 224 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
222 time_origin_, timing->RedirectStart()); 225 time_origin_, timing->RedirectStart(), false /* allow_negative_value */);
223 } 226 }
224 227
225 DOMHighResTimeStamp PerformanceNavigationTiming::redirectEnd() const { 228 DOMHighResTimeStamp PerformanceNavigationTiming::redirectEnd() const {
226 bool allow_redirect_details = GetAllowRedirectDetails(); 229 bool allow_redirect_details = GetAllowRedirectDetails();
227 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 230 DocumentLoadTiming* timing = GetDocumentLoadTiming();
228 if (!allow_redirect_details || !timing) 231 if (!allow_redirect_details || !timing)
229 return 0; 232 return 0;
230 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 233 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
231 time_origin_, timing->RedirectEnd()); 234 time_origin_, timing->RedirectEnd(), false /* allow_negative_value */);
232 } 235 }
233 236
234 DOMHighResTimeStamp PerformanceNavigationTiming::fetchStart() const { 237 DOMHighResTimeStamp PerformanceNavigationTiming::fetchStart() const {
235 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 238 DocumentLoadTiming* timing = GetDocumentLoadTiming();
236 if (!timing) 239 if (!timing)
237 return 0.0; 240 return 0.0;
238 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 241 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
239 time_origin_, timing->FetchStart()); 242 time_origin_, timing->FetchStart(), false /* allow_negative_value */);
240 } 243 }
241 244
242 DOMHighResTimeStamp PerformanceNavigationTiming::responseEnd() const { 245 DOMHighResTimeStamp PerformanceNavigationTiming::responseEnd() const {
243 DocumentLoadTiming* timing = GetDocumentLoadTiming(); 246 DocumentLoadTiming* timing = GetDocumentLoadTiming();
244 if (!timing) 247 if (!timing)
245 return 0.0; 248 return 0.0;
246 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( 249 return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(
247 time_origin_, timing->ResponseEnd()); 250 time_origin_, timing->ResponseEnd(), false /* allow_negative_value */);
248 } 251 }
249 252
250 // Overriding PerformanceEntry's attributes. 253 // Overriding PerformanceEntry's attributes.
251 DOMHighResTimeStamp PerformanceNavigationTiming::duration() const { 254 DOMHighResTimeStamp PerformanceNavigationTiming::duration() const {
252 return loadEventEnd(); 255 return loadEventEnd();
253 } 256 }
254 257
255 void PerformanceNavigationTiming::BuildJSONValue( 258 void PerformanceNavigationTiming::BuildJSONValue(
256 V8ObjectBuilder& builder) const { 259 V8ObjectBuilder& builder) const {
257 PerformanceResourceTiming::BuildJSONValue(builder); 260 PerformanceResourceTiming::BuildJSONValue(builder);
258 builder.AddNumber("unloadEventStart", unloadEventStart()); 261 builder.AddNumber("unloadEventStart", unloadEventStart());
259 builder.AddNumber("unloadEventEnd", unloadEventEnd()); 262 builder.AddNumber("unloadEventEnd", unloadEventEnd());
260 builder.AddNumber("domInteractive", domInteractive()); 263 builder.AddNumber("domInteractive", domInteractive());
261 builder.AddNumber("domContentLoadedEventStart", domContentLoadedEventStart()); 264 builder.AddNumber("domContentLoadedEventStart", domContentLoadedEventStart());
262 builder.AddNumber("domContentLoadedEventEnd", domContentLoadedEventEnd()); 265 builder.AddNumber("domContentLoadedEventEnd", domContentLoadedEventEnd());
263 builder.AddNumber("domComplete", domComplete()); 266 builder.AddNumber("domComplete", domComplete());
264 builder.AddNumber("loadEventStart", loadEventStart()); 267 builder.AddNumber("loadEventStart", loadEventStart());
265 builder.AddNumber("loadEventEnd", loadEventEnd()); 268 builder.AddNumber("loadEventEnd", loadEventEnd());
266 builder.AddString("type", type()); 269 builder.AddString("type", type());
267 builder.AddNumber("redirectCount", redirectCount()); 270 builder.AddNumber("redirectCount", redirectCount());
268 } 271 }
269 } 272 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698