| Index: third_party/WebKit/Source/core/dom/Document.h
|
| diff --git a/third_party/WebKit/Source/core/dom/Document.h b/third_party/WebKit/Source/core/dom/Document.h
|
| index 0844a8866f7e44e8c80e1de6abf56ca11efc538d..40ec07d36da6841e83fe3673db9bcf585c886645 100644
|
| --- a/third_party/WebKit/Source/core/dom/Document.h
|
| +++ b/third_party/WebKit/Source/core/dom/Document.h
|
| @@ -236,6 +236,29 @@ enum CreateElementFlags {
|
| CreatedByFragmentParser = CreatedByParser | AsynchronousCustomElements,
|
| };
|
|
|
| +// Collect data about deferred loading of offscreen cross-origin documents. All
|
| +// cross-origin documents log Created. Only those that would load log a reason.
|
| +// We can then see the % of cross-origin documents that never have to load.
|
| +// See https://crbug.com/635105.
|
| +// Logged to UMA, don't re-arrange entries without creating a new histogram.
|
| +enum WouldLoadReason {
|
| + Created,
|
| + // If outer and inner frames aren't in the same process we can't determine
|
| + // if the inner frame is visible, so just load it.
|
| + // TODO(dgrogan): Revisit after https://crbug.com/650433 is fixed.
|
| + WouldLoadOutOfProcess,
|
| + // The next four indicate frames that are probably used for cross-origin
|
| + // communication.
|
| + WouldLoadDisplayNone,
|
| + WouldLoadZeroByZero,
|
| + WouldLoadAbove,
|
| + WouldLoadLeft,
|
| + // We have to load documents in visible frames.
|
| + WouldLoadVisible,
|
| +
|
| + WouldLoadReasonEnd
|
| +};
|
| +
|
| using DocumentClassFlags = unsigned char;
|
|
|
| class CORE_EXPORT Document : public ContainerNode,
|
| @@ -1286,7 +1309,8 @@ class CORE_EXPORT Document : public ContainerNode,
|
|
|
| bool isInMainFrame() const;
|
|
|
| - void onVisibilityMaybeChanged(bool visible);
|
| + void maybeRecordLoadReason(WouldLoadReason);
|
| + WouldLoadReason wouldLoadReason() { return m_wouldLoadReason; }
|
|
|
| PropertyRegistry* propertyRegistry();
|
|
|
| @@ -1641,7 +1665,7 @@ class CORE_EXPORT Document : public ContainerNode,
|
|
|
| Member<SnapCoordinator> m_snapCoordinator;
|
|
|
| - bool m_visibilityWasLogged;
|
| + WouldLoadReason m_wouldLoadReason;
|
|
|
| Member<PropertyRegistry> m_propertyRegistry;
|
| };
|
|
|