| Index: Source/core/paint/BoxPainter.cpp
|
| diff --git a/Source/core/paint/BoxPainter.cpp b/Source/core/paint/BoxPainter.cpp
|
| index 99926941043325b46783c8d48194132fb2eb90e7..152cb6cc691fe1f2aec53d1e0f06ff40e6458c91 100644
|
| --- a/Source/core/paint/BoxPainter.cpp
|
| +++ b/Source/core/paint/BoxPainter.cpp
|
| @@ -11,7 +11,6 @@
|
| #include "core/paint/BackgroundImageGeometry.h"
|
| #include "core/paint/BoxDecorationData.h"
|
| #include "core/paint/DrawingRecorder.h"
|
| -#include "core/paint/TransparencyDisplayItem.h"
|
| #include "core/rendering/ImageQualityController.h"
|
| #include "core/rendering/PaintInfo.h"
|
| #include "core/rendering/RenderBox.h"
|
| @@ -516,7 +515,7 @@
|
| void BoxPainter::paintMaskImages(const PaintInfo& paintInfo, const LayoutRect& paintRect)
|
| {
|
| // Figure out if we need to push a transparency layer to render our mask.
|
| - OwnPtr<TransparencyRecorder> transparencyRecorder;
|
| + bool pushTransparencyLayer = false;
|
| bool compositedMask = m_renderBox.hasLayer() && m_renderBox.layer()->hasCompositedMask();
|
| bool flattenCompositingLayers = m_renderBox.view()->frameView() && m_renderBox.view()->frameView()->paintBehavior() & PaintBehaviorFlattenCompositingLayers;
|
| CompositeOperator compositeOp = CompositeSourceOver;
|
| @@ -524,6 +523,7 @@
|
| bool allMaskImagesLoaded = true;
|
|
|
| if (!compositedMask || flattenCompositingLayers) {
|
| + pushTransparencyLayer = true;
|
| StyleImage* maskBoxImage = m_renderBox.style()->maskBoxImage().image();
|
| const FillLayer& maskLayers = m_renderBox.style()->maskLayers();
|
|
|
| @@ -534,9 +534,7 @@
|
| allMaskImagesLoaded &= maskLayers.imagesAreLoaded();
|
|
|
| paintInfo.context->setCompositeOperation(CompositeDestinationIn);
|
| -
|
| - transparencyRecorder = adoptPtr(new TransparencyRecorder(paintInfo.context, &m_renderBox, DisplayItem::BeginTransparency, WebBlendModeNormal, 1));
|
| -
|
| + paintInfo.context->beginTransparencyLayer(1);
|
| compositeOp = CompositeSourceOver;
|
| }
|
|
|
| @@ -544,6 +542,9 @@
|
| paintFillLayers(paintInfo, Color::transparent, m_renderBox.style()->maskLayers(), paintRect, BackgroundBleedNone, compositeOp);
|
| paintNinePieceImage(m_renderBox, paintInfo.context, paintRect, m_renderBox.style(), m_renderBox.style()->maskBoxImage(), compositeOp);
|
| }
|
| +
|
| + if (pushTransparencyLayer)
|
| + paintInfo.context->endLayer();
|
| }
|
|
|
| void BoxPainter::paintClippingMask(const PaintInfo& paintInfo, const LayoutPoint& paintOffset)
|
|
|