| Index: Source/core/rendering/style/RenderStyle.cpp
|
| diff --git a/Source/core/rendering/style/RenderStyle.cpp b/Source/core/rendering/style/RenderStyle.cpp
|
| index dd038901323beff4ea13f628e031ea0377bd54aa..75558d6645ce33b6fce395b5cdfca14d44e878f5 100644
|
| --- a/Source/core/rendering/style/RenderStyle.cpp
|
| +++ b/Source/core/rendering/style/RenderStyle.cpp
|
| @@ -650,7 +650,8 @@ StyleDifference RenderStyle::repaintOnlyDiff(const RenderStyle* other, unsigned&
|
| || rareNonInheritedData->m_backfaceVisibility != other->rareNonInheritedData->m_backfaceVisibility
|
| || rareNonInheritedData->m_perspective != other->rareNonInheritedData->m_perspective
|
| || rareNonInheritedData->m_perspectiveOriginX != other->rareNonInheritedData->m_perspectiveOriginX
|
| - || rareNonInheritedData->m_perspectiveOriginY != other->rareNonInheritedData->m_perspectiveOriginY)
|
| + || rareNonInheritedData->m_perspectiveOriginY != other->rareNonInheritedData->m_perspectiveOriginY
|
| + || hasWillChangeCompositingHint() != other->hasWillChangeCompositingHint())
|
| return StyleDifferenceRecompositeLayer;
|
| }
|
|
|
| @@ -831,6 +832,25 @@ bool RenderStyle::hasIsolation() const
|
| return false;
|
| }
|
|
|
| +bool RenderStyle::hasWillChangeCompositingHint() const
|
| +{
|
| + for (size_t i = 0; i < rareNonInheritedData->m_willChange->m_properties.size(); ++i) {
|
| + switch (rareNonInheritedData->m_willChange->m_properties[i]) {
|
| + case CSSPropertyOpacity:
|
| + case CSSPropertyWebkitTransform:
|
| + case CSSPropertyLeft:
|
| + case CSSPropertyTop:
|
| + case CSSPropertyRight:
|
| + case CSSPropertyBottom:
|
| + case CSSPropertyWebkitFilter:
|
| + return true;
|
| + default:
|
| + break;
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| inline bool requireTransformOrigin(const Vector<RefPtr<TransformOperation> >& transformOperations, RenderStyle::ApplyTransformOrigin applyOrigin)
|
| {
|
| // transform-origin brackets the transform with translate operations.
|
|
|