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

Unified Diff: Source/core/dom/Document.cpp

Issue 15932012: HitTestResult::innerElement should check its parent node for rendering and styling. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: WIP2 Created 7 years, 7 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: Source/core/dom/Document.cpp
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
index aa963040e045666856a984ffbd983b151c2749d9..cfe2c0e8690ddca91fd8a623338707eb25a5fefd 100644
--- a/Source/core/dom/Document.cpp
+++ b/Source/core/dom/Document.cpp
@@ -89,6 +89,7 @@
#include "core/dom/NodeFilter.h"
#include "core/dom/NodeIterator.h"
#include "core/dom/NodeRareData.h"
+#include "core/dom/NodeRenderingTraversal.h"
#include "core/dom/NodeTraversal.h"
#include "core/dom/NodeWithIndex.h"
#include "core/dom/PageTransitionEvent.h"
@@ -3121,24 +3122,33 @@ void Document::removeFocusedNodeOfSubtree(Node* node, bool amongChildrenOnly)
void Document::hoveredNodeDetached(Node* node)
{
- if (!m_hoverNode || (node != m_hoverNode && (!m_hoverNode->isTextNode() || node != m_hoverNode->parentNode())))
+ if (!m_hoverNode)
return;
- m_hoverNode = node->parentNode();
+ NodeRenderingTraversal::ParentDetails details;
+ if (node != m_hoverNode && (!m_hoverNode->isTextNode() || node != NodeRenderingTraversal::parent(m_hoverNode.get(), &details)))
+ return;
+
+ m_hoverNode = NodeRenderingTraversal::parent(node, &details);
while (m_hoverNode && !m_hoverNode->renderer())
- m_hoverNode = m_hoverNode->parentNode();
+ m_hoverNode = m_hoverNode->parentOrShadowHostNode();
hayato 2013/06/03 09:03:47 Shouldn't we use NodeRenderingTraversal::parent()
tasak 2013/06/03 11:18:25 Done.
if (frame())
frame()->eventHandler()->scheduleHoverStateUpdate();
}
void Document::activeChainNodeDetached(Node* node)
{
- if (!m_activeElement || (node != m_activeElement && (!m_activeElement->isTextNode() || node != m_activeElement->parentNode())))
+ if (!m_activeElement)
+ return;
+
+ NodeRenderingTraversal::ParentDetails details;
+ if (node != m_activeElement && (!m_activeElement->isTextNode() || node != NodeRenderingTraversal::parent(m_activeElement.get(), &details)))
return;
- m_activeElement = node->parentElement();
+ Node* parent = NodeRenderingTraversal::parent(node, &details);
+ m_activeElement = parent && parent->isElementNode() ? toElement(parent) : 0;
while (m_activeElement && !m_activeElement->renderer())
- m_activeElement = m_activeElement->parentElement();
+ m_activeElement = m_activeElement->parentOrShadowHostElement();
hayato 2013/06/03 09:03:47 Ditto. Also looks like NodeRenderingTraversal sho
tasak 2013/06/03 11:18:25 Done.
}
const Vector<AnnotatedRegionValue>& Document::annotatedRegions() const

Powered by Google App Engine
This is Rietveld 408576698