Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: third_party/WebKit/Source/core/frame/FrameView.h

Issue 2359063002: Add static root property tree nodes [spv2] (Closed)
Patch Set: Address reviewer comments and fix a test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 c4fb4d0079f0b4b5ff1b7d652b4cbee1a1c26ba0..b61733c254e155d2d6c6f6de6a7ddd61a6ff154d 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.h
+++ b/third_party/WebKit/Source/core/frame/FrameView.h
@@ -32,6 +32,7 @@
#include "core/frame/RootFrameViewport.h"
#include "core/layout/ScrollAnchor.h"
#include "core/paint/FirstMeaningfulPaintDetector.h"
+#include "core/paint/ObjectPaintProperties.h"
#include "core/paint/PaintInvalidationCapableScrollableArea.h"
#include "core/paint/PaintPhase.h"
#include "platform/RuntimeEnabledFeatures.h"
@@ -39,10 +40,6 @@
#include "platform/geometry/IntRect.h"
#include "platform/geometry/LayoutRect.h"
#include "platform/graphics/Color.h"
-#include "platform/graphics/paint/ClipPaintPropertyNode.h"
-#include "platform/graphics/paint/EffectPaintPropertyNode.h"
-#include "platform/graphics/paint/ScrollPaintPropertyNode.h"
-#include "platform/graphics/paint/TransformPaintPropertyNode.h"
#include "platform/scroll/ScrollTypes.h"
#include "platform/scroll/Scrollbar.h"
#include "public/platform/WebDisplayMode.h"
@@ -609,16 +606,11 @@ public:
void setContentClip(PassRefPtr<ClipPaintPropertyNode> contentClip) { m_contentClip = contentClip; }
ClipPaintPropertyNode* contentClip() const { return m_contentClip.get(); }
- // We store no-op paint property tree nodes at the root of the tree.
- // TODO(pdr): Remove this concept in favor of null nodes, see: crbug.com/645615
- void setRootTransform(PassRefPtr<TransformPaintPropertyNode> rootTransform) { m_rootTransform = rootTransform; }
- TransformPaintPropertyNode* rootTransform() const { return m_rootTransform.get(); }
- void setRootClip(PassRefPtr<ClipPaintPropertyNode> rootClip) { m_rootClip = rootClip; }
- ClipPaintPropertyNode* rootClip() const { return m_rootClip.get(); }
- void setRootEffect(PassRefPtr<EffectPaintPropertyNode> rootEffect) { m_rootEffect = rootEffect; }
- EffectPaintPropertyNode* rootEffect() const { return m_rootEffect.get(); }
- void setRootScroll(PassRefPtr<ScrollPaintPropertyNode> rootScroll) { m_rootScroll = rootScroll; }
- ScrollPaintPropertyNode* rootScroll() const { return m_rootScroll.get(); }
+ // The property tree state that should be used for painting contents. These
+ // properties are either created by this FrameView or are inherited from
+ // an ancestor.
+ void setTotalPropertyTreeStateForContents(std::unique_ptr<PropertyTreeState> state) { m_totalPropertyTreeStateForContents = std::move(state); }
+ const PropertyTreeState* totalPropertyTreeStateForContents() const { return m_totalPropertyTreeStateForContents.get(); }
// TODO(ojan): Merge this with IntersectionObserver once it lands.
IntRect computeVisibleArea();
@@ -932,13 +924,10 @@ private:
// The content clip clips the document (= LayoutView) but not the scrollbars.
// TODO(trchen): This will not be needed once settings->rootLayerScrolls() is enabled.
RefPtr<ClipPaintPropertyNode> m_contentClip;
-
- // These nodes represent the root nodes of each property tree.
- // Only the root frame should create them and they will be no-op.
- RefPtr<TransformPaintPropertyNode> m_rootTransform;
- RefPtr<ClipPaintPropertyNode> m_rootClip;
- RefPtr<EffectPaintPropertyNode> m_rootEffect;
- RefPtr<ScrollPaintPropertyNode> m_rootScroll;
+ // The property tree state that should be used for painting contents. These
+ // properties are either created by this FrameView or are inherited from
+ // an ancestor.
+ std::unique_ptr<PropertyTreeState> m_totalPropertyTreeStateForContents;
// This is set on the local root frame view only.
DocumentLifecycle::LifecycleState m_currentUpdateLifecyclePhasesTargetState;

Powered by Google App Engine
This is Rietveld 408576698