Changeset 160966 in webkit


Ignore:
Timestamp:
Dec 21, 2013 10:51:04 AM (11 years ago)
Author:
Antti Koivisto
Message:

Figure out if node is focusable without requiring renderer
https://bugs.webkit.org/show_bug.cgi?id=126118

Reviewed by Andreas Kling.

  • dom/Element.cpp:

(WebCore::Element::computedStyle):

Use inDocument() test instead of the attached() test. We can compute style for anything that
is in document.

  • dom/Node.cpp:

(WebCore::Node::isContentEditable):
(WebCore::Node::isContentRichlyEditable):
(WebCore::Node::hasEditableStyle):

Use computedStyle instead of getting the style from renderer. Computed style gets constructed
on demand if renderer does not exist. If it does then the existing style is used.

(WebCore::Node::isEditableToAccessibility):
(WebCore::Node::canStartSelection):
(WebCore::Node::isRootEditableElement):
(WebCore::Node::rootEditableElement):

  • dom/Node.h:

(WebCore::Node::hasEditableStyle):
(WebCore::Node::hasRichlyEditableStyle):

Renamed from rendererIsEditable since these no longer require renderer.

(WebCore::HTMLElement::supportsFocus):

Stop calling updateStyleIfNeeded() and forcing render tree construction.

