<!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>[179027] 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/179027">179027</a></dd>
<dt>Author</dt> <dd>enrica@apple.com</dd>
<dt>Date</dt> <dd>2015-01-23 14:16:31 -0800 (Fri, 23 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Hit test returns incorrect results when performed in paginated content over the page gaps.
https://bugs.webkit.org/show_bug.cgi?id=140837
rdar://problem/17494390

Reviewed by Dave Hyatt.

Source/WebCore:

Tests: fast/multicol/pagination/LeftToRight-tb-hittest.html
       fast/multicol/pagination/RightToLeft-rl-hittest.html

When hittesting reaches the RenderView we need to check if we are
in paginated content and use the correct class to compute hittest results.

* rendering/RenderView.cpp:
(WebCore::RenderView::updateHitTestResult):

LayoutTests:

* fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: Added.
* fast/multicol/pagination/LeftToRight-tb-hittest.html: Added.
* fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt: Added.
* fast/multicol/pagination/RightToLeft-rl-hittest.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderViewcpp">trunk/Source/WebCore/rendering/RenderView.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastmulticolpaginationLeftToRighttbhittestexpectedtxt">trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmulticolpaginationLeftToRighttbhittesthtml">trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html</a></li>
<li><a href="#trunkLayoutTestsfastmulticolpaginationRightToLeftrlhittestexpectedtxt">trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmulticolpaginationRightToLeftrlhittesthtml">trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (179026 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-01-23 21:57:23 UTC (rev 179026)
+++ trunk/LayoutTests/ChangeLog        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2015-01-23  Enrica Casucci  &lt;enrica@apple.com&gt;
+
+        Hit test returns incorrect results when performed in paginated content over the page gaps.
+        https://bugs.webkit.org/show_bug.cgi?id=140837
+        rdar://problem/17494390
+
+        Reviewed by Dave Hyatt.
+
+        * fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: Added.
+        * fast/multicol/pagination/LeftToRight-tb-hittest.html: Added.
+        * fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt: Added.
+        * fast/multicol/pagination/RightToLeft-rl-hittest.html: Added.
+
</ins><span class="cx"> 2015-01-23  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win] Unreviewed gardening after landing r179024.
</span></span></pre></div>
<a id="trunkLayoutTestsfastmulticolpaginationLeftToRighttbhittestexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt (0 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -0,0 +1,132 @@
</span><ins>+layer at (0,0) size 2460x585
+  RenderView at (0,0) size 800x585
+    RenderMultiColumnSet at (0,0) size 800x585
+layer at (0,0) size 385x3122 backgroundClip at (0,0) size 2460x585 clip at (0,0) size 2460x585 outlineClip at (0,0) size 2460x585
+  RenderMultiColumnFlowThread at (0,0) size 385x3122
+layer at (0,0) size 385x3122 backgroundClip at (0,0) size 2460x585 clip at (0,0) size 2460x585 outlineClip at (0,0) size 2460x585
+  RenderBlock {HTML} at (0,0) size 385x3122 [border: (1px solid #008000)]
+    RenderBody {BODY} at (4,4) size 377x3114 [border: (1px solid #000000)]
+      RenderBlock {P} at (1,25) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;1 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,413) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;2 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,801) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;3 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,1166) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;4 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,1554) size 375x365
+        RenderText {#text} at (0,0) size 373x365
+          text run at (0,0) width 291: &quot;5 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,197) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,225) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,253) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,281) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,309) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,337) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,1943) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;6 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,2336) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: &quot;7 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,196) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,224) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,252) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,280) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,308) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,336) width 198: &quot;anim id est laborum.&quot;
+      RenderBlock {P} at (1,2724) size 375x365
+        RenderText {#text} at (0,0) size 373x365
+          text run at (0,0) width 291: &quot;8 Lorem ipsum dolor sit amet,&quot;
+          text run at (0,28) width 332: &quot;consectetur adipisicing elit, sed do&quot;
+          text run at (0,56) width 373: &quot;eiusmod tempor incididunt ut labore et&quot;
+          text run at (0,84) width 315: &quot;dolore magna aliqua. Ut enim ad&quot;
+          text run at (0,112) width 270: &quot;minim veniam, quis nostrud&quot;
+          text run at (0,140) width 334: &quot;exercitation ullamco laboris nisi ut&quot;
+          text run at (0,168) width 333: &quot;aliquip ex ea commodo consequat.&quot;
+          text run at (0,197) width 358: &quot;Duis aute irure dolor in reprehenderit&quot;
+          text run at (0,225) width 372: &quot;in voluptate velit esse cillum dolore eu&quot;
+          text run at (0,253) width 340: &quot;fugiat nulla pariatur. Excepteur sint&quot;
+          text run at (0,281) width 357: &quot;occaecat cupidatat non proident, sunt&quot;
+          text run at (0,309) width 332: &quot;in culpa qui officia deserunt mollit&quot;
+          text run at (0,337) width 198: &quot;anim id est laborum.&quot;
+layer at (1250,84) size 56x56
+  RenderBlock (positioned) {DIV} at (1250,84) size 56x56 [border: (3px solid #0000FF)]
+caret: position 353 of child 0 {#text} of child 11 {P} of body
+scrolled to 800,0
</ins></span></pre></div>
<a id="trunkLayoutTestsfastmulticolpaginationLeftToRighttbhittesthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html (0 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html                                (rev 0)
+++ trunk/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        body {
+            -webkit-writing-mode: horizontal-tb;
+            font-size: 24px;
+            border: solid black 1px;
+            margin: 3px;
+        }
+        html {
+            border: solid green 1px;
+        }
+        .box {
+            border: solid blue 3px;
+            position: absolute;
+            width: 50px;
+            height: 50px;
+        }
+    &lt;/style&gt;
+    &lt;script&gt;
+        window.onload = function () {
+            window.scrollTo(window.innerWidth, 0);
+            eventSender.mouseMoveTo(30 + ((window.innerWidth) - 30) / 2 + 15, 100);
+            eventSender.mouseDown();
+            eventSender.mouseUp();
+            caretRect = internals.absoluteCaretBounds(document);
+            var elem = document.getElementById('test');
+            elem.style.left = caretRect.left+&quot;px&quot;;
+            elem.style.top = caretRect.top+&quot;px&quot;;
+        }
+        if (window.internals) {
+            internals.setPagination(&quot;LeftToRightPaginated&quot;, 30, ((window.innerWidth) - 30) / 2);
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;div id='test' class=&quot;box&quot;&gt;&lt;/div&gt;
+&lt;p&gt;1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p id='test'&gt;4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+&lt;p&gt;5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;7 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+&lt;p&gt;8 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastmulticolpaginationRightToLeftrlhittestexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt (0 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -0,0 +1,90 @@
</span><ins>+layer at (0,0) size 2460x585
+  RenderView at (0,0) size 800x585
+    RenderMultiColumnSet at (0,0) size 800x585
+layer at (-1294,0) size 2094x585 backgroundClip at (0,0) size 2460x585 clip at (0,0) size 2460x585 outlineClip at (0,0) size 2460x585
+  RenderMultiColumnFlowThread at (0,0) size 2094x585
+layer at (-1294,0) size 2094x585 backgroundClip at (0,0) size 2460x585 clip at (0,0) size 2460x585 outlineClip at (0,0) size 2460x585
+  RenderBlock {HTML} at (0,0) size 2094x585 [border: (1px solid #008000)]
+    RenderBody {BODY} at (4,4) size 2086x577 [border: (1px solid #000000)]
+      RenderBlock {P} at (25,1) size 224x575
+        RenderText {#text} at (0,0) size 224x564
+          text run at (0,0) width 560: &quot;1 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (84,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (112,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (140,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (168,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (196,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (273,1) size 248x575
+        RenderText {#text} at (0,0) size 248x564
+          text run at (0,0) width 560: &quot;2 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (108,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (136,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (164,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (192,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (220,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (545,1) size 249x575
+        RenderText {#text} at (0,0) size 249x564
+          text run at (0,0) width 560: &quot;3 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (84,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (112,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (140,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (168,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (221,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (818,1) size 224x575
+        RenderText {#text} at (0,0) size 224x564
+          text run at (0,0) width 560: &quot;4 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (84,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (112,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (140,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (168,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (196,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (1066,1) size 225x575
+        RenderText {#text} at (0,0) size 225x564
+          text run at (0,0) width 560: &quot;5 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (85,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (113,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (141,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (169,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (197,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (1315,1) size 249x575
+        RenderText {#text} at (0,0) size 249x564
+          text run at (0,0) width 560: &quot;6 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (84,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (112,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (140,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (168,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (221,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (1588,1) size 224x575
+        RenderText {#text} at (0,0) size 224x564
+          text run at (0,0) width 560: &quot;7 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (84,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (112,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (140,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (168,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (196,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+      RenderBlock {P} at (1836,1) size 225x575
+        RenderText {#text} at (0,0) size 225x564
+          text run at (0,0) width 560: &quot;8 Lorem ipsum dolor sit amet, consectetur adipisicing elit,&quot;
+          text run at (28,0) width 508: &quot;sed do eiusmod tempor incididunt ut labore et dolore&quot;
+          text run at (56,0) width 523: &quot;magna aliqua. Ut enim ad minim veniam, quis nostrud&quot;
+          text run at (85,0) width 564: &quot;exercitation ullamco laboris nisi ut aliquip ex ea commodo&quot;
+          text run at (113,0) width 491: &quot;consequat. Duis aute irure dolor in reprehenderit in&quot;
+          text run at (141,0) width 549: &quot;voluptate velit esse cillum dolore eu fugiat nulla pariatur.&quot;
+          text run at (169,0) width 526: &quot;Excepteur sint occaecat cupidatat non proident, sunt in&quot;
+          text run at (197,0) width 510: &quot;culpa qui officia deserunt mollit anim id est laborum.&quot;
+caret: position 70 of child 0 {#text} of child 11 {P} of body
+scrolled to -800,0
</ins></span></pre></div>
<a id="trunkLayoutTestsfastmulticolpaginationRightToLeftrlhittesthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html (0 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html                                (rev 0)
+++ trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        body {
+            -webkit-writing-mode: vertical-rl;
+            font-size: 24px;
+            border: solid black 1px;
+            margin: 3px;
+        }
+        html {
+            border: solid green 1px;
+        }
+        .box {
+            border: solid blue 3px;
+            position: absolute;
+            width: 50px;
+            height: 50px;
+        }
+    &lt;/style&gt;
+    &lt;script&gt;
+        window.onload = function () {
+            window.scrollTo(-window.innerWidth, 0);
+            eventSender.mouseMoveTo(30 + ((window.innerWidth) - 30) / 2 + 15, 100);
+            eventSender.mouseDown();
+            eventSender.mouseUp();
+            caretRect = internals.absoluteCaretBounds(document);
+            var elem = document.getElementById('test');
+            elem.style.left = caretRect.left+&quot;px&quot;;
+            elem.style.top = caretRect.top+&quot;px&quot;;
+        }
+        if (window.internals) {
+            internals.setPagination(&quot;RightToLeftPaginated&quot;, 30, ((window.innerWidth) - 30) / 2);
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+
+&lt;div id='test' class=&quot;box&quot;&gt;&lt;/div&gt;
+&lt;p&gt;1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+&lt;p&gt;5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+&lt;p&gt;7 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+&lt;p&gt;8 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. &lt;/p&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (179026 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-23 21:57:23 UTC (rev 179026)
+++ trunk/Source/WebCore/ChangeLog        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-01-23  Enrica Casucci  &lt;enrica@apple.com&gt;
+
+        Hit test returns incorrect results when performed in paginated content over the page gaps.
+        https://bugs.webkit.org/show_bug.cgi?id=140837
+        rdar://problem/17494390
+
+        Reviewed by Dave Hyatt.
+
+        Tests: fast/multicol/pagination/LeftToRight-tb-hittest.html
+               fast/multicol/pagination/RightToLeft-rl-hittest.html
+
+        When hittesting reaches the RenderView we need to check if we are
+        in paginated content and use the correct class to compute hittest results.
+
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::updateHitTestResult):
+
</ins><span class="cx"> 2015-01-23  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Document should be a FontSelectorClient.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderView.cpp (179026 => 179027)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderView.cpp        2015-01-23 21:57:23 UTC (rev 179026)
+++ trunk/Source/WebCore/rendering/RenderView.cpp        2015-01-23 22:16:31 UTC (rev 179027)
</span><span class="lines">@@ -1216,6 +1216,9 @@
</span><span class="cx">     if (result.innerNode())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    if (multiColumnFlowThread() &amp;&amp; multiColumnFlowThread()-&gt;firstMultiColumnSet())
+        return multiColumnFlowThread()-&gt;firstMultiColumnSet()-&gt;updateHitTestResult(result, point);
+
</ins><span class="cx">     Node* node = document().documentElement();
</span><span class="cx">     if (node) {
</span><span class="cx">         result.setInnerNode(node);
</span></span></pre>
</div>
</div>

</body>
</html>