diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index 50fc86d6eae5a..af6a518bdd4b5 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -4244738,7 +4244738,7 @@ html : [ " -ed300faf8e6d0c65cada04a019328d1cf08e194d +0f1d377a57cfc078212cc0a069d0280f881b5262 " " testharness diff --git a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html index 5798c07197817..418d99064e791 100644 --- a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html @@ -111,7 +111,7 @@ < script > -var +const host_info = get_host_info @@ -158,7 +158,7 @@ redirect page . -var +const BASE_URL = host_info @@ -172,7 +172,7 @@ ( ) ; -var +const OTHER_BASE_URL = host_info @@ -186,7 +186,7 @@ ( ) ; -var +const SCOPE1 = BASE_URL @@ -204,7 +204,7 @@ ? ' ; -var +const SCOPE2 = BASE_URL @@ -222,7 +222,7 @@ ? ' ; -var +const OUT_SCOPE = BASE_URL @@ -242,7 +242,7 @@ ? ' ; -var +const SCRIPT = ' @@ -255,7 +255,7 @@ js ' ; -var +const OTHER_ORIGIN_IFRAME_URL = OTHER_BASE_URL @@ -274,7 +274,7 @@ html ' ; -var +const OTHER_ORIGIN_SCOPE = OTHER_BASE_URL @@ -292,7 +292,7 @@ ? ' ; -var +const OTHER_ORIGIN_OUT_SCOPE = OTHER_BASE_URL @@ -312,52 +312,32 @@ ? ' ; -var +let +registrations +; +let workers ; -var +let other_origin_frame ; -var -setup_environment_promise -; -var +let message_resolvers = { } ; -var +let next_message_id = 0 ; -function -setup_environment +promise_test ( +async t -) -{ -if -( -setup_environment_promise -) -return -setup_environment_promise -; -setup_environment_promise = -with_iframe -( -OTHER_ORIGIN_IFRAME_URL -) -. -then -( -function -( -f -) +> { / / @@ -367,8 +347,8 @@ we register a -Service -Worker +service +worker at OTHER_ORIGIN_SCOPE . @@ -387,9 +367,24 @@ . other_origin_frame = -f +await +with_iframe +( +OTHER_ORIGIN_IFRAME_URL +) ; -return +/ +/ +Register +same +- +origin +service +workers +. +registrations += +await Promise . all @@ -410,66 +405,15 @@ ] ) ; -} -) -. -then -( -function -( -registrations -) -{ -add_completion_callback -( -function -( -) -{ -registrations -[ -0 -] -. -unregister -( -) -; -registrations -[ -1 -] -. -unregister -( -) -; -send_to_iframe -( -other_origin_frame -' -unregister -' -) -. -then -( -function -( -) -{ -other_origin_frame +/ +/ +Wait +for +all +workers +to +activate . -remove -( -) -; -} -) -; -} -) -; workers = registrations @@ -534,12 +478,13 @@ ) ; } +' +initialize +global +state +' ) ; -return -setup_environment_promise -; -} function get_effective_worker ( @@ -580,19 +525,24 @@ installing ; } +async function check_all_intercepted_urls ( expected_urls ) { -var +const urls = [ ] ; -return +urls +. +push +( +await get_intercepted_urls ( workers @@ -600,22 +550,13 @@ 0 ] ) -. -then -( -function -( -url ) -{ +; urls . push ( -url -) -; -return +await get_intercepted_urls ( workers @@ -623,22 +564,6 @@ 1 ] ) -; -} -) -. -then -( -function -( -url -) -{ -urls -. -push -( -url ) ; / @@ -672,7 +597,11 @@ OTHER_ORIGIN_IFRAME_URL resolves . -return +urls +. +push +( +await send_to_iframe ( other_origin_frame @@ -680,37 +609,8 @@ get_intercepted_urls ' ) -; -} -) -. -then -( -function -( -url ) -{ -urls -. -push -( -url -) -; -return -urls ; -} -) -. -then -( -function -( -urls -) -{ assert_object_equals ( urls @@ -725,35 +625,141 @@ ) ; } -) -; -} +/ +/ +Creates +an +iframe +and +navigates +to +| +url +| +which +is +expected +to +start +a +chain +/ +/ +of +redirects +. +/ +/ +- +| +expected_last_url +| +is +the +expected +window +. +location +after +the +/ +/ +navigation +. +/ +/ +- +| +expected_intercepted_urls +| +is +the +expected +URLs +that +the +service +/ +/ +workers +were +dispatched +fetch +events +for +. +The +format +is +: +/ +/ +[ +/ +/ +[ +urls +from +workers +[ +0 +] +] +/ +/ +[ +urls +from +workers +[ +1 +] +] +/ +/ +[ +urls +from +cross +- +origin +worker +] +/ +/ +] function -test_redirect +redirect_test ( url expected_last_url expected_intercepted_urls +test_name ) { -var +promise_test +( +async +t += +> +{ +const message_promise = new Promise ( -function -( resolve -) += +> { / / A message -which +with ID -is ' last_url ' @@ -776,53 +782,33 @@ } ) ; -return +const +frame += +await with_iframe ( url ) -. -then -( -function -( -f -) -{ -f +; +frame . remove ( ) ; -return +await check_all_intercepted_urls ( expected_intercepted_urls ) ; -} -) -. -then -( -function -( -) -{ -return +const +last_url += +await message_promise ; -} -) -. -then -( -function -( -last_url -) -{ assert_equals ( last_url @@ -837,6 +823,7 @@ ) ; } +test_name ) ; } @@ -953,10 +940,9 @@ new Promise ( -function -( resolve -) += +> { message_resolvers [ @@ -1001,10 +987,9 @@ new Promise ( -function -( resolve -) += +> { var channel @@ -1062,28 +1047,18 @@ / Normal redirect -. -promise_test ( -function -( -t -) -{ -return -setup_environment -( -t +from +out +- +scope +to +in +- +scope ) . -then -( -function -( -) -{ -return -test_redirect +redirect_test ( OUT_SCOPE + @@ -1106,12 +1081,6 @@ [ ] ] -) -; -} -) -; -} ' Normal redirect @@ -1124,27 +1093,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( OUT_SCOPE + @@ -1182,12 +1131,6 @@ [ ] ] -) -; -} -) -; -} ' Normal redirect @@ -1204,27 +1147,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( OUT_SCOPE + @@ -1267,12 +1190,6 @@ [ ] ] -) -; -} -) -; -} ' Normal redirect @@ -1289,27 +1206,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( OUT_SCOPE + @@ -1332,12 +1229,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' Normal redirect @@ -1365,27 +1256,7 @@ fetch request . -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1418,12 +1289,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1440,27 +1305,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1494,12 +1339,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1509,34 +1348,14 @@ same - origin -same -- -scope -. -' -) -; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) +same +- +scope . -then -( -function -( +' ) -{ -return -test_redirect +; +redirect_test ( SCOPE1 + @@ -1590,12 +1409,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1616,27 +1429,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1700,12 +1493,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1729,27 +1516,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1783,12 +1550,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1805,27 +1566,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1858,12 +1599,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -1880,27 +1615,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -1934,12 +1649,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' SW - @@ -1983,27 +1692,7 @@ ) ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2044,12 +1733,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2066,27 +1749,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2142,12 +1805,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2168,27 +1825,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2254,12 +1891,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2283,27 +1914,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2345,12 +1956,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2367,27 +1972,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2429,49 +2014,23 @@ [ ] ] -) -; -} -) -; -} ' SW - -generated -redirect -to -same -- -origin -other -- -scope -. -' -) -; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) +generated +redirect +to +same +- +origin +other +- +scope . -then -( -function -( +' ) -{ -return -test_redirect +; +redirect_test ( SCOPE1 + @@ -2512,12 +2071,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2534,27 +2087,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2596,12 +2129,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' SW - @@ -2640,27 +2167,7 @@ ) ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2701,12 +2208,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2723,27 +2224,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2785,12 +2266,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2807,27 +2282,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2869,12 +2324,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2891,27 +2340,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -2952,12 +2381,6 @@ [ ] ] -) -; -} -) -; -} ' SW - @@ -2974,27 +2397,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3036,12 +2439,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' SW - @@ -3094,27 +2491,7 @@ ) ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3155,12 +2532,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3178,27 +2549,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3240,12 +2591,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3263,27 +2608,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3325,12 +2650,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3348,27 +2667,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3409,12 +2708,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3432,27 +2725,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3494,12 +2767,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' Redirect to @@ -3517,27 +2784,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3574,12 +2821,6 @@ [ ] ] -) -; -} -) -; -} ' No location @@ -3610,27 +2851,7 @@ Cache API . -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3671,12 +2892,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3702,27 +2917,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3764,12 +2959,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3795,27 +2984,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3857,12 +3026,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3888,27 +3051,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -3949,12 +3092,6 @@ [ ] ] -) -; -} -) -; -} ' Redirect to @@ -3980,27 +3117,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -4042,12 +3159,6 @@ OTHER_ORIGIN_SCOPE ] ] -) -; -} -) -; -} ' Redirect to @@ -4073,27 +3184,7 @@ ' ) ; -promise_test -( -function -( -t -) -{ -return -setup_environment -( -t -) -. -then -( -function -( -) -{ -return -test_redirect +redirect_test ( SCOPE1 + @@ -4130,12 +3221,6 @@ [ ] ] -) -; -} -) -; -} ' No location @@ -4147,6 +3232,79 @@ ' ) ; +/ +/ +Clean +up +the +test +environment +. +This +promise_test +( +) +needs +to +be +the +last +one +. +promise_test +( +async +t += +> +{ +registrations +. +forEach +( +async +registration += +> +{ +if +( +registration +) +await +registration +. +unregister +( +) +; +} +) +; +await +send_to_iframe +( +other_origin_frame +' +unregister +' +) +; +other_origin_frame +. +remove +( +) +; +} +' +clean +up +global +state +' +) +; < / script