Provisional / scheduled loads in subframes should not prevent a page from entering...
[WebKit-https.git] / LayoutTests / fast / history / page-cache-subframes-with-provisional-load.html
1 <!-- webkit-test-runner [ enablePageCache=true ] -->
2 <!DOCTYPE html>
3 <html>
4 <body>
5 <script src="../../resources/js-test.js"></script>
6 <iframe id="testFrame1" src="about:blank"></iframe>
7 <iframe id="testFrame2" src="about:blank"></iframe>
8 <iframe id="testFrame3" src="about:blank"></iframe>
9 <iframe id="testFrame4" src="about:blank"></iframe>
10 <iframe id="testFrame5" src="about:blank"></iframe>
11 <a id="testLink" href="resources/page-cache-helper.html" style="display: none">Link</a>
12 <script>
13 description("Tests that iframes with a pending provisional or scheduled load do not prevent page caching.");
14 jsTestIsAsync = true;
15
16 window.addEventListener("pageshow", function(event) {
17     debug("pageshow - " + (event.persisted ? "" : "not ") + "from cache");
18
19     if (event.persisted) {
20         testPassed("Page restored from Page Cache.");
21         finishJSTest();
22     }
23 });
24
25 window.addEventListener("pagehide", function(event) {
26     debug("pagehide - " + (event.persisted ? "" : "not ") + "entering cache");
27     if (!event.persisted) {
28         testFailed("Page did not enter the page cache.");
29         finishJSTest();
30     }
31
32     // Trigger a quick redirect in the subframe.
33     testFrame3.contentWindow.location.replace("resources/dummy.html");
34 });
35
36 testFrame5.contentWindow.location.replace("resources/dummy.html");
37
38 onload = () => {
39     testFrame4.contentWindow.location.replace("resources/dummy.html");
40     setTimeout(() => {
41          // Trigger a quick redirect in the subframe.
42          testFrame1.contentWindow.location.replace("resources/dummy.html");
43
44          testLink.click();
45
46          testFrame2.contentWindow.location.replace("resources/dummy.html");
47     }, 0);
48 }
49 </script>
50 </html>