Merged r179027.  rdar://problem/19432904

Canonical link: https://commits.webkit.org/152923.437@safari-600.1.4.15-branch
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-600.1.4.15-branch@179302 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8aec331..f14624b 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,22 @@
 2015-01-28  Lucas Forschler  <lforschler@apple.com>
 
+        Merge r179027
+
+    2015-01-23  Enrica Casucci  <enrica@apple.com>
+
+            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.
+
+2015-01-28  Lucas Forschler  <lforschler@apple.com>
+
         Merge r178380
 
     2015-01-13  Dean Jackson  <dino@apple.com>
diff --git a/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt b/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt
new file mode 100644
index 0000000..51d0ce3
--- /dev/null
+++ b/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt
@@ -0,0 +1,132 @@
+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: "1 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,413) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: "2 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,801) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: "3 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,1166) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: "4 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,1554) size 375x365
+        RenderText {#text} at (0,0) size 373x365
+          text run at (0,0) width 291: "5 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,197) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,225) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,253) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,281) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,309) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,337) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,1943) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: "6 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,2336) size 375x364
+        RenderText {#text} at (0,0) size 373x364
+          text run at (0,0) width 291: "7 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,196) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,224) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,252) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,280) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,308) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,336) width 198: "anim id est laborum."
+      RenderBlock {P} at (1,2724) size 375x365
+        RenderText {#text} at (0,0) size 373x365
+          text run at (0,0) width 291: "8 Lorem ipsum dolor sit amet,"
+          text run at (0,28) width 332: "consectetur adipisicing elit, sed do"
+          text run at (0,56) width 373: "eiusmod tempor incididunt ut labore et"
+          text run at (0,84) width 315: "dolore magna aliqua. Ut enim ad"
+          text run at (0,112) width 270: "minim veniam, quis nostrud"
+          text run at (0,140) width 334: "exercitation ullamco laboris nisi ut"
+          text run at (0,168) width 333: "aliquip ex ea commodo consequat."
+          text run at (0,197) width 358: "Duis aute irure dolor in reprehenderit"
+          text run at (0,225) width 372: "in voluptate velit esse cillum dolore eu"
+          text run at (0,253) width 340: "fugiat nulla pariatur. Excepteur sint"
+          text run at (0,281) width 357: "occaecat cupidatat non proident, sunt"
+          text run at (0,309) width 332: "in culpa qui officia deserunt mollit"
+          text run at (0,337) width 198: "anim id est laborum."
+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
diff --git a/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html b/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html
new file mode 100644
index 0000000..d474a8b
--- /dev/null
+++ b/LayoutTests/fast/multicol/pagination/LeftToRight-tb-hittest.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        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;
+        }
+    </style>
+    <script>
+        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+"px";
+            elem.style.top = caretRect.top+"px";
+        }
+        if (window.internals) {
+            internals.setPagination("LeftToRightPaginated", 30, ((window.innerWidth) - 30) / 2);
+        }
+    </script>
+</head>
+<body>
+<div id='test' class="box"></div>
+<p>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.</p>
+<p>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.</p>
+<p>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.</p>
+<p id='test'>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. </p>
+<p>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.</p>
+<p>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.</p>
+<p>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. </p>
+<p>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. </p>
+</body>
+</html>
diff --git a/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt b/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt
new file mode 100644
index 0000000..b4d8bf8
--- /dev/null
+++ b/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest-expected.txt
@@ -0,0 +1,90 @@
+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: "1 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (84,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (112,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (140,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (168,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (196,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (273,1) size 248x575
+        RenderText {#text} at (0,0) size 248x564
+          text run at (0,0) width 560: "2 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (108,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (136,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (164,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (192,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (220,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (545,1) size 249x575
+        RenderText {#text} at (0,0) size 249x564
+          text run at (0,0) width 560: "3 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (84,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (112,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (140,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (168,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (221,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (818,1) size 224x575
+        RenderText {#text} at (0,0) size 224x564
+          text run at (0,0) width 560: "4 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (84,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (112,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (140,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (168,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (196,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (1066,1) size 225x575
+        RenderText {#text} at (0,0) size 225x564
+          text run at (0,0) width 560: "5 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (85,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (113,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (141,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (169,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (197,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (1315,1) size 249x575
+        RenderText {#text} at (0,0) size 249x564
+          text run at (0,0) width 560: "6 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (84,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (112,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (140,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (168,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (221,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (1588,1) size 224x575
+        RenderText {#text} at (0,0) size 224x564
+          text run at (0,0) width 560: "7 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (84,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (112,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (140,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (168,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (196,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+      RenderBlock {P} at (1836,1) size 225x575
+        RenderText {#text} at (0,0) size 225x564
+          text run at (0,0) width 560: "8 Lorem ipsum dolor sit amet, consectetur adipisicing elit,"
+          text run at (28,0) width 508: "sed do eiusmod tempor incididunt ut labore et dolore"
+          text run at (56,0) width 523: "magna aliqua. Ut enim ad minim veniam, quis nostrud"
+          text run at (85,0) width 564: "exercitation ullamco laboris nisi ut aliquip ex ea commodo"
+          text run at (113,0) width 491: "consequat. Duis aute irure dolor in reprehenderit in"
+          text run at (141,0) width 549: "voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+          text run at (169,0) width 526: "Excepteur sint occaecat cupidatat non proident, sunt in"
+          text run at (197,0) width 510: "culpa qui officia deserunt mollit anim id est laborum."
+caret: position 70 of child 0 {#text} of child 11 {P} of body
+scrolled to -800,0
diff --git a/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html b/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html
new file mode 100644
index 0000000..fb36c8a
--- /dev/null
+++ b/LayoutTests/fast/multicol/pagination/RightToLeft-rl-hittest.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        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;
+        }
+    </style>
+    <script>
+        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+"px";
+            elem.style.top = caretRect.top+"px";
+        }
+        if (window.internals) {
+            internals.setPagination("RightToLeftPaginated", 30, ((window.innerWidth) - 30) / 2);
+        }
+    </script>
+</head>
+<body>
+
+<div id='test' class="box"></div>
+<p>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.</p>
+<p>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.</p>
+<p>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.</p>
+<p>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. </p>
+<p>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.</p>
+<p>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.</p>
+<p>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. </p>
+<p>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. </p>
+
+</body>
+</html>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 18e51a5..667c8aa 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,25 @@
 2015-01-28  Lucas Forschler  <lforschler@apple.com>
 
+        Merge r179027
+
+    2015-01-23  Enrica Casucci  <enrica@apple.com>
+
+            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):
+2015-01-28  Lucas Forschler  <lforschler@apple.com>
+
         Merge r178380
 
     2015-01-13  Dean Jackson  <dino@apple.com>
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp
index bc9fa64..bcfc54a 100644
--- a/Source/WebCore/rendering/RenderView.cpp
+++ b/Source/WebCore/rendering/RenderView.cpp
@@ -1196,6 +1196,9 @@
     if (result.innerNode())
         return;
 
+    if (multiColumnFlowThread() && multiColumnFlowThread()->firstMultiColumnSet())
+        return multiColumnFlowThread()->firstMultiColumnSet()->updateHitTestResult(result, point);
+
     Node* node = document().documentElement();
     if (node) {
         result.setInnerNode(node);