deferred-fetch-default-permissions-policy.https.window.js (1642B)
1 // META: title=Permissions Policy "deferred-fetch" default behavior 2 // META: script=/permissions-policy/resources/permissions-policy.js 3 // META: script=/common/utils.js 4 // META: script=/common/get-host-info.sub.js 5 // META: script=/fetch/fetch-later/resources/fetch-later-helper.js 6 // META: script=/fetch/fetch-later/permissions-policy/resources/helper.js 7 // META: timeout=long 8 'use strict'; 9 10 const { 11 HTTPS_ORIGIN, 12 HTTPS_NOTSAMESITE_ORIGIN, 13 } = get_host_info(); 14 15 // https://whatpr.org/fetch/1647.html#dom-permissionspolicy-deferred-fetch 16 const deferredFetchPolicy = 17 'Default "deferred-fetch" permissions policy ["self"]'; 18 // https://whatpr.org/fetch/1647.html#dom-permissionspolicy-deferred-fetch-minimal 19 const deferredFetchMinimalPolicy = 20 'Default "deferred-fetch-minimal" permissions policy ["*"]'; 21 22 parallelPromiseTest(async _ => { 23 const uuid = token(); 24 const url = generateSetBeaconURL(uuid); 25 26 // Request the browser to fetchLater() immediately. 27 fetchLater(url, {activateAfter: 0}); 28 29 await expectBeacon(uuid, {count: 1}); 30 }, `${deferredFetchPolicy} allows fetchLater() in the top-level document.`); 31 32 async_test(t => { 33 test_feature_availability( 34 'fetchLater()', t, getDeferredFetchPolicyInIframeHelperUrl(HTTPS_ORIGIN), 35 expect_feature_available_default); 36 }, `${deferredFetchPolicy} allows fetchLater() in the same-origin iframe.`); 37 38 async_test(t => { 39 test_feature_availability( 40 'fetchLater()', t, 41 getDeferredFetchPolicyInIframeHelperUrl(HTTPS_NOTSAMESITE_ORIGIN), 42 expect_feature_available_default); 43 }, `${deferredFetchMinimalPolicy} allows fetchLater() in the cross-origin iframe.`);