| Index: third_party/WebKit/Source/core/paint/FilterPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/FilterPainter.cpp b/third_party/WebKit/Source/core/paint/FilterPainter.cpp
|
| index bed244ef03ea4b14b3df647245fe11fa520d2bc3..a291a134834d43af6737002b2063a853a11c5616 100644
|
| --- a/third_party/WebKit/Source/core/paint/FilterPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/FilterPainter.cpp
|
| @@ -15,15 +15,12 @@
|
| #include "platform/graphics/filters/SkiaImageFilterBuilder.h"
|
| #include "platform/graphics/paint/FilterDisplayItem.h"
|
| #include "platform/graphics/paint/PaintController.h"
|
| -#include "public/platform/Platform.h"
|
| -#include "public/platform/WebCompositorSupport.h"
|
| #include "wtf/PtrUtil.h"
|
| #include <memory>
|
|
|
| namespace blink {
|
|
|
| -FilterPainter::FilterPainter(PaintLayer& layer, GraphicsContext& context, const LayoutPoint& offsetFromRoot, const ClipRect& clipRect, PaintLayerPaintingInfo& paintingInfo, PaintLayerFlags paintFlags,
|
| - LayoutRect& rootRelativeBounds, bool& rootRelativeBoundsComputed)
|
| +FilterPainter::FilterPainter(PaintLayer& layer, GraphicsContext& context, const LayoutPoint& offsetFromRoot, const ClipRect& clipRect, PaintLayerPaintingInfo& paintingInfo, PaintLayerFlags paintFlags)
|
| : m_filterInProgress(false)
|
| , m_context(context)
|
| , m_layoutObject(layer.layoutObject())
|
| @@ -35,18 +32,13 @@ FilterPainter::FilterPainter(PaintLayer& layer, GraphicsContext& context, const
|
| if (!lastEffect)
|
| return;
|
|
|
| - ASSERT(layer.filterInfo());
|
| + DCHECK(layer.filterInfo());
|
|
|
| lastEffect->determineFilterPrimitiveSubregion(MapRectForward);
|
| sk_sp<SkImageFilter> imageFilter = SkiaImageFilterBuilder::build(lastEffect, ColorSpaceDeviceRGB);
|
| if (!imageFilter)
|
| return;
|
|
|
| - if (!rootRelativeBoundsComputed) {
|
| - rootRelativeBounds = layer.physicalBoundingBoxIncludingReflectionAndStackingChildren(offsetFromRoot);
|
| - rootRelativeBoundsComputed = true;
|
| - }
|
| -
|
| // We'll handle clipping to the dirty rect before filter rasterization.
|
| // Filter processing will automatically expand the clip rect and the offscreen to accommodate any filter outsets.
|
| // FIXME: It is incorrect to just clip to the damageRect here once multiple fragments are involved.
|
| @@ -55,11 +47,11 @@ FilterPainter::FilterPainter(PaintLayer& layer, GraphicsContext& context, const
|
| // done it above, and doing it later will defeat the outsets.
|
| paintingInfo.clipToDirtyRect = false;
|
|
|
| - if (clipRect.rect() != paintingInfo.paintDirtyRect || clipRect.hasRadius()) {
|
| + DCHECK(m_layoutObject);
|
| +
|
| + if (clipRect.rect() != paintingInfo.paintDirtyRect || clipRect.hasRadius())
|
| m_clipRecorder = wrapUnique(new LayerClipRecorder(context, *layer.layoutObject(), DisplayItem::kClipLayerFilter, clipRect, &paintingInfo, LayoutPoint(), paintFlags));
|
| - }
|
|
|
| - ASSERT(m_layoutObject);
|
| if (!context.getPaintController().displayItemConstructionIsDisabled()) {
|
| FilterOperations filterOperations(layer.computeFilterOperations(m_layoutObject->styleRef()));
|
| CompositorFilterOperations compositorFilterOperations;
|
| @@ -70,7 +62,7 @@ FilterPainter::FilterPainter(PaintLayer& layer, GraphicsContext& context, const
|
| // the layer's filter. See crbug.com/502026.
|
| if (compositorFilterOperations.isEmpty())
|
| return;
|
| - LayoutRect visualBounds(rootRelativeBounds);
|
| + LayoutRect visualBounds(layer.physicalBoundingBoxIncludingReflectionAndStackingChildren(offsetFromRoot));
|
| if (layer.enclosingPaginationLayer()) {
|
| // Filters are set up before pagination, so we need to make the bounding box visual on our own.
|
| visualBounds.moveBy(-offsetFromRoot);
|
|
|