Location:
trunk/Source/WebCore
Files:
51 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r160961 r160966  
     12013-12-21  Antti Koivisto  <antti@apple.com>
     2
     3        Figure out if node is focusable without requiring renderer
     4        https://bugs.webkit.org/show_bug.cgi?id=126118
     5
     6        Reviewed by Andreas Kling.
     7
     8        * dom/Element.cpp:
     9        (WebCore::Element::computedStyle):
     10       
     11            Use inDocument() test instead of the attached() test. We can compute style for anything that
     12            is in document.
     13
     14        * dom/Node.cpp:
     15        (WebCore::Node::isContentEditable):
     16        (WebCore::Node::isContentRichlyEditable):
     17        (WebCore::Node::hasEditableStyle):
     18       
     19            Use computedStyle instead of getting the style from renderer. Computed style gets constructed
     20            on demand if renderer does not exist. If it does then the existing style is used.
     21
     22        (WebCore::Node::isEditableToAccessibility):
     23        (WebCore::Node::canStartSelection):
     24        (WebCore::Node::isRootEditableElement):
     25        (WebCore::Node::rootEditableElement):
     26        * dom/Node.h:
     27        (WebCore::Node::hasEditableStyle):
     28        (WebCore::Node::hasRichlyEditableStyle):
     29       
     30            Renamed from rendererIsEditable since these no longer require renderer.
     31
     32        (WebCore::HTMLElement::supportsFocus):
     33       
     34            Stop calling updateStyleIfNeeded() and forcing render tree construction.
     35
    1362013-12-21  Carlos Garcia Campos  <cgarcia@igalia.com>
    237
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r160789 r160966  
    151151       
    152152        // If this element is an ARIA text control, notify the AT of changes.
    153         if (parent->isARIATextControl() && !parent->isNativeTextControl() && !parent->node()->rendererIsEditable())
     153        if (parent->isARIATextControl() && !parent->isNativeTextControl() && !parent->node()->hasEditableStyle())
    154154            axObjectCache()->postNotification(parent, parent->document(), AXObjectCache::AXValueChanged);
    155155    }
     
    738738    }
    739739
    740     return !node->rendererIsEditable();
     740    return !node->hasEditableStyle();
    741741}
    742742
     
    20492049}   
    20502050
    2051 // If you call node->rendererIsEditable() since that will return true if an ancestor is editable.
     2051// If you call node->hasEditableStyle() since that will return true if an ancestor is editable.
    20522052// This only returns true if this is the element that actually has the contentEditable attribute set.
    20532053bool AccessibilityNodeObject::hasContentEditableAttributeSet() const
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r160916 r160966  
    543543    if (isWebArea()) {
    544544        if (HTMLElement* body = m_renderer->document().body()) {
    545             if (body->rendererIsEditable())
     545            if (body->hasEditableStyle())
    546546                return false;
    547547        }
    548548
    549         return !m_renderer->document().rendererIsEditable();
     549        return !m_renderer->document().hasEditableStyle();
    550550    }
    551551
     
    12561256   
    12571257    // Anything that is content editable should not be ignored.
    1258     // However, one cannot just call node->rendererIsEditable() since that will ask if its parents
     1258    // However, one cannot just call node->hasEditableStyle() since that will ask if its parents
    12591259    // are also editable. Only the top level content editable region should be exposed.
    12601260    if (hasContentEditableAttributeSet())
     
    27452745            cache->postNotification(renderParent, AXObjectCache::AXLiveRegionChanged);
    27462746
    2747         if (parent->isARIATextControl() && !parent->isNativeTextControl() && !parent->node()->rendererIsEditable())
     2747        if (parent->isARIATextControl() && !parent->isNativeTextControl() && !parent->node()->hasEditableStyle())
    27482748            cache->postNotification(renderParent, AXObjectCache::AXValueChanged);
    27492749    }
  • trunk/Source/WebCore/accessibility/AccessibilityTable.cpp

    r160598 r160966  
    103103    // treated as data tables, otherwise users may not be able to work with rich
    104104    // text editors that allow creating and editing tables.
    105     if (node() && node()->rendererIsEditable())
     105    if (node() && node()->hasEditableStyle())
    106106        return true;
    107107
  • trunk/Source/WebCore/dom/Document.cpp

    r160908 r160966  
    329329{
    330330    ASSERT(node);
    331     ASSERT(node->rendererIsEditable());
     331    ASSERT(node->hasEditableStyle());
    332332
    333333    Node* root = node->rootEditableElement();
  • trunk/Source/WebCore/dom/Element.cpp

    r160908 r160966  
    21492149    }
    21502150
    2151     if (!attached()) {
     2151    if (!inDocument()) {
    21522152        // FIXME: Try to do better than this. Ensure that styleForElement() works for elements that are not in the
    21532153        // document tree and figure out when to destroy the computed style for such elements.
  • trunk/Source/WebCore/dom/Node.cpp

    r160908 r160966  
    5757#include "Logging.h"
    5858#include "MutationEvent.h"
     59#include "NodeRenderStyle.h"
    5960#include "PlatformMouseEvent.h"
    6061#include "PlatformWheelEvent.h"
     
    544545{
    545546    document().updateStyleIfNeeded();
    546     return rendererIsEditable(Editable, treatment);
     547    return hasEditableStyle(Editable, treatment);
    547548}
    548549
     
    550551{
    551552    document().updateStyleIfNeeded();
    552     return rendererIsEditable(RichlyEditable, UserSelectAllIsAlwaysNonEditable);
     553    return hasEditableStyle(RichlyEditable, UserSelectAllIsAlwaysNonEditable);
    553554}
    554555
     
    561562}
    562563
    563 bool Node::rendererIsEditable(EditableLevel editableLevel, UserSelectAllTreatment treatment) const
    564 {
     564bool Node::hasEditableStyle(EditableLevel editableLevel, UserSelectAllTreatment treatment) const
     565{
     566    if (!document().hasLivingRenderTree())
     567        return false;
    565568    if (document().frame() && document().frame()->page() && document().frame()->page()->isEditable() && !containingShadowRoot())
    566569        return true;
     
    574577
    575578    for (const Node* node = this; node; node = node->parentNode()) {
    576         if ((node->isHTMLElement() || node->isDocumentNode()) && node->renderer()) {
     579        RenderStyle* style = node->isDocumentNode() ? node->renderStyle() : const_cast<Node*>(node)->computedStyle();
     580        if (!style)
     581            continue;
     582        if (style->display() == NONE)
     583            continue;
    577584#if ENABLE(USERSELECT_ALL)
    578             // Elements with user-select: all style are considered atomic
    579             // therefore non editable.
    580             if (treatment == UserSelectAllIsAlwaysNonEditable && node->renderer()->style().userSelect() == SELECT_ALL)
    581                 return false;
     585        // Elements with user-select: all style are considered atomic
     586        // therefore non editable.
     587        if (treatment == UserSelectAllIsAlwaysNonEditable && style->userSelect() == SELECT_ALL)
     588            return false;
    582589#else
    583             UNUSED_PARAM(treatment);
    584 #endif
    585             switch (node->renderer()->style().userModify()) {
    586             case READ_ONLY:
    587                 return false;
    588             case READ_WRITE:
    589                 return true;
    590             case READ_WRITE_PLAINTEXT_ONLY:
    591                 return editableLevel != RichlyEditable;
    592             }
    593             ASSERT_NOT_REACHED();
     590        UNUSED_PARAM(treatment);
     591#endif
     592        switch (style->userModify()) {
     593        case READ_ONLY:
    594594            return false;
    595         }
    596     }
    597 
     595        case READ_WRITE:
     596            return true;
     597        case READ_WRITE_PLAINTEXT_ONLY:
     598            return editableLevel != RichlyEditable;
     599        }
     600        ASSERT_NOT_REACHED();
     601        return false;
     602    }
    598603    return false;
    599604}
     
    601606bool Node::isEditableToAccessibility(EditableLevel editableLevel) const
    602607{
    603     if (rendererIsEditable(editableLevel))
     608    if (hasEditableStyle(editableLevel))
    604609        return true;
    605610
     
    922927bool Node::canStartSelection() const
    923928{
    924     if (rendererIsEditable())
     929    if (hasEditableStyle())
    925930        return true;
    926931
     
    10181023bool Node::isRootEditableElement() const
    10191024{
    1020     return rendererIsEditable() && isElementNode() && (!parentNode() || !parentNode()->rendererIsEditable()
     1025    return hasEditableStyle() && isElementNode() && (!parentNode() || !parentNode()->hasEditableStyle()
    10211026        || !parentNode()->isElementNode() || hasTagName(bodyTag));
    10221027}
     
    10351040{
    10361041    Element* result = 0;
    1037     for (Node* n = const_cast<Node*>(this); n && n->rendererIsEditable(); n = n->parentNode()) {
     1042    for (Node* n = const_cast<Node*>(this); n && n->hasEditableStyle(); n = n->parentNode()) {
    10381043        if (n->isElementNode())
    10391044            result = toElement(n);
  • trunk/Source/WebCore/dom/Node.h

    r160928 r160966  
    342342    void inspect();
    343343
    344     bool rendererIsEditable(EditableType editableType = ContentIsEditable, UserSelectAllTreatment treatment = UserSelectAllIsAlwaysNonEditable) const
     344    bool hasEditableStyle(EditableType editableType = ContentIsEditable, UserSelectAllTreatment treatment = UserSelectAllIsAlwaysNonEditable) const
    345345    {
    346346        switch (editableType) {
    347347        case ContentIsEditable:
    348             return rendererIsEditable(Editable, treatment);
     348            return hasEditableStyle(Editable, treatment);
    349349        case HasEditableAXRole:
    350350            return isEditableToAccessibility(Editable);
     
    354354    }
    355355
    356     bool rendererIsRichlyEditable(EditableType editableType = ContentIsEditable) const
     356    bool hasRichlyEditableStyle(EditableType editableType = ContentIsEditable) const
    357357    {
    358358        switch (editableType) {
    359359        case ContentIsEditable:
    360             return rendererIsEditable(RichlyEditable, UserSelectAllIsAlwaysNonEditable);
     360            return hasEditableStyle(RichlyEditable, UserSelectAllIsAlwaysNonEditable);
    361361        case HasEditableAXRole:
    362362            return isEditableToAccessibility(RichlyEditable);
     
    655655
    656656    enum EditableLevel { Editable, RichlyEditable };
    657     bool rendererIsEditable(EditableLevel, UserSelectAllTreatment = UserSelectAllIsAlwaysNonEditable) const;
     657    bool hasEditableStyle(EditableLevel, UserSelectAllTreatment = UserSelectAllIsAlwaysNonEditable) const;
    658658    bool isEditableToAccessibility(EditableLevel) const;
    659659
  • trunk/Source/WebCore/dom/Position.cpp

    r158842 r160966  
    6868    while ((node = nextLeafNode(node))) {
    6969        RenderObject* renderer = node->renderer();
    70         if (!renderer || !node->rendererIsEditable())
     70        if (!renderer || !node->hasEditableStyle())
    7171            continue;
    7272        if (hasInlineBoxWrapper(*renderer))
     
    8080    while ((node = previousLeafNode(node))) {
    8181        RenderObject* renderer = node->renderer();
    82         if (!renderer || !node->rendererIsEditable())
     82        if (!renderer || !node->hasEditableStyle())
    8383            continue;
    8484        if (hasInlineBoxWrapper(*renderer))
     
    435435{
    436436    Position nextPosition = downstream(CanCrossEditingBoundary);
    437     if (atFirstEditingPositionForNode() && nextPosition.isNotNull() && !nextPosition.deprecatedNode()->rendererIsEditable())
     437    if (atFirstEditingPositionForNode() && nextPosition.isNotNull() && !nextPosition.deprecatedNode()->hasEditableStyle())
    438438        return true;
    439439       
    440440    Position prevPosition = upstream(CanCrossEditingBoundary);
    441     if (atLastEditingPositionForNode() && prevPosition.isNotNull() && !prevPosition.deprecatedNode()->rendererIsEditable())
     441    if (atLastEditingPositionForNode() && prevPosition.isNotNull() && !prevPosition.deprecatedNode()->hasEditableStyle())
    442442        return true;
    443443       
    444     return nextPosition.isNotNull() && !nextPosition.deprecatedNode()->rendererIsEditable()
    445         && prevPosition.isNotNull() && !prevPosition.deprecatedNode()->rendererIsEditable();
     444    return nextPosition.isNotNull() && !nextPosition.deprecatedNode()->hasEditableStyle()
     445        && prevPosition.isNotNull() && !prevPosition.deprecatedNode()->hasEditableStyle();
    446446}
    447447
     
    456456
    457457    Node* boundary = m_anchorNode.get();
    458     while (boundary != documentElement && boundary->nonShadowBoundaryParentNode() && m_anchorNode->rendererIsEditable() == boundary->parentNode()->rendererIsEditable())
     458    while (boundary != documentElement && boundary->nonShadowBoundaryParentNode() && m_anchorNode->hasEditableStyle() == boundary->parentNode()->hasEditableStyle())
    459459        boundary = boundary->nonShadowBoundaryParentNode();
    460460   
     
    591591    PositionIterator lastVisible = m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : *this;
    592592    PositionIterator currentPos = lastVisible;
    593     bool startEditable = startNode->rendererIsEditable();
     593    bool startEditable = startNode->hasEditableStyle();
    594594    Node* lastNode = startNode;
    595595    bool boundaryCrossed = false;
     
    598598       
    599599        // Don't check for an editability change if we haven't moved to a different node,
    600         // to avoid the expense of computing rendererIsEditable().
     600        // to avoid the expense of computing hasEditableStyle().
    601601        if (currentNode != lastNode) {
    602602            // Don't change editability.
    603             bool currentEditable = currentNode->rendererIsEditable();
     603            bool currentEditable = currentNode->hasEditableStyle();
    604604            if (startEditable != currentEditable) {
    605605                if (rule == CannotCrossEditingBoundary)
     
    718718    PositionIterator lastVisible = m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : *this;
    719719    PositionIterator currentPos = lastVisible;
    720     bool startEditable = startNode->rendererIsEditable();
     720    bool startEditable = startNode->hasEditableStyle();
    721721    Node* lastNode = startNode;
    722722    bool boundaryCrossed = false;
     
    725725       
    726726        // Don't check for an editability change if we haven't moved to a different node,
    727         // to avoid the expense of computing rendererIsEditable().
     727        // to avoid the expense of computing hasEditableStyle().
    728728        if (currentNode != lastNode) {
    729729            // Don't change editability.
    730             bool currentEditable = currentNode->rendererIsEditable();
     730            bool currentEditable = currentNode->hasEditableStyle();
    731731            if (startEditable != currentEditable) {
    732732                if (rule == CannotCrossEditingBoundary)
     
    943943            if (!Position::hasRenderedNonAnonymousDescendantsWithHeight(block))
    944944                return atFirstEditingPositionForNode() && !Position::nodeIsUserSelectNone(deprecatedNode());
    945             return m_anchorNode->rendererIsEditable() && !Position::nodeIsUserSelectNone(deprecatedNode()) && atEditingBoundary();
     945            return m_anchorNode->hasEditableStyle() && !Position::nodeIsUserSelectNone(deprecatedNode()) && atEditingBoundary();
    946946        }
    947947    } else
    948         return m_anchorNode->rendererIsEditable() && !Position::nodeIsUserSelectNone(deprecatedNode()) && atEditingBoundary();
     948        return m_anchorNode->hasEditableStyle() && !Position::nodeIsUserSelectNone(deprecatedNode()) && atEditingBoundary();
    949949
    950950    return false;
  • trunk/Source/WebCore/dom/PositionIterator.cpp

    r158617 r160966  
    166166            if (!Position::hasRenderedNonAnonymousDescendantsWithHeight(block))
    167167                return atStartOfNode() && !Position::nodeIsUserSelectNone(m_anchorNode);
    168             return m_anchorNode->rendererIsEditable() && !Position::nodeIsUserSelectNone(m_anchorNode) && Position(*this).atEditingBoundary();
     168            return m_anchorNode->hasEditableStyle() && !Position::nodeIsUserSelectNone(m_anchorNode) && Position(*this).atEditingBoundary();
    169169        }
    170170    }
  • trunk/Source/WebCore/editing/AppendNodeCommand.cpp

    r160908 r160966  
    4343    ASSERT(!m_node->parentNode());
    4444
    45     ASSERT(m_parent->rendererIsEditable() || !m_parent->attached());
     45    ASSERT(m_parent->hasEditableStyle() || !m_parent->attached());
    4646}
    4747
     
    5959void AppendNodeCommand::doApply()
    6060{
    61     if (!m_parent->rendererIsEditable() && m_parent->attached())
     61    if (!m_parent->hasEditableStyle() && m_parent->attached())
    6262        return;
    6363
     
    7070void AppendNodeCommand::doUnapply()
    7171{
    72     if (!m_parent->rendererIsEditable())
     72    if (!m_parent->hasEditableStyle())
    7373        return;
    7474       
  • trunk/Source/WebCore/editing/ApplyStyleCommand.cpp

    r160598 r160966  
    712712static bool containsNonEditableRegion(Node* node)
    713713{
    714     if (!node->rendererIsEditable())
     714    if (!node->hasEditableStyle())
    715715        return true;
    716716
    717717    Node* sibling = NodeTraversal::nextSkippingChildren(node);
    718718    for (Node* descendent = node->firstChild(); descendent && descendent != sibling; descendent = NodeTraversal::next(descendent)) {
    719         if (!descendent->rendererIsEditable())
     719        if (!descendent->hasEditableStyle())
    720720            return true;
    721721    }
     
    758758        next = NodeTraversal::next(node.get());
    759759
    760         if (!node->renderer() || !node->rendererIsEditable())
     760        if (!node->renderer() || !node->hasEditableStyle())
    761761            continue;
    762762       
    763         if (!node->rendererIsRichlyEditable() && node->isHTMLElement()) {
     763        if (!node->hasRichlyEditableStyle() && node->isHTMLElement()) {
    764764            // This is a plaintext-only region. Only proceed if it's fully selected.
    765765            // pastEndNode is the node after the last fully selected node, so if it's inside node then
     
    781781       
    782782        if (node->childNodeCount()) {
    783             if (node->contains(pastEndNode.get()) || containsNonEditableRegion(node.get()) || !node->parentNode()->rendererIsEditable())
     783            if (node->contains(pastEndNode.get()) || containsNonEditableRegion(node.get()) || !node->parentNode()->hasEditableStyle())
    784784                continue;
    785785            if (editingIgnoresContent(node.get())) {
     
    13611361    RefPtr<Node> nextSibling = element->nextSibling();
    13621362    RefPtr<Node> previousSibling = element->previousSibling();
    1363     if (nextSibling && nextSibling->isElementNode() && nextSibling->rendererIsEditable()
     1363    if (nextSibling && nextSibling->isElementNode() && nextSibling->hasEditableStyle()
    13641364        && areIdenticalElements(element.get(), toElement(nextSibling.get())))
    13651365        mergeIdenticalElements(element.get(), toElement(nextSibling.get()));
    13661366
    1367     if (previousSibling && previousSibling->isElementNode() && previousSibling->rendererIsEditable()) {
     1367    if (previousSibling && previousSibling->isElementNode() && previousSibling->hasEditableStyle()) {
    13681368        Node* mergedElement = previousSibling->nextSibling();
    1369         if (mergedElement->isElementNode() && mergedElement->rendererIsEditable()
     1369        if (mergedElement->isElementNode() && mergedElement->hasEditableStyle()
    13701370            && areIdenticalElements(toElement(previousSibling.get()), toElement(mergedElement)))
    13711371            mergeIdenticalElements(toElement(previousSibling.get()), toElement(mergedElement));
  • trunk/Source/WebCore/editing/CompositeEditCommand.cpp

    r160908 r160966  
    12791279    if (!listNode
    12801280        || (!listNode->hasTagName(ulTag) && !listNode->hasTagName(olTag))
    1281         || !listNode->rendererIsEditable()
     1281        || !listNode->hasEditableStyle()
    12821282        || listNode == emptyListItem->rootEditableElement())
    12831283        return false;
  • trunk/Source/WebCore/editing/DeleteButtonController.cpp

    r160596 r160966  
    6262static bool isDeletableElement(const Node* node)
    6363{
    64     if (!node || !node->isHTMLElement() || !node->inDocument() || !node->rendererIsEditable())
     64    if (!node || !node->isHTMLElement() || !node->inDocument() || !node->hasEditableStyle())
    6565        return false;
    6666
     
    153153    // The enclosingNodeOfType function only works on nodes that are editable
    154154    // (which is strange, given its name).
    155     if (!container->rendererIsEditable())
     155    if (!container->hasEditableStyle())
    156156        return 0;
    157157
  • trunk/Source/WebCore/editing/DeleteFromTextNodeCommand.cpp

    r154938 r160966  
    6868    ASSERT(m_node);
    6969
    70     if (!m_node->rendererIsEditable())
     70    if (!m_node->hasEditableStyle())
    7171        return;
    7272
  • trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp

    r158815 r160966  
    341341    ASSERT(node);
    342342    Node* next = node;
    343     while (next && !next->rendererIsEditable())
     343    while (next && !next->hasEditableStyle())
    344344        next = NodeTraversal::next(next, node);
    345345    return next ? firstPositionInOrBeforeNode(next) : Position();
     
    353353    if (m_startRoot != m_endRoot && !(node->isDescendantOf(m_startRoot.get()) && node->isDescendantOf(m_endRoot.get()))) {
    354354        // If a node is not in both the start and end editable roots, remove it only if its inside an editable region.
    355         if (!node->parentNode()->rendererIsEditable()) {
     355        if (!node->parentNode()->hasEditableStyle()) {
    356356            // Don't remove non-editable atomic nodes.
    357357            if (!node->firstChild())
  • trunk/Source/WebCore/editing/EditingStyle.cpp

    r159856 r160966  
    689689    bool nodeIsStart = true;
    690690    for (Node* node = selection.start().deprecatedNode(); node; node = NodeTraversal::next(node)) {
    691         if (node->renderer() && node->rendererIsEditable()) {
     691        if (node->renderer() && node->hasEditableStyle()) {
    692692            ComputedStyleExtractor computedStyle(node);
    693693            TriState nodeState = triStateOfStyle(&computedStyle, node->isTextNode() ? EditingStyle::DoNotIgnoreTextOnlyProperties : EditingStyle::IgnoreTextOnlyProperties);
  • trunk/Source/WebCore/editing/Editor.cpp

    r160045 r160966  
    313313        return false;
    314314   
    315     if (!startContainer->rendererIsEditable() || !endContainer->rendererIsEditable())
     315    if (!startContainer->hasEditableStyle() || !endContainer->hasEditableStyle())
    316316        return false;
    317317
     
    20752075    // If we're not in an editable node, bail.
    20762076    Node* editableNode = searchRange->startContainer();
    2077     if (!editableNode || !editableNode->rendererIsEditable())
     2077    if (!editableNode || !editableNode->hasEditableStyle())
    20782078        return;
    20792079
     
    21442144    // If we're not in an editable node, bail.
    21452145    Node* editableNode = spellingRange->startContainer();
    2146     if (!editableNode || !editableNode->rendererIsEditable())
     2146    if (!editableNode || !editableNode->hasEditableStyle())
    21472147        return;
    21482148
  • trunk/Source/WebCore/editing/EditorCommand.cpp

    r159856 r160966  
    256256        return 0;
    257257    const RenderStyle& style = renderer->style();
    258     if (!(style.overflowY() == OSCROLL || style.overflowY() == OAUTO || focusedElement->rendererIsEditable()))
     258    if (!(style.overflowY() == OSCROLL || style.overflowY() == OAUTO || focusedElement->hasEditableStyle()))
    259259        return 0;
    260260    int height = std::min<int>(toRenderBox(renderer)->clientHeight(), frame.view()->visibleHeight());
  • trunk/Source/WebCore/editing/FormatBlockCommand.cpp

    r157018 r160966  
    150150    Node* lastBlock = startNode;
    151151    for (Node* n = startNode; n; n = n->parentNode()) {
    152         if (!n->rendererIsEditable())
     152        if (!n->hasEditableStyle())
    153153            return lastBlock;
    154         if (isTableCell(n) || n->hasTagName(bodyTag) || !n->parentNode() || !n->parentNode()->rendererIsEditable() || isElementForFormatBlock(n))
     154        if (isTableCell(n) || n->hasTagName(bodyTag) || !n->parentNode() || !n->parentNode()->hasEditableStyle() || isElementForFormatBlock(n))
    155155            return n;
    156156        if (isBlock(n))
    157157            lastBlock = n;
    158158        if (isListElement(n))
    159             return n->parentNode()->rendererIsEditable() ? n->parentNode() : n;
     159            return n->parentNode()->hasEditableStyle() ? n->parentNode() : n;
    160160    }
    161161    return lastBlock;
  • trunk/Source/WebCore/editing/FrameSelection.cpp

    r160599 r160966  
    15901590       
    15911591    // This method's purpose is it to make it easier to select iframes (in order to delete them).  Don't do anything if the iframe isn't deletable.
    1592     if (!ownerElementParent->rendererIsEditable())
     1592    if (!ownerElementParent->hasEditableStyle())
    15931593        return;
    15941594
     
    20252025    Document* document = m_frame->document();
    20262026    bool caretBrowsing = m_frame->settings().caretBrowsingEnabled();
    2027     if (!isNone() || !(document->rendererIsEditable() || caretBrowsing))
     2027    if (!isNone() || !(document->hasEditableStyle() || caretBrowsing))
    20282028        return;
    20292029
  • trunk/Source/WebCore/editing/FrameSelection.h

    r160067 r160966  
    134134    Element* rootEditableElementOrDocumentElement() const;
    135135
    136     bool rendererIsEditable() const { return m_selection.rendererIsEditable(); }
     136    bool hasEditableStyle() const { return m_selection.hasEditableStyle(); }
    137137    bool isContentEditable() const { return m_selection.isContentEditable(); }
    138138    bool isContentRichlyEditable() const { return m_selection.isContentRichlyEditable(); }
  • trunk/Source/WebCore/editing/IndentOutdentCommand.cpp

    r158719 r160966  
    126126
    127127    Node* enclosingNode = enclosingNodeOfType(visibleStartOfParagraph.deepEquivalent(), &isListOrIndentBlockquote);
    128     if (!enclosingNode || !enclosingNode->parentNode()->rendererIsEditable()) // We can't outdent if there is no place to go!
     128    if (!enclosingNode || !enclosingNode->parentNode()->hasEditableStyle()) // We can't outdent if there is no place to go!
    129129        return;
    130130
     
    157157                if (splitPointParent->hasTagName(blockquoteTag)
    158158                    && !splitPoint->hasTagName(blockquoteTag)
    159                     && splitPointParent->parentNode()->rendererIsEditable()) // We can't outdent if there is no place to go!
     159                    && splitPointParent->parentNode()->hasEditableStyle()) // We can't outdent if there is no place to go!
    160160                    splitElement(toElement(splitPointParent), splitPoint);
    161161            }
  • trunk/Source/WebCore/editing/InsertIntoTextNodeCommand.cpp

    r157373 r160966  
    5454        document().updateLayoutIgnorePendingStylesheets();
    5555
    56     if (!m_node->rendererIsEditable())
     56    if (!m_node->hasEditableStyle())
    5757        return;
    5858
     
    7171void InsertIntoTextNodeCommand::doUnapply()
    7272{
    73     if (!m_node->rendererIsEditable())
     73    if (!m_node->hasEditableStyle())
    7474        return;
    7575       
  • trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp

    r160908 r160966  
    4646    ASSERT(m_refChild->parentNode());
    4747
    48     ASSERT(m_refChild->parentNode()->rendererIsEditable() || !m_refChild->parentNode()->attached());
     48    ASSERT(m_refChild->parentNode()->hasEditableStyle() || !m_refChild->parentNode()->attached());
    4949}
    5050
  • trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp

    r157653 r160966  
    4343void MergeIdenticalElementsCommand::doApply()
    4444{
    45     if (m_element1->nextSibling() != m_element2 || !m_element1->rendererIsEditable() || !m_element2->rendererIsEditable())
     45    if (m_element1->nextSibling() != m_element2 || !m_element1->hasEditableStyle() || !m_element2->hasEditableStyle())
    4646        return;
    4747
     
    6767
    6868    ContainerNode* parent = m_element2->parentNode();
    69     if (!parent || !parent->rendererIsEditable())
     69    if (!parent || !parent->hasEditableStyle())
    7070        return;
    7171
  • trunk/Source/WebCore/editing/RemoveNodeCommand.cpp

    r154938 r160966  
    6060    RefPtr<ContainerNode> parent = m_parent.release();
    6161    RefPtr<Node> refChild = m_refChild.release();
    62     if (!parent || !parent->rendererIsEditable())
     62    if (!parent || !parent->hasEditableStyle())
    6363        return;
    6464
  • trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp

    r159856 r160966  
    161161        // FIXME: Remove these checks once textareas and textfields actually register an event handler.
    162162        !(shadowAncestorNode && shadowAncestorNode->renderer() && shadowAncestorNode->renderer()->isTextControl()) &&
    163         editableRoot->rendererIsRichlyEditable()) {
     163        editableRoot->hasRichlyEditableStyle()) {
    164164        removeInterchangeNodes(m_fragment.get());
    165165        return;
     
    182182    RefPtr<BeforeTextInsertedEvent> evt = BeforeTextInsertedEvent::create(text);
    183183    editableRoot->dispatchEvent(evt, ASSERT_NO_EXCEPTION);
    184     if (text != evt->text() || !editableRoot->rendererIsRichlyEditable()) {
     184    if (text != evt->text() || !editableRoot->hasRichlyEditableStyle()) {
    185185        restoreAndRemoveTestRenderingNodesToFragment(holder.get());
    186186
     
    534534        }
    535535
    536         if (element->parentNode()->rendererIsRichlyEditable())
     536        if (element->parentNode()->hasRichlyEditableStyle())
    537537            removeNodeAttribute(element, contenteditableAttr);
    538538
  • trunk/Source/WebCore/editing/SplitElementCommand.cpp

    r157653 r160966  
    5555   
    5656    ContainerNode* parent = m_element2->parentNode();
    57     if (!parent || !parent->rendererIsEditable())
     57    if (!parent || !parent->hasEditableStyle())
    5858        return;
    5959    parent->insertBefore(m_element1.get(), m_element2.get(), ec);
     
    7878void SplitElementCommand::doUnapply()
    7979{
    80     if (!m_element1 || !m_element1->rendererIsEditable() || !m_element2->rendererIsEditable())
     80    if (!m_element1 || !m_element1->hasEditableStyle() || !m_element2->hasEditableStyle())
    8181        return;
    8282
  • trunk/Source/WebCore/editing/SplitTextNodeCommand.cpp

    r155808 r160966  
    5252{
    5353    ContainerNode* parent = m_text2->parentNode();
    54     if (!parent || !parent->rendererIsEditable())
     54    if (!parent || !parent->hasEditableStyle())
    5555        return;
    5656
     
    6868void SplitTextNodeCommand::doUnapply()
    6969{
    70     if (!m_text1 || !m_text1->rendererIsEditable())
     70    if (!m_text1 || !m_text1->hasEditableStyle())
    7171        return;
    7272
     
    8787
    8888    ContainerNode* parent = m_text2->parentNode();
    89     if (!parent || !parent->rendererIsEditable())
     89    if (!parent || !parent->hasEditableStyle())
    9090        return;
    9191
  • trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp

    r156144 r160966  
    5151
    5252    Element* parent = m_text->parentElement();
    53     if (!parent || !parent->parentElement() || !parent->parentElement()->rendererIsEditable())
     53    if (!parent || !parent->parentElement() || !parent->parentElement()->hasEditableStyle())
    5454        return;
    5555
  • trunk/Source/WebCore/editing/VisiblePosition.cpp

    r157018 r160966  
    537537    // The new position must be in the same editable element. Enforce that first.
    538538    // Unless the descent is from a non-editable html element to an editable body.
    539     if (node && node->hasTagName(htmlTag) && !node->rendererIsEditable() && node->document().body() && node->document().body()->rendererIsEditable())
     539    if (node && node->hasTagName(htmlTag) && !node->hasEditableStyle() && node->document().body() && node->document().body()->hasEditableStyle())
    540540        return next.isNotNull() ? next : prev;
    541541
  • trunk/Source/WebCore/editing/VisibleSelection.cpp

    r158350 r160966  
    627627}
    628628
    629 bool VisibleSelection::rendererIsEditable() const
     629bool VisibleSelection::hasEditableStyle() const
    630630{
    631631    return isEditablePosition(start(), ContentIsEditable, DoNotUpdateStyle);
  • trunk/Source/WebCore/editing/VisibleSelection.h

    r121526 r160966  
    100100    Element* rootEditableElement() const;
    101101    bool isContentEditable() const;
    102     bool rendererIsEditable() const;
     102    bool hasEditableStyle() const;
    103103    bool isContentRichlyEditable() const;
    104104    // Returns a shadow tree node for legacy shadow trees, a child of the
  • trunk/Source/WebCore/editing/VisibleUnits.cpp

    r160526 r160966  
    4949static Node* previousLeafWithSameEditability(Node* node, EditableType editableType)
    5050{
    51     bool editable = node->rendererIsEditable(editableType);
     51    bool editable = node->hasEditableStyle(editableType);
    5252    node = previousLeafNode(node);
    5353    while (node) {
    54         if (editable == node->rendererIsEditable(editableType))
     54        if (editable == node->hasEditableStyle(editableType))
    5555            return node;
    5656        node = previousLeafNode(node);
     
    6464        return 0;
    6565   
    66     bool editable = node->rendererIsEditable(editableType);
     66    bool editable = node->hasEditableStyle(editableType);
    6767    node = nextLeafNode(node);
    6868    while (node) {
    69         if (editable == node->rendererIsEditable(editableType))
     69        if (editable == node->hasEditableStyle(editableType))
    7070            return node;
    7171        node = nextLeafNode(node);
     
    965965    // Move to the start of the content in this block, which effectively moves us
    966966    // to the start of the line we're on.
    967     Element* rootElement = node->rendererIsEditable(editableType) ? node->rootEditableElement(editableType) : node->document().documentElement();
     967    Element* rootElement = node->hasEditableStyle(editableType) ? node->rootEditableElement(editableType) : node->document().documentElement();
    968968    if (!rootElement)
    969969        return VisiblePosition();
     
    10231023    // Move to the end of the content in this block, which effectively moves us
    10241024    // to the end of the line we're on.
    1025     Element* rootElement = node->rendererIsEditable(editableType) ? node->rootEditableElement(editableType) : node->document().documentElement();
     1025    Element* rootElement = node->hasEditableStyle(editableType) ? node->rootEditableElement(editableType) : node->document().documentElement();
    10261026    if (!rootElement)
    10271027        return VisiblePosition();
     
    11041104    while (n) {
    11051105#if ENABLE(USERSELECT_ALL)
    1106         if (boundaryCrossingRule == CannotCrossEditingBoundary && !Position::nodeIsUserSelectAll(n) && n->rendererIsEditable() != startNode->rendererIsEditable())
     1106        if (boundaryCrossingRule == CannotCrossEditingBoundary && !Position::nodeIsUserSelectAll(n) && n->hasEditableStyle() != startNode->hasEditableStyle())
    11071107#else
    1108         if (boundaryCrossingRule == CannotCrossEditingBoundary && n->rendererIsEditable() != startNode->rendererIsEditable())
     1108        if (boundaryCrossingRule == CannotCrossEditingBoundary && n->hasEditableStyle() != startNode->hasEditableStyle())
    11091109#endif
    11101110            break;
    11111111        if (boundaryCrossingRule == CanSkipOverEditingBoundary) {
    1112             while (n && n->rendererIsEditable() != startNode->rendererIsEditable())
     1112            while (n && n->hasEditableStyle() != startNode->hasEditableStyle())
    11131113                n = NodeTraversal::previousPostOrder(n, startBlock);
    11141114            if (!n || !n->isDescendantOf(highestRoot))
     
    11841184    while (n) {
    11851185#if ENABLE(USERSELECT_ALL)
    1186         if (boundaryCrossingRule == CannotCrossEditingBoundary && !Position::nodeIsUserSelectAll(n) && n->rendererIsEditable() != startNode->rendererIsEditable())
     1186        if (boundaryCrossingRule == CannotCrossEditingBoundary && !Position::nodeIsUserSelectAll(n) && n->hasEditableStyle() != startNode->hasEditableStyle())
    11871187#else
    1188         if (boundaryCrossingRule == CannotCrossEditingBoundary && n->rendererIsEditable() != startNode->rendererIsEditable())
     1188        if (boundaryCrossingRule == CannotCrossEditingBoundary && n->hasEditableStyle() != startNode->hasEditableStyle())
    11891189#endif
    11901190            break;
    11911191        if (boundaryCrossingRule == CanSkipOverEditingBoundary) {
    1192             while (n && n->rendererIsEditable() != startNode->rendererIsEditable())
     1192            while (n && n->hasEditableStyle() != startNode->hasEditableStyle())
    11931193                n = NodeTraversal::next(n, stayInsideBlock);
    11941194            if (!n || !n->isDescendantOf(highestRoot))
  • trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp

    r158350 r160966  
    6363    ASSERT(m_element);
    6464
    65     if (!m_dummySpan || !m_element->rendererIsEditable())
     65    if (!m_dummySpan || !m_element->hasEditableStyle())
    6666        return;
    6767
     
    8181    ASSERT(m_element);
    8282   
    83     if (!m_dummySpan || !m_element->rendererIsEditable())
     83    if (!m_dummySpan || !m_element->hasEditableStyle())
    8484        return;
    8585
  • trunk/Source/WebCore/editing/htmlediting.cpp

    r158350 r160966  
    117117        if (!node)
    118118            break;
    119         if (node->rendererIsEditable(editableType))
     119        if (node->hasEditableStyle(editableType))
    120120            highestEditableRoot = node;
    121121    }
     
    130130   
    131131    while (node) {
    132         if (node->rendererIsEditable())
     132        if (node->hasEditableStyle())
    133133            return node->rootEditableElement();
    134134        if (node->hasTagName(bodyTag))
     
    153153        node = node->parentNode();
    154154   
    155     return node->rendererIsEditable(editableType);
     155    return node->hasEditableStyle(editableType);
    156156}
    157157
     
    172172        node = node->parentNode();
    173173   
    174     return node->rendererIsRichlyEditable(editableType);
     174    return node->hasRichlyEditableStyle(editableType);
    175175}
    176176
     
    250250{
    251251    // position falls before highestRoot.
    252     if (comparePositions(position, firstPositionInNode(highestRoot)) == -1 && highestRoot->rendererIsEditable())
     252    if (comparePositions(position, firstPositionInNode(highestRoot)) == -1 && highestRoot->hasEditableStyle())
    253253        return firstPositionInNode(highestRoot);
    254254
     
    549549    Node* root = highestEditableRoot(p);
    550550    for (Node* n = p.deprecatedNode(); n; n = n->parentNode()) {
    551         if (root && !n->rendererIsEditable())
     551        if (root && !n->hasEditableStyle())
    552552            continue;
    553553        if (n->hasTagName(tagName))
     
    571571        // Don't return a non-editable node if the input position was editable, since
    572572        // the callers from editing will no doubt want to perform editing inside the returned node.
    573         if (root && !n->rendererIsEditable())
     573        if (root && !n->hasEditableStyle())
    574574            continue;
    575575        if (nodeIsOfType(n))
     
    587587    Node* root = rule == CannotCrossEditingBoundary ? highestEditableRoot(p) : 0;
    588588    for (Node* n = p.containerNode(); n && n != stayWithin; n = n->parentNode()) {
    589         if (root && !n->rendererIsEditable())
     589        if (root && !n->hasEditableStyle())
    590590            continue;
    591591        if (nodeIsOfType(n))
     
    744744
    745745    return firstList->hasTagName(secondList->tagQName()) // make sure the list types match (ol vs. ul)
    746     && firstList->rendererIsEditable() && secondList->rendererIsEditable() // both lists are editable
     746    && firstList->hasEditableStyle() && secondList->hasEditableStyle() // both lists are editable
    747747    && firstList->rootEditableElement() == secondList->rootEditableElement() // don't cross editing boundaries
    748748    && isVisiblyAdjacent(positionInParentAfterNode(firstList), positionInParentBeforeNode(secondList));
  • trunk/Source/WebCore/html/HTMLAnchorElement.cpp

    r159188 r160966  
    8787bool HTMLAnchorElement::supportsFocus() const
    8888{
    89     if (rendererIsEditable())
     89    if (hasEditableStyle())
    9090        return HTMLElement::supportsFocus();
    9191    // If not a link we should still be able to focus the element if it has tabIndex.
     
    192192        }
    193193
    194         if (rendererIsEditable()) {
     194        if (hasEditableStyle()) {
    195195            // This keeps track of the editable block that the selection was in (if it was in one) just before the link was clicked
    196196            // for the LiveWhenNotFocused editable link behavior
     
    212212void HTMLAnchorElement::setActive(bool down, bool pause)
    213213{
    214     if (rendererIsEditable()) {
     214    if (hasEditableStyle()) {
    215215        EditableLinkBehavior editableLinkBehavior = EditableLinkDefaultBehavior;
    216216        if (Settings* settings = document().settings())
     
    280280    if (!isLink())
    281281        return HTMLElement::canStartSelection();
    282     return rendererIsEditable();
     282    return hasEditableStyle();
    283283}
    284284
     
    562562bool HTMLAnchorElement::treatLinkAsLiveForEventType(EventType eventType) const
    563563{
    564     if (!rendererIsEditable())
     564    if (!hasEditableStyle())
    565565        return true;
    566566
  • trunk/Source/WebCore/html/HTMLBodyElement.cpp

    r160733 r160966  
    186186bool HTMLBodyElement::supportsFocus() const
    187187{
    188     return rendererIsEditable() || HTMLElement::supportsFocus();
     188    return hasEditableStyle() || HTMLElement::supportsFocus();
    189189}
    190190
  • trunk/Source/WebCore/html/HTMLElement.cpp

    r160914 r160966  
    663663bool HTMLElement::supportsFocus() const
    664664{
    665     if (!document().view()->isInLayout() && !document().view()->isPainting())
    666         document().updateStyleIfNeeded();
    667     return Element::supportsFocus() || (rendererIsEditable() && parentNode() && !parentNode()->rendererIsEditable());
     665    return Element::supportsFocus() || (hasEditableStyle() && parentNode() && !parentNode()->hasEditableStyle());
    668666}
    669667
  • trunk/Source/WebCore/page/DragController.cpp

    r160152 r160966  
    406406    }
    407407
    408     if (doc && (m_didInitiateDrag || (doc->isPluginDocument() && !pluginDocumentAcceptsDrags) || doc->rendererIsEditable()))
     408    if (doc && (m_didInitiateDrag || (doc->isPluginDocument() && !pluginDocumentAcceptsDrags) || doc->hasEditableStyle()))
    409409        return DragOperationNone;
    410410    return dragOperation(dragData);
     
    554554
    555555    if (result.innerNonSharedNode()->isPluginElement()) {
    556         if (!toHTMLPlugInElement(result.innerNonSharedNode())->canProcessDrag() && !result.innerNonSharedNode()->rendererIsEditable())
     556        if (!toHTMLPlugInElement(result.innerNonSharedNode())->canProcessDrag() && !result.innerNonSharedNode()->hasEditableStyle())
    557557            return false;
    558     } else if (!result.innerNonSharedNode()->rendererIsEditable())
     558    } else if (!result.innerNonSharedNode()->hasEditableStyle())
    559559        return false;
    560560
  • trunk/Source/WebCore/page/EventHandler.cpp

    r159921 r160966  
    938938        Node* node = event.targetNode();
    939939        bool caretBrowsing = m_frame.settings().caretBrowsingEnabled();
    940         if (node && node->renderer() && (caretBrowsing || node->rendererIsEditable())) {
     940        if (node && node->renderer() && (caretBrowsing || node->hasEditableStyle())) {
    941941            VisiblePosition pos = node->renderer()->positionForPoint(event.localPoint());
    942942            newSelection = VisibleSelection(pos);
     
    11951195        return false;
    11961196
    1197     bool editable = node->rendererIsEditable();
     1197    bool editable = node->hasEditableStyle();
    11981198    bool editableLinkEnabled = false;
    11991199
     
    13441344    switch (style ? style->cursor() : CURSOR_AUTO) {
    13451345    case CURSOR_AUTO: {
    1346         bool editable = node->rendererIsEditable();
     1346        bool editable = node->hasEditableStyle();
    13471347
    13481348        if (useHandCursor(node, result.isOverLink(), shiftKey))
  • trunk/Source/WebCore/page/FocusController.cpp

    r159027 r160966  
    537537{
    538538    ASSERT(node);
    539     ASSERT(node->rendererIsEditable());
     539    ASSERT(node->hasEditableStyle());
    540540
    541541    Node* root = node->rootEditableElement();
  • trunk/Source/WebCore/rendering/HitTestResult.cpp

    r158163 r160966  
    579579        return toHTMLInputElement(m_innerNonSharedNode.get())->isTextField();
    580580
    581     return m_innerNonSharedNode->rendererIsEditable();
     581    return m_innerNonSharedNode->hasEditableStyle();
    582582}
    583583
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r160847 r160966  
    24842484    if (type == CursorCaret) {
    24852485        caretPainter = frame().selection().caretRenderer();
    2486         isContentEditable = frame().selection().rendererIsEditable();
     2486        isContentEditable = frame().selection().hasEditableStyle();
    24872487    } else {
    24882488        caretPainter = frame().page()->dragCaretController().caretRenderer();
     
    35393539    ASSERT(child.nonPseudoNode());
    35403540    return !ancestor || !ancestor->parent() || (ancestor->hasLayer() && ancestor->parent()->isRenderView())
    3541         || ancestor->nonPseudoElement()->rendererIsEditable() == child.nonPseudoNode()->rendererIsEditable();
     3541        || ancestor->nonPseudoElement()->hasEditableStyle() == child.nonPseudoNode()->hasEditableStyle();
    35423542}
    35433543
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r160599 r160966  
    822822        return true;
    823823
    824     return element() && element()->rendererIsEditable();
     824    return element() && element()->hasEditableStyle();
    825825}
    826826
  • trunk/Source/WebCore/rendering/RenderButton.cpp

    r160599 r160966  
    5757bool RenderButton::canBeSelectionLeaf() const
    5858{
    59     return formControlElement().rendererIsEditable();
     59    return formControlElement().hasEditableStyle();
    6060}
    6161
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r160599 r160966  
    23552355    // If this is a non-anonymous renderer in an editable area, then it's simple.
    23562356    if (Node* node = nonPseudoNode()) {
    2357         if (!node->rendererIsEditable()) {
     2357        if (!node->hasEditableStyle()) {
    23582358            // If it can be found, we prefer a visually equivalent position that is editable.
    23592359            Position position = createLegacyEditingPosition(node, offset);
    23602360            Position candidate = position.downstream(CanCrossEditingBoundary);
    2361             if (candidate.deprecatedNode()->rendererIsEditable())
     2361            if (candidate.deprecatedNode()->hasEditableStyle())
    23622362                return VisiblePosition(candidate, affinity);
    23632363            candidate = position.upstream(CanCrossEditingBoundary);
    2364             if (candidate.deprecatedNode()->rendererIsEditable())
     2364            if (candidate.deprecatedNode()->hasEditableStyle())
    23652365                return VisiblePosition(candidate, affinity);
    23662366        }
  • trunk/Source/WebCore/rendering/RenderTextFragment.cpp

    r160598 r160966  
    6161bool RenderTextFragment::canBeSelectionLeaf() const
    6262{
    63     return textNode() && textNode()->rendererIsEditable();
     63    return textNode() && textNode()->hasEditableStyle();
    6464}
    6565
  • trunk/Source/WebCore/rendering/RootInlineBox.cpp

    r160957 r160966  
    694694static bool isEditableLeaf(InlineBox* leaf)
    695695{
    696     return leaf && leaf->renderer().node() && leaf->renderer().node()->rendererIsEditable();
     696    return leaf && leaf->renderer().node() && leaf->renderer().node()->hasEditableStyle();
    697697}
    698698
  • trunk/Source/WebCore/svg/SVGAElement.cpp

    r160668 r160966  
    190190bool SVGAElement::supportsFocus() const
    191191{
    192     if (rendererIsEditable())
     192    if (hasEditableStyle())
    193193        return SVGGraphicsElement::supportsFocus();
    194194    return true;
Note: See TracChangeset for help on using the changeset viewer.