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

Unified Diff: third_party/WebKit/Source/core/dom/Document.cpp

Issue 2389023002: Deferred frame loading stats v2 (Closed)
Patch Set: address comments round 2 Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/Document.cpp
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
index 1d02cf51a8f803f3045df673fe1cb1b8534986fd..edc23cc05ccdb08399a11cd626e50cae83cae848 100644
--- a/third_party/WebKit/Source/core/dom/Document.cpp
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -398,22 +398,11 @@ static void runAutofocusTask(ExecutionContext* context) {
}
}
-// These are logged to UMA, so don't re-arrange them without creating a new
-// histogram.
-enum DocumentVisibilityForDeferredLoading {
- Created,
- WouldLoadBecauseVisible,
- // TODO(dgrogan): Add WouldLoadBecauseTopOrLeft, WouldLoadBecauseDisplayNone,
- // etc
-
- DocumentVisibilityForDeferredLoadingEnd
-};
-
-static void RecordStateToHistogram(DocumentVisibilityForDeferredLoading state) {
- DEFINE_STATIC_LOCAL(EnumerationHistogram, unseenFrameHistogram,
- ("Navigation.DeferredDocumentLoading.StatesV1",
- DocumentVisibilityForDeferredLoadingEnd));
- unseenFrameHistogram.count(state);
+static void recordLoadReasonToHistogram(WouldLoadReason reason) {
+ DEFINE_STATIC_LOCAL(
+ EnumerationHistogram, unseenFrameHistogram,
+ ("Navigation.DeferredDocumentLoading.StatesV2", WouldLoadReasonEnd));
+ unseenFrameHistogram.count(reason);
}
Document::Document(const DocumentInit& initializer,
@@ -496,7 +485,7 @@ Document::Document(const DocumentInit& initializer,
m_hasViewportUnits(false),
m_parserSyncPolicy(AllowAsynchronousParsing),
m_nodeCount(0),
- m_visibilityWasLogged(false) {
+ m_wouldLoadReason(Created) {
if (m_frame) {
DCHECK(m_frame->page());
provideContextFeaturesToDocumentFrom(*this, *m_frame->page());
@@ -530,8 +519,10 @@ Document::Document(const DocumentInit& initializer,
DCHECK(getSecurityOrigin());
if (frame() && frame()->tree().top()->securityContext() &&
!getSecurityOrigin()->canAccess(
- frame()->tree().top()->securityContext()->getSecurityOrigin()))
- RecordStateToHistogram(Created);
+ frame()->tree().top()->securityContext()->getSecurityOrigin()) &&
+ frame()->loader().stateMachine()->committedFirstRealDocumentLoad()) {
dcheng 2016/10/18 20:44:22 Let's just do this check first; then I think we ca
+ recordLoadReasonToHistogram(Created);
+ }
initDNSPrefetch();
@@ -6365,12 +6356,14 @@ DEFINE_TRACE(Document) {
SecurityContext::trace(visitor);
}
-void Document::onVisibilityMaybeChanged(bool visible) {
+void Document::wouldLoadBecause(WouldLoadReason reason) {
+ DCHECK(reason != Created);
DCHECK(frame());
- if (visible && !m_visibilityWasLogged && frame()->isCrossOriginSubframe()) {
- m_visibilityWasLogged = true;
- RecordStateToHistogram(WouldLoadBecauseVisible);
+ if (m_wouldLoadReason == Created && frame()->isCrossOriginSubframe() &&
+ frame()->loader().stateMachine()->committedFirstRealDocumentLoad()) {
+ recordLoadReasonToHistogram(reason);
}
+ m_wouldLoadReason = reason;
}
DEFINE_TRACE_WRAPPERS(Document) {

Powered by Google App Engine
This is Rietveld 408576698