| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <span id="e"></span> |
| <span id="f"></span> |
| <script> |
| description("Tests the timestamps from performance.now increase and are in milliseconds"); |
| |
| function busyWait(millis) { |
| var start = Date.now(); |
| while (Date.now() - start < millis) {} |
| } |
| |
| var firstTimestamp = window.performance.now(); |
| shouldBeDefined("firstTimestamp"); |
| shouldBeGreaterThanOrEqual("firstTimestamp", "0"); |
| |
| // Verify returned value is in milliseconds since navigationStart. This |
| // generously assumes this JS will run within the first 5 seconds while ruling |
| // out the possibility that the returned value is in milliseconds since epoch. |
| shouldBeTrue("firstTimestamp < 5000"); |
| |
| var waitTime = 10; |
| busyWait(waitTime); |
| |
| var secondTimestamp = window.performance.now(); |
| shouldBeDefined("secondTimestamp"); |
| shouldBeGreaterThanOrEqual("secondTimestamp", "firstTimestamp + (waitTime / 2)"); |
| |
| // Verify that the difference is in the milliseconds range, keeping |
| // the range test broad to avoid issues on overloaded bots. |
| var elapsed = secondTimestamp - firstTimestamp; |
| shouldBeGreaterThanOrEqual("elapsed", "1"); |
| shouldBeTrue("elapsed < 100"); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |