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

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

Issue 2511313002: transferSize implementation (Closed)
Patch Set: added TODO Created 4 years 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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 if (!isResourceTimingBufferFull()) 308 if (!isResourceTimingBufferFull())
309 addResourceTimingBuffer(*entry); 309 addResourceTimingBuffer(*entry);
310 } 310 }
311 311
312 void PerformanceBase::addNavigationTiming(LocalFrame* frame) { 312 void PerformanceBase::addNavigationTiming(LocalFrame* frame) {
313 if (!RuntimeEnabledFeatures::performanceNavigationTiming2Enabled()) 313 if (!RuntimeEnabledFeatures::performanceNavigationTiming2Enabled())
314 return; 314 return;
315 DCHECK(frame); 315 DCHECK(frame);
316 const DocumentLoader* documentLoader = frame->loader().documentLoader(); 316 const DocumentLoader* documentLoader = frame->loader().documentLoader();
317 DCHECK(documentLoader); 317 DCHECK(documentLoader);
318
318 const DocumentLoadTiming& documentLoadTiming = documentLoader->timing(); 319 const DocumentLoadTiming& documentLoadTiming = documentLoader->timing();
319 320
320 const DocumentTiming* documentTiming = 321 const DocumentTiming* documentTiming =
321 frame->document() ? &(frame->document()->timing()) : nullptr; 322 frame->document() ? &(frame->document()->timing()) : nullptr;
322 323
323 const ResourceResponse& finalResponse = documentLoader->response(); 324 const ResourceResponse& finalResponse = documentLoader->response();
325 ResourceTimingInfo* resourceTimingInfo =
326 documentLoader->getMainResourceTimingInfo();
324 327
325 ResourceLoadTiming* resourceLoadTiming = finalResponse.resourceLoadTiming(); 328 ResourceLoadTiming* resourceLoadTiming = finalResponse.resourceLoadTiming();
326 // Don't create a navigation timing instance when 329 // Don't create a navigation timing instance when
327 // resourceLoadTiming is null, which could happen when visiting non-http sites 330 // resourceLoadTiming is null, which could happen when visiting non-http sites
328 // such as about:blank or in some error cases. 331 // such as about:blank or in some error cases.
329 if (!resourceLoadTiming) 332 if (!resourceLoadTiming)
330 return; 333 return;
331 double lastRedirectEndTime = documentLoadTiming.redirectEnd(); 334 double lastRedirectEndTime = documentLoadTiming.redirectEnd();
332 double finishTime = documentLoadTiming.loadEventEnd(); 335 double finishTime = documentLoadTiming.loadEventEnd();
333 336
334 // TODO(sunjian) Implement transfer size. crbug/663187 337 unsigned long long transferSize =
335 unsigned long long transferSize = 0; 338 resourceTimingInfo ? resourceTimingInfo->transferSize() : 0;
336 unsigned long long encodedBodyLength = finalResponse.encodedBodyLength(); 339 unsigned long long encodedBodyLength = finalResponse.encodedBodyLength();
337 unsigned long long decodedBodyLength = finalResponse.decodedBodyLength(); 340 unsigned long long decodedBodyLength = finalResponse.decodedBodyLength();
338 bool didReuseConnection = finalResponse.connectionReused(); 341 bool didReuseConnection = finalResponse.connectionReused();
339 342
340 m_navigationTiming = new PerformanceNavigationTiming( 343 m_navigationTiming = new PerformanceNavigationTiming(
341 timeOrigin(), documentLoadTiming.unloadEventStart(), 344 timeOrigin(), documentLoadTiming.unloadEventStart(),
342 documentLoadTiming.unloadEventEnd(), documentLoadTiming.loadEventStart(), 345 documentLoadTiming.unloadEventEnd(), documentLoadTiming.loadEventStart(),
343 documentLoadTiming.loadEventEnd(), documentLoadTiming.redirectCount(), 346 documentLoadTiming.loadEventEnd(), documentLoadTiming.redirectCount(),
344 documentTiming ? documentTiming->domInteractive() : 0, 347 documentTiming ? documentTiming->domInteractive() : 0,
345 documentTiming ? documentTiming->domContentLoadedEventStart() : 0, 348 documentTiming ? documentTiming->domContentLoadedEventStart() : 0,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 visitor->trace(m_resourceTimingBuffer); 532 visitor->trace(m_resourceTimingBuffer);
530 visitor->trace(m_navigationTiming); 533 visitor->trace(m_navigationTiming);
531 visitor->trace(m_userTiming); 534 visitor->trace(m_userTiming);
532 visitor->trace(m_observers); 535 visitor->trace(m_observers);
533 visitor->trace(m_activeObservers); 536 visitor->trace(m_activeObservers);
534 visitor->trace(m_suspendedObservers); 537 visitor->trace(m_suspendedObservers);
535 EventTargetWithInlineData::trace(visitor); 538 EventTargetWithInlineData::trace(visitor);
536 } 539 }
537 540
538 } // namespace blink 541 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698