| Index: Source/core/editing/EditingStyle.cpp
|
| diff --git a/Source/core/editing/EditingStyle.cpp b/Source/core/editing/EditingStyle.cpp
|
| index ac5c778610f58e0bb93155580a32c3c9e0bef95c..c1c141582fbdfdde9a97c688909e06d72f49bb36 100644
|
| --- a/Source/core/editing/EditingStyle.cpp
|
| +++ b/Source/core/editing/EditingStyle.cpp
|
| @@ -616,8 +616,8 @@ void EditingStyle::removeStyleAddedByNode(Node* node)
|
| {
|
| if (!node || !node->parentNode())
|
| return;
|
| - RefPtr<StylePropertySet> parentStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node->parentNode()), AllEditingProperties);
|
| - RefPtr<StylePropertySet> nodeStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node), AllEditingProperties);
|
| + RefPtr<MutableStylePropertySet> parentStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node->parentNode()), AllEditingProperties);
|
| + RefPtr<MutableStylePropertySet> nodeStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node), AllEditingProperties);
|
| nodeStyle->removeEquivalentProperties(parentStyle->ensureCSSStyleDeclaration());
|
| m_mutableStyle->removeEquivalentProperties(nodeStyle->ensureCSSStyleDeclaration());
|
| }
|
| @@ -627,8 +627,8 @@ void EditingStyle::removeStyleConflictingWithStyleOfNode(Node* node)
|
| if (!node || !node->parentNode() || !m_mutableStyle)
|
| return;
|
|
|
| - RefPtr<StylePropertySet> parentStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node->parentNode()), AllEditingProperties);
|
| - RefPtr<StylePropertySet> nodeStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node), AllEditingProperties);
|
| + RefPtr<MutableStylePropertySet> parentStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node->parentNode()), AllEditingProperties);
|
| + RefPtr<MutableStylePropertySet> nodeStyle = editingStyleFromComputedStyle(CSSComputedStyleDeclaration::create(node), AllEditingProperties);
|
| nodeStyle->removeEquivalentProperties(parentStyle->ensureCSSStyleDeclaration());
|
|
|
| unsigned propertyCount = nodeStyle->propertyCount();
|
| @@ -671,7 +671,7 @@ TriState EditingStyle::triStateOfStyle(EditingStyle* style) const
|
| {
|
| if (!style || !style->m_mutableStyle)
|
| return FalseTriState;
|
| - return triStateOfStyle(style->m_mutableStyle->ensureCSSStyleDeclaration(), DoNotIgnoreTextOnlyProperties);
|
| + return triStateOfStyle(static_pointer_cast<MutableStylePropertySet>(style->m_mutableStyle)->ensureCSSStyleDeclaration(), DoNotIgnoreTextOnlyProperties);
|
| }
|
|
|
| TriState EditingStyle::triStateOfStyle(CSSStyleDeclaration* styleToCompare, ShouldIgnoreTextOnlyProperties shouldIgnoreTextOnlyProperties) const
|
| @@ -1092,7 +1092,7 @@ void EditingStyle::mergeStyle(const StylePropertySet* style, CSSPropertyOverride
|
| }
|
| }
|
|
|
| -static PassRefPtr<StylePropertySet> styleFromMatchedRulesForElement(Element* element, unsigned rulesToInclude)
|
| +static PassRefPtr<MutableStylePropertySet> styleFromMatchedRulesForElement(Element* element, unsigned rulesToInclude)
|
| {
|
| RefPtr<MutableStylePropertySet> style = MutableStylePropertySet::create();
|
| RefPtr<CSSRuleList> matchedRules = element->document()->styleResolver()->styleRulesForElement(element, rulesToInclude);
|
| @@ -1161,7 +1161,7 @@ void EditingStyle::removeStyleFromRulesAndContext(StyledElement* element, Node*
|
| return;
|
|
|
| // 1. Remove style from matched rules because style remain without repeating it in inline style declaration
|
| - RefPtr<StylePropertySet> styleFromMatchedRules = styleFromMatchedRulesForElement(element, StyleResolver::AllButEmptyCSSRules);
|
| + RefPtr<MutableStylePropertySet> styleFromMatchedRules = styleFromMatchedRulesForElement(element, StyleResolver::AllButEmptyCSSRules);
|
| if (styleFromMatchedRules && !styleFromMatchedRules->isEmpty())
|
| m_mutableStyle = getPropertiesNotIn(m_mutableStyle.get(), styleFromMatchedRules->ensureCSSStyleDeclaration());
|
|
|
| @@ -1172,7 +1172,7 @@ void EditingStyle::removeStyleFromRulesAndContext(StyledElement* element, Node*
|
| computedStyle->m_mutableStyle->setProperty(CSSPropertyBackgroundColor, CSSValueTransparent);
|
|
|
| removePropertiesInStyle(computedStyle->m_mutableStyle.get(), styleFromMatchedRules.get());
|
| - m_mutableStyle = getPropertiesNotIn(m_mutableStyle.get(), computedStyle->m_mutableStyle->ensureCSSStyleDeclaration());
|
| + m_mutableStyle = getPropertiesNotIn(m_mutableStyle.get(), static_pointer_cast<MutableStylePropertySet>(computedStyle->m_mutableStyle)->ensureCSSStyleDeclaration());
|
| }
|
|
|
| // 3. If this element is a span and has display: inline or float: none, remove them unless they are overriden by rules.
|
|
|