| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/get-host-info.sub.js"></script> |
| <script src="resources/sizes-helper.js"></script> |
| <script src="resources/resource-loaders.js"></script> |
| <script src="resources/entry-invariants.js"></script> |
| <script> |
| // Redirects for fetch() always apply CORS rules, whereas normal resources |
| // don't, so this test covers extra code paths beyond those covered by |
| // resource-timing-sizes-redirect.html. |
| |
| const baseUrl = new URL('/resource-timing/resources/TAOResponse.py?tao=wildcard&img=true', location.href).href; |
| |
| const expectedSize = 1010; |
| |
| const hostInfo = get_host_info(); |
| |
| const redirectUrl = (redirectSourceOrigin, targetUrl) => { |
| return redirectSourceOrigin + |
| '/resource-timing/resources/redirect-cors.py?allow_origin=*&timing_allow_origin=*' + |
| '&location=' + encodeURIComponent(targetUrl); |
| }; |
| |
| const verify_entry = entry => { |
| checkSizeFields(entry, expectedSize, expectedSize + headerSize); |
| }; |
| |
| attribute_test(load.image, baseUrl, |
| verify_entry, |
| "PerformanceResourceTiming sizes redirect image - direct URL"); |
| |
| attribute_test(load.image, |
| redirectUrl(hostInfo.HTTP_ORIGIN, baseUrl), |
| verify_entry, |
| "PerformanceResourceTiming sizes redirect image - same origin redirect"); |
| |
| attribute_test(load.image_cors, |
| redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN, baseUrl), |
| verify_entry, |
| "PerformanceResourceTiming sizes redirect image - cross origin redirect"); |
| |
| attribute_test(load.image_cors, |
| redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN, |
| redirectUrl(hostInfo.HTTP_ORIGIN, baseUrl)), |
| verify_entry, |
| "PerformanceResourceTiming sizes redirect image - cross origin to same origin redirect"); |
| |
| attribute_test(load.image_cors, |
| redirectUrl(hostInfo.HTTP_ORIGIN, |
| redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN, |
| redirectUrl(hostInfo.HTTP_ORIGIN, |
| baseUrl))), |
| verify_entry, |
| "PerformanceResourceTiming sizes redirect image - same origin to remote " + |
| "origin to same origin redirect"); |
| </script> |