Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Unified Diff: third_party/WebKit/Source/core/editing/VisibleUnits.cpp

Issue 2171493003: [Editing][DOM][CodeHealth] Make Node::hasEditableStyle global functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/editing/VisibleUnits.cpp
diff --git a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
index ddeb95123a48ee7c751f3511bd7ca1697601f1e0..017aa6fc170a7a73589f65d7d9475e1673cd3bb7 100644
--- a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
+++ b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
@@ -125,7 +125,7 @@ static PositionType canonicalPosition(const PositionType& passedPosition)
// The new position must be in the same editable element. Enforce that
// first. Unless the descent is from a non-editable html element to an
// editable body.
- if (node && node->document().documentElement() == node && !node->hasEditableStyle() && node->document().body() && node->document().body()->hasEditableStyle())
+ if (node && node->document().documentElement() == node && !hasEditableStyle(*node) && node->document().body() && hasEditableStyle(*node->document().body()))
return next.isNotNull() ? next : prev;
Element* editingRoot = rootEditableElementOf(position);
@@ -239,10 +239,10 @@ static VisiblePositionTemplate<Strategy> honorEditingBoundaryAtOrAfter(const Vis
static Node* previousLeafWithSameEditability(Node* node, EditableType editableType)
{
- bool editable = node->hasEditableStyle(editableType);
+ bool editable = hasEditableStyle(*node, editableType);
node = previousAtomicLeafNode(*node);
while (node) {
- if (editable == node->hasEditableStyle(editableType))
+ if (editable == hasEditableStyle(*node, editableType))
return node;
node = previousAtomicLeafNode(*node);
}
@@ -254,10 +254,10 @@ static Node* nextLeafWithSameEditability(Node* node, EditableType editableType =
if (!node)
return 0;
- bool editable = node->hasEditableStyle(editableType);
+ bool editable = hasEditableStyle(*node, editableType);
node = nextAtomicLeafNode(*node);
while (node) {
- if (editable == node->hasEditableStyle(editableType))
+ if (editable == hasEditableStyle(*node, editableType))
return node;
node = nextAtomicLeafNode(*node);
}
@@ -647,7 +647,7 @@ static Node* parentEditingBoundary(const PositionTemplate<Strategy>& position)
return nullptr;
Node* boundary = position.computeContainerNode();
- while (boundary != documentElement && nonShadowBoundaryParentNode<Strategy>(boundary) && anchorNode->hasEditableStyle() == Strategy::parent(*boundary)->hasEditableStyle())
+ while (boundary != documentElement && nonShadowBoundaryParentNode<Strategy>(boundary) && hasEditableStyle(*anchorNode) == hasEditableStyle(*Strategy::parent(*boundary)))
boundary = nonShadowBoundaryParentNode<Strategy>(boundary);
return boundary;
@@ -1336,7 +1336,7 @@ VisiblePosition previousLinePosition(const VisiblePosition& visiblePosition, Lay
// Could not find a previous line. This means we must already be on the first line.
// Move to the start of the content in this block, which effectively moves us
// to the start of the line we're on.
- Element* rootElement = node->hasEditableStyle(editableType) ? rootEditableElement(*node, editableType) : node->document().documentElement();
+ Element* rootElement = hasEditableStyle(*node, editableType) ? rootEditableElement(*node, editableType) : node->document().documentElement();
if (!rootElement)
return VisiblePosition();
return VisiblePosition::firstPositionInNode(rootElement);
@@ -1392,7 +1392,7 @@ VisiblePosition nextLinePosition(const VisiblePosition& visiblePosition, LayoutU
// Could not find a next line. This means we must already be on the last line.
// Move to the end of the content in this block, which effectively moves us
// to the end of the line we're on.
- Element* rootElement = node->hasEditableStyle(editableType) ? rootEditableElement(*node, editableType) : node->document().documentElement();
+ Element* rootElement = hasEditableStyle(*node, editableType) ? rootEditableElement(*node, editableType) : node->document().documentElement();
if (!rootElement)
return VisiblePosition();
return VisiblePosition::lastPositionInNode(rootElement);
@@ -1495,12 +1495,12 @@ VisiblePositionTemplate<Strategy> startOfParagraphAlgorithm(const VisiblePositio
PositionAnchorType type = p.anchorType();
Node* n = startNode;
- bool startNodeIsEditable = startNode->hasEditableStyle();
+ bool startNodeIsEditable = hasEditableStyle(*startNode);
while (n) {
- if (boundaryCrossingRule == CannotCrossEditingBoundary && !nodeIsUserSelectAll(n) && n->hasEditableStyle() != startNodeIsEditable)
+ if (boundaryCrossingRule == CannotCrossEditingBoundary && !nodeIsUserSelectAll(n) && hasEditableStyle(*n) != startNodeIsEditable)
break;
if (boundaryCrossingRule == CanSkipOverEditingBoundary) {
- while (n && n->hasEditableStyle() != startNodeIsEditable)
+ while (n && hasEditableStyle(*n) != startNodeIsEditable)
n = Strategy::previousPostOrder(*n, startBlock);
if (!n || !n->isDescendantOf(highestRoot))
break;
@@ -1583,12 +1583,12 @@ static VisiblePositionTemplate<Strategy> endOfParagraphAlgorithm(const VisiblePo
PositionAnchorType type = p.anchorType();
Node* n = startNode;
- bool startNodeIsEditable = startNode->hasEditableStyle();
+ bool startNodeIsEditable = hasEditableStyle(*startNode);
while (n) {
- if (boundaryCrossingRule == CannotCrossEditingBoundary && !nodeIsUserSelectAll(n) && n->hasEditableStyle() != startNodeIsEditable)
+ if (boundaryCrossingRule == CannotCrossEditingBoundary && !nodeIsUserSelectAll(n) && hasEditableStyle(*n) != startNodeIsEditable)
break;
if (boundaryCrossingRule == CanSkipOverEditingBoundary) {
- while (n && n->hasEditableStyle() != startNodeIsEditable)
+ while (n && hasEditableStyle(*n) != startNodeIsEditable)
n = Strategy::next(*n, stayInsideBlock);
if (!n || !n->isDescendantOf(highestRoot))
break;
@@ -2364,7 +2364,7 @@ static PositionTemplate<Strategy> mostBackwardCaretPosition(const PositionTempla
// FIXME: PositionIterator should respect Before and After positions.
PositionIteratorAlgorithm<Strategy> lastVisible(position.isAfterAnchor() ? PositionTemplate<Strategy>::editingPositionOf(position.anchorNode(), Strategy::caretMaxOffset(*position.anchorNode())) : position);
PositionIteratorAlgorithm<Strategy> currentPos = lastVisible;
- bool startEditable = startNode->hasEditableStyle();
+ bool startEditable = hasEditableStyle(*startNode);
Node* lastNode = startNode;
bool boundaryCrossed = false;
for (; !currentPos.atStart(); currentPos.decrement()) {
@@ -2373,7 +2373,7 @@ static PositionTemplate<Strategy> mostBackwardCaretPosition(const PositionTempla
// to avoid the expense of computing hasEditableStyle().
if (currentNode != lastNode) {
// Don't change editability.
- bool currentEditable = currentNode->hasEditableStyle();
+ bool currentEditable = hasEditableStyle(*currentNode);
if (startEditable != currentEditable) {
if (rule == CannotCrossEditingBoundary)
break;
@@ -2505,7 +2505,7 @@ PositionTemplate<Strategy> mostForwardCaretPosition(const PositionTemplate<Strat
// FIXME: PositionIterator should respect Before and After positions.
PositionIteratorAlgorithm<Strategy> lastVisible(position.isAfterAnchor() ? PositionTemplate<Strategy>::editingPositionOf(position.anchorNode(), Strategy::caretMaxOffset(*position.anchorNode())) : position);
PositionIteratorAlgorithm<Strategy> currentPos = lastVisible;
- bool startEditable = startNode->hasEditableStyle();
+ bool startEditable = hasEditableStyle(*startNode);
Node* lastNode = startNode;
bool boundaryCrossed = false;
for (; !currentPos.atEnd(); currentPos.increment()) {
@@ -2514,7 +2514,7 @@ PositionTemplate<Strategy> mostForwardCaretPosition(const PositionTemplate<Strat
// to avoid the expense of computing hasEditableStyle().
if (currentNode != lastNode) {
// Don't change editability.
- bool currentEditable = currentNode->hasEditableStyle();
+ bool currentEditable = hasEditableStyle(*currentNode);
if (startEditable != currentEditable) {
if (rule == CannotCrossEditingBoundary)
break;
@@ -2636,15 +2636,15 @@ template <typename Strategy>
static bool atEditingBoundary(const PositionTemplate<Strategy> positions)
{
PositionTemplate<Strategy> nextPosition = mostForwardCaretPosition(positions, CanCrossEditingBoundary);
- if (positions.atFirstEditingPositionForNode() && nextPosition.isNotNull() && !nextPosition.anchorNode()->hasEditableStyle())
+ if (positions.atFirstEditingPositionForNode() && nextPosition.isNotNull() && !hasEditableStyle(*nextPosition.anchorNode()))
return true;
PositionTemplate<Strategy> prevPosition = mostBackwardCaretPosition(positions, CanCrossEditingBoundary);
- if (positions.atLastEditingPositionForNode() && prevPosition.isNotNull() && !prevPosition.anchorNode()->hasEditableStyle())
+ if (positions.atLastEditingPositionForNode() && prevPosition.isNotNull() && !hasEditableStyle(*prevPosition.anchorNode()))
return true;
- return nextPosition.isNotNull() && !nextPosition.anchorNode()->hasEditableStyle()
- && prevPosition.isNotNull() && !prevPosition.anchorNode()->hasEditableStyle();
+ return nextPosition.isNotNull() && !hasEditableStyle(*nextPosition.anchorNode())
+ && prevPosition.isNotNull() && !hasEditableStyle(*prevPosition.anchorNode());
}
template <typename Strategy>
@@ -2700,12 +2700,12 @@ static bool isVisuallyEquivalentCandidateAlgorithm(const PositionTemplate<Strate
if (toLayoutBlock(layoutObject)->logicalHeight() || isHTMLBodyElement(*anchorNode)) {
if (!hasRenderedNonAnonymousDescendantsWithHeight(layoutObject))
return position.atFirstEditingPositionForNode();
- return anchorNode->hasEditableStyle() && atEditingBoundary(position);
+ return hasEditableStyle(*anchorNode) && atEditingBoundary(position);
}
} else {
LocalFrame* frame = anchorNode->document().frame();
bool caretBrowsing = frame->settings() && frame->settings()->caretBrowsingEnabled();
- return (caretBrowsing || anchorNode->hasEditableStyle()) && atEditingBoundary(position);
+ return (caretBrowsing || hasEditableStyle(*anchorNode)) && atEditingBoundary(position);
}
return false;

Powered by Google App Engine
This is Rietveld 408576698