summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/editing/input
diff options
context:
space:
mode:
authorcommit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2013-01-18 21:44:25 +0000
committercommit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2013-01-18 21:44:25 +0000
commit9d3a15f5d5c4d51d423460b70a2b55babdd5b92b (patch)
tree0d7e35c36d97f0ca53a8a4f35dcb5d1732aee737 /third_party/WebKit/LayoutTests/editing/input
parent00257d7d92031bfa2f6b21f94511c913176af873 (diff)
downloadchromium_src-9d3a15f5d5c4d51d423460b70a2b55babdd5b92b.zip
chromium_src-9d3a15f5d5c4d51d423460b70a2b55babdd5b92b.tar.gz
chromium_src-9d3a15f5d5c4d51d423460b70a2b55babdd5b92b.tar.bz2
Fix scrollRectToVisible in the presence of transforms
https://bugs.webkit.org/show_bug.cgi?id=105574 Patch by Chris Hopman <cjhopman@google.com> on 2013-01-18 Reviewed by Simon Fraser. Source/WebCore: When scrolling to reveal an overflow layer, the required scroll was being calculated in absolute coordinates. To properly account for transforms, this calculation should be done in the local coordinates of the renderBox. Tests: editing/input/reveal-selection-transformed-overflow-parent.html editing/input/reveal-selection-transformed-textarea.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): When scrolling to reveal an overflow layer, calculate the required scroll in the local coordinates of the RenderBox. * rendering/RenderObject.cpp: (WebCore::RenderObject::absoluteToLocalQuad): (WebCore): * rendering/RenderObject.h: (RenderObject): Add function to convert an absolute quad to a local quad. LayoutTests: * editing/input/reveal-caret-of-transformed-input-scrollable-parent.html: Added. * editing/input/reveal-caret-of-transformed-input-scrollable-parent-expected.txt: Added. Test that when scrolling an overflow layer to reveal a rect, the rect passed to the parent to scroll is calculated properly. * editing/input/reveal-caret-of-transformed-multiline-input.html: Added. * editing/input/reveal-caret-of-transformed-multiline-input-expected.txt: Added. Test that scrolling to reveal a rect works properly on a transformed overflow layer. * platform/chromium/TestExpectations: * platform/mac/TestExpectations: git-svn-id: svn://svn.chromium.org/blink/trunk@140202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/editing/input')
-rw-r--r--third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent-expected.txt1
-rw-r--r--third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent.html30
-rw-r--r--third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input-expected.txt1
-rw-r--r--third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input.html24
4 files changed, 56 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent-expected.txt b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent-expected.txt
new file mode 100644
index 0000000..7ef22e9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent-expected.txt
@@ -0,0 +1 @@
+PASS
diff --git a/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent.html b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent.html
new file mode 100644
index 0000000..ccd6092
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-input-scrollable-parent.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<script type="text/javascript" src="resources/reveal-utilities.js"></script>
+</head>
+<body>
+<div>When the caret is scrolled out, on starting typing it must be brought to the center of the control.</div>
+<div style="overflow:auto; height:150px; width:300px">
+<textarea name="textarea" id="textarea" rows="10" cols="10"
+ style="-webkit-transform:translate(110px, 110px) scale(2); height:200px"></textarea>
+<div style="height:1000px"></div>
+</div>
+<script>
+
+var textArea = document.getElementById("textarea");
+textArea.textContent = generateNumbers(0, 500, 2, "\n");
+textArea.focus();
+textArea.selectionStart = 1200;
+if (window.eventSender) {
+ eventSender.keyDown(">");
+ // If the parentNode's scrollTop is greater than 500, then the textarea
+ // isn't even visible.
+ document.body.innerHTML = textarea.parentNode.scrollTop < 600 ? "PASS" : "FAIL";
+}
+
+if (window.testRunner) {
+ testRunner.dumpAsText();
+}
+
+</script>
+</body>
diff --git a/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input-expected.txt b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input-expected.txt
new file mode 100644
index 0000000..7ef22e9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input-expected.txt
@@ -0,0 +1 @@
+PASS
diff --git a/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input.html b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input.html
new file mode 100644
index 0000000..7e21890
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-transformed-multiline-input.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<head>
+<script type="text/javascript" src="resources/reveal-utilities.js"></script>
+</head>
+<body>
+<div>When the caret is scrolled out, on starting typing it must be brought to the center of the control.</div>
+<textarea name="textarea" id="textarea" rows="10" cols="10" style="-webkit-transform:rotate(180deg)"></textarea>
+<script>
+
+var textArea = document.getElementById("textarea");
+textArea.textContent = generateNumbers(0, 30, 2, "\n");
+textArea.focus();
+textArea.selectionStart = 36;
+if (window.eventSender) {
+ eventSender.keyDown(">");
+ document.body.innerHTML = textarea.scrollTop > 0 ? "PASS" : "FAIL";
+}
+
+if (window.testRunner) {
+ testRunner.dumpAsText();
+}
+
+</script>
+</body>