| <!doctype html> |
| <html> |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| function busyWait(millis) { |
| const start = performance.now(); |
| while (performance.now() < start + millis) {} |
| } |
| promise_test(async t => { |
| const delay = 3000; |
| const iframe = document.createElement('iframe'); |
| iframe.src = './resources/now_frame.html'; |
| document.body.appendChild(iframe); |
| await new Promise(resolve => iframe.addEventListener('load', resolve)); |
| iframe.contentWindow.addEventListener('beforeunload', () => { |
| busyWait(delay); |
| }); |
| iframe.src = './resources/post.html'; |
| await new Promise(resolve => this.addEventListener('message', ({data}) => { |
| if (data === 'done') |
| resolve(); |
| })); |
| |
| const entry = iframe.contentWindow.performance.getEntriesByType('navigation')[0]; |
| assert_less_than(entry.fetchStart, delay); |
| }, 'timeOrigin should be set after beforeunload'); |
| </script> |
| </body> |
| </html> |