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

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

Issue 2647643004: Report nav timing 2 instance as soon as it's requested. (Closed)
Patch Set: make a copy of navigationTimingInfo for ResourceFetcher Created 3 years, 10 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 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Intel Inc. All rights reserved. 3 * Copyright (C) 2012 Intel Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 22 matching lines...) Expand all
33 33
34 #include "bindings/core/v8/V8ObjectBuilder.h" 34 #include "bindings/core/v8/V8ObjectBuilder.h"
35 #include "core/timing/PerformanceBase.h" 35 #include "core/timing/PerformanceBase.h"
36 #include "platform/network/ResourceRequest.h" 36 #include "platform/network/ResourceRequest.h"
37 #include "platform/network/ResourceResponse.h" 37 #include "platform/network/ResourceResponse.h"
38 #include "platform/network/ResourceTimingInfo.h" 38 #include "platform/network/ResourceTimingInfo.h"
39 39
40 namespace blink { 40 namespace blink {
41 41
42 PerformanceResourceTiming::PerformanceResourceTiming( 42 PerformanceResourceTiming::PerformanceResourceTiming(
43 const AtomicString& initiatorType,
44 double timeOrigin,
45 ResourceLoadTiming* timing,
46 double lastRedirectEndTime,
47 double finishTime,
48 unsigned long long transferSize,
49 unsigned long long encodedBodyLength,
50 unsigned long long decodedBodyLength,
51 bool didReuseConnection,
52 bool allowTimingDetails,
53 bool allowRedirectDetails,
54 const String& name,
55 const String& entryType,
56 double startTime)
57 : PerformanceEntry(
58 name,
59 entryType,
60 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(timeOrigin,
61 startTime),
62 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(timeOrigin,
63 finishTime)),
64 m_initiatorType(initiatorType),
65 m_timeOrigin(timeOrigin),
66 m_timing(timing),
67 m_lastRedirectEndTime(lastRedirectEndTime),
68 m_finishTime(finishTime),
69 m_transferSize(transferSize),
70 m_encodedBodySize(encodedBodyLength),
71 m_decodedBodySize(decodedBodyLength),
72 m_didReuseConnection(didReuseConnection),
73 m_allowTimingDetails(allowTimingDetails),
74 m_allowRedirectDetails(allowRedirectDetails) {}
75
76 PerformanceResourceTiming::PerformanceResourceTiming(
77 const ResourceTimingInfo& info, 43 const ResourceTimingInfo& info,
78 double timeOrigin, 44 double timeOrigin,
79 double startTime, 45 double startTime,
80 double lastRedirectEndTime, 46 double lastRedirectEndTime,
81 bool allowTimingDetails, 47 bool allowTimingDetails,
82 bool allowRedirectDetails) 48 bool allowRedirectDetails)
83 : PerformanceResourceTiming(info.initiatorType(), 49 : PerformanceEntry(
84 timeOrigin, 50 info.initialURL().getString(),
85 info.finalResponse().resourceLoadTiming(), 51 "resource",
86 lastRedirectEndTime, 52 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(timeOrigin,
87 info.loadFinishTime(), 53 startTime),
88 info.transferSize(), 54 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(
89 info.finalResponse().encodedBodyLength(), 55 timeOrigin,
90 info.finalResponse().decodedBodyLength(), 56 info.loadFinishTime())),
91 info.finalResponse().connectionReused(), 57 m_initiatorType(info.initiatorType()),
92 allowTimingDetails, 58 m_timeOrigin(timeOrigin),
93 allowRedirectDetails, 59 m_timing(info.finalResponse().resourceLoadTiming()),
94 info.initialURL().getString(), 60 m_lastRedirectEndTime(lastRedirectEndTime),
95 "resource", 61 m_finishTime(info.loadFinishTime()),
96 startTime) {} 62 m_transferSize(info.transferSize()),
63 m_encodedBodySize(info.finalResponse().encodedBodyLength()),
64 m_decodedBodySize(info.finalResponse().decodedBodyLength()),
65 m_didReuseConnection(info.finalResponse().connectionReused()),
66 m_allowTimingDetails(allowTimingDetails),
67 m_allowRedirectDetails(allowRedirectDetails) {}
68
69 // This constructor is for PerformanceNavigationTiming.
panicker 2017/02/03 23:53:52 Add TODO with link to design doc and indicate this
sunjian 2017/02/10 18:32:46 I'm not sure what TODO to add. We can't get rid of
70 PerformanceResourceTiming::PerformanceResourceTiming(const String& name,
71 const String& entryType,
72 double startTime,
73 double duration)
74 : PerformanceEntry(name, entryType, startTime, duration) {}
97 75
98 PerformanceResourceTiming::~PerformanceResourceTiming() {} 76 PerformanceResourceTiming::~PerformanceResourceTiming() {}
99 77
100 AtomicString PerformanceResourceTiming::initiatorType() const { 78 AtomicString PerformanceResourceTiming::initiatorType() const {
101 return m_initiatorType; 79 return m_initiatorType;
102 } 80 }
103 81
104 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { 82 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const {
105 if (!m_timing || m_timing->workerStart() == 0.0) 83 if (!m_timing || m_timing->workerStart() == 0.0)
106 return 0.0; 84 return 0.0;
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 builder.addNumber("secureConnectionStart", secureConnectionStart()); 258 builder.addNumber("secureConnectionStart", secureConnectionStart());
281 builder.addNumber("requestStart", requestStart()); 259 builder.addNumber("requestStart", requestStart());
282 builder.addNumber("responseStart", responseStart()); 260 builder.addNumber("responseStart", responseStart());
283 builder.addNumber("responseEnd", responseEnd()); 261 builder.addNumber("responseEnd", responseEnd());
284 builder.addNumber("transferSize", transferSize()); 262 builder.addNumber("transferSize", transferSize());
285 builder.addNumber("encodedBodySize", encodedBodySize()); 263 builder.addNumber("encodedBodySize", encodedBodySize());
286 builder.addNumber("decodedBodySize", decodedBodySize()); 264 builder.addNumber("decodedBodySize", decodedBodySize());
287 } 265 }
288 266
289 } // namespace blink 267 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698