| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..29b56d841f78592ce4bef11e34b6a7dfd73c4cdc
 | 
| --- /dev/null
 | 
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
 | 
| @@ -0,0 +1,71 @@
 | 
| +<!DOCTYPE html>
 | 
| +<meta name=timeout content=long>
 | 
| +<title>Correct behaviour of scroll restoration mode is cross origin history traversal</title>
 | 
| +
 | 
| +<style>
 | 
| +  iframe {
 | 
| +    height: 300px;
 | 
| +    width: 300px;
 | 
| +  }
 | 
| +</style>
 | 
| +
 | 
| +<body>
 | 
| +  <iframe></iframe>
 | 
| +</body>
 | 
| +
 | 
| +<script src="../../../../../../../resources/testharness.js"></script>
 | 
| +<script src="../../../../../../../resources/testharnessreport.js"></script>
 | 
| +<script type="text/javascript">
 | 
| +  'use strict';
 | 
| +
 | 
| +  // The test does the following navigation steps for iframe
 | 
| +  // 1. load blank1
 | 
| +  // 2. load blank2
 | 
| +  // 3. go back to blank1
 | 
| +  async_test(function(t) {
 | 
| +    var iframe = document.querySelector('iframe');
 | 
| +    var baseURL = location.href.substring(0, location.href.lastIndexOf('/'));
 | 
| +
 | 
| +    var steps = [
 | 
| +      function() {
 | 
| +        iframe.src = 'resources/blank1.html';
 | 
| +      },
 | 
| +      function() {
 | 
| +        assert_equals(iframe.contentWindow.location.href, baseURL + '/resources/blank1.html', 'should be on first blank page');
 | 
| +        iframe.contentWindow.history.scrollRestoration = 'manual';
 | 
| +        assert_equals(iframe.contentWindow.history.scrollRestoration, 'manual');
 | 
| +        iframe.contentWindow.scrollTo(500, 500);
 | 
| +        assert_equals(iframe.contentWindow.scrollX, 500, 'scripted scrolling should take effect');
 | 
| +        assert_equals(iframe.contentWindow.scrollY, 500, 'scripted scrolling should take effect');
 | 
| +        setTimeout(next, 0);
 | 
| +      },
 | 
| +      function() {
 | 
| +        // navigate to new page
 | 
| +        iframe.src = 'resources/blank2.html';
 | 
| +      },
 | 
| +      function() {
 | 
| +        assert_equals(iframe.contentWindow.location.href, baseURL + '/resources/blank2.html', 'should be on second blank page');
 | 
| +        assert_equals(iframe.contentWindow.history.scrollRestoration, 'auto', 'new page loads should set scrollRestoration to "auto"');
 | 
| +        setTimeout(next, 0);
 | 
| +      }, function() {
 | 
| +        iframe.contentWindow.history.back();
 | 
| +      }, function() {
 | 
| +        // coming back scrollRestoration should be restored to 'manual' and respected
 | 
| +        assert_equals(iframe.contentWindow.location.href, baseURL + '/resources/blank1.html', 'should be back on first blank page');
 | 
| +        assert_equals(iframe.contentWindow.history.scrollRestoration, 'manual', 'navigating back should retain scrollRestoration value');
 | 
| +        assert_equals(iframe.contentWindow.scrollX, 0, 'horizontal scroll offset should not be restored');
 | 
| +        assert_equals(iframe.contentWindow.scrollY, 0, 'vertical scroll offset should not be restored');
 | 
| +        t.done();
 | 
| +      }
 | 
| +    ];
 | 
| +
 | 
| +    var stepCount = 0;
 | 
| +    var next = t.step_func(function() {
 | 
| +      steps[stepCount++]();
 | 
| +    });
 | 
| +
 | 
| +    iframe.onload = next;
 | 
| +    next();
 | 
| +  }, 'Navigating to new page should reset to "auto" and navigating back should restore and respect scroll restoration mode');
 | 
| +
 | 
| +</script>
 | 
| 
 |