summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/scroll-behavior
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/scroll-behavior')
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll-expected.txt10
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll.html69
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-scrollTop.html79
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll.html86
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy.html85
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo.html86
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode-expected.txt44
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode.html68
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode-expected.txt44
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode.html69
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft-expected.txt14
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop-expected.txt14
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll.html95
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy.html94
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft-expected.txt12
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo.html95
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop-expected.txt10
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-interrupted-scroll.html2
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll.html95
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy.html94
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft-expected.txt12
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo-expected.txt22
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html95
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop-expected.txt10
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/resources/scroll-behavior-test.js3
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll-expected.txt23
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll.html87
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy-expected.txt23
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy.html86
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo-expected.txt23
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo.html87
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft-expected.txt14
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft.html24
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop-expected.txt14
-rw-r--r--third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop.html24
49 files changed, 1661 insertions, 371 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll-expected.txt
deleted file mode 100644
index d92a674..0000000
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Test that interrupting a smooth scroll on a listbox works with both scroll behaviors and with input
-
-
-This is a testharness.js-based test.
-FAIL instant scroll assert_equals: expected 3400 but got 6800
-FAIL smooth scroll assert_equals: expected 3400 but got 6800
-FAIL touch scroll assert_equals: expected 3400 but got 6800
-FAIL wheel scroll assert_equals: expected 3400 but got 6800
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll.html
deleted file mode 100644
index a05344c..0000000
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-interrupted-scroll.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
- <script src="resources/scroll-interruption-test.js"></script>
- <script type="text/javascript">
- const numItems = 500;
-
- function jsScroll(y) {
- document.getElementById('listbox').scrollTop = {y: y, behavior: 'smooth'};
- }
-
- function initializeContents(listbox) {
- for (var i = 0; i < numItems; i++) {
- var option = document.createElement('option');
- option.appendChild(document.createTextNode(i));
- listbox.appendChild(option);
- }
- }
-
- function convertIndexToScrollOffset(index, listbox, approximateItemHeight) {
- var scrollOffset = Math.floor(index * approximateItemHeight);
-
- // The scroll offset set on a list box can get rounded to the nearest whole-item
- // offset. We set and then readback the scroll offset to get the rounded value
- // (so that the scroll offsets used during the test won't be subject to further
- // rounding).
- listbox.scrollTop = scrollOffset;
- scrollOffset = listbox.scrollTop;
- return scrollOffset;
- }
-
- function initializeTest(indexTargets, targets, innerPoint, listbox) {
- var approximateItemHeight = listbox.clientHeight / listbox.size;
-
- // Convert from listbox item index to scroll offset.
- targets.y_min = convertIndexToScrollOffset(indexTargets.index_min, listbox, approximateItemHeight);
- targets.y_mid = convertIndexToScrollOffset(indexTargets.index_mid, listbox, approximateItemHeight);
- targets.y_max = convertIndexToScrollOffset(indexTargets.index_max, listbox, approximateItemHeight);
-
- var boundingRect = listbox.getBoundingClientRect();
- innerPoint.x = (boundingRect.left + boundingRect.right)/2;
- innerPoint.y = (boundingRect.top + boundingRect.bottom)/2;
- }
-
- function doTest() {
- var indexTargets = {index_min: 3, index_mid: 200, index_max: 400};
- var targets = {};
- var innerPoint = {};
- var element = document.getElementById('listbox');
- initializeContents(element);
- initializeTest(indexTargets, targets, innerPoint, element);
- var scrollInterruptionTest = new SmoothScrollInterruptionTest(element,
- innerPoint,
- targets,
- jsScroll);
- scrollInterruptionTest.run();
- }
-
- window.addEventListener('load', doTest, false);
- </script>
-</head>
-
-<body>
- <p>Test that interrupting a smooth scroll on a listbox works with both scroll behaviors and with input</p>
- <select size="4" id="listbox"></select>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-scrollTop.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-scrollTop.html
deleted file mode 100644
index 46e5483..0000000
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/listbox-scrollTop.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <script src="../../resources/testharness.js"></script>
- <script src="../../resources/testharnessreport.js"></script>
- <script src="resources/scroll-behavior-test.js"></script>
- <script type="text/javascript">
- const numItems = 500;
-
- function getEndPosition(testCase, startPosition) {
- var endPosition = {};
- endPosition.x = startPosition.x;
- endPosition.y = testCase.y;
- return endPosition;
- }
-
- function jsScroll(testCase) {
- var element = document.getElementById("listbox");
- if (testCase.js) {
- element.scrollTop = {y: testCase.y, behavior: testCase.js};
- } else {
- element.scrollTop = testCase.y;
- }
- }
-
- var testScrolls = [
- {js: "instant", css: "auto", index: 2},
- {js: "instant", css: "smooth", index: 3},
- {js: "auto", css: "auto", index: 4},
- {js: "", css: "auto", index: 5},
- {js: "smooth", css: "auto", waitForEnd: true, index: 15},
- {js: "smooth", css: "smooth", waitForEnd: true, index: 20},
- {js: "auto", css: "smooth", waitForEnd: true, index: 30},
- {js: "", css: "smooth", waitForEnd: true, index: 35},
- {js: "smooth", css: "auto", waitForEnd: false, index: 410},
- {js: "smooth", css: "smooth", waitForEnd: false, index: 20},
- {js: "auto", css: "smooth", waitForEnd: false, index: 400},
- {js: "", css: "smooth", waitForEnd: false, index: 5},
- ];
-
- function initializeContents(listbox)
- {
- for (var i = 0; i < numItems; i++) {
- var option = document.createElement("option");
- option.appendChild(document.createTextNode(i));
- listbox.appendChild(option);
- }
- }
-
-function doTest()
- {
- var element = document.getElementById("listbox");
- initializeContents(element);
- var itemHeight = Math.floor(listbox.clientHeight / listbox.size);
- var testCases = [];
- for (var i = 0; i < testScrolls.length; i++) {
- // Convert from list box item index to a scroll offset.
- testScrolls[i].y = testScrolls[i].index * itemHeight;
- testScrolls[i].x = 0;
- testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
- }
-
- var scrollBehaviorTest = new ScrollBehaviorTest(element,
- element,
- testCases,
- getEndPosition,
- jsScroll);
- scrollBehaviorTest.run();
- }
-
- window.addEventListener('load', doTest, false);
- </script>
-</head>
-
-<body>
- <p>Test that setting scrollTop on a listbox works with both scroll behaviors</p>
- <select size="4" id="listbox"></select>
-</body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll-expected.txt
new file mode 100644
index 0000000..8064c9d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scroll on the main frame's document element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:45, y:undefined, smooth:true
+PASS Scroll x:undefined, y:40, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:15, y:20, smooth:true
+PASS Scroll x:4100, y:4000, smooth:true
+PASS Scroll x:10, y:5, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll.html
new file mode 100644
index 0000000..102e56e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scroll.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.documentElement.scroll(scrollToOptions);
+ } else {
+ document.documentElement.scroll(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var scrollBehaviorTest = new ScrollBehaviorTest(document.documentElement,
+ document,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scroll on the main frame's document element works with both scroll behaviors</p>
+ <div id="content"></div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy-expected.txt
new file mode 100644
index 0000000..b372df5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollBy on the main frame's document element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:-30, y:undefined, smooth:true
+PASS Scroll x:undefined, y:-35, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:-3900, y:-3850, smooth:true
+PASS Scroll x:4050, y:4000, smooth:true
+PASS Scroll x:-4000, y:-4100, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy.html
new file mode 100644
index 0000000..4290157
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollBy.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = startPosition.x + testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = startPosition.y + testCase.y;
+ else
+ endPosition.y = startPosition.y;
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.documentElement.scrollBy(scrollToOptions);
+ } else {
+ document.documentElement.scrollBy(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: -30},
+ {js: "auto", css: "smooth", waitForEnd: true, y: -35},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: -3900, y: -3850},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4050, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: -4000, y: -4100},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var scrollBehaviorTest = new ScrollBehaviorTest(document.documentElement,
+ document,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollBy on the main frame's document element works with both scroll behaviors</p>
+ <div id="content"></div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo-expected.txt
new file mode 100644
index 0000000..a627167
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollTo on the main frame's document element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:45, y:undefined, smooth:true
+PASS Scroll x:undefined, y:40, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:15, y:20, smooth:true
+PASS Scroll x:4100, y:4000, smooth:true
+PASS Scroll x:10, y:5, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo.html
new file mode 100644
index 0000000..da86301
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-element-scrollTo.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.documentElement.scrollTo(scrollToOptions);
+ } else {
+ document.documentElement.scrollTo(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var scrollBehaviorTest = new ScrollBehaviorTest(document.documentElement,
+ document,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollTo on the main frame's document element works with both scroll behaviors</p>
+ <div id="content"></div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode-expected.txt
new file mode 100644
index 0000000..94ebb00
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode-expected.txt
@@ -0,0 +1,44 @@
+Test that calling scroll methods on the body element scrolls the viewport in quirks mode
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test that "scroll" on the document element does not scroll
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+
+Test that "scrollTo" on the document element does not scroll
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+
+Test that "scrollBy" on the document element does not scroll
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+
+Test that "scroll" on the body element scrolls
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 100
+PASS document.body.scrollLeft is 50
+
+Test that "scrollTo" on the body element scrolls
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 200
+PASS document.body.scrollLeft is 450
+
+Test that "scrollBy" on the body element scrolls
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+PASS document.body.scrollTop is 300
+PASS document.body.scrollLeft is 750
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode.html
new file mode 100644
index 0000000..bbf45c5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-quirks-mode.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+ <style>
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/js-test.js"></script>
+ <script>
+ onload = function() {
+ description('Test that calling scroll methods on the body element scrolls the viewport in quirks mode');
+
+ debug('Test that "scroll" on the document element does not scroll');
+ document.documentElement.scroll(100, 100);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scrollTo" on the document element does not scroll');
+ document.documentElement.scrollTo(100, 100);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scrollBy" on the document element does not scroll');
+ document.documentElement.scrollBy(100, 100);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scroll" on the body element scrolls');
+ document.body.scroll(50, 100);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "100");
+ shouldBe("document.body.scrollLeft", "50");
+
+ debug('');
+ debug('Test that "scrollTo" on the body element scrolls');
+ document.body.scrollTo(450, 200);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "200");
+ shouldBe("document.body.scrollLeft", "450");
+
+ debug('');
+ debug('Test that "scrollBy" on the body element scrolls');
+ document.body.scrollBy(300, 100);
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+ shouldBe("document.body.scrollTop", "300");
+ shouldBe("document.body.scrollLeft", "750");
+ }
+ </script>
+</head>
+
+<body>
+ <div id="content"></div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode-expected.txt
new file mode 100644
index 0000000..400583a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode-expected.txt
@@ -0,0 +1,44 @@
+Test that calling scroll methods on the body element does not scroll the viewport in standards mode
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test that "scroll" on the body element does not scroll
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+
+Test that "scrollTo" on the body element does not scroll
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+
+Test that "scrollBy" on the body element does not scroll
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 0
+PASS document.documentElement.scrollLeft is 0
+
+Test that "scroll" on the document element scrolls
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 100
+PASS document.documentElement.scrollLeft is 50
+
+Test that "scrollTo" on the document element scrolls
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 200
+PASS document.documentElement.scrollLeft is 450
+
+Test that "scrollBy" on the document element scrolls
+PASS document.body.scrollTop is 0
+PASS document.body.scrollLeft is 0
+PASS document.documentElement.scrollTop is 300
+PASS document.documentElement.scrollLeft is 750
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode.html
new file mode 100644
index 0000000..0e530f1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scroll-in-standards-mode.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/js-test.js"></script>
+ <script>
+ onload = function() {
+ description('Test that calling scroll methods on the body element does not scroll the viewport in standards mode');
+
+ debug('Test that "scroll" on the body element does not scroll');
+ document.body.scroll(100, 100);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scrollTo" on the body element does not scroll');
+ document.body.scrollTo(100, 100);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scrollBy" on the body element does not scroll');
+ document.body.scrollBy(100, 100);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "0");
+ shouldBe("document.documentElement.scrollLeft", "0");
+
+ debug('');
+ debug('Test that "scroll" on the document element scrolls');
+ document.documentElement.scroll(50, 100);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "100");
+ shouldBe("document.documentElement.scrollLeft", "50");
+
+ debug('');
+ debug('Test that "scrollTo" on the document element scrolls');
+ document.documentElement.scrollTo(450, 200);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "200");
+ shouldBe("document.documentElement.scrollLeft", "450");
+
+ debug('');
+ debug('Test that "scrollBy" on the document element scrolls');
+ document.documentElement.scrollBy(300, 100);
+ shouldBe("document.body.scrollTop", "0");
+ shouldBe("document.body.scrollLeft", "0");
+ shouldBe("document.documentElement.scrollTop", "300");
+ shouldBe("document.documentElement.scrollLeft", "750");
+ }
+ </script>
+</head>
+
+<body>
+ <div id="content"></div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft-expected.txt
index a601aad..dec060a 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollLeft on the main frame works with both scroll behaviors
This is a testharness.js-based test.
PASS Scroll x:1, y:0, smooth:false
-PASS Scroll x:2, y:0, smooth:false
-PASS Scroll x:3, y:0, smooth:false
PASS Scroll x:4, y:0, smooth:false
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4, 0" but got "10, 0"
-FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "10, 0" but got "20, 0"
-FAIL Scroll x:30, y:0, smooth:true assert_equals: expected "20, 0" but got "30, 0"
-FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "30, 0" but got "40, 0"
-FAIL Scroll x:4000, y:0, smooth:true assert_equals: expected "40, 0" but got "4000, 0"
-FAIL Scroll x:15, y:0, smooth:true assert_equals: expected "4000, 0" but got "15, 0"
-FAIL Scroll x:4100, y:0, smooth:true assert_equals: expected "15, 0" but got "4100, 0"
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4100, 0" but got "10, 0"
+PASS Scroll x:20, y:0, smooth:true
+PASS Scroll x:40, y:0, smooth:true
+PASS Scroll x:4000, y:0, smooth:true
+PASS Scroll x:10, y:0, smooth:true
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft.html
index 175593d..68c3f69 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollLeft.html
@@ -20,26 +20,16 @@
}
function jsScroll(testCase) {
- if (testCase.js) {
- document.documentElement.scrollLeft = {x: testCase.x, behavior: testCase.js};
- } else {
- document.documentElement.scrollLeft = testCase.x;
- }
+ document.documentElement.scrollLeft = testCase.x;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 1, y: 0},
- {js: "instant", css: "smooth", x: 2, y: 0},
- {js: "auto", css: "auto", x: 3, y: 0},
- {js: "", css: "auto", x: 4, y: 0},
- {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 0},
- {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 0},
- {js: "", css: "smooth", waitForEnd: true, x: 40, y: 0},
- {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 0},
- {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 0},
- {js: "", css: "smooth", waitForEnd: false, x: 10, y: 0},
+ {css: "auto", x: 1, y: 0},
+ {css: "auto", x: 4, y: 0},
+ {css: "smooth", waitForEnd: true, x: 20, y: 0},
+ {css: "smooth", waitForEnd: true, x: 40, y: 0},
+ {css: "smooth", waitForEnd: false, x: 4000, y: 0},
+ {css: "smooth", waitForEnd: false, x: 10, y: 0},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop-expected.txt
index 61153e4..47e368d 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollTop on the main frame works with both scroll behaviors
This is a testharness.js-based test.
PASS Scroll x:0, y:2, smooth:false
-PASS Scroll x:0, y:3, smooth:false
PASS Scroll x:0, y:4, smooth:false
-PASS Scroll x:0, y:5, smooth:false
-FAIL Scroll x:0, y:15, smooth:true assert_equals: expected "0, 5" but got "0, 15"
-FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 15" but got "0, 25"
-FAIL Scroll x:0, y:35, smooth:true assert_equals: expected "0, 25" but got "0, 35"
-FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 35" but got "0, 45"
-FAIL Scroll x:0, y:4100, smooth:true assert_equals: expected "0, 45" but got "0, 4100"
-FAIL Scroll x:0, y:20, smooth:true assert_equals: expected "0, 4100" but got "0, 20"
-FAIL Scroll x:0, y:4000, smooth:true assert_equals: expected "0, 20" but got "0, 4000"
-FAIL Scroll x:0, y:5, smooth:true assert_equals: expected "0, 4000" but got "0, 5"
+PASS Scroll x:0, y:25, smooth:true
+PASS Scroll x:0, y:45, smooth:true
+PASS Scroll x:0, y:4100, smooth:true
+PASS Scroll x:0, y:20, smooth:true
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop.html
index c947043..7445e80 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/main-frame-scrollTop.html
@@ -20,26 +20,16 @@
}
function jsScroll(testCase) {
- if (testCase.js) {
- document.documentElement.scrollTop = {y: testCase.y, behavior: testCase.js};
- } else {
- document.documentElement.scrollTop = testCase.y;
- }
+ document.documentElement.scrollTop = testCase.y;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 0, y: 2},
- {js: "instant", css: "smooth", x: 0, y: 3},
- {js: "auto", css: "auto", x: 0, y: 4},
- {js: "", css: "auto", x: 0, y: 5},
- {js: "smooth", css: "auto", waitForEnd: true, x: 0, y: 15},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 0, y: 25},
- {js: "auto", css: "smooth", waitForEnd: true, x: 0, y: 35},
- {js: "", css: "smooth", waitForEnd: true, x: 0, y: 45},
- {js: "smooth", css: "auto", waitForEnd: false, x: 0, y: 4100},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 0, y: 20},
- {js: "auto", css: "smooth", waitForEnd: false, x: 0, y: 4000},
- {js: "", css: "smooth", waitForEnd: false, x: 0, y: 5},
+ {css: "auto", x: 0, y: 2},
+ {css: "auto", x: 0, y: 4},
+ {css: "smooth", waitForEnd: true, x: 0, y: 25},
+ {css: "smooth", waitForEnd: true, x: 0, y: 45},
+ {css: "smooth", waitForEnd: false, x: 0, y: 4100},
+ {css: "smooth", waitForEnd: false, x: 0, y: 20},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll-expected.txt
new file mode 100644
index 0000000..aab1432
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scroll on an overflow:hidden element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "3, 4" but got "10, 15"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "10, 15" but got "20, 25"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "20, 25" but got "30, 35"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "30, 35" but got "40, 45"
+FAIL Scroll x:45, y:undefined, smooth:true assert_equals: expected "40, 45" but got "45, 45"
+FAIL Scroll x:undefined, y:40, smooth:true assert_equals: expected "45, 45" but got "45, 40"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "45, 40" but got "4000, 4100"
+FAIL Scroll x:15, y:20, smooth:true assert_equals: expected "4000, 4100" but got "15, 20"
+FAIL Scroll x:4100, y:4000, smooth:true assert_equals: expected "15, 20" but got "4100, 4000"
+FAIL Scroll x:10, y:5, smooth:true assert_equals: expected "4100, 4000" but got "10, 5"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll.html
new file mode 100644
index 0000000..b4bf3d4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scroll.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: hidden;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scroll(scrollToOptions);
+ } else {
+ document.getElementById("container").scroll(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scroll on an overflow:hidden element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy-expected.txt
new file mode 100644
index 0000000..616028d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollBy on an overflow:hidden element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "13, 18" but got "23, 33"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "23, 33" but got "43, 58"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "43, 58" but got "73, 93"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "73, 93" but got "113, 138"
+FAIL Scroll x:-30, y:undefined, smooth:true assert_equals: expected "113, 138" but got "83, 138"
+FAIL Scroll x:undefined, y:-35, smooth:true assert_equals: expected "83, 138" but got "83, 103"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "83, 103" but got "4083, 4203"
+FAIL Scroll x:-3900, y:-3850, smooth:true assert_equals: expected "4083, 4203" but got "183, 353"
+FAIL Scroll x:4050, y:4000, smooth:true assert_equals: expected "183, 353" but got "4233, 4353"
+FAIL Scroll x:-4000, y:-4100, smooth:true assert_equals: expected "4233, 4353" but got "233, 253"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy.html
new file mode 100644
index 0000000..b609c97
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollBy.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: hidden;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = startPosition.x + testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = startPosition.y + testCase.y;
+ else
+ endPosition.y = startPosition.y;
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scrollBy(scrollToOptions);
+ } else {
+ document.getElementById("container").scrollBy(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: -30},
+ {js: "auto", css: "smooth", waitForEnd: true, y: -35},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: -3900, y: -3850},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4050, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: -4000, y: -4100},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollBy on an overflow:hidden element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft-expected.txt
index 6a5138d..32cc416 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollLeft on an overflow:hidden element works with both scrol
This is a testharness.js-based test.
PASS Scroll x:1, y:0, smooth:false
-PASS Scroll x:2, y:0, smooth:false
-PASS Scroll x:3, y:0, smooth:false
PASS Scroll x:4, y:0, smooth:false
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4, 0" but got "10, 0"
-FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "10, 0" but got "20, 0"
-FAIL Scroll x:30, y:0, smooth:true assert_equals: expected "20, 0" but got "30, 0"
-FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "30, 0" but got "40, 0"
+FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "4, 0" but got "20, 0"
+FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "20, 0" but got "40, 0"
FAIL Scroll x:4000, y:0, smooth:true assert_equals: expected "40, 0" but got "4000, 0"
-FAIL Scroll x:15, y:0, smooth:true assert_equals: expected "4000, 0" but got "15, 0"
-FAIL Scroll x:4100, y:0, smooth:true assert_equals: expected "15, 0" but got "4100, 0"
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4100, 0" but got "10, 0"
+FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4000, 0" but got "10, 0"
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft.html
index 731fac6..bc6123e 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollLeft.html
@@ -27,26 +27,16 @@
function jsScroll(testCase) {
var element = document.getElementById("container");
- if (testCase.js) {
- element.scrollLeft = {x: testCase.x, behavior: testCase.js};
- } else {
- element.scrollLeft = testCase.x;
- }
+ element.scrollLeft = testCase.x;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 1, y: 0},
- {js: "instant", css: "smooth", x: 2, y: 0},
- {js: "auto", css: "auto", x: 3, y: 0},
- {js: "", css: "auto", x: 4, y: 0},
- {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 0},
- {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 0},
- {js: "", css: "smooth", waitForEnd: true, x: 40, y: 0},
- {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 0},
- {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 0},
- {js: "", css: "smooth", waitForEnd: false, x: 10, y: 0},
+ {css: "auto", x: 1, y: 0},
+ {css: "auto", x: 4, y: 0},
+ {css: "smooth", waitForEnd: true, x: 20, y: 0},
+ {css: "smooth", waitForEnd: true, x: 40, y: 0},
+ {css: "smooth", waitForEnd: false, x: 4000, y: 0},
+ {css: "smooth", waitForEnd: false, x: 10, y: 0},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo-expected.txt
new file mode 100644
index 0000000..bee4c48
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollTo on an overflow:hidden element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "3, 4" but got "10, 15"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "10, 15" but got "20, 25"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "20, 25" but got "30, 35"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "30, 35" but got "40, 45"
+FAIL Scroll x:45, y:undefined, smooth:true assert_equals: expected "40, 45" but got "45, 45"
+FAIL Scroll x:undefined, y:40, smooth:true assert_equals: expected "45, 45" but got "45, 40"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "45, 40" but got "4000, 4100"
+FAIL Scroll x:15, y:20, smooth:true assert_equals: expected "4000, 4100" but got "15, 20"
+FAIL Scroll x:4100, y:4000, smooth:true assert_equals: expected "15, 20" but got "4100, 4000"
+FAIL Scroll x:10, y:5, smooth:true assert_equals: expected "4100, 4000" but got "10, 5"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo.html
new file mode 100644
index 0000000..783b157
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTo.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: hidden;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scrollTo(scrollToOptions);
+ } else {
+ document.getElementById("container").scrollTo(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollTo on an overflow:hidden element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop-expected.txt
index 4d5d320..1cd4c3e 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollTop on an overflow:hidden element works with both scroll
This is a testharness.js-based test.
PASS Scroll x:0, y:2, smooth:false
-PASS Scroll x:0, y:3, smooth:false
PASS Scroll x:0, y:4, smooth:false
-PASS Scroll x:0, y:5, smooth:false
-FAIL Scroll x:0, y:15, smooth:true assert_equals: expected "0, 5" but got "0, 15"
-FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 15" but got "0, 25"
-FAIL Scroll x:0, y:35, smooth:true assert_equals: expected "0, 25" but got "0, 35"
-FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 35" but got "0, 45"
+FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 4" but got "0, 25"
+FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 25" but got "0, 45"
FAIL Scroll x:0, y:4100, smooth:true assert_equals: expected "0, 45" but got "0, 4100"
FAIL Scroll x:0, y:20, smooth:true assert_equals: expected "0, 4100" but got "0, 20"
-FAIL Scroll x:0, y:4000, smooth:true assert_equals: expected "0, 20" but got "0, 4000"
-FAIL Scroll x:0, y:5, smooth:true assert_equals: expected "0, 4000" but got "0, 5"
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop.html
index 5e9b83f..9d1a46f 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-hidden-scrollTop.html
@@ -27,26 +27,16 @@
function jsScroll(testCase) {
var element = document.getElementById("container");
- if (testCase.js) {
- element.scrollTop = {y: testCase.y, behavior: testCase.js};
- } else {
- element.scrollTop = testCase.y;
- }
+ element.scrollTop = testCase.y;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 0, y: 2},
- {js: "instant", css: "smooth", x: 0, y: 3},
- {js: "auto", css: "auto", x: 0, y: 4},
- {js: "", css: "auto", x: 0, y: 5},
- {js: "smooth", css: "auto", waitForEnd: true, x: 0, y: 15},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 0, y: 25},
- {js: "auto", css: "smooth", waitForEnd: true, x: 0, y: 35},
- {js: "", css: "smooth", waitForEnd: true, x: 0, y: 45},
- {js: "smooth", css: "auto", waitForEnd: false, x: 0, y: 4100},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 0, y: 20},
- {js: "auto", css: "smooth", waitForEnd: false, x: 0, y: 4000},
- {js: "", css: "smooth", waitForEnd: false, x: 0, y: 5},
+ {css: "auto", x: 0, y: 2},
+ {css: "auto", x: 0, y: 4},
+ {css: "smooth", waitForEnd: true, x: 0, y: 25},
+ {css: "smooth", waitForEnd: true, x: 0, y: 45},
+ {css: "smooth", waitForEnd: false, x: 0, y: 4100},
+ {css: "smooth", waitForEnd: false, x: 0, y: 20},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-interrupted-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-interrupted-scroll.html
index 869a4ec..a5333d8 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-interrupted-scroll.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-interrupted-scroll.html
@@ -19,7 +19,7 @@
<script src="resources/scroll-interruption-test.js"></script>
<script type="text/javascript">
function jsScroll(y) {
- document.getElementById('container').scrollTop = {y: y, behavior: 'smooth'};
+ document.getElementById('container').scrollTo({top: y, behavior: 'smooth'});
}
function doTest() {
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll-expected.txt
new file mode 100644
index 0000000..4e35455
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scroll on an overflow:scroll element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "3, 4" but got "10, 15"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "10, 15" but got "20, 25"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "20, 25" but got "30, 35"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "30, 35" but got "40, 45"
+FAIL Scroll x:45, y:undefined, smooth:true assert_equals: expected "40, 45" but got "45, 45"
+FAIL Scroll x:undefined, y:40, smooth:true assert_equals: expected "45, 45" but got "45, 40"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "45, 40" but got "4000, 4100"
+FAIL Scroll x:15, y:20, smooth:true assert_equals: expected "4000, 4100" but got "15, 20"
+FAIL Scroll x:4100, y:4000, smooth:true assert_equals: expected "15, 20" but got "4100, 4000"
+FAIL Scroll x:10, y:5, smooth:true assert_equals: expected "4100, 4000" but got "10, 5"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll.html
new file mode 100644
index 0000000..17fb495
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scroll.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: scroll;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scroll(scrollToOptions);
+ } else {
+ document.getElementById("container").scroll(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scroll on an overflow:scroll element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy-expected.txt
new file mode 100644
index 0000000..9175439
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollBy on an overflow:scroll element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "13, 18" but got "23, 33"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "23, 33" but got "43, 58"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "43, 58" but got "73, 93"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "73, 93" but got "113, 138"
+FAIL Scroll x:-30, y:undefined, smooth:true assert_equals: expected "113, 138" but got "83, 138"
+FAIL Scroll x:undefined, y:-35, smooth:true assert_equals: expected "83, 138" but got "83, 103"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "83, 103" but got "4083, 4203"
+FAIL Scroll x:-3900, y:-3850, smooth:true assert_equals: expected "4083, 4203" but got "183, 353"
+FAIL Scroll x:4050, y:4000, smooth:true assert_equals: expected "183, 353" but got "4233, 4353"
+FAIL Scroll x:-4000, y:-4100, smooth:true assert_equals: expected "4233, 4353" but got "233, 253"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy.html
new file mode 100644
index 0000000..291eb2a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollBy.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: scroll;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = startPosition.x + testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = startPosition.y + testCase.y;
+ else
+ endPosition.y = startPosition.y;
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scrollBy(scrollToOptions);
+ } else {
+ document.getElementById("container").scrollBy(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: -30},
+ {js: "auto", css: "smooth", waitForEnd: true, y: -35},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: -3900, y: -3850},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4050, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: -4000, y: -4100},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollBy on an overflow:scroll element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft-expected.txt
index 89a4a27..74b0e9f 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollLeft on an overflow:scroll element works with both scrol
This is a testharness.js-based test.
PASS Scroll x:1, y:0, smooth:false
-PASS Scroll x:2, y:0, smooth:false
-PASS Scroll x:3, y:0, smooth:false
PASS Scroll x:4, y:0, smooth:false
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4, 0" but got "10, 0"
-FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "10, 0" but got "20, 0"
-FAIL Scroll x:30, y:0, smooth:true assert_equals: expected "20, 0" but got "30, 0"
-FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "30, 0" but got "40, 0"
+FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "4, 0" but got "20, 0"
+FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "20, 0" but got "40, 0"
FAIL Scroll x:4000, y:0, smooth:true assert_equals: expected "40, 0" but got "4000, 0"
-FAIL Scroll x:15, y:0, smooth:true assert_equals: expected "4000, 0" but got "15, 0"
-FAIL Scroll x:4100, y:0, smooth:true assert_equals: expected "15, 0" but got "4100, 0"
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4100, 0" but got "10, 0"
+FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4000, 0" but got "10, 0"
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft.html
index 174b917..6292a59 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollLeft.html
@@ -27,26 +27,16 @@
function jsScroll(testCase) {
var element = document.getElementById("container");
- if (testCase.js) {
- element.scrollLeft = {x: testCase.x, behavior: testCase.js};
- } else {
- element.scrollLeft = testCase.x;
- }
+ element.scrollLeft = testCase.x;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 1, y: 0},
- {js: "instant", css: "smooth", x: 2, y: 0},
- {js: "auto", css: "auto", x: 3, y: 0},
- {js: "", css: "auto", x: 4, y: 0},
- {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 0},
- {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 0},
- {js: "", css: "smooth", waitForEnd: true, x: 40, y: 0},
- {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 0},
- {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 0},
- {js: "", css: "smooth", waitForEnd: false, x: 10, y: 0},
+ {css: "auto", x: 1, y: 0},
+ {css: "auto", x: 4, y: 0},
+ {css: "smooth", waitForEnd: true, x: 20, y: 0},
+ {css: "smooth", waitForEnd: true, x: 40, y: 0},
+ {css: "smooth", waitForEnd: false, x: 4000, y: 0},
+ {css: "smooth", waitForEnd: false, x: 10, y: 0},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo-expected.txt
new file mode 100644
index 0000000..0358529
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo-expected.txt
@@ -0,0 +1,22 @@
+Test that calling scrollTo on an overflow:scroll element works with both scroll behaviors
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+FAIL Scroll x:10, y:15, smooth:true assert_equals: expected "3, 4" but got "10, 15"
+FAIL Scroll x:20, y:25, smooth:true assert_equals: expected "10, 15" but got "20, 25"
+FAIL Scroll x:30, y:35, smooth:true assert_equals: expected "20, 25" but got "30, 35"
+FAIL Scroll x:40, y:45, smooth:true assert_equals: expected "30, 35" but got "40, 45"
+FAIL Scroll x:45, y:undefined, smooth:true assert_equals: expected "40, 45" but got "45, 45"
+FAIL Scroll x:undefined, y:40, smooth:true assert_equals: expected "45, 45" but got "45, 40"
+FAIL Scroll x:4000, y:4100, smooth:true assert_equals: expected "45, 40" but got "4000, 4100"
+FAIL Scroll x:15, y:20, smooth:true assert_equals: expected "4000, 4100" but got "15, 20"
+FAIL Scroll x:4100, y:4000, smooth:true assert_equals: expected "15, 20" but got "4100, 4000"
+FAIL Scroll x:10, y:5, smooth:true assert_equals: expected "4100, 4000" but got "10, 5"
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html
new file mode 100644
index 0000000..7e2dbc7
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTo.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #container {
+ width: 200px;
+ height: 200px;
+ overflow: scroll;
+ }
+
+ #content {
+ width: 7500px;
+ height: 7500px;
+ background-color: blue;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ document.getElementById("container").scrollTo(scrollToOptions);
+ } else {
+ document.getElementById("container").scrollTo(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var element = document.getElementById("container");
+ var scrollBehaviorTest = new ScrollBehaviorTest(element,
+ element,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollTo on an overflow:scroll element works with both scroll behaviors</p>
+ <div id="container">
+ <div id="content"></div>
+ </div>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop-expected.txt
index e6f0f7d..5908bfe 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop-expected.txt
@@ -2,16 +2,10 @@ Test that setting scrollTop on an overflow:scroll element works with both scroll
This is a testharness.js-based test.
PASS Scroll x:0, y:2, smooth:false
-PASS Scroll x:0, y:3, smooth:false
PASS Scroll x:0, y:4, smooth:false
-PASS Scroll x:0, y:5, smooth:false
-FAIL Scroll x:0, y:15, smooth:true assert_equals: expected "0, 5" but got "0, 15"
-FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 15" but got "0, 25"
-FAIL Scroll x:0, y:35, smooth:true assert_equals: expected "0, 25" but got "0, 35"
-FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 35" but got "0, 45"
+FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 4" but got "0, 25"
+FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 25" but got "0, 45"
FAIL Scroll x:0, y:4100, smooth:true assert_equals: expected "0, 45" but got "0, 4100"
FAIL Scroll x:0, y:20, smooth:true assert_equals: expected "0, 4100" but got "0, 20"
-FAIL Scroll x:0, y:4000, smooth:true assert_equals: expected "0, 20" but got "0, 4000"
-FAIL Scroll x:0, y:5, smooth:true assert_equals: expected "0, 4000" but got "0, 5"
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop.html
index e6cf5c7..f31f423 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/overflow-scroll-scrollTop.html
@@ -27,26 +27,16 @@
function jsScroll(testCase) {
var element = document.getElementById("container");
- if (testCase.js) {
- element.scrollTop = {y: testCase.y, behavior: testCase.js};
- } else {
- element.scrollTop = testCase.y;
- }
+ element.scrollTop = testCase.y;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 0, y: 2},
- {js: "instant", css: "smooth", x: 0, y: 3},
- {js: "auto", css: "auto", x: 0, y: 4},
- {js: "", css: "auto", x: 0, y: 5},
- {js: "smooth", css: "auto", waitForEnd: true, x: 0, y: 15},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 0, y: 25},
- {js: "auto", css: "smooth", waitForEnd: true, x: 0, y: 35},
- {js: "", css: "smooth", waitForEnd: true, x: 0, y: 45},
- {js: "smooth", css: "auto", waitForEnd: false, x: 0, y: 4100},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 0, y: 20},
- {js: "auto", css: "smooth", waitForEnd: false, x: 0, y: 4000},
- {js: "", css: "smooth", waitForEnd: false, x: 0, y: 5},
+ {css: "auto", x: 0, y: 2},
+ {css: "auto", x: 0, y: 4},
+ {css: "smooth", waitForEnd: true, x: 0, y: 25},
+ {css: "smooth", waitForEnd: true, x: 0, y: 45},
+ {css: "smooth", waitForEnd: false, x: 0, y: 4100},
+ {css: "smooth", waitForEnd: false, x: 0, y: 20},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/resources/scroll-behavior-test.js b/third_party/WebKit/LayoutTests/fast/scroll-behavior/resources/scroll-behavior-test.js
index f72f7ab..6ed5b3b 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/resources/scroll-behavior-test.js
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/resources/scroll-behavior-test.js
@@ -36,8 +36,7 @@ ScrollBehaviorTest.prototype.scrollListener = function(testCase) {
// Wait for an intermediate frame, then instant-scroll to the end state.
if ((this.scrollElement.scrollLeft != testCase.startX || this.scrollElement.scrollTop != testCase.startY) &&
(this.scrollElement.scrollLeft != testCase.endX || this.scrollElement.scrollTop != testCase.endY)) {
- this.scrollElement.scrollLeft = {x: testCase.endX, behavior: "instant"};
- this.scrollElement.scrollTop = {y: testCase.endY, behavior: "instant"};
+ this.scrollElement.scrollTo({left: testCase.endX, top: testCase.endY, behavior: "instant"});
this.testCaseComplete();
}
};
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll-expected.txt
new file mode 100644
index 0000000..a0f76a8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll-expected.txt
@@ -0,0 +1,23 @@
+Test that calling scroll on a subframe's document element works with both scroll behaviors
+
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:45, y:undefined, smooth:true
+PASS Scroll x:undefined, y:40, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:15, y:20, smooth:true
+PASS Scroll x:4100, y:4000, smooth:true
+PASS Scroll x:10, y:5, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll.html
new file mode 100644
index 0000000..984f3b8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scroll.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #subframe {
+ width: 200px;
+ height: 200px;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ var subframe = document.getElementById("subframe");
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ subframe.contentDocument.documentElement.scroll(scrollToOptions);
+ } else {
+ subframe.contentDocument.documentElement.scroll(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var subframe = document.getElementById("subframe");
+ var scrollBehaviorTest = new ScrollBehaviorTest(subframe.contentDocument.documentElement,
+ subframe.contentDocument,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scroll on a subframe's document element works with both scroll behaviors</p>
+ <iframe id="subframe" src="resources/large-subframe.html"></iframe>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy-expected.txt
new file mode 100644
index 0000000..b72cd5c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy-expected.txt
@@ -0,0 +1,23 @@
+Test that calling scrollBy on a subframe's document element works with both scroll behaviors
+
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:-30, y:undefined, smooth:true
+PASS Scroll x:undefined, y:-35, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:-3900, y:-3850, smooth:true
+PASS Scroll x:4050, y:4000, smooth:true
+PASS Scroll x:-4000, y:-4100, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy.html
new file mode 100644
index 0000000..05cb954
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollBy.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #subframe {
+ width: 200px;
+ height: 200px;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = startPosition.x + testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = startPosition.y + testCase.y;
+ else
+ endPosition.y = startPosition.y;
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ var subframe = document.getElementById("subframe");
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ subframe.contentDocument.documentElement.scrollBy(scrollToOptions);
+ } else {
+ subframe.contentDocument.documentElement.scrollBy(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: -30},
+ {js: "auto", css: "smooth", waitForEnd: true, y: -35},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: -3900, y: -3850},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4050, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: -4000, y: -4100},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var subframe = document.getElementById("subframe");
+ var scrollBehaviorTest = new ScrollBehaviorTest(subframe.contentDocument.documentElement,
+ subframe.contentDocument,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollBy on a subframe's document element works with both scroll behaviors</p>
+ <iframe id="subframe" src="resources/large-subframe.html"></iframe>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo-expected.txt
new file mode 100644
index 0000000..86bde31
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo-expected.txt
@@ -0,0 +1,23 @@
+Test that calling scrollTo on a subframe's document element works with both scroll behaviors
+
+
+This is a testharness.js-based test.
+PASS Scroll x:1, y:2, smooth:false
+PASS Scroll x:2, y:3, smooth:false
+PASS Scroll x:3, y:4, smooth:false
+PASS Scroll x:4, y:5, smooth:false
+PASS Scroll x:3, y:undefined, smooth:false
+PASS Scroll x:undefined, y:4, smooth:false
+PASS Scroll x:undefined, y:undefined, smooth:false
+PASS Scroll x:10, y:15, smooth:true
+PASS Scroll x:20, y:25, smooth:true
+PASS Scroll x:30, y:35, smooth:true
+PASS Scroll x:40, y:45, smooth:true
+PASS Scroll x:45, y:undefined, smooth:true
+PASS Scroll x:undefined, y:40, smooth:true
+PASS Scroll x:4000, y:4100, smooth:true
+PASS Scroll x:15, y:20, smooth:true
+PASS Scroll x:4100, y:4000, smooth:true
+PASS Scroll x:10, y:5, smooth:true
+Harness: the test ran to completion.
+
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo.html
new file mode 100644
index 0000000..d0904e2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-element-scrollTo.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ #subframe {
+ width: 200px;
+ height: 200px;
+ }
+ </style>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="resources/scroll-behavior-test.js"></script>
+ <script type="text/javascript">
+ function getEndPosition(testCase, startPosition) {
+ var endPosition = {};
+ if (testCase.x)
+ endPosition.x = testCase.x;
+ else
+ endPosition.x = startPosition.x;
+
+ if (testCase.y)
+ endPosition.y = testCase.y;
+ else
+ endPosition.y = startPosition.y;
+
+ return endPosition;
+ }
+
+ function jsScroll(testCase) {
+ var subframe = document.getElementById("subframe");
+ if (testCase.js) {
+ var scrollToOptions = {behavior: testCase.js};
+ if (testCase.x)
+ scrollToOptions.left = testCase.x;
+ if (testCase.y)
+ scrollToOptions.top = testCase.y;
+ subframe.contentDocument.documentElement.scrollTo(scrollToOptions);
+ } else {
+ subframe.contentDocument.documentElement.scrollTo(testCase.x, testCase.y);
+ }
+ }
+
+ const testScrolls = [
+ {js: "instant", css: "auto", x: 1, y: 2},
+ {js: "instant", css: "smooth", x: 2, y: 3},
+ {js: "auto", css: "auto", x: 3, y: 4},
+ {js: "", css: "auto", x: 4, y: 5},
+ {js: "auto", css: "auto", x: 3},
+ {js: "auto", css: "auto", y: 4},
+ {js: "auto", css: "auto"},
+ {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 15},
+ {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 25},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 35},
+ {js: "", css: "smooth", waitForEnd: true, x: 40, y: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, x: 45},
+ {js: "auto", css: "smooth", waitForEnd: true, y: 40},
+ {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 4100},
+ {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 20},
+ {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 4000},
+ {js: "", css: "smooth", waitForEnd: false, x: 10, y: 5},
+ ];
+
+ function doTest()
+ {
+ var testCases = [];
+ for (var i = 0; i < testScrolls.length; i++) {
+ testCases.push(new ScrollBehaviorTestCase(testScrolls[i]));
+ }
+
+ var subframe = document.getElementById("subframe");
+ var scrollBehaviorTest = new ScrollBehaviorTest(subframe.contentDocument.documentElement,
+ subframe.contentDocument,
+ testCases,
+ getEndPosition,
+ jsScroll);
+ scrollBehaviorTest.run();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+
+<body>
+ <p>Test that calling scrollTo on a subframe's document element works with both scroll behaviors</p>
+ <iframe id="subframe" src="resources/large-subframe.html"></iframe>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft-expected.txt
index 19beda7..d1e30f5 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft-expected.txt
@@ -3,16 +3,10 @@ Test that setting scrollLeft on a subframe works with both scroll behaviors
This is a testharness.js-based test.
PASS Scroll x:1, y:0, smooth:false
-PASS Scroll x:2, y:0, smooth:false
-PASS Scroll x:3, y:0, smooth:false
PASS Scroll x:4, y:0, smooth:false
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4, 0" but got "10, 0"
-FAIL Scroll x:20, y:0, smooth:true assert_equals: expected "10, 0" but got "20, 0"
-FAIL Scroll x:30, y:0, smooth:true assert_equals: expected "20, 0" but got "30, 0"
-FAIL Scroll x:40, y:0, smooth:true assert_equals: expected "30, 0" but got "40, 0"
-FAIL Scroll x:4000, y:0, smooth:true assert_equals: expected "40, 0" but got "4000, 0"
-FAIL Scroll x:15, y:0, smooth:true assert_equals: expected "4000, 0" but got "15, 0"
-FAIL Scroll x:4100, y:0, smooth:true assert_equals: expected "15, 0" but got "4100, 0"
-FAIL Scroll x:10, y:0, smooth:true assert_equals: expected "4100, 0" but got "10, 0"
+PASS Scroll x:20, y:0, smooth:true
+PASS Scroll x:40, y:0, smooth:true
+PASS Scroll x:4000, y:0, smooth:true
+PASS Scroll x:10, y:0, smooth:true
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft.html
index 1774a0d..6a88c47 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollLeft.html
@@ -20,26 +20,16 @@
function jsScroll(testCase) {
var subframe = document.getElementById("subframe");
- if (testCase.js) {
- subframe.contentDocument.documentElement.scrollLeft = {x: testCase.x, behavior: testCase.js};
- } else {
- subframe.contentDocument.documentElement.scrollLeft = testCase.x;
- }
+ subframe.contentDocument.documentElement.scrollLeft = testCase.x;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 1, y: 0},
- {js: "instant", css: "smooth", x: 2, y: 0},
- {js: "auto", css: "auto", x: 3, y: 0},
- {js: "", css: "auto", x: 4, y: 0},
- {js: "smooth", css: "auto", waitForEnd: true, x: 10, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 20, y: 0},
- {js: "auto", css: "smooth", waitForEnd: true, x: 30, y: 0},
- {js: "", css: "smooth", waitForEnd: true, x: 40, y: 0},
- {js: "smooth", css: "auto", waitForEnd: false, x: 4000, y: 0},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 15, y: 0},
- {js: "auto", css: "smooth", waitForEnd: false, x: 4100, y: 0},
- {js: "", css: "smooth", waitForEnd: false, x: 10, y: 0},
+ {css: "auto", x: 1, y: 0},
+ {css: "auto", x: 4, y: 0},
+ {css: "smooth", waitForEnd: true, x: 20, y: 0},
+ {css: "smooth", waitForEnd: true, x: 40, y: 0},
+ {css: "smooth", waitForEnd: false, x: 4000, y: 0},
+ {css: "smooth", waitForEnd: false, x: 10, y: 0},
];
function doTest()
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop-expected.txt b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop-expected.txt
index 6bf0523..ff7a58b 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop-expected.txt
@@ -3,16 +3,10 @@ Test that setting scrollTop on a subframe works with both scroll behaviors
This is a testharness.js-based test.
PASS Scroll x:0, y:2, smooth:false
-PASS Scroll x:0, y:3, smooth:false
PASS Scroll x:0, y:4, smooth:false
-PASS Scroll x:0, y:5, smooth:false
-FAIL Scroll x:0, y:15, smooth:true assert_equals: expected "0, 5" but got "0, 15"
-FAIL Scroll x:0, y:25, smooth:true assert_equals: expected "0, 15" but got "0, 25"
-FAIL Scroll x:0, y:35, smooth:true assert_equals: expected "0, 25" but got "0, 35"
-FAIL Scroll x:0, y:45, smooth:true assert_equals: expected "0, 35" but got "0, 45"
-FAIL Scroll x:0, y:4100, smooth:true assert_equals: expected "0, 45" but got "0, 4100"
-FAIL Scroll x:0, y:20, smooth:true assert_equals: expected "0, 4100" but got "0, 20"
-FAIL Scroll x:0, y:4000, smooth:true assert_equals: expected "0, 20" but got "0, 4000"
-FAIL Scroll x:0, y:5, smooth:true assert_equals: expected "0, 4000" but got "0, 5"
+PASS Scroll x:0, y:25, smooth:true
+PASS Scroll x:0, y:45, smooth:true
+PASS Scroll x:0, y:4100, smooth:true
+PASS Scroll x:0, y:20, smooth:true
Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop.html b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop.html
index a146e848..8850582 100644
--- a/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop.html
+++ b/third_party/WebKit/LayoutTests/fast/scroll-behavior/subframe-scrollTop.html
@@ -20,26 +20,16 @@
function jsScroll(testCase) {
var subframe = document.getElementById("subframe");
- if (testCase.js) {
- subframe.contentDocument.documentElement.scrollTop = {y: testCase.y, behavior: testCase.js};
- } else {
- subframe.contentDocument.documentElement.scrollTop = testCase.y;
- }
+ subframe.contentDocument.documentElement.scrollTop = testCase.y;
}
const testScrolls = [
- {js: "instant", css: "auto", x: 0, y: 2},
- {js: "instant", css: "smooth", x: 0, y: 3},
- {js: "auto", css: "auto", x: 0, y: 4},
- {js: "", css: "auto", x: 0, y: 5},
- {js: "smooth", css: "auto", waitForEnd: true, x: 0, y: 15},
- {js: "smooth", css: "smooth", waitForEnd: true, x: 0, y: 25},
- {js: "auto", css: "smooth", waitForEnd: true, x: 0, y: 35},
- {js: "", css: "smooth", waitForEnd: true, x: 0, y: 45},
- {js: "smooth", css: "auto", waitForEnd: false, x: 0, y: 4100},
- {js: "smooth", css: "smooth", waitForEnd: false, x: 0, y: 20},
- {js: "auto", css: "smooth", waitForEnd: false, x: 0, y: 4000},
- {js: "", css: "smooth", waitForEnd: false, x: 0, y: 5},
+ {css: "auto", x: 0, y: 2},
+ {css: "auto", x: 0, y: 4},
+ {css: "smooth", waitForEnd: true, x: 0, y: 25},
+ {css: "smooth", waitForEnd: true, x: 0, y: 45},
+ {css: "smooth", waitForEnd: false, x: 0, y: 4100},
+ {css: "smooth", waitForEnd: false, x: 0, y: 20},
];
function doTest()