| Index: Source/core/dom/Position.cpp
|
| diff --git a/Source/core/dom/Position.cpp b/Source/core/dom/Position.cpp
|
| index c08a67c3559579812606ec813f61a4ce43794ea4..2bdca345bcd35b71212f7de66cb6dc3262769838 100644
|
| --- a/Source/core/dom/Position.cpp
|
| +++ b/Source/core/dom/Position.cpp
|
| @@ -37,12 +37,13 @@
|
| #include "core/editing/htmlediting.h"
|
| #include "core/frame/LocalFrame.h"
|
| #include "core/frame/Settings.h"
|
| -#include "platform/Logging.h"
|
| +#include "core/html/HTMLTableElement.h"
|
| #include "core/rendering/InlineIterator.h"
|
| #include "core/rendering/InlineTextBox.h"
|
| #include "core/rendering/RenderBlock.h"
|
| #include "core/rendering/RenderInline.h"
|
| #include "core/rendering/RenderText.h"
|
| +#include "platform/Logging.h"
|
| #include "wtf/text/CString.h"
|
| #include "wtf/unicode/CharacterNames.h"
|
|
|
| @@ -544,12 +545,12 @@ static bool endsOfNodeAreVisuallyDistinctPositions(Node* node)
|
| return true;
|
|
|
| // Don't include inline tables.
|
| - if (node->hasTagName(tableTag))
|
| + if (isHTMLTableElement(*node))
|
| return false;
|
|
|
| // A Marquee elements are moving so we should assume their ends are always
|
| // visibily distinct.
|
| - if (node->hasTagName(marqueeTag))
|
| + if (isHTMLMarqueeElement(*node))
|
| return true;
|
|
|
| // There is a VisiblePosition inside an empty inline-block container.
|
| @@ -739,7 +740,7 @@ Position Position::downstream(EditingBoundaryCrossingRule rule) const
|
|
|
| // stop before going above the body, up into the head
|
| // return the last visible streamer position
|
| - if (currentNode->hasTagName(bodyTag) && currentPos.atEndOfNode())
|
| + if (isHTMLBodyElement(*currentNode) && currentPos.atEndOfNode())
|
| break;
|
|
|
| // Do not move to a visually distinct position.
|
| @@ -895,11 +896,11 @@ bool Position::isCandidate() const
|
| if (isRenderedTableElement(deprecatedNode()) || editingIgnoresContent(deprecatedNode()))
|
| return (atFirstEditingPositionForNode() || atLastEditingPositionForNode()) && !nodeIsUserSelectNone(deprecatedNode()->parentNode());
|
|
|
| - if (m_anchorNode->hasTagName(htmlTag))
|
| + if (isHTMLHtmlElement(*m_anchorNode))
|
| return false;
|
|
|
| if (renderer->isRenderBlockFlow()) {
|
| - if (toRenderBlock(renderer)->logicalHeight() || m_anchorNode->hasTagName(bodyTag)) {
|
| + if (toRenderBlock(renderer)->logicalHeight() || isHTMLBodyElement(*m_anchorNode)) {
|
| if (!Position::hasRenderedNonAnonymousDescendantsWithHeight(renderer))
|
| return atFirstEditingPositionForNode() && !Position::nodeIsUserSelectNone(deprecatedNode());
|
| return m_anchorNode->rendererIsEditable() && !Position::nodeIsUserSelectNone(deprecatedNode()) && atEditingBoundary();
|
| @@ -980,7 +981,7 @@ bool Position::rendersInDifferentPosition(const Position &pos) const
|
| return false;
|
|
|
| if (deprecatedNode() == pos.deprecatedNode()) {
|
| - if (deprecatedNode()->hasTagName(brTag))
|
| + if (isHTMLBRElement(*deprecatedNode()))
|
| return false;
|
|
|
| if (m_offset == pos.deprecatedEditingOffset())
|
| @@ -992,10 +993,10 @@ bool Position::rendersInDifferentPosition(const Position &pos) const
|
| }
|
| }
|
|
|
| - if (deprecatedNode()->hasTagName(brTag) && pos.isCandidate())
|
| + if (isHTMLBRElement(*deprecatedNode()) && pos.isCandidate())
|
| return true;
|
|
|
| - if (pos.deprecatedNode()->hasTagName(brTag) && isCandidate())
|
| + if (isHTMLBRElement(*pos.deprecatedNode()) && isCandidate())
|
| return true;
|
|
|
| if (deprecatedNode()->enclosingBlockFlowElement() != pos.deprecatedNode()->enclosingBlockFlowElement())
|
| @@ -1055,7 +1056,7 @@ Position Position::leadingWhitespacePosition(EAffinity affinity, bool considerNo
|
| if (isNull())
|
| return Position();
|
|
|
| - if (upstream().deprecatedNode()->hasTagName(brTag))
|
| + if (isHTMLBRElement(*upstream().deprecatedNode()))
|
| return Position();
|
|
|
| Position prev = previousCharacterPosition(affinity);
|
|
|