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..f8aebb9193715de184bbf5780ff7e0b3d6e76460 100644 |
--- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
@@ -1206,6 +1206,23 @@ bool ComputedStyle::hasEntirelyFixedBackground() const |
return allLayersAreFixed(backgroundLayers()); |
} |
+bool ComputedStyle::hasEntirelyLocalBackground() const |
+{ |
+ const FillLayer* layer = &backgroundLayers(); |
+ 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; |
+} |
+ |
const CounterDirectiveMap* ComputedStyle::counterDirectives() const |
{ |
return m_rareNonInheritedData->m_counterDirectives.get(); |