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) { |