Chromium Code Reviews| Index: third_party/WebKit/Source/core/style/ComputedStyle.cpp |
| diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
| index 20681097384728f6e84ccc056967ab3512b3b711..04a423e3dd88197eb77e0ac8be3b9a0454dc8aa9 100644 |
| --- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
| +++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
| @@ -1206,6 +1206,29 @@ bool ComputedStyle::hasEntirelyFixedBackground() const |
| return allLayersAreFixed(backgroundLayers()); |
| } |
| +static bool allLayersAreLocal(const FillLayer* layer) |
|
trchen
2016/08/18 21:24:23
Can we merge this with hasEntirelyLocalBackground(
flackr
2016/08/19 21:59:56
Of course, I actually have a follow-on patch in wh
trchen
2016/08/19 22:49:14
Cool.
|
| +{ |
| + for (; layer; layer = layer->next()) { |
| + if (layer->attachment() == LocalBackgroundAttachment) |
| + continue; |
| + // Solid color layers with a background clip of the padding box can be treated |
| + // as local. |
| + // TODO(flackr): We can handle other fill boxes with solid colors as long as they |
| + // are essentially the same (i.e. PaddingFillBox == ContentFillBox when padding = 0). |
| + if (!layer->image() && !layer->next() && layer->clip() == PaddingFillBox) |
| + continue; |
| + return false; |
| + } |
| + |
| + return true; |
| +} |
| + |
| +bool ComputedStyle::hasEntirelyLocalBackground() const |
| +{ |
| + const FillLayer& layer = backgroundLayers(); |
| + return allLayersAreLocal(&layer); |
| +} |
| + |
| const CounterDirectiveMap* ComputedStyle::counterDirectives() const |
| { |
| return m_rareNonInheritedData->m_counterDirectives.get(); |