| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <pre id="console"></pre> |
| |
| <script> |
| var jsTestIsAsync = true; |
| |
| description('Tests that appending iframe with with no URL and setting its URL later (without the hash part) does not overwrite current history entry.'); |
| |
| if (window.testRunner) |
| testRunner.clearBackForwardList(); |
| |
| onload = beginTest; |
| |
| function beginTest() { |
| // The frame must be appened both on initial load and after navigating |
| // back. On first load we must set the same SRC as after navigating away. |
| var iframe = document.createElement('iframe'); |
| document.body.appendChild(iframe); |
| |
| if (location.hash.indexOf('wentBack') == -1) { |
| // Run else code path after going back. |
| location.hash = 'wentBack'; |
| |
| setFrameSrc(); |
| |
| // Navigate forward and back to create forward navigation entry. |
| // Must be done outside the load handler to generate history entry. |
| window.setTimeout(function() { |
| location.href = 'resources/back-on-load.html'; |
| }, 0); |
| } else { |
| window.setTimeout(setFrameSrcAndfinishTest, 100); |
| } |
| } |
| |
| function setFrameSrc() { |
| document.querySelector('iframe').src = 'about:blank'; |
| } |
| |
| function setFrameSrcAndfinishTest() { |
| document.querySelector('iframe').src = 'about:blank'; |
| testRunner.dumpBackForwardList(); |
| finishJSTest(); |
| } |
| </script> |
| </body> |
| </html> |