Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp |
| index 1100612276d80668306422a37ed03b616e2b28c6..77b99c825d2df639ed17b430763d369a932dd3b8 100644 |
| --- a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp |
| +++ b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp |
| @@ -148,16 +148,17 @@ FilterEffect* FilterEffectBuilder::buildFilterEffect( |
| case FilterOperation::REFERENCE: { |
| ReferenceFilterOperation& referenceOperation = |
| toReferenceFilterOperation(*filterOperation); |
| - if (Filter* referenceFilter = |
| - buildReferenceFilter(referenceOperation, previousEffect)) { |
| + Filter* referenceFilter = |
| + buildReferenceFilter(referenceOperation, previousEffect); |
| + if (referenceFilter) { |
| + effect = referenceFilter->lastEffect(); |
|
Stephen White
2016/10/27 17:10:51
I'm not sure I understand why we now grab the last
fs
2016/10/28 08:46:31
That's what we did previously as well (I only reor
Stephen White
2016/10/28 14:58:06
Oh right; I misread.
fs
2016/10/31 09:19:12
I'd expect something along those lines to be the r
|
| // TODO(fs): This is essentially only needed for the |
| // side-effects (mapRect). The filter differs from the one |
| // computed just above in what the SourceGraphic is, and how |
| // it's connected to the filter-chain. |
| - referenceOperation.setFilter( |
| - buildReferenceFilter(referenceOperation, nullptr)); |
| - effect = referenceFilter->lastEffect(); |
| + referenceFilter = buildReferenceFilter(referenceOperation, nullptr); |
| } |
| + referenceOperation.setFilter(referenceFilter); |
| break; |
| } |
| case FilterOperation::GRAYSCALE: { |
| @@ -308,7 +309,6 @@ CompositorFilterOperations FilterEffectBuilder::buildFilterOperations( |
| Filter* referenceFilter = |
| buildReferenceFilter(referenceOperation, nullptr); |
| if (referenceFilter && referenceFilter->lastEffect()) { |
| - referenceOperation.setFilter(referenceFilter); |
| SkiaImageFilterBuilder::populateSourceGraphicImageFilters( |
| referenceFilter->getSourceGraphic(), nullptr, currentColorSpace); |
| @@ -317,6 +317,7 @@ CompositorFilterOperations FilterEffectBuilder::buildFilterOperations( |
| filters.appendReferenceFilter( |
| SkiaImageFilterBuilder::build(filterEffect, currentColorSpace)); |
| } |
| + referenceOperation.setFilter(referenceFilter); |
| break; |
| } |
| case FilterOperation::GRAYSCALE: |