| Index: third_party/WebKit/Source/core/frame/FrameView.h
|
| diff --git a/third_party/WebKit/Source/core/frame/FrameView.h b/third_party/WebKit/Source/core/frame/FrameView.h
|
| index c68752363135fa17879613f10c06f4ef641d5330..bddc5229f24f56c833dbb797afd97dca7b80bcb2 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.h
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.h
|
| @@ -724,6 +724,18 @@ class CORE_EXPORT FrameView final
|
| return m_totalPropertyTreeStateForContents.get();
|
| }
|
|
|
| + // Paint properties (e.g., m_preTranslation, etc.) are built from the
|
| + // FrameView's state (e.g., x(), y(), etc.) as well as inherited context.
|
| + // When these inputs change, setNeedsPaintPropertyUpdate will cause a property
|
| + // tree update during the next document lifecycle update.
|
| + // TODO(pdr): Add additional granularity such as the ability to signal that
|
| + // only a local paint property update is needed.
|
| + void setNeedsPaintPropertyUpdate() { m_needsPaintPropertyUpdate = true; }
|
| + void clearNeedsPaintPropertyUpdate() {
|
| + DCHECK_EQ(lifecycle().state(), DocumentLifecycle::InPrePaint);
|
| + m_needsPaintPropertyUpdate = false;
|
| + }
|
| + bool needsPaintPropertyUpdate() const { return m_needsPaintPropertyUpdate; }
|
| // TODO(ojan): Merge this with IntersectionObserver once it lands.
|
| IntRect computeVisibleArea();
|
|
|
| @@ -1071,6 +1083,9 @@ class CORE_EXPORT FrameView final
|
| // properties are either created by this FrameView or are inherited from
|
| // an ancestor.
|
| std::unique_ptr<PropertyTreeState> m_totalPropertyTreeStateForContents;
|
| + // Whether the paint properties need to be updated. For more details, see
|
| + // FrameView::needsPaintPropertyUpdate().
|
| + bool m_needsPaintPropertyUpdate;
|
|
|
| // This is set on the local root frame view only.
|
| DocumentLifecycle::LifecycleState m_currentUpdateLifecyclePhasesTargetState;
|
|
|