<!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; window.scrollTo(scrollToOptions); } else { window.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.scrollingElement, document, testCases, getEndPosition, jsScroll); scrollBehaviorTest.run(); } window.addEventListener('load', doTest, false); </script> </head> <body> <p>Test that calling scrollTo on the main frame works with both scroll behaviors</p> <div id="content"></div> </body> </html>