| Index: Source/core/editing/EditingStyle.cpp
 | 
| diff --git a/Source/core/editing/EditingStyle.cpp b/Source/core/editing/EditingStyle.cpp
 | 
| index 41ce59d22ea33931048d8e7e57ce9137aca1113a..cb4eb97c45778337f7fc521bb38ef7d2c541c205 100644
 | 
| --- a/Source/core/editing/EditingStyle.cpp
 | 
| +++ b/Source/core/editing/EditingStyle.cpp
 | 
| @@ -578,9 +578,9 @@ void EditingStyle::clear()
 | 
|      m_fontSizeDelta = NoFontDelta;
 | 
|  }
 | 
|  
 | 
| -PassRefPtr<EditingStyle> EditingStyle::copy() const
 | 
| +PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::copy() const
 | 
|  {
 | 
| -    RefPtr<EditingStyle> copy = EditingStyle::create();
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> copy = EditingStyle::create();
 | 
|      if (m_mutableStyle)
 | 
|          copy->m_mutableStyle = m_mutableStyle->mutableCopy();
 | 
|      copy->m_shouldUseFixedDefaultFontSize = m_shouldUseFixedDefaultFontSize;
 | 
| @@ -588,9 +588,9 @@ PassRefPtr<EditingStyle> EditingStyle::copy() const
 | 
|      return copy;
 | 
|  }
 | 
|  
 | 
| -PassRefPtr<EditingStyle> EditingStyle::extractAndRemoveBlockProperties()
 | 
| +PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::extractAndRemoveBlockProperties()
 | 
|  {
 | 
| -    RefPtr<EditingStyle> blockProperties = EditingStyle::create();
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> blockProperties = EditingStyle::create();
 | 
|      if (!m_mutableStyle)
 | 
|          return blockProperties;
 | 
|  
 | 
| @@ -600,9 +600,9 @@ PassRefPtr<EditingStyle> EditingStyle::extractAndRemoveBlockProperties()
 | 
|      return blockProperties;
 | 
|  }
 | 
|  
 | 
| -PassRefPtr<EditingStyle> EditingStyle::extractAndRemoveTextDirection()
 | 
| +PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::extractAndRemoveTextDirection()
 | 
