Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(314)

Side by Side Diff: LayoutTests/fast/history/scroll-restoration/scroll-restoration-fragment-navigation-crossdoc.html

Issue 1239463005: Replace history.options with history.scrollRestoration attribute (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Move setScrollRestorationType to History Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <style>
3 iframe {
4 height: 300px;
5 width: 300px;
6 }
7 </style>
8
9 <body>
10 <iframe></iframe>
11 </body>
12
13 <script src="../../../resources/testharness.js"></script>
14 <script src="../../../resources/testharnessreport.js"></script>
15 <script type="text/javascript">
16 'use strict';
17 var iframe = document.querySelector('iframe');
18 var loadCount = 0;
19
20 // The test does the following navigation steps for iframe
21 // 1. load page-with-fragment.html#fragment
22 // 2. load blank2
23 // 3. go back to page-with-fragment.html
24 async_test(function(t) {
25 iframe.src = './resources/page-with-fragment.html#fragment';
26
27 iframe.onload = t.step_func(function() {
28 loadCount += 1;
29 switch (loadCount) {
30 case 1:
31 t.step(function() {
32 assert_regexp_match(iframe.contentWindow.location.href, /page-with-f ragment/, 'should be on page-with-fragment page');
33 // wait one animation frame to ensure layout is run and fragment scr olling is complete
34 iframe.contentWindow.requestAnimationFrame(function() {
35 assert_equals(iframe.contentWindow.scrollY, 800, 'should scroll to fragment');
36
37 iframe.contentWindow.history.scrollRestoration = 'manual';
38 assert_equals(iframe.contentWindow.history.scrollRestoration, 'man ual');
39
40 // navigate to new page
41 setTimeout(function() {
42 iframe.src = './resources/blank1.html';
43 }, 0);
44 });
45 });
46 break;
47 case 2:
48 t.step(function() {
49 assert_regexp_match(iframe.contentWindow.location.href, /blank1/, 's hould be on second blank page');
50 assert_equals(iframe.contentWindow.history.scrollRestoration, 'auto' , 'new page loads should set scrollRestoration to "auto"');
51
52 setTimeout(function() {
53 iframe.contentWindow.history.back();
54 }, 0);
55 });
56 break;
57 case 3:
58 t.step(function() {
59 // coming back from history, scrollRestoration should be set to manu al and respected
60 assert_regexp_match(iframe.contentWindow.location.href, /page-with-f ragment/, 'should be back on page-with-fragment page');
61 iframe.contentWindow.requestAnimationFrame(function() {
62 assert_equals(iframe.contentWindow.history.scrollRestoration, 'man ual', 'navigating back should retain scrollRestoration value');
63 assert_equals(iframe.contentWindow.scrollX, 0, 'should not scroll to fragment');
64 assert_equals(iframe.contentWindow.scrollY, 0, 'should not scroll to fragment');
65 t.done();
66 });
67 });
68 break;
69 default:
70 assert_unreached('iframe should load 3 times');
71 }
72 });
73 }, 'Manual scroll restoration should take precedent over scrolling to fragment ');
74 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698