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

Unified Diff: third_party/WebKit/Source/core/timing/PerformanceBase.cpp

Issue 2509143002: Add Prerender type to NavigationType for nav timing 2 (Closed)
Patch Set: synced client 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/timing/PerformanceBase.cpp
diff --git a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp
index 377a1aed2fef0359fd57b733cf2bb90313c3c678..39a7e3029048b737b9dd46be61be55e16c9c23ef 100644
--- a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp
+++ b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp
@@ -39,7 +39,6 @@
#include "core/loader/DocumentLoadTiming.h"
#include "core/loader/DocumentLoader.h"
#include "core/timing/PerformanceLongTaskTiming.h"
-#include "core/timing/PerformanceNavigationTiming.h"
#include "core/timing/PerformanceObserver.h"
#include "core/timing/PerformanceResourceTiming.h"
#include "core/timing/PerformanceUserTiming.h"
@@ -68,6 +67,28 @@ PerformanceBase::PerformanceBase(double timeOrigin)
PerformanceBase::~PerformanceBase() {}
+PerformanceNavigationTiming::NavigationType PerformanceBase::getNavigationType(
+ NavigationType type,
+ const Document* document) {
+ if (document &&
+ document->pageVisibilityState() == PageVisibilityStatePrerender) {
+ return PerformanceNavigationTiming::NavigationType::Prerender;
+ }
+ switch (type) {
+ case NavigationTypeReload:
+ return PerformanceNavigationTiming::NavigationType::Reload;
+ case NavigationTypeBackForward:
+ return PerformanceNavigationTiming::NavigationType::BackForward;
+ case NavigationTypeLinkClicked:
+ case NavigationTypeFormSubmitted:
+ case NavigationTypeFormResubmitted:
+ case NavigationTypeOther:
+ return PerformanceNavigationTiming::NavigationType::Navigate;
+ }
+ NOTREACHED();
+ return PerformanceNavigationTiming::NavigationType::Navigate;
+}
+
const AtomicString& PerformanceBase::interfaceName() const {
return EventTargetNames::Performance;
}
@@ -336,6 +357,8 @@ void PerformanceBase::addNavigationTiming(LocalFrame* frame) {
unsigned long long encodedBodyLength = finalResponse.encodedBodyLength();
unsigned long long decodedBodyLength = finalResponse.decodedBodyLength();
bool didReuseConnection = finalResponse.connectionReused();
+ PerformanceNavigationTiming::NavigationType type =
+ getNavigationType(documentLoader->getNavigationType(), frame->document());
m_navigationTiming = new PerformanceNavigationTiming(
timeOrigin(), documentLoadTiming.unloadEventStart(),
@@ -344,10 +367,9 @@ void PerformanceBase::addNavigationTiming(LocalFrame* frame) {
documentTiming ? documentTiming->domInteractive() : 0,
documentTiming ? documentTiming->domContentLoadedEventStart() : 0,
documentTiming ? documentTiming->domContentLoadedEventEnd() : 0,
- documentTiming ? documentTiming->domComplete() : 0,
- documentLoader->getNavigationType(), documentLoadTiming.redirectStart(),
- documentLoadTiming.redirectEnd(), documentLoadTiming.fetchStart(),
- documentLoadTiming.responseEnd(),
+ documentTiming ? documentTiming->domComplete() : 0, type,
+ documentLoadTiming.redirectStart(), documentLoadTiming.redirectEnd(),
+ documentLoadTiming.fetchStart(), documentLoadTiming.responseEnd(),
documentLoadTiming.hasCrossOriginRedirect(),
documentLoadTiming.hasSameOriginAsPreviousDocument(), resourceLoadTiming,
lastRedirectEndTime, finishTime, transferSize, encodedBodyLength,
« no previous file with comments | « third_party/WebKit/Source/core/timing/PerformanceBase.h ('k') | third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698