| Index: third_party/WebKit/Source/core/paint/BoxPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/BoxPainter.cpp b/third_party/WebKit/Source/core/paint/BoxPainter.cpp
|
| index e27b590d4d9b9a34d3427d59e66c839501569849..355c45b9d2950dd85e890980b58dfbf2854a7db7 100644
|
| --- a/third_party/WebKit/Source/core/paint/BoxPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/BoxPainter.cpp
|
| @@ -518,6 +518,9 @@ inline bool paintFastBottomLayer(const LayoutBoxModelObject& obj,
|
| SkBlendMode op,
|
| const LayoutObject* backgroundObject,
|
| Optional<BackgroundImageGeometry>& geometry) {
|
| + // Painting a background image from an ancestor onto a cell is a complex case.
|
| + if (obj.isTableCell() && backgroundObject && !backgroundObject->isTableCell())
|
| + return false;
|
| // Complex cases not handled on the fast path.
|
| if (!info.isBottomLayer || !info.isBorderFill ||
|
| info.isClippedWithLocalScrolling)
|
| @@ -533,7 +536,7 @@ inline bool paintFastBottomLayer(const LayoutBoxModelObject& obj,
|
| if (info.shouldPaintImage) {
|
| DCHECK(!geometry);
|
| geometry.emplace();
|
| - geometry->calculate(obj, paintInfo.paintContainer(),
|
| + geometry->calculate(obj, backgroundObject, paintInfo.paintContainer(),
|
| paintInfo.getGlobalPaintFlags(), layer, rect);
|
|
|
| if (!geometry->destRect().isEmpty()) {
|
| @@ -743,7 +746,7 @@ void BoxPainter::paintFillLayer(const LayoutBoxModelObject& obj,
|
| if (info.shouldPaintImage) {
|
| if (!geometry) {
|
| geometry.emplace();
|
| - geometry->calculate(obj, paintInfo.paintContainer(),
|
| + geometry->calculate(obj, backgroundObject, paintInfo.paintContainer(),
|
| paintInfo.getGlobalPaintFlags(), bgLayer,
|
| scrolledPaintRect);
|
| } else {
|
|
|