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

Unified Diff: third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h

Issue 2651093003: Make scroll translation transform nodes reference scroll nodes (Closed)
Patch Set: Add note about scroll tree differences Created 3 years, 11 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/platform/graphics/paint/ScrollPaintPropertyNode.h
diff --git a/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h b/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h
index df6307e746d45a939c1569fad94e9b2ccbe3e264..ea1bc43bcb96b410b3a5c4ad798ae9035b55c2bd 100644
--- a/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h
+++ b/third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h
@@ -7,8 +7,6 @@
#include "platform/PlatformExport.h"
#include "platform/geometry/FloatSize.h"
-#include "platform/graphics/CompositorElementId.h"
-#include "platform/graphics/paint/TransformPaintPropertyNode.h"
#include "platform/scroll/MainThreadScrollingReason.h"
#include "wtf/PassRefPtr.h"
#include "wtf/RefCounted.h"
@@ -21,13 +19,18 @@ namespace blink {
using MainThreadScrollingReasons = uint32_t;
-// A scroll node contains auxiliary scrolling information for threaded scrolling
-// which includes how far an area can be scrolled, which transform node contains
-// the scroll offset, etc.
+// A scroll node contains auxiliary scrolling information which includes how far
+// an area can be scrolled, main thread scrolling reasons, etc. Scroll nodes
+// are owned by TransformPaintPropertyNodes that are used for the scroll offset
+// translation.
//
// Main thread scrolling reasons force scroll updates to go to the main thread
// and can have dependencies on other nodes. For example, all parents of a
// scroll node with background attachment fixed set should also have it set.
+//
+// The scroll tree differs from the other trees because it does not affect
+// geometry directly. We may want to rename this class to reflect that it is
+// more like rare scroll data for TransformPaintPropertyNode.
class PLATFORM_EXPORT ScrollPaintPropertyNode
: public RefCounted<ScrollPaintPropertyNode> {
public:
@@ -36,49 +39,35 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
static PassRefPtr<ScrollPaintPropertyNode> create(
PassRefPtr<const ScrollPaintPropertyNode> parent,
- PassRefPtr<const TransformPaintPropertyNode> scrollOffsetTranslation,
const IntSize& clip,
const IntSize& bounds,
bool userScrollableHorizontal,
bool userScrollableVertical,
- MainThreadScrollingReasons mainThreadScrollingReasons,
- const CompositorElementId& compositorElementId = CompositorElementId()) {
+ MainThreadScrollingReasons mainThreadScrollingReasons) {
return adoptRef(new ScrollPaintPropertyNode(
- std::move(parent), std::move(scrollOffsetTranslation), clip, bounds,
- userScrollableHorizontal, userScrollableVertical,
- mainThreadScrollingReasons, compositorElementId));
+ std::move(parent), clip, bounds, userScrollableHorizontal,
+ userScrollableVertical, mainThreadScrollingReasons));
}
- void update(
- PassRefPtr<const ScrollPaintPropertyNode> parent,
- PassRefPtr<const TransformPaintPropertyNode> scrollOffsetTranslation,
- const IntSize& clip,
- const IntSize& bounds,
- bool userScrollableHorizontal,
- bool userScrollableVertical,
- MainThreadScrollingReasons mainThreadScrollingReasons,
- CompositorElementId compositorElementId = CompositorElementId()) {
+ void update(PassRefPtr<const ScrollPaintPropertyNode> parent,
+ const IntSize& clip,
+ const IntSize& bounds,
+ bool userScrollableHorizontal,
+ bool userScrollableVertical,
+ MainThreadScrollingReasons mainThreadScrollingReasons) {
DCHECK(!isRoot());
DCHECK(parent != this);
m_parent = parent;
- DCHECK(scrollOffsetTranslation->matrix().isIdentityOr2DTranslation());
- m_scrollOffsetTranslation = scrollOffsetTranslation;
m_clip = clip;
m_bounds = bounds;
m_userScrollableHorizontal = userScrollableHorizontal;
m_userScrollableVertical = userScrollableVertical;
m_mainThreadScrollingReasons = mainThreadScrollingReasons;
- m_compositorElementId = compositorElementId;
}
const ScrollPaintPropertyNode* parent() const { return m_parent.get(); }
bool isRoot() const { return !m_parent; }
- // Transform that the scroll is relative to.
- const TransformPaintPropertyNode* scrollOffsetTranslation() const {
- return m_scrollOffsetTranslation.get();
- }
-
// The clipped area that contains the scrolled content.
const IntSize& clip() const { return m_clip; }
@@ -93,10 +82,6 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
return m_mainThreadScrollingReasons;
}
- const CompositorElementId& compositorElementId() const {
- return m_compositorElementId;
- }
-
// Main thread scrolling reason for the threaded scrolling disabled setting.
bool threadedScrollingDisabled() const {
return m_mainThreadScrollingReasons &
@@ -115,22 +100,19 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
PassRefPtr<ScrollPaintPropertyNode> clone() const {
RefPtr<ScrollPaintPropertyNode> cloned =
adoptRef(new ScrollPaintPropertyNode(
- m_parent, m_scrollOffsetTranslation, m_clip, m_bounds,
- m_userScrollableHorizontal, m_userScrollableVertical,
- m_mainThreadScrollingReasons, m_compositorElementId));
+ m_parent, m_clip, m_bounds, m_userScrollableHorizontal,
+ m_userScrollableVertical, m_mainThreadScrollingReasons));
return cloned;
}
// The equality operator is used by FindPropertiesNeedingUpdate.h for checking
// if a scroll node has changed.
bool operator==(const ScrollPaintPropertyNode& o) const {
- return m_parent == o.m_parent &&
- m_scrollOffsetTranslation == o.m_scrollOffsetTranslation &&
- m_clip == o.m_clip && m_bounds == o.m_bounds &&
+ return m_parent == o.m_parent && m_clip == o.m_clip &&
+ m_bounds == o.m_bounds &&
m_userScrollableHorizontal == o.m_userScrollableHorizontal &&
m_userScrollableVertical == o.m_userScrollableVertical &&
- m_mainThreadScrollingReasons == o.m_mainThreadScrollingReasons &&
- m_compositorElementId == o.m_compositorElementId;
+ m_mainThreadScrollingReasons == o.m_mainThreadScrollingReasons;
}
String toTreeString() const;
@@ -139,34 +121,25 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
String toString() const;
private:
- ScrollPaintPropertyNode(
- PassRefPtr<const ScrollPaintPropertyNode> parent,
- PassRefPtr<const TransformPaintPropertyNode> scrollOffsetTranslation,
- IntSize clip,
- IntSize bounds,
- bool userScrollableHorizontal,
- bool userScrollableVertical,
- MainThreadScrollingReasons mainThreadScrollingReasons,
- CompositorElementId compositorElementId)
+ ScrollPaintPropertyNode(PassRefPtr<const ScrollPaintPropertyNode> parent,
+ IntSize clip,
+ IntSize bounds,
+ bool userScrollableHorizontal,
+ bool userScrollableVertical,
+ MainThreadScrollingReasons mainThreadScrollingReasons)
: m_parent(parent),
- m_scrollOffsetTranslation(scrollOffsetTranslation),
m_clip(clip),
m_bounds(bounds),
m_userScrollableHorizontal(userScrollableHorizontal),
m_userScrollableVertical(userScrollableVertical),
- m_mainThreadScrollingReasons(mainThreadScrollingReasons),
- m_compositorElementId(compositorElementId) {
- DCHECK(m_scrollOffsetTranslation->matrix().isIdentityOr2DTranslation());
- }
+ m_mainThreadScrollingReasons(mainThreadScrollingReasons) {}
RefPtr<const ScrollPaintPropertyNode> m_parent;
- RefPtr<const TransformPaintPropertyNode> m_scrollOffsetTranslation;
IntSize m_clip;
IntSize m_bounds;
bool m_userScrollableHorizontal : 1;
bool m_userScrollableVertical : 1;
MainThreadScrollingReasons m_mainThreadScrollingReasons;
- CompositorElementId m_compositorElementId;
};
// Redeclared here to avoid ODR issues.

Powered by Google App Engine
This is Rietveld 408576698