Index: Source/core/paint/LayerFixedPositionRecorder.cpp |
diff --git a/Source/core/paint/LayerFixedPositionRecorder.cpp b/Source/core/paint/LayerFixedPositionRecorder.cpp |
index 7581a1f5a1ca50593b852b94843a2b8f55d716e9..4ff64e232fe142c670d092fc99f08b66433e0f84 100644 |
--- a/Source/core/paint/LayerFixedPositionRecorder.cpp |
+++ b/Source/core/paint/LayerFixedPositionRecorder.cpp |
@@ -9,31 +9,23 @@ |
#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/graphics/GraphicsContext.h" |
#include "platform/graphics/paint/DisplayItemList.h" |
-#include "platform/graphics/paint/FixedPositionContainerDisplayItem.h" |
#include "platform/graphics/paint/FixedPositionDisplayItem.h" |
namespace blink { |
-LayerFixedPositionRecorder::LayerFixedPositionRecorder(GraphicsContext& graphicsContext, const LayoutBoxModelObject& layoutObject) |
+LayerFixedPositionRecorder::LayerFixedPositionRecorder(GraphicsContext& graphicsContext, const LayoutBoxModelObject& layoutObject, const LayoutBoxModelObject& anchor) |
: m_graphicsContext(graphicsContext) |
, m_layoutObject(layoutObject) |
- , m_isFixedPosition(layoutObject.style()->position() == FixedPosition) |
- , m_isFixedPositionContainer(layoutObject.canContainFixedPositionObjects()) |
{ |
+ ASSERT(layoutObject.style()->position() == FixedPosition); |
+ |
if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled()) |
return; |
if (m_graphicsContext.displayItemList()->displayItemConstructionIsDisabled()) |
return; |
- if (m_isFixedPosition) |
- m_graphicsContext.displayItemList()->createAndAppend<BeginFixedPositionDisplayItem>(m_layoutObject); |
- |
- // TODO(trchen): Adding a pair of display items on every transformed |
- // element can be expensive. Investigate whether we can optimize out some |
- // of them if applicable. |
- if (m_isFixedPositionContainer) |
- m_graphicsContext.displayItemList()->createAndAppend<BeginFixedPositionContainerDisplayItem>(m_layoutObject); |
+ m_graphicsContext.displayItemList()->createAndAppend<BeginFixedPositionDisplayItem>(m_layoutObject, anchor); |
} |
LayerFixedPositionRecorder::~LayerFixedPositionRecorder() |
@@ -44,19 +36,10 @@ LayerFixedPositionRecorder::~LayerFixedPositionRecorder() |
if (m_graphicsContext.displayItemList()->displayItemConstructionIsDisabled()) |
return; |
- if (m_isFixedPositionContainer) { |
- if (m_graphicsContext.displayItemList()->lastDisplayItemIsNoopBegin()) |
- m_graphicsContext.displayItemList()->removeLastDisplayItem(); |
- else |
- m_graphicsContext.displayItemList()->createAndAppend<EndFixedPositionDisplayItem>(m_layoutObject); |
- } |
- |
- if (m_isFixedPosition) { |
- if (m_graphicsContext.displayItemList()->lastDisplayItemIsNoopBegin()) |
- m_graphicsContext.displayItemList()->removeLastDisplayItem(); |
- else |
- m_graphicsContext.displayItemList()->createAndAppend<EndFixedPositionDisplayItem>(m_layoutObject); |
- } |
+ if (m_graphicsContext.displayItemList()->lastDisplayItemIsNoopBegin()) |
+ m_graphicsContext.displayItemList()->removeLastDisplayItem(); |
+ else |
+ m_graphicsContext.displayItemList()->createAndAppend<EndFixedPositionDisplayItem>(m_layoutObject); |
} |
} // namespace blink |