OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google, Inc. All Rights Reserved. | 2 * Copyright (C) 2011 Google, Inc. All Rights Reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 if (m_navigationStart) { | 104 if (m_navigationStart) { |
105 DCHECK(m_referenceMonotonicTime); | 105 DCHECK(m_referenceMonotonicTime); |
106 DCHECK(m_referenceWallTime); | 106 DCHECK(m_referenceWallTime); |
107 return; | 107 return; |
108 } | 108 } |
109 DCHECK(!m_navigationStart); | 109 DCHECK(!m_navigationStart); |
110 DCHECK(!m_referenceMonotonicTime); | 110 DCHECK(!m_referenceMonotonicTime); |
111 DCHECK(!m_referenceWallTime); | 111 DCHECK(!m_referenceWallTime); |
112 ensureReferenceTimesSet(); | 112 ensureReferenceTimesSet(); |
113 m_navigationStart = m_referenceMonotonicTime; | 113 m_navigationStart = m_referenceMonotonicTime; |
114 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "navigationStart", m_n
avigationStart, "frame", frame()); | 114 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "navigationStart", Tra
ceEvent::toTraceTimestamp(m_navigationStart), "frame", frame()); |
115 notifyDocumentTimingChanged(); | 115 notifyDocumentTimingChanged(); |
116 } | 116 } |
117 | 117 |
118 void DocumentLoadTiming::setNavigationStart(double navigationStart) | 118 void DocumentLoadTiming::setNavigationStart(double navigationStart) |
119 { | 119 { |
120 // |m_referenceMonotonicTime| and |m_referenceWallTime| represent | 120 // |m_referenceMonotonicTime| and |m_referenceWallTime| represent |
121 // navigationStart. We must set these to the current time if they haven't | 121 // navigationStart. We must set these to the current time if they haven't |
122 // been set yet in order to have a valid reference time in both units. | 122 // been set yet in order to have a valid reference time in both units. |
123 ensureReferenceTimesSet(); | 123 ensureReferenceTimesSet(); |
124 m_navigationStart = navigationStart; | 124 m_navigationStart = navigationStart; |
125 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "navigationStart", m_n
avigationStart, "frame", frame()); | 125 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "navigationStart", Tra
ceEvent::toTraceTimestamp(m_navigationStart), "frame", frame()); |
126 | 126 |
127 // The reference times are adjusted based on the embedder's navigationStart. | 127 // The reference times are adjusted based on the embedder's navigationStart. |
128 DCHECK(m_referenceMonotonicTime); | 128 DCHECK(m_referenceMonotonicTime); |
129 DCHECK(m_referenceWallTime); | 129 DCHECK(m_referenceWallTime); |
130 m_referenceWallTime = monotonicTimeToPseudoWallTime(navigationStart); | 130 m_referenceWallTime = monotonicTimeToPseudoWallTime(navigationStart); |
131 m_referenceMonotonicTime = navigationStart; | 131 m_referenceMonotonicTime = navigationStart; |
132 notifyDocumentTimingChanged(); | 132 notifyDocumentTimingChanged(); |
133 } | 133 } |
134 | 134 |
135 void DocumentLoadTiming::addRedirect(const KURL& redirectingUrl, const KURL& red
irectedUrl) | 135 void DocumentLoadTiming::addRedirect(const KURL& redirectingUrl, const KURL& red
irectedUrl) |
136 { | 136 { |
137 m_redirectCount++; | 137 m_redirectCount++; |
138 if (!m_redirectStart) { | 138 if (!m_redirectStart) { |
139 setRedirectStart(m_fetchStart); | 139 setRedirectStart(m_fetchStart); |
140 } | 140 } |
141 markRedirectEnd(); | 141 markRedirectEnd(); |
142 markFetchStart(); | 142 markFetchStart(); |
143 | 143 |
144 // Check if the redirected url is allowed to access the redirecting url's ti
ming information. | 144 // Check if the redirected url is allowed to access the redirecting url's ti
ming information. |
145 RefPtr<SecurityOrigin> redirectedSecurityOrigin = SecurityOrigin::create(red
irectedUrl); | 145 RefPtr<SecurityOrigin> redirectedSecurityOrigin = SecurityOrigin::create(red
irectedUrl); |
146 m_hasCrossOriginRedirect |= !redirectedSecurityOrigin->canRequest(redirectin
gUrl); | 146 m_hasCrossOriginRedirect |= !redirectedSecurityOrigin->canRequest(redirectin
gUrl); |
147 } | 147 } |
148 | 148 |
149 void DocumentLoadTiming::setRedirectStart(double redirectStart) | 149 void DocumentLoadTiming::setRedirectStart(double redirectStart) |
150 { | 150 { |
151 m_redirectStart = redirectStart; | 151 m_redirectStart = redirectStart; |
152 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectStart", m_red
irectStart, "frame", frame()); | 152 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectStart", Trace
Event::toTraceTimestamp(m_redirectStart), "frame", frame()); |
153 notifyDocumentTimingChanged(); | 153 notifyDocumentTimingChanged(); |
154 } | 154 } |
155 | 155 |
156 void DocumentLoadTiming::setRedirectEnd(double redirectEnd) | 156 void DocumentLoadTiming::setRedirectEnd(double redirectEnd) |
157 { | 157 { |
158 m_redirectEnd = redirectEnd; | 158 m_redirectEnd = redirectEnd; |
159 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectEnd", m_redir
ectEnd, "frame", frame()); | 159 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectEnd", TraceEv
ent::toTraceTimestamp(m_redirectEnd), "frame", frame()); |
160 notifyDocumentTimingChanged(); | 160 notifyDocumentTimingChanged(); |
161 } | 161 } |
162 | 162 |
163 void DocumentLoadTiming::markUnloadEventStart() | 163 void DocumentLoadTiming::markUnloadEventStart() |
164 { | 164 { |
165 m_unloadEventStart = monotonicallyIncreasingTime(); | 165 m_unloadEventStart = monotonicallyIncreasingTime(); |
166 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "unloadEventStart", m_
unloadEventStart, "frame", frame()); | 166 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "unloadEventStart", Tr
aceEvent::toTraceTimestamp(m_unloadEventStart), "frame", frame()); |
167 notifyDocumentTimingChanged(); | 167 notifyDocumentTimingChanged(); |
168 } | 168 } |
169 | 169 |
170 void DocumentLoadTiming::markUnloadEventEnd() | 170 void DocumentLoadTiming::markUnloadEventEnd() |
171 { | 171 { |
172 m_unloadEventEnd = monotonicallyIncreasingTime(); | 172 m_unloadEventEnd = monotonicallyIncreasingTime(); |
173 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "unloadEventEnd", m_un
loadEventEnd, "frame", frame()); | 173 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "unloadEventEnd", Trac
eEvent::toTraceTimestamp(m_unloadEventEnd), "frame", frame()); |
174 notifyDocumentTimingChanged(); | 174 notifyDocumentTimingChanged(); |
175 } | 175 } |
176 | 176 |
177 void DocumentLoadTiming::markFetchStart() | 177 void DocumentLoadTiming::markFetchStart() |
178 { | 178 { |
179 setFetchStart(monotonicallyIncreasingTime()); | 179 setFetchStart(monotonicallyIncreasingTime()); |
180 } | 180 } |
181 | 181 |
182 void DocumentLoadTiming::setFetchStart(double fetchStart) | 182 void DocumentLoadTiming::setFetchStart(double fetchStart) |
183 { | 183 { |
184 m_fetchStart = fetchStart; | 184 m_fetchStart = fetchStart; |
185 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "fetchStart", m_fetchS
tart, "frame", frame()); | 185 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "fetchStart", TraceEve
nt::toTraceTimestamp(m_fetchStart), "frame", frame()); |
186 notifyDocumentTimingChanged(); | 186 notifyDocumentTimingChanged(); |
187 } | 187 } |
188 | 188 |
189 void DocumentLoadTiming::setResponseEnd(double responseEnd) | 189 void DocumentLoadTiming::setResponseEnd(double responseEnd) |
190 { | 190 { |
191 m_responseEnd = responseEnd; | 191 m_responseEnd = responseEnd; |
192 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "responseEnd", m_respo
nseEnd, "frame", frame()); | 192 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "responseEnd", TraceEv
ent::toTraceTimestamp(m_responseEnd), "frame", frame()); |
193 notifyDocumentTimingChanged(); | 193 notifyDocumentTimingChanged(); |
194 } | 194 } |
195 | 195 |
196 void DocumentLoadTiming::markLoadEventStart() | 196 void DocumentLoadTiming::markLoadEventStart() |
197 { | 197 { |
198 m_loadEventStart = monotonicallyIncreasingTime(); | 198 m_loadEventStart = monotonicallyIncreasingTime(); |
199 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "loadEventStart", m_lo
adEventStart, "frame", frame()); | 199 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "loadEventStart", Trac
eEvent::toTraceTimestamp(m_loadEventStart), "frame", frame()); |
200 notifyDocumentTimingChanged(); | 200 notifyDocumentTimingChanged(); |
201 } | 201 } |
202 | 202 |
203 void DocumentLoadTiming::markLoadEventEnd() | 203 void DocumentLoadTiming::markLoadEventEnd() |
204 { | 204 { |
205 m_loadEventEnd = monotonicallyIncreasingTime(); | 205 m_loadEventEnd = monotonicallyIncreasingTime(); |
206 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "loadEventEnd", m_load
EventEnd, "frame", frame()); | 206 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "loadEventEnd", TraceE
vent::toTraceTimestamp(m_loadEventEnd), "frame", frame()); |
207 notifyDocumentTimingChanged(); | 207 notifyDocumentTimingChanged(); |
208 } | 208 } |
209 | 209 |
210 void DocumentLoadTiming::markRedirectEnd() | 210 void DocumentLoadTiming::markRedirectEnd() |
211 { | 211 { |
212 m_redirectEnd = monotonicallyIncreasingTime(); | 212 m_redirectEnd = monotonicallyIncreasingTime(); |
213 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectEnd", m_redir
ectEnd, "frame", frame()); | 213 TRACE_EVENT_MARK_WITH_TIMESTAMP1("blink.user_timing", "redirectEnd", TraceEv
ent::toTraceTimestamp(m_redirectEnd), "frame", frame()); |
214 notifyDocumentTimingChanged(); | 214 notifyDocumentTimingChanged(); |
215 } | 215 } |
216 | 216 |
217 } // namespace blink | 217 } // namespace blink |
OLD | NEW |