Title: [139199] trunk/Source/WebCore
Revision
139199
Author
morr...@google.com
Date
2013-01-09 09:41:10 -0800 (Wed, 09 Jan 2013)

Log Message

Document::setActiveNode() should be Document::setActiveElement()
https://bugs.webkit.org/show_bug.cgi?id=106437

Reviewed by Ojan Vafai.

No new tests. No functoinal change.

* dom/Document.cpp:
(WebCore::Document::setActiveElement):
(WebCore::Document::updateHoverActiveState):
* dom/Document.h:
(Document):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerElement):
(WebCore):
* rendering/HitTestResult.h:
(HitTestResult):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139198 => 139199)


--- trunk/Source/WebCore/ChangeLog	2013-01-09 17:34:54 UTC (rev 139198)
+++ trunk/Source/WebCore/ChangeLog	2013-01-09 17:41:10 UTC (rev 139199)
@@ -1,3 +1,23 @@
+2013-01-09  Hajime Morrita  <morr...@google.com>
+
+        Document::setActiveNode() should be Document::setActiveElement()
+        https://bugs.webkit.org/show_bug.cgi?id=106437
+
+        Reviewed by Ojan Vafai.
+
+        No new tests. No functoinal change.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setActiveElement):
+        (WebCore::Document::updateHoverActiveState):
+        * dom/Document.h:
+        (Document):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::innerElement):
+        (WebCore):
+        * rendering/HitTestResult.h:
+        (HitTestResult):
+
 2013-01-09  Shinya Kawanaka  <shin...@chromium.org>
 
         [Shadow DOM]: ShadowRoot has wrong nodeName attribute

Modified: trunk/Source/WebCore/dom/Document.cpp (139198 => 139199)


--- trunk/Source/WebCore/dom/Document.cpp	2013-01-09 17:34:54 UTC (rev 139198)
+++ trunk/Source/WebCore/dom/Document.cpp	2013-01-09 17:41:10 UTC (rev 139199)
@@ -3235,14 +3235,14 @@
     m_hoverNode = newHoverNode;
 }
 
-void Document::setActiveNode(PassRefPtr<Node> newActiveNode)
+void Document::setActiveElement(PassRefPtr<Element> newActiveElement)
 {
-    if (!newActiveNode) {
+    if (!newActiveElement) {
         m_activeElement.clear();
         return;
     }
 
-    m_activeElement = newActiveNode->isElementNode() ? toElement(newActiveNode.get()) : newActiveNode->parentElement();
+    m_activeElement = newActiveElement;
 }
 
 void Document::focusedNodeRemoved()
@@ -5809,35 +5809,36 @@
     if (request.readOnly())
         return;
 
-    Node* innerNodeInDocument = result.innerNode();
-    ASSERT(!innerNodeInDocument || innerNodeInDocument->document() == this);
+    Element* innerElementInDocument = result.innerElement();
+    ASSERT(!innerElementInDocument || innerElementInDocument->document() == this);
 
-    Node* oldActiveNode = activeElement();
-    if (oldActiveNode && !request.active()) {
+    Element* oldActiveElement = activeElement();
+    if (oldActiveElement && !request.active()) {
         // We are clearing the :active chain because the mouse has been released.
-        for (RenderObject* curr = oldActiveNode->renderer(); curr; curr = curr->parent()) {
-            if (curr->node() && !curr->isText()) {
+        for (RenderObject* curr = oldActiveElement->renderer(); curr; curr = curr->parent()) {
+            if (curr->node()) {
+                ASSERT(!curr->node()->isTextNode());
                 curr->node()->setActive(false);
                 m_userActionElements.setInActiveChain(curr->node(), false);
             }
         }
-        setActiveNode(0);
+        setActiveElement(0);
     } else {
-        Node* newActiveNode = innerNodeInDocument;
-        if (!oldActiveNode && newActiveNode && request.active() && !request.touchMove()) {
+        Element* newActiveElement = innerElementInDocument;
+        if (!oldActiveElement && newActiveElement && request.active() && !request.touchMove()) {
             // We are setting the :active chain and freezing it. If future moves happen, they
             // will need to reference this chain.
-            for (RenderObject* curr = newActiveNode->renderer(); curr; curr = curr->parent()) {
+            for (RenderObject* curr = newActiveElement->renderer(); curr; curr = curr->parent()) {
                 if (curr->node() && !curr->isText())
                     m_userActionElements.setInActiveChain(curr->node(), true);
             }
 
-            setActiveNode(newActiveNode);
+            setActiveElement(newActiveElement);
         }
     }
     // If the mouse has just been pressed, set :active on the chain. Those (and only those)
     // nodes should remain :active until the mouse is released.
-    bool allowActiveChanges = !oldActiveNode && activeElement();
+    bool allowActiveChanges = !oldActiveElement && activeElement();
 
     // If the mouse is down and if this is a mouse move event, we want to restrict changes in
     // :hover/:active to only apply to elements that are in the :active chain that we froze
@@ -5860,7 +5861,7 @@
 
     // Check to see if the hovered node has changed.
     // If it hasn't, we do not need to do anything.
-    Node* newHoverNode = innerNodeInDocument;
+    Node* newHoverNode = innerElementInDocument;
     while (newHoverNode && !newHoverNode->renderer())
         newHoverNode = newHoverNode->parentOrHostNode();
 

Modified: trunk/Source/WebCore/dom/Document.h (139198 => 139199)


--- trunk/Source/WebCore/dom/Document.h	2013-01-09 17:34:54 UTC (rev 139198)
+++ trunk/Source/WebCore/dom/Document.h	2013-01-09 17:41:10 UTC (rev 139199)
@@ -699,7 +699,7 @@
     void setHoverNode(PassRefPtr<Node>);
     Node* hoverNode() const { return m_hoverNode.get(); }
 
-    void setActiveNode(PassRefPtr<Node>);
+    void setActiveElement(PassRefPtr<Element>);
     Element* activeElement() const { return m_activeElement.get(); }
 
     void focusedNodeRemoved();

Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (139198 => 139199)


--- trunk/Source/WebCore/rendering/HitTestResult.cpp	2013-01-09 17:34:54 UTC (rev 139198)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp	2013-01-09 17:41:10 UTC (rev 139199)
@@ -794,4 +794,14 @@
     return node;
 }
 
+Element* HitTestResult::innerElement() const
+{
+    for (Node* node = m_innerNode.get(); node; node = node->parentNode()) {
+        if (node->isElementNode())
+            return toElement(node);
+    }
+
+    return 0;
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/HitTestResult.h (139198 => 139199)


--- trunk/Source/WebCore/rendering/HitTestResult.h	2013-01-09 17:34:54 UTC (rev 139198)
+++ trunk/Source/WebCore/rendering/HitTestResult.h	2013-01-09 17:41:10 UTC (rev 139199)
@@ -115,6 +115,7 @@
     HitTestResult& operator=(const HitTestResult&);
 
     Node* innerNode() const { return m_innerNode.get(); }
+    Element* innerElement() const;
     Node* innerNonSharedNode() const { return m_innerNonSharedNode.get(); }
     Element* URLElement() const { return m_innerURLElement.get(); }
     Scrollbar* scrollbar() const { return m_scrollbar.get(); }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to