| 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 edecda6ba994935a308e864a4b511d98288d9a2b..a6210b30e91db1d7c14fdffee28abd72821eef73 100644
|
| --- a/third_party/WebKit/Source/core/dom/Document.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
| @@ -398,22 +398,12 @@ 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 recordReasonToHistogram(WouldLoadReason reason) {
|
| + LOG(ERROR) << "UMAing " << reason;
|
| + DEFINE_STATIC_LOCAL(
|
| + EnumerationHistogram, unseenFrameHistogram,
|
| + ("Navigation.DeferredDocumentLoading.StatesV2", WouldLoadReasonEnd));
|
| + unseenFrameHistogram.count(reason);
|
| }
|
|
|
| Document::Document(const DocumentInit& initializer,
|
| @@ -496,7 +486,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 +520,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()) {
|
| + recordReasonToHistogram(Created);
|
| + }
|
|
|
| initDNSPrefetch();
|
|
|
| @@ -6333,12 +6325,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()) {
|
| + recordReasonToHistogram(reason);
|
| }
|
| + m_wouldLoadReason = reason;
|
| }
|
|
|
| DEFINE_TRACE_WRAPPERS(Document) {
|
|
|