| 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 e9de0109b839f8b2d872a68740916f080b13b897..acae74472ddd8f630d78dff46544427b048a6335 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,
|
| @@ -498,7 +487,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());
|
| @@ -529,11 +518,6 @@ Document::Document(const DocumentInit& initializer,
|
| setURL(initializer.url());
|
|
|
| initSecurityContext(initializer);
|
| - DCHECK(getSecurityOrigin());
|
| - if (frame() && frame()->tree().top()->securityContext() &&
|
| - !getSecurityOrigin()->canAccess(
|
| - frame()->tree().top()->securityContext()->getSecurityOrigin()))
|
| - RecordStateToHistogram(Created);
|
|
|
| initDNSPrefetch();
|
|
|
| @@ -6373,12 +6357,14 @@ DEFINE_TRACE(Document) {
|
| SecurityContext::trace(visitor);
|
| }
|
|
|
| -void Document::onVisibilityMaybeChanged(bool visible) {
|
| +void Document::maybeRecordLoadReason(WouldLoadReason reason) {
|
| + DCHECK(m_wouldLoadReason == Created || 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) {
|
|
|