<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[173857] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/173857">173857</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2014-09-22 17:23:54 -0700 (Mon, 22 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move nodeFromPoint() back to Document where it belongs
https://bugs.webkit.org/show_bug.cgi?id=137012

Reviewed by Zalan Bujtas.
Source/WebCore:

nodeFromPoint() was moved into TreeScope for ShadowDOM work, but now we can move
it back to its logical place.

Make versions of elementFromPoint and caretRangeFromPoint that take LayoutPoints,
and change the current scale/offset code to be in layout units (which results
in a small behavior change).

elementFromPoint(int, int) and caretRangeFromPoint(int, int) are still required
for bindings code.

* dom/Document.cpp:
(WebCore::Document::nodeFromPoint):
(WebCore::Document::elementFromPoint):
(WebCore::Document::caretRangeFromPoint):
* dom/Document.h:
(WebCore::Document::elementFromPoint): Move logic from TreeScope::elementFromPoint()
here.
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint): Deleted.
(WebCore::TreeScope::elementFromPoint): Deleted.
* dom/TreeScope.h:

LayoutTests:

All platforms use subpixel layout now, so remove the conditional behavior in this test.
Fix the test to account for scaling now being done in layout units.

* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
* platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentCaretRangeFromPointhittestrelativetoviewportexpectedtxt">trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentCaretRangeFromPointhittestrelativetoviewporthtml">trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastdomDocumentCaretRangeFromPointhittestrelativetoviewportexpectedtxt">trunk/LayoutTests/platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopecpp">trunk/Source/WebCore/dom/TreeScope.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopeh">trunk/Source/WebCore/dom/TreeScope.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/LayoutTests/ChangeLog        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-09-22  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Move nodeFromPoint() back to Document where it belongs
+        https://bugs.webkit.org/show_bug.cgi?id=137012
+
+        Reviewed by Zalan Bujtas.
+        
+        All platforms use subpixel layout now, so remove the conditional behavior in this test.
+        Fix the test to account for scaling now being done in layout units.
+
+        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
+        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
+        * platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
+
</ins><span class="cx"> 2014-09-22  Benjamin Poulain  &lt;bpoulain@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Split the test parsing-css-nth-child-of.html in 3
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentCaretRangeFromPointhittestrelativetoviewportexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -24,11 +24,11 @@
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><span class="cx"> PASS Range.startOffset check (got 1, expected 1)
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><del>-PASS Range.startOffset check (got 13, expected 13)
</del><ins>+PASS Range.startOffset check (got 6, expected 6)
</ins><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><span class="cx"> PASS Range.startOffset check (got 4, expected 4)
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><del>-PASS Range.startOffset check (got 16, expected 16)
</del><ins>+PASS Range.startOffset check (got 10, expected 10)
</ins><span class="cx">  
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentCaretRangeFromPointhittestrelativetoviewporthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -26,13 +26,10 @@
</span><span class="cx"> &lt;div id=&quot;subpixel-test&quot;&gt;&lt;/div&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</span><del>-    var r = document.getElementById('subpixel-test').getBoundingClientRect();
-    var hasSubpixelSupport = r.right - r.left == 4.5;
-    
</del><span class="cx">     if (window.testRunner)
</span><span class="cx">         testRunner.dumpAsText();
</span><span class="cx"> 
</span><del>-    description('This checks for proper behavior of caretRangeFromPoint before and after scrolling.');        
</del><ins>+    description('This checks for proper behavior of caretRangeFromPoint before and after scrolling.');
</ins><span class="cx"> 
</span><span class="cx">     var elementTop = document.getElementById('test-top'),
</span><span class="cx">         elementBottom = document.getElementById('test-bottom');
</span><span class="lines">@@ -71,10 +68,10 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (zoomOrNot == &quot;zoom&quot;) {
</span><del>-            test(hasSubpixelSupport ? 0 : 1, 0, 0);
-            test(hasSubpixelSupport ? 12 : 13, 0, 25);
</del><ins>+            test(0, 0, 0);
+            test(6, 0, 25);
</ins><span class="cx">             test(4, 50, 0);
</span><del>-            test(16, 50, 25);
</del><ins>+            test(10, 50, 25);
</ins><span class="cx">         } else {
</span><span class="cx">             test(0, 0, 0);
</span><span class="cx">             test(12, 0, 25);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastdomDocumentCaretRangeFromPointhittestrelativetoviewportexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/LayoutTests/platform/mac/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -24,11 +24,11 @@
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><span class="cx"> PASS Range.startOffset check (got 0, expected 0)
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><del>-PASS Range.startOffset check (got 12, expected 12)
</del><ins>+PASS Range.startOffset check (got 6, expected 6)
</ins><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><span class="cx"> PASS Range.startOffset check (got 4, expected 4)
</span><span class="cx"> PASS Range.startContainer check (got [object Text], expected [object Text])
</span><del>-PASS Range.startOffset check (got 16, expected 16)
</del><ins>+PASS Range.startOffset check (got 10, expected 10)
</ins><span class="cx">  
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/ChangeLog        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2014-09-22  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Move nodeFromPoint() back to Document where it belongs
+        https://bugs.webkit.org/show_bug.cgi?id=137012
+
+        Reviewed by Zalan Bujtas.
+
+        nodeFromPoint() was moved into TreeScope for ShadowDOM work, but now we can move
+        it back to its logical place.
+        
+        Make versions of elementFromPoint and caretRangeFromPoint that take LayoutPoints,
+        and change the current scale/offset code to be in layout units (which results
+        in a small behavior change).
+        
+        elementFromPoint(int, int) and caretRangeFromPoint(int, int) are still required
+        for bindings code.
+
+        * dom/Document.cpp:
+        (WebCore::Document::nodeFromPoint):
+        (WebCore::Document::elementFromPoint):
+        (WebCore::Document::caretRangeFromPoint):
+        * dom/Document.h:
+        (WebCore::Document::elementFromPoint): Move logic from TreeScope::elementFromPoint()
+        here.
+        * dom/TreeScope.cpp:
+        (WebCore::nodeFromPoint): Deleted.
+        (WebCore::TreeScope::elementFromPoint): Deleted.
+        * dom/TreeScope.h:
+
</ins><span class="cx"> 2014-09-22  Benjamin Poulain  &lt;bpoulain@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add the baseline implementation of :nth-child(An+B of selector-list)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/dom/Document.cpp        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -1377,20 +1377,64 @@
</span><span class="cx">     return String();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Element* Document::elementFromPoint(int x, int y) const
</del><ins>+Node* Document::nodeFromPoint(const LayoutPoint&amp; clientPoint, LayoutPoint* localPoint)
</ins><span class="cx"> {
</span><ins>+    if (!frame() || !view())
+        return nullptr;
+    
+    Frame&amp; frame = *this-&gt;frame();
+    
+    float scaleFactor = frame.pageZoomFactor() * frame.frameScaleFactor();
+
+    LayoutPoint contentsPoint = clientPoint;
+    contentsPoint.scale(scaleFactor, scaleFactor);
+    contentsPoint.moveBy(view()-&gt;contentsScrollPosition());
+
+    LayoutRect visibleRect;
+#if PLATFORM(IOS)
+    visibleRect = view()-&gt;unobscuredContentRect();
+#else
+    visibleRect = view()-&gt;visibleContentRect();
+#endif
+    if (!visibleRect.contains(contentsPoint))
+        return nullptr;
+
+    HitTestResult result(contentsPoint);
+    renderView()-&gt;hitTest(HitTestRequest(), result);
+
+    if (localPoint)
+        *localPoint = result.localPoint();
+
+    return result.innerNode();
+}
+
+Element* Document::elementFromPoint(const LayoutPoint&amp; clientPoint)
+{
</ins><span class="cx">     if (!hasLivingRenderTree())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return TreeScope::elementFromPoint(x, y);
</del><ins>+    Node* node = nodeFromPoint(clientPoint);
+    while (node &amp;&amp; !node-&gt;isElementNode())
+        node = node-&gt;parentNode();
+
+    if (node)
+        node = ancestorInThisScope(node);
+
+    return toElement(node);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Range&gt; Document::caretRangeFromPoint(int x, int y)
</span><span class="cx"> {
</span><ins>+    return caretRangeFromPoint(LayoutPoint(x, y));
+}
+
+PassRefPtr&lt;Range&gt; Document::caretRangeFromPoint(const LayoutPoint&amp; clientPoint)
+{
</ins><span class="cx">     if (!hasLivingRenderTree())
</span><span class="cx">         return nullptr;
</span><ins>+
</ins><span class="cx">     LayoutPoint localPoint;
</span><del>-    Node* node = nodeFromPoint(this, x, y, &amp;localPoint);
</del><ins>+    Node* node = nodeFromPoint(clientPoint, &amp;localPoint);
</ins><span class="cx">     if (!node)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/dom/Document.h        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -443,8 +443,11 @@
</span><span class="cx"> 
</span><span class="cx">     NamedFlowCollection&amp; namedFlows();
</span><span class="cx"> 
</span><del>-    Element* elementFromPoint(int x, int y) const;
</del><ins>+    Element* elementFromPoint(int x, int y) { return elementFromPoint(LayoutPoint(x, y)); }
+    Element* elementFromPoint(const LayoutPoint&amp; clientPoint);
+
</ins><span class="cx">     PassRefPtr&lt;Range&gt; caretRangeFromPoint(int x, int y);
</span><ins>+    PassRefPtr&lt;Range&gt; caretRangeFromPoint(const LayoutPoint&amp; clientPoint);
</ins><span class="cx"> 
</span><span class="cx">     String readyState() const;
</span><span class="cx"> 
</span><span class="lines">@@ -1344,6 +1347,8 @@
</span><span class="cx"> 
</span><span class="cx">     PageVisibilityState pageVisibilityState() const;
</span><span class="cx"> 
</span><ins>+    Node* nodeFromPoint(const LayoutPoint&amp; clientPoint, LayoutPoint* localPoint = nullptr);
+
</ins><span class="cx">     PassRefPtr&lt;HTMLCollection&gt; ensureCachedCollection(CollectionType);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScope.cpp (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScope.cpp        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/dom/TreeScope.cpp        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;ElementIterator.h&quot;
</span><span class="cx"> #include &quot;FocusController.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><del>-#include &quot;FrameView.h&quot;
</del><span class="cx"> #include &quot;HTMLAnchorElement.h&quot;
</span><span class="cx"> #include &quot;HTMLFrameOwnerElement.h&quot;
</span><span class="cx"> #include &quot;HTMLLabelElement.h&quot;
</span><span class="lines">@@ -40,7 +39,6 @@
</span><span class="cx"> #include &quot;HitTestResult.h&quot;
</span><span class="cx"> #include &quot;IdTargetObserverRegistry.h&quot;
</span><span class="cx"> #include &quot;Page.h&quot;
</span><del>-#include &quot;RenderView.h&quot;
</del><span class="cx"> #include &quot;RuntimeEnabledFeatures.h&quot;
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><span class="cx"> #include &quot;TreeScopeAdopter.h&quot;
</span><span class="lines">@@ -216,49 +214,6 @@
</span><span class="cx">     return m_imageMapsByName-&gt;getElementByMapName(*AtomicString(name).impl(), *this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* nodeFromPoint(Document* document, int x, int y, LayoutPoint* localPoint)
-{
-    Frame* frame = document-&gt;frame();
-
-    if (!frame)
-        return nullptr;
-    FrameView* frameView = frame-&gt;view();
-    if (!frameView)
-        return nullptr;
-
-    float scaleFactor = frame-&gt;pageZoomFactor() * frame-&gt;frameScaleFactor();
-
-    IntPoint scrollPosition = frameView-&gt;contentsScrollPosition();
-    IntPoint point = roundedIntPoint(FloatPoint(x * scaleFactor  + scrollPosition.x(), y * scaleFactor + scrollPosition.y()));
-
-    IntRect visibleRect;
-#if PLATFORM(IOS)
-    visibleRect = frameView-&gt;unobscuredContentRect();
-#else
-    visibleRect = frameView-&gt;visibleContentRect();
-#endif
-    if (!visibleRect.contains(point))
-        return nullptr;
-
-    HitTestResult result(point);
-    document-&gt;renderView()-&gt;hitTest(HitTestRequest(), result);
-
-    if (localPoint)
-        *localPoint = result.localPoint();
-
-    return result.innerNode();
-}
-
-Element* TreeScope::elementFromPoint(int x, int y) const
-{
-    Node* node = nodeFromPoint(&amp;m_rootNode.document(), x, y);
-    while (node &amp;&amp; !node-&gt;isElementNode())
-        node = node-&gt;parentNode();
-    if (node)
-        node = ancestorInThisScope(node);
-    return toElement(node);
-}
-
</del><span class="cx"> void TreeScope::addLabel(const AtomicStringImpl&amp; forAttributeValue, HTMLLabelElement&amp; element)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_labelsByForAttribute);
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScope.h (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScope.h        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/dom/TreeScope.h        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -77,8 +77,6 @@
</span><span class="cx">     void removeImageMap(HTMLMapElement&amp;);
</span><span class="cx">     HTMLMapElement* getImageMap(const String&amp; url) const;
</span><span class="cx"> 
</span><del>-    Element* elementFromPoint(int x, int y) const;
-
</del><span class="cx">     // For accessibility.
</span><span class="cx">     bool shouldCacheLabelsByForAttribute() const { return !!m_labelsByForAttribute; }
</span><span class="cx">     void addLabel(const AtomicStringImpl&amp; forAttributeValue, HTMLLabelElement&amp;);
</span><span class="lines">@@ -148,7 +146,6 @@
</span><span class="cx">     return m_elementsByName &amp;&amp; name.impl() &amp;&amp; m_elementsByName-&gt;containsMultiple(*name.impl());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* nodeFromPoint(Document*, int x, int y, LayoutPoint* localPoint = 0);
</del><span class="cx"> TreeScope* commonTreeScope(Node*, Node*);
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (173856 => 173857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2014-09-22 23:10:47 UTC (rev 173856)
+++ trunk/Source/WebCore/page/FrameView.cpp        2014-09-23 00:23:54 UTC (rev 173857)
</span><span class="lines">@@ -3126,7 +3126,6 @@
</span><span class="cx"> 
</span><span class="cx">         frame().document()-&gt;enqueueOverflowEvent(overflowEvent.release());
</span><span class="cx">     }
</span><del>-    
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const Pagination&amp; FrameView::pagination() const
</span></span></pre>
</div>
</div>

</body>
</html>