| Index: third_party/WebKit/Source/core/editing/EditingStyle.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/EditingStyle.cpp b/third_party/WebKit/Source/core/editing/EditingStyle.cpp
|
| index e8df5ce38b9eb7e09ad0e74912b09c443bcf1c88..5bf183876c5534489a4f004101e8961d6700b37c 100644
|
| --- a/third_party/WebKit/Source/core/editing/EditingStyle.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/EditingStyle.cpp
|
| @@ -1116,9 +1116,11 @@ EditingStyle* EditingStyle::wrappingStyleForSerialization(ContainerNode* context
|
| EditingStyle* wrappingStyle = EditingStyle::create();
|
|
|
| // When not annotating for interchange, we only preserve inline style declarations.
|
| - for (ContainerNode* node = context; node && !node->isDocumentNode(); node = node->parentNode()) {
|
| - if (node->isStyledElement() && !isMailHTMLBlockquoteElement(node)) {
|
| - wrappingStyle->mergeInlineAndImplicitStyleOfElement(toElement(node), EditingStyle::DoNotOverrideValues,
|
| + for (Node& node : NodeTraversal::ancestorsOrSelfOf(context)) {
|
| + if (node.isDocumentNode())
|
| + break;
|
| + if (node.isStyledElement() && !isMailHTMLBlockquoteElement(&node)) {
|
| + wrappingStyle->mergeInlineAndImplicitStyleOfElement(toElement(&node), EditingStyle::DoNotOverrideValues,
|
| EditingStyle::EditingPropertiesInEffect);
|
| }
|
| }
|
| @@ -1397,11 +1399,13 @@ WritingDirection EditingStyle::textDirectionForSelection(const VisibleSelection&
|
| Node* block = enclosingBlock(node);
|
| WritingDirection foundDirection = NaturalWritingDirection;
|
|
|
| - for (; node != block; node = node->parentNode()) {
|
| - if (!node->isStyledElement())
|
| + for (Node& node : NodeTraversal::ancestorsOrSelfOf(node)) {
|
| + if (node == block)
|
| + break;
|
| + if (!node.isStyledElement())
|
| continue;
|
|
|
| - Element* element = toElement(node);
|
| + Element* element = &toElement(node);
|
| CSSComputedStyleDeclaration* style = CSSComputedStyleDeclaration::create(element);
|
| CSSValue* unicodeBidi = style->getPropertyCSSValue(CSSPropertyUnicodeBidi);
|
| if (!unicodeBidi || !unicodeBidi->isPrimitiveValue())
|
|
|