| 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 579565e066cf12e57ea1587261104206f944ed2b..6f789250622089910630a288b06f28e01c14d76d 100644 | 
| --- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp | 
| +++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp | 
| @@ -1268,6 +1268,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(); | 
|  |