| <!DOCTYPE html> |
| <head> |
| <meta charset='utf-8' /> |
| <script> |
| const server_timing = performance.getEntriesByType('navigation')[0].serverTiming; |
| const compare_entry = (entry, expected) => { |
| if (!entry) { |
| return false; |
| } |
| const keys = Object.keys(expected); |
| for (key of keys) { |
| if (entry[key] != expected[key]) { |
| return false; |
| } |
| } |
| return true; |
| }; |
| |
| if (!compare_entry(server_timing[0], { |
| duration: 1.1, |
| name: 'metric1', |
| description: 'document', |
| }) || |
| !compare_entry(server_timing[1], { |
| duration: 1.2, |
| name: 'metric1', |
| description: 'document', |
| })) { |
| parent.postMessage("FAIL", "*"); |
| } |
| parent.postMessage( "PASS", "*"); |
| </script> |
| <!-- The script above should not go beyond 800 bytes, or it will be trickled, defeating the test --> |
| </head> |
| <body> |
| <!-- This comment is here to make sure the document body is larger than 800 bytes, so will be trickled down --> |
| </body> |
| </html> |