| <html> |
| <head> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| window.unload = function() { |
| alert("FAIL"); |
| } |
| |
| window.onload = function() { |
| // There's no way to write a test that determinstically fails because the |
| // history API is asynchronous. There's no way to know whether the |
| // asynchronous haven't yet happened or never will. Consequently, we just |
| // wait for a bit. |
| setTimeout(function() { |
| alert("PASS"); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }, 20); |
| } |
| </script> |
| </head> |
| <body> |
| <p>This test verifies that a sandboxed IFrame cannot navigate the top-level frame using the history API.</p> |
| <iframe sandbox="allow-scripts" src="data:text/html,<script>top.history.back()</script>"> |
| <iframe sandbox="allow-scripts" src="data:text/html,<script>top.history.forward()</script>"> |
| <iframe sandbox="allow-scripts" src="data:text/html,<script>top.history.go(-1)</script>"> |
| </body> |
| </html> |