background-fetch.https.html (5293B)
1 <!DOCTYPE html> 2 <title>Test fenced frame does not allow call background fetch</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="resources/utils.js"></script> 6 <script src="/common/get-host-info.sub.js"></script> 7 <script src="/common/utils.js"></script> 8 9 <body> 10 11 <script> 12 const background_fetch_register_key = token(); 13 14 async function test(url, expected, message) { 15 attachFencedFrame(url) 16 17 // Get the result for the top-level fenced frame. 18 const fenced_frame_result = await nextValueFromServer( 19 background_fetch_register_key); 20 assert_equals(fenced_frame_result, expected, message); 21 } 22 23 promise_test(async () => { 24 const method = "fetch"; 25 const fenced_frame_url = 'resources/background-fetch-inner.https.html'; 26 const url = generateURL(fenced_frame_url, 27 [background_fetch_register_key, method]); 28 29 await test( 30 url, 31 '[backgroundFetch.fetch] Failed inside fencedframe as expected', 32 'backgroundFetch.fetch is disallowed inside a same-origin fenced frame'); 33 34 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 35 await test( 36 CROSS_ORIGIN_DESTINATION, 37 '[backgroundFetch.fetch] Failed inside fencedframe as expected', 38 'backgroundFetch.fetch is disallowed inside a cross-origin fenced frame'); 39 }, 'backgroundFetch.fetch'); 40 41 promise_test(async () => { 42 const method = "get"; 43 const fenced_frame_url = 'resources/background-fetch-inner.https.html'; 44 const url = generateURL(fenced_frame_url, 45 [background_fetch_register_key, method]); 46 await test( 47 url, 48 '[backgroundFetch.get] Failed inside fencedframe as expected', 49 'backgroundFetch.get is disallowed inside a same-origin fenced frame'); 50 51 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 52 await test( 53 CROSS_ORIGIN_DESTINATION, 54 '[backgroundFetch.get] Failed inside fencedframe as expected', 55 'backgroundFetch.get is disallowed inside a cross-origin fenced frame'); 56 }, 'backgroundFetch.get'); 57 58 promise_test(async () => { 59 const method = "getIds"; 60 const fenced_frame_url = 'resources/background-fetch-inner.https.html'; 61 const url = generateURL(fenced_frame_url, 62 [background_fetch_register_key, method]); 63 await test( 64 url, 65 '[backgroundFetch.getIds] Failed inside fencedframe as expected', 66 'backgroundFetch.getIds is disallowed inside a same-origin fenced frame'); 67 68 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 69 await test( 70 CROSS_ORIGIN_DESTINATION, 71 '[backgroundFetch.getIds] Failed inside fencedframe as expected', 72 'backgroundFetch.getIds is disallowed inside a cross-origin fenced frame'); 73 }, 'backgroundFetch.getIds'); 74 75 promise_test(async () => { 76 const method = "fetch"; 77 const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html'; 78 const url = generateURL(fenced_frame_url, 79 [background_fetch_register_key, method]); 80 81 await test( 82 url, 83 '[backgroundFetch.fetch] Failed inside fencedframe as expected', 84 'backgroundFetch.fetch is disallowed inside a same-origin fenced frame'); 85 86 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 87 await test( 88 CROSS_ORIGIN_DESTINATION, 89 '[backgroundFetch.fetch] Failed inside fencedframe as expected', 90 'backgroundFetch.fetch is disallowed inside a cross-origin fenced frame'); 91 }, 'backgroundFetch.fetch in service worker'); 92 93 promise_test(async () => { 94 const method = "get"; 95 const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html'; 96 const url = generateURL(fenced_frame_url, 97 [background_fetch_register_key, method]); 98 await test( 99 url, 100 '[backgroundFetch.get] Failed inside fencedframe as expected', 101 'backgroundFetch.get is disallowed inside a same-origin fenced frame'); 102 103 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 104 await test( 105 CROSS_ORIGIN_DESTINATION, 106 '[backgroundFetch.get] Failed inside fencedframe as expected', 107 'backgroundFetch.get is disallowed inside a cross-origin fenced frame'); 108 }, 'backgroundFetch.get in service worker'); 109 110 promise_test(async () => { 111 const method = "getIds"; 112 const fenced_frame_url = 'resources/background-fetch-sw-inner.https.html'; 113 const url = generateURL(fenced_frame_url, 114 [background_fetch_register_key, method]); 115 await test( 116 url, 117 '[backgroundFetch.getIds] Failed inside fencedframe as expected', 118 'backgroundFetch.getIds is disallowed inside a same-origin fenced frame'); 119 120 const CROSS_ORIGIN_DESTINATION = getRemoteOriginURL(url); 121 await test( 122 CROSS_ORIGIN_DESTINATION, 123 '[backgroundFetch.getIds] Failed inside fencedframe as expected', 124 'backgroundFetch.getIds is disallowed inside a cross-origin fenced frame'); 125 }, 'backgroundFetch.getIds in service worker'); 126 </script> 127 128 </body>