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

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBox.h

Issue 2689213013: Move previous border box size out of global map into LayoutBox::m_previousSize (Closed)
Patch Set: - Created 3 years, 10 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/layout/LayoutBox.h
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.h b/third_party/WebKit/Source/core/layout/LayoutBox.h
index 1aa640e967d31c4f6b217095bf7f7266029a45d4..ca26cdbff78eeb24b3482ae0b87951d8a4fbbdd2 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBox.h
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.h
@@ -318,6 +318,7 @@ class CORE_EXPORT LayoutBox : public LayoutBoxModelObject {
return LayoutSize(m_frameRect.x(), m_frameRect.y());
}
LayoutSize size() const { return m_frameRect.size(); }
+ LayoutSize previousSize() const { return m_previousSize; }
IntSize pixelSnappedSize() const { return m_frameRect.pixelSnappedSize(); }
void setLocation(const LayoutPoint& location) {
@@ -1308,6 +1309,21 @@ class CORE_EXPORT LayoutBox : public LayoutBoxModelObject {
virtual bool hasControlClip() const { return false; }
+ class MutableForPainting : public LayoutObject::MutableForPainting {
+ public:
+ void setPreviousSize(const LayoutSize& size) {
+ static_cast<LayoutBox&>(m_layoutObject).m_previousSize = size;
+ }
+
+ protected:
+ friend class LayoutBox;
+ MutableForPainting(const LayoutBox& box)
+ : LayoutObject::MutableForPainting(box) {}
+ };
+ MutableForPainting getMutableForPainting() const {
+ return MutableForPainting(*this);
+ }
+
protected:
virtual LayoutRect controlClipRect(const LayoutPoint&) const {
return LayoutRect();
@@ -1507,6 +1523,19 @@ class CORE_EXPORT LayoutBox : public LayoutBoxModelObject {
void updateBackgroundAttachmentFixedStatusAfterStyleChange();
+ void inflateVisualRectForFilter(LayoutRect&) const;
+ void inflateVisualRectForFilterUnderContainer(
+ LayoutRect&,
+ const LayoutObject& container,
+ const LayoutBoxModelObject* ancestorToStopAt) const;
+
+ LayoutRectOutsets m_marginBoxOutsets;
+
+ void addSnapArea(const LayoutBox&);
+ void removeSnapArea(const LayoutBox&);
+
+ LayoutRect debugRect() const override;
+
// The CSS border box rect for this box.
//
// The rectangle is in this box's physical coordinates but with a
@@ -1517,24 +1546,14 @@ class CORE_EXPORT LayoutBox : public LayoutBoxModelObject {
// with this box's margins.
LayoutRect m_frameRect;
+ // Previous size of m_frameRect, updated after paint invalidation.
+ LayoutSize m_previousSize;
+
// Our intrinsic height, used for min-height: min-content etc. Maintained by
// updateLogicalHeight. This is logicalHeight() before it is clamped to
// min/max.
mutable LayoutUnit m_intrinsicContentLogicalHeight;
- void inflateVisualRectForFilter(LayoutRect&) const;
- void inflateVisualRectForFilterUnderContainer(
- LayoutRect&,
- const LayoutObject& container,
- const LayoutBoxModelObject* ancestorToStopAt) const;
-
- LayoutRectOutsets m_marginBoxOutsets;
-
- void addSnapArea(const LayoutBox&);
- void removeSnapArea(const LayoutBox&);
-
- LayoutRect debugRect() const override;
-
protected:
// The logical width of the element if it were to break its lines at every
// possible opportunity.

Powered by Google App Engine
This is Rietveld 408576698