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

Unified Diff: Source/core/editing/htmlediting.cpp

Issue 59963002: Unable to delete the first and the last characters of a contenteditable div with display: table. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month 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: Source/core/editing/htmlediting.cpp
diff --git a/Source/core/editing/htmlediting.cpp b/Source/core/editing/htmlediting.cpp
index ce132c1364d78d22c75c1e1b32a52123c745ff77..a8869294468281dd00b9645f569559f4b5cff64e 100644
--- a/Source/core/editing/htmlediting.cpp
+++ b/Source/core/editing/htmlediting.cpp
@@ -160,7 +160,7 @@ bool isEditablePosition(const Position& p, EditableType editableType, EUpdateSty
else
ASSERT(updateStyle == DoNotUpdateStyle);
- if (node->renderer() && node->renderer()->isTable())
+ if (isTableElement(node))
node = node->parentNode();
return node->rendererIsEditable(editableType);
@@ -179,7 +179,7 @@ bool isRichlyEditablePosition(const Position& p, EditableType editableType)
if (!node)
return false;
- if (node->renderer() && node->renderer()->isTable())
+ if (isTableElement(node))
node = node->parentNode();
return node->rendererIsRichlyEditable(editableType);
@@ -191,7 +191,7 @@ Element* editableRootForPosition(const Position& p, EditableType editableType)
if (!node)
return 0;
- if (node->renderer() && node->renderer()->isTable())
+ if (isTableElement(node))
node = node->parentNode();
return node->rootEditableElement(editableType);
@@ -752,14 +752,12 @@ bool canMergeLists(Element* firstList, Element* secondList)
// Make sure there is no visible content between this li and the previous list
}
-// FIXME: do not require renderer, so that this can be used within fragments, or rename to isRenderedTable()
bool isTableElement(Node* n)
yosin_UTC9 2013/11/06 01:29:34 To reduce the risk of changing this function. How
arpitab_ 2013/11/06 06:59:51 I understand. I'll add a new isTableElement().
{
if (!n || !n->isElementNode())
return false;
- RenderObject* renderer = n->renderer();
- return (renderer && (renderer->style()->display() == TABLE || renderer->style()->display() == INLINE_TABLE));
+ return n->hasTagName(tableTag);
}
bool isTableCell(const Node* node)

Powered by Google App Engine
This is Rietveld 408576698