Index: third_party/WebKit/Source/core/style/ComputedStyle.h |
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.h b/third_party/WebKit/Source/core/style/ComputedStyle.h |
index b72f5ac2cdecab92c4c883c4eefc9e887840fc82..845e4d385935e74077739dc1bd803b273c663d81 100644 |
--- a/third_party/WebKit/Source/core/style/ComputedStyle.h |
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.h |
@@ -181,6 +181,8 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
DataRef<StyleVisualData> m_visual; |
DataRef<StyleBackgroundData> m_background; |
DataRef<StyleSurroundData> m_surround; |
+ DataRef<StyleTransformData> |
+ m_transform; // Transform properties (rotate, scale, skew, etc.) |
DataRef<StyleRareNonInheritedData> m_rareNonInheritedData; |
// inherited attributes |
@@ -326,6 +328,7 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
// 64 bits |
unsigned m_isLink : 1; |
+ unsigned m_isStackingContext : 1; |
mutable unsigned m_hasRemUnits : 1; |
@@ -351,7 +354,9 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
unsigned m_isWhiteSpaceInherited : 1; |
// If you add more style bits here, you will also need to update |
- // ComputedStyle::copyNonInheritedFromCached() 68 bits |
+ // ComputedStyle::copyNonInheritedFromCached() |
+ |
+ // 69 bits |
} m_nonInheritedData; |
// !END SYNC! |
@@ -402,6 +407,7 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
m_nonInheritedData.m_affectedByActive = false; |
m_nonInheritedData.m_affectedByDrag = false; |
m_nonInheritedData.m_isLink = false; |
+ m_nonInheritedData.m_isStackingContext = false; |
m_nonInheritedData.m_hasRemUnits = false; |
// All independently inherited properties default to being inherited. |
@@ -623,11 +629,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return BackfaceVisibilityVisible; |
} |
EBackfaceVisibility backfaceVisibility() const { |
- return static_cast<EBackfaceVisibility>( |
- m_rareNonInheritedData->m_backfaceVisibility); |
+ return static_cast<EBackfaceVisibility>(m_transform->m_backfaceVisibility); |
} |
void setBackfaceVisibility(EBackfaceVisibility b) { |
- SET_VAR(m_rareNonInheritedData, m_backfaceVisibility, b); |
+ SET_VAR(m_transform, m_backfaceVisibility, b); |
} |
// Background properties. |
@@ -1431,28 +1436,24 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return LengthPoint(Length(50.0, Percent), Length(50.0, Percent)); |
} |
const LengthPoint& offsetAnchor() const { |
- return m_rareNonInheritedData->m_transform->m_motion.m_anchor; |
+ return m_transform->m_motion.m_anchor; |
} |
void setOffsetAnchor(const LengthPoint& offsetAnchor) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_motion.m_anchor, |
- offsetAnchor); |
+ SET_VAR(m_transform, m_motion.m_anchor, offsetAnchor); |
} |
// offset-distance |
static Length initialOffsetDistance() { return Length(0, Fixed); } |
const Length& offsetDistance() const { |
- return m_rareNonInheritedData->m_transform->m_motion.m_distance; |
+ return m_transform->m_motion.m_distance; |
} |
void setOffsetDistance(const Length& offsetDistance) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_motion.m_distance, |
- offsetDistance); |
+ SET_VAR(m_transform, m_motion.m_distance, offsetDistance); |
} |
// offset-path |
static StylePath* initialOffsetPath() { return nullptr; } |
- StylePath* offsetPath() const { |
- return m_rareNonInheritedData->m_transform->m_motion.m_path.get(); |
- } |
+ StylePath* offsetPath() const { return m_transform->m_motion.m_path.get(); } |
void setOffsetPath(PassRefPtr<StylePath>); |
// offset-position |
@@ -1460,11 +1461,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return LengthPoint(Length(Auto), Length(Auto)); |
} |
const LengthPoint& offsetPosition() const { |
- return m_rareNonInheritedData->m_transform->m_motion.m_position; |
+ return m_transform->m_motion.m_position; |
} |
void setOffsetPosition(const LengthPoint& offsetPosition) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_motion.m_position, |
- offsetPosition); |
+ SET_VAR(m_transform, m_motion.m_position, offsetPosition); |
} |
// offset-rotation |
@@ -1472,11 +1472,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return StyleOffsetRotation(0, OffsetRotationAuto); |
} |
const StyleOffsetRotation& offsetRotation() const { |
- return m_rareNonInheritedData->m_transform->m_motion.m_rotation; |
+ return m_transform->m_motion.m_rotation; |
} |
void setOffsetRotation(const StyleOffsetRotation& offsetRotation) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_motion.m_rotation, |
- offsetRotation); |
+ SET_VAR(m_transform, m_motion.m_rotation, offsetRotation); |
} |
// opacity (aka -webkit-opacity) |
@@ -1592,20 +1591,18 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
// perspective (aka -webkit-perspective) |
static float initialPerspective() { return 0; } |
- float perspective() const { return m_rareNonInheritedData->m_perspective; } |
- void setPerspective(float p) { |
- SET_VAR(m_rareNonInheritedData, m_perspective, p); |
- } |
+ float perspective() const { return m_transform->m_perspective; } |
+ void setPerspective(float p) { SET_VAR(m_transform, m_perspective, p); } |
// perspective-origin (aka -webkit-perspective-origin) |
static LengthPoint initialPerspectiveOrigin() { |
return LengthPoint(Length(50.0, Percent), Length(50.0, Percent)); |
} |
const LengthPoint& perspectiveOrigin() const { |
- return m_rareNonInheritedData->m_perspectiveOrigin; |
+ return m_transform->m_perspectiveOrigin; |
} |
void setPerspectiveOrigin(const LengthPoint& p) { |
- SET_VAR(m_rareNonInheritedData, m_perspectiveOrigin, p); |
+ SET_VAR(m_transform, m_perspectiveOrigin, p); |
} |
// -webkit-perspective-origin-x |
@@ -1642,10 +1639,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return EmptyTransformOperations(); |
} |
const TransformOperations& transform() const { |
- return m_rareNonInheritedData->m_transform->m_operations; |
+ return m_transform->m_operations; |
} |
void setTransform(const TransformOperations& ops) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_operations, ops); |
+ SET_VAR(m_transform, m_operations, ops); |
} |
// transform-origin (aka -webkit-transform-origin) |
@@ -1653,10 +1650,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return TransformOrigin(Length(50.0, Percent), Length(50.0, Percent), 0); |
} |
const TransformOrigin& transformOrigin() const { |
- return m_rareNonInheritedData->m_transform->m_origin; |
+ return m_transform->m_origin; |
} |
void setTransformOrigin(const TransformOrigin& o) { |
- SET_NESTED_VAR(m_rareNonInheritedData, m_transform, m_origin, o); |
+ SET_VAR(m_transform, m_origin, o); |
} |
// transform-style (aka -webkit-transform-style) |
@@ -1664,11 +1661,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return TransformStyle3DFlat; |
} |
ETransformStyle3D transformStyle3D() const { |
- return static_cast<ETransformStyle3D>( |
- m_rareNonInheritedData->m_transformStyle3D); |
+ return static_cast<ETransformStyle3D>(m_transform->m_transformStyle3D); |
} |
void setTransformStyle3D(ETransformStyle3D b) { |
- SET_VAR(m_rareNonInheritedData, m_transformStyle3D, b); |
+ SET_VAR(m_transform, m_transformStyle3D, b); |
} |
// -webkit-transform-origin-x |
@@ -1701,10 +1697,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return nullptr; |
} |
TranslateTransformOperation* translate() const { |
- return m_rareNonInheritedData->m_transform->m_translate.get(); |
+ return m_transform->m_translate.get(); |
} |
void setTranslate(PassRefPtr<TranslateTransformOperation> v) { |
- m_rareNonInheritedData.access()->m_transform.access()->m_translate = v; |
+ m_transform.access()->m_translate = v; |
} |
// rotate |
@@ -1712,19 +1708,17 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
return nullptr; |
} |
RotateTransformOperation* rotate() const { |
- return m_rareNonInheritedData->m_transform->m_rotate.get(); |
+ return m_transform->m_rotate.get(); |
} |
void setRotate(PassRefPtr<RotateTransformOperation> v) { |
- m_rareNonInheritedData.access()->m_transform.access()->m_rotate = v; |
+ m_transform.access()->m_rotate = v; |
} |
// scale |
static PassRefPtr<ScaleTransformOperation> initialScale() { return nullptr; } |
- ScaleTransformOperation* scale() const { |
- return m_rareNonInheritedData->m_transform->m_scale.get(); |
- } |
+ ScaleTransformOperation* scale() const { return m_transform->m_scale.get(); } |
void setScale(PassRefPtr<ScaleTransformOperation> v) { |
- m_rareNonInheritedData.access()->m_transform.access()->m_scale = v; |
+ m_transform.access()->m_scale = v; |
} |
// Scroll properties. |
@@ -2739,11 +2733,9 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
m_nonInheritedData.m_emptyState = b; |
} |
- bool hasInlineTransform() const { |
- return m_rareNonInheritedData->m_hasInlineTransform; |
- } |
+ bool hasInlineTransform() const { return m_transform->m_hasInlineTransform; } |
void setHasInlineTransform(bool b) { |
- SET_VAR(m_rareNonInheritedData, m_hasInlineTransform, b); |
+ SET_VAR(m_transform, m_hasInlineTransform, b); |
} |
bool hasCompositorProxy() const { |
@@ -2799,10 +2791,10 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
// See CSS 2.1, Appendix E (https://www.w3.org/TR/CSS21/zindex.html) for more |
// details. |
bool isStackingContext() const { |
- return m_rareNonInheritedData->m_isStackingContext; |
+ return m_nonInheritedData.m_isStackingContext; |
} |
void setIsStackingContext(bool b) { |
- SET_VAR(m_rareNonInheritedData, m_isStackingContext, b); |
+ m_nonInheritedData.m_isStackingContext = b; |
} |
// A unique style is one that has matches something that makes it impossible |
@@ -3432,9 +3424,7 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
bool isLeftToRightDirection() const { return direction() == LTR; } |
// Perspective utility functions. |
- bool hasPerspective() const { |
- return m_rareNonInheritedData->m_perspective > 0; |
- } |
+ bool hasPerspective() const { return m_transform->m_perspective > 0; } |
// Page size utility functions. |
void resetPageSizeType() { |
@@ -3596,23 +3586,20 @@ class CORE_EXPORT ComputedStyle : public ComputedStyleBase, |
} |
// Filter/transform utility functions. |
- bool has3DTransform() const { |
- return m_rareNonInheritedData->m_transform->has3DTransform(); |
- } |
+ bool has3DTransform() const { return m_transform->has3DTransform(); } |
bool hasTransform() const { |
return hasTransformOperations() || hasOffset() || |
hasCurrentTransformAnimation() || translate() || rotate() || scale(); |
} |
bool hasTransformOperations() const { |
- return !m_rareNonInheritedData->m_transform->m_operations.operations() |
- .isEmpty(); |
+ return !m_transform->m_operations.operations().isEmpty(); |
} |
ETransformStyle3D usedTransformStyle3D() const { |
return hasGroupingProperty() ? TransformStyle3DFlat : transformStyle3D(); |
} |
bool transformDataEquivalent(const ComputedStyle& otherStyle) const { |
- return m_rareNonInheritedData->m_transform == |
- otherStyle.m_rareNonInheritedData->m_transform; |
+ return m_transform.get() == otherStyle.m_transform.get() || |
+ m_transform->transformDataEquivalent(*otherStyle.m_transform); |
} |
bool preserves3D() const { |
return usedTransformStyle3D() != TransformStyle3DFlat; |