|  {
 | 
| -    RefPtr<EditingStyle> textDirection = EditingStyle::create();
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> textDirection = EditingStyle::create();
 | 
|      textDirection->m_mutableStyle = MutableStylePropertySet::create();
 | 
|      textDirection->m_mutableStyle->setProperty(CSSPropertyUnicodeBidi, CSSValueEmbed, m_mutableStyle->propertyIsImportant(CSSPropertyUnicodeBidi));
 | 
|      textDirection->m_mutableStyle->setProperty(CSSPropertyDirection, m_mutableStyle->getPropertyValue(CSSPropertyDirection),
 | 
| @@ -944,7 +944,7 @@ void EditingStyle::prepareToApplyAt(const Position& position, ShouldPreserveWrit
 | 
|      // ReplaceSelectionCommand::handleStyleSpans() requires that this function only removes the editing style.
 | 
|      // If this function was modified in the future to delete all redundant properties, then add a boolean value to indicate
 | 
|      // which one of editingStyleAtPosition or computedStyle is called.
 | 
| -    RefPtr<EditingStyle> editingStyleAtPosition = EditingStyle::create(position, EditingPropertiesInEffect);
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> editingStyleAtPosition = EditingStyle::create(position, EditingPropertiesInEffect);
 | 
|      StylePropertySet* styleAtPosition = editingStyleAtPosition->m_mutableStyle.get();
 | 
|  
 | 
|      RefPtrWillBeRawPtr<CSSValue> unicodeBidi = nullptr;
 | 
| @@ -977,7 +977,7 @@ void EditingStyle::mergeTypingStyle(Document* document)
 | 
|  {
 | 
|      ASSERT(document);
 | 
|  
 | 
| -    RefPtr<EditingStyle> typingStyle = document->frame()->selection().typingStyle();
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> typingStyle = document->frame()->selection().typingStyle();
 | 
|      if (!typingStyle || typingStyle == this)
 | 
|          return;
 | 
|  
 | 
| @@ -1029,7 +1029,7 @@ static PassRefPtrWillBeRawPtr<MutableStylePropertySet> extractEditingProperties(
 | 
|  
 | 
|  void EditingStyle::mergeInlineAndImplicitStyleOfElement(Element* element, CSSPropertyOverrideMode mode, PropertiesToInclude propertiesToInclude)
 | 
|  {
 | 
| -    RefPtr<EditingStyle> styleFromRules = EditingStyle::create();
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> styleFromRules = EditingStyle::create();
 | 
|      styleFromRules->mergeStyleFromRulesForSerialization(element);
 | 
|      styleFromRules->m_mutableStyle = extractEditingProperties(styleFromRules->m_mutableStyle.get(), propertiesToInclude);
 | 
|      mergeStyle(styleFromRules->m_mutableStyle.get(), mode);
 | 
| @@ -1051,9 +1051,9 @@ void EditingStyle::mergeInlineAndImplicitStyleOfElement(Element* element, CSSPro
 | 
|      }
 | 
|  }
 | 
|  
 | 
| -PassRefPtr<EditingStyle> EditingStyle::wrappingStyleForSerialization(Node* context, bool shouldAnnotate)
 | 
| +PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::wrappingStyleForSerialization(Node* context, bool shouldAnnotate)
 | 
|  {
 | 
| -    RefPtr<EditingStyle> wrappingStyle;
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> wrappingStyle = nullptr;
 | 
|      if (shouldAnnotate) {
 | 
|          wrappingStyle = EditingStyle::create(context, EditingStyle::EditingPropertiesInEffect);
 | 
|  
 | 
| @@ -1203,7 +1203,7 @@ void EditingStyle::removeStyleFromRulesAndContext(Element* element, Node* contex
 | 
|          m_mutableStyle = getPropertiesNotIn(m_mutableStyle.get(), styleFromMatchedRules->ensureCSSStyleDeclaration());
 | 
|  
 | 
|      // 2. Remove style present in context and not overriden by matched rules.
 | 
| -    RefPtr<EditingStyle> computedStyle = EditingStyle::create(context, EditingPropertiesInEffect);
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> computedStyle = EditingStyle::create(context, EditingPropertiesInEffect);
 | 
|      if (computedStyle->m_mutableStyle) {
 | 
|          if (!computedStyle->m_mutableStyle->getPropertyCSSValue(CSSPropertyBackgroundColor))
 | 
|              computedStyle->m_mutableStyle->setProperty(CSSPropertyBackgroundColor, CSSValueTransparent);
 | 
| @@ -1249,7 +1249,7 @@ int EditingStyle::legacyFontSize(Document* document) const
 | 
|          m_shouldUseFixedDefaultFontSize, AlwaysUseLegacyFontSize);
 | 
|  }
 | 
|  
 | 
| -PassRefPtr<EditingStyle> EditingStyle::styleAtSelectionStart(const VisibleSelection& selection, bool shouldUseBackgroundColorInEffect)
 | 
| +PassRefPtrWillBeRawPtr<EditingStyle> EditingStyle::styleAtSelectionStart(const VisibleSelection& selection, bool shouldUseBackgroundColorInEffect)
 | 
|  {
 | 
|      if (selection.isNone())
 | 
|          return nullptr;
 | 
| @@ -1268,7 +1268,7 @@ PassRefPtr<EditingStyle> EditingStyle::styleAtSelectionStart(const VisibleSelect
 | 
|      if (!element)
 | 
|          return nullptr;
 | 
|  
 | 
| -    RefPtr<EditingStyle> style = EditingStyle::create(element, EditingStyle::AllProperties);
 | 
| +    RefPtrWillBeRawPtr<EditingStyle> style = EditingStyle::create(element, EditingStyle::AllProperties);
 | 
|      style->mergeTypingStyle(&element->document());
 | 
|  
 | 
|      // If background color is transparent, traverse parent nodes until we hit a different value or document root
 | 
| @@ -1369,6 +1369,11 @@ WritingDirection EditingStyle::textDirectionForSelection(const VisibleSelection&
 | 
|      return foundDirection;
 | 
|  }
 | 
|  
 | 
| +void EditingStyle::trace(Visitor* visitor)
 | 
| +{
 | 
| +    visitor->trace(m_mutableStyle);
 | 
| +}
 | 
| +
 | 
|  static void reconcileTextDecorationProperties(MutableStylePropertySet* style)
 | 
|  {
 | 
|      RefPtrWillBeRawPtr<CSSValue> textDecorationsInEffect = style->getPropertyCSSValue(CSSPropertyWebkitTextDecorationsInEffect);
 | 
| 
 |