fetch-via-serviceworker.https.sub.html (22570B)
1 <!DOCTYPE html> 2 <!-- 3 This test was procedurally generated. Please do not modify it directly. 4 Sources: 5 - fetch/metadata/tools/fetch-metadata.conf.yml 6 - fetch/metadata/tools/templates/fetch-via-serviceworker.https.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <meta name="timeout" content="long"> 11 <title>HTTP headers on request using the "fetch" API and passing through a Serive Worker</title> 12 <script src="/resources/testharness.js"></script> 13 <script src="/resources/testharnessreport.js"></script> 14 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script> 15 <script src="/fetch/metadata/resources/helper.sub.js"></script> 16 <body> 17 <script> 18 'use strict'; 19 20 const scripts = { 21 fallback: '/fetch/metadata/resources/fetch-via-serviceworker--fallback--sw.js', 22 respondWith: '/fetch/metadata/resources/fetch-via-serviceworker--respondWith--sw.js' 23 }; 24 25 function induceRequest(t, url, init, script) { 26 const SCOPE = '/fetch/metadata/resources/fetch-via-serviceworker-frame.html'; 27 const SCRIPT = scripts[script]; 28 29 return service_worker_unregister_and_register(t, SCRIPT, SCOPE) 30 .then((registration) => { 31 t.add_cleanup(() => registration.unregister()); 32 33 return wait_for_state(t, registration.installing, 'activated'); 34 }) 35 .then(() => with_iframe(SCOPE)) 36 .then((frame) => { 37 t.add_cleanup(() => frame.remove()); 38 39 return frame.contentWindow.fetch(url, init); 40 }); 41 } 42 43 promise_test((t) => { 44 const key = '{{uuid()}}'; 45 46 return induceRequest( 47 t, 48 makeRequestURL(key, ['httpsOrigin']), 49 {"mode": "no-cors"}, 50 'respondWith' 51 ) 52 .then(() => retrieve(key)) 53 .then((headers) => { 54 assert_own_property(headers, 'sec-fetch-site'); 55 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 56 }); 57 }, 'sec-fetch-site - Same origin, init: mode=no-cors - respondWith'); 58 59 promise_test((t) => { 60 const key = '{{uuid()}}'; 61 62 return induceRequest( 63 t, 64 makeRequestURL(key, ['httpsOrigin']), 65 {"mode": "no-cors"}, 66 'fallback' 67 ) 68 .then(() => retrieve(key)) 69 .then((headers) => { 70 assert_own_property(headers, 'sec-fetch-site'); 71 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 72 }); 73 }, 'sec-fetch-site - Same origin, init: mode=no-cors - fallback'); 74 75 promise_test((t) => { 76 const key = '{{uuid()}}'; 77 78 return induceRequest( 79 t, 80 makeRequestURL(key, ['httpsCrossSite']), 81 {"mode": "no-cors"}, 82 'respondWith' 83 ) 84 .then(() => retrieve(key)) 85 .then((headers) => { 86 assert_own_property(headers, 'sec-fetch-site'); 87 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 88 }); 89 }, 'sec-fetch-site - Cross-site, init: mode=no-cors - respondWith'); 90 91 promise_test((t) => { 92 const key = '{{uuid()}}'; 93 94 return induceRequest( 95 t, 96 makeRequestURL(key, ['httpsCrossSite']), 97 {"mode": "no-cors"}, 98 'fallback' 99 ) 100 .then(() => retrieve(key)) 101 .then((headers) => { 102 assert_own_property(headers, 'sec-fetch-site'); 103 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 104 }); 105 }, 'sec-fetch-site - Cross-site, init: mode=no-cors - fallback'); 106 107 promise_test((t) => { 108 const key = '{{uuid()}}'; 109 110 return induceRequest( 111 t, 112 makeRequestURL(key, ['httpsSameSite']), 113 {"mode": "no-cors"}, 114 'respondWith' 115 ) 116 .then(() => retrieve(key)) 117 .then((headers) => { 118 assert_own_property(headers, 'sec-fetch-site'); 119 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 120 }); 121 }, 'sec-fetch-site - Same site, init: mode=no-cors - respondWith'); 122 123 promise_test((t) => { 124 const key = '{{uuid()}}'; 125 126 return induceRequest( 127 t, 128 makeRequestURL(key, ['httpsSameSite']), 129 {"mode": "no-cors"}, 130 'fallback' 131 ) 132 .then(() => retrieve(key)) 133 .then((headers) => { 134 assert_own_property(headers, 'sec-fetch-site'); 135 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 136 }); 137 }, 'sec-fetch-site - Same site, init: mode=no-cors - fallback'); 138 139 promise_test((t) => { 140 const key = '{{uuid()}}'; 141 142 return induceRequest( 143 t, 144 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin']), 145 {"mode": "no-cors"}, 146 'respondWith' 147 ) 148 .then(() => retrieve(key)) 149 .then((headers) => { 150 assert_own_property(headers, 'sec-fetch-site'); 151 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 152 }); 153 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect, init: mode=no-cors - respondWith'); 154 155 promise_test((t) => { 156 const key = '{{uuid()}}'; 157 158 return induceRequest( 159 t, 160 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin']), 161 {"mode": "no-cors"}, 162 'fallback' 163 ) 164 .then(() => retrieve(key)) 165 .then((headers) => { 166 assert_own_property(headers, 'sec-fetch-site'); 167 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 168 }); 169 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect, init: mode=no-cors - fallback'); 170 171 promise_test((t) => { 172 const key = '{{uuid()}}'; 173 174 return induceRequest( 175 t, 176 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin']), 177 {"mode": "no-cors"}, 178 'respondWith' 179 ) 180 .then(() => retrieve(key)) 181 .then((headers) => { 182 assert_own_property(headers, 'sec-fetch-site'); 183 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 184 }); 185 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect, init: mode=no-cors - respondWith'); 186 187 promise_test((t) => { 188 const key = '{{uuid()}}'; 189 190 return induceRequest( 191 t, 192 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin']), 193 {"mode": "no-cors"}, 194 'fallback' 195 ) 196 .then(() => retrieve(key)) 197 .then((headers) => { 198 assert_own_property(headers, 'sec-fetch-site'); 199 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 200 }); 201 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect, init: mode=no-cors - fallback'); 202 203 promise_test((t) => { 204 const key = '{{uuid()}}'; 205 206 return induceRequest( 207 t, 208 makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin']), 209 {"mode": "no-cors"}, 210 'respondWith' 211 ) 212 .then(() => retrieve(key)) 213 .then((headers) => { 214 assert_own_property(headers, 'sec-fetch-site'); 215 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 216 }); 217 }, 'sec-fetch-site - Cross-Site -> Same Origin, init: mode=no-cors - respondWith'); 218 219 promise_test((t) => { 220 const key = '{{uuid()}}'; 221 222 return induceRequest( 223 t, 224 makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin']), 225 {"mode": "no-cors"}, 226 'fallback' 227 ) 228 .then(() => retrieve(key)) 229 .then((headers) => { 230 assert_own_property(headers, 'sec-fetch-site'); 231 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 232 }); 233 }, 'sec-fetch-site - Cross-Site -> Same Origin, init: mode=no-cors - fallback'); 234 235 promise_test((t) => { 236 const key = '{{uuid()}}'; 237 238 return induceRequest( 239 t, 240 makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite']), 241 {"mode": "no-cors"}, 242 'respondWith' 243 ) 244 .then(() => retrieve(key)) 245 .then((headers) => { 246 assert_own_property(headers, 'sec-fetch-site'); 247 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 248 }); 249 }, 'sec-fetch-site - Cross-Site -> Same-Site, init: mode=no-cors - respondWith'); 250 251 promise_test((t) => { 252 const key = '{{uuid()}}'; 253 254 return induceRequest( 255 t, 256 makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite']), 257 {"mode": "no-cors"}, 258 'fallback' 259 ) 260 .then(() => retrieve(key)) 261 .then((headers) => { 262 assert_own_property(headers, 'sec-fetch-site'); 263 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 264 }); 265 }, 'sec-fetch-site - Cross-Site -> Same-Site, init: mode=no-cors - fallback'); 266 267 promise_test((t) => { 268 const key = '{{uuid()}}'; 269 270 return induceRequest( 271 t, 272 makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite']), 273 {"mode": "no-cors"}, 274 'respondWith' 275 ) 276 .then(() => retrieve(key)) 277 .then((headers) => { 278 assert_own_property(headers, 'sec-fetch-site'); 279 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 280 }); 281 }, 'sec-fetch-site - Cross-Site -> Cross-Site, init: mode=no-cors - respondWith'); 282 283 promise_test((t) => { 284 const key = '{{uuid()}}'; 285 286 return induceRequest( 287 t, 288 makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite']), 289 {"mode": "no-cors"}, 290 'fallback' 291 ) 292 .then(() => retrieve(key)) 293 .then((headers) => { 294 assert_own_property(headers, 'sec-fetch-site'); 295 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 296 }); 297 }, 'sec-fetch-site - Cross-Site -> Cross-Site, init: mode=no-cors - fallback'); 298 299 promise_test((t) => { 300 const key = '{{uuid()}}'; 301 302 return induceRequest( 303 t, 304 makeRequestURL(key, ['httpsOrigin', 'httpsOrigin']), 305 {"mode": "no-cors"}, 306 'respondWith' 307 ) 308 .then(() => retrieve(key)) 309 .then((headers) => { 310 assert_own_property(headers, 'sec-fetch-site'); 311 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 312 }); 313 }, 'sec-fetch-site - Same-Origin -> Same Origin, init: mode=no-cors - respondWith'); 314 315 promise_test((t) => { 316 const key = '{{uuid()}}'; 317 318 return induceRequest( 319 t, 320 makeRequestURL(key, ['httpsOrigin', 'httpsOrigin']), 321 {"mode": "no-cors"}, 322 'fallback' 323 ) 324 .then(() => retrieve(key)) 325 .then((headers) => { 326 assert_own_property(headers, 'sec-fetch-site'); 327 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 328 }); 329 }, 'sec-fetch-site - Same-Origin -> Same Origin, init: mode=no-cors - fallback'); 330 331 promise_test((t) => { 332 const key = '{{uuid()}}'; 333 334 return induceRequest( 335 t, 336 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite']), 337 {"mode": "no-cors"}, 338 'respondWith' 339 ) 340 .then(() => retrieve(key)) 341 .then((headers) => { 342 assert_own_property(headers, 'sec-fetch-site'); 343 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 344 }); 345 }, 'sec-fetch-site - Same-Origin -> Same-Site, init: mode=no-cors - respondWith'); 346 347 promise_test((t) => { 348 const key = '{{uuid()}}'; 349 350 return induceRequest( 351 t, 352 makeRequestURL(key, ['httpsOrigin', 'httpsSameSite']), 353 {"mode": "no-cors"}, 354 'fallback' 355 ) 356 .then(() => retrieve(key)) 357 .then((headers) => { 358 assert_own_property(headers, 'sec-fetch-site'); 359 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 360 }); 361 }, 'sec-fetch-site - Same-Origin -> Same-Site, init: mode=no-cors - fallback'); 362 363 promise_test((t) => { 364 const key = '{{uuid()}}'; 365 366 return induceRequest( 367 t, 368 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite']), 369 {"mode": "no-cors"}, 370 'respondWith' 371 ) 372 .then(() => retrieve(key)) 373 .then((headers) => { 374 assert_own_property(headers, 'sec-fetch-site'); 375 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 376 }); 377 }, 'sec-fetch-site - Same-Origin -> Cross-Site, init: mode=no-cors - respondWith'); 378 379 promise_test((t) => { 380 const key = '{{uuid()}}'; 381 382 return induceRequest( 383 t, 384 makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite']), 385 {"mode": "no-cors"}, 386 'fallback' 387 ) 388 .then(() => retrieve(key)) 389 .then((headers) => { 390 assert_own_property(headers, 'sec-fetch-site'); 391 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 392 }); 393 }, 'sec-fetch-site - Same-Origin -> Cross-Site, init: mode=no-cors - fallback'); 394 395 promise_test((t) => { 396 const key = '{{uuid()}}'; 397 398 return induceRequest( 399 t, 400 makeRequestURL(key, ['httpsSameSite', 'httpsOrigin']), 401 {"mode": "no-cors"}, 402 'respondWith' 403 ) 404 .then(() => retrieve(key)) 405 .then((headers) => { 406 assert_own_property(headers, 'sec-fetch-site'); 407 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 408 }); 409 }, 'sec-fetch-site - Same-Site -> Same Origin, init: mode=no-cors - respondWith'); 410 411 promise_test((t) => { 412 const key = '{{uuid()}}'; 413 414 return induceRequest( 415 t, 416 makeRequestURL(key, ['httpsSameSite', 'httpsOrigin']), 417 {"mode": "no-cors"}, 418 'fallback' 419 ) 420 .then(() => retrieve(key)) 421 .then((headers) => { 422 assert_own_property(headers, 'sec-fetch-site'); 423 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 424 }); 425 }, 'sec-fetch-site - Same-Site -> Same Origin, init: mode=no-cors - fallback'); 426 427 promise_test((t) => { 428 const key = '{{uuid()}}'; 429 430 return induceRequest( 431 t, 432 makeRequestURL(key, ['httpsSameSite', 'httpsSameSite']), 433 {"mode": "no-cors"}, 434 'respondWith' 435 ) 436 .then(() => retrieve(key)) 437 .then((headers) => { 438 assert_own_property(headers, 'sec-fetch-site'); 439 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 440 }); 441 }, 'sec-fetch-site - Same-Site -> Same-Site, init: mode=no-cors - respondWith'); 442 443 promise_test((t) => { 444 const key = '{{uuid()}}'; 445 446 return induceRequest( 447 t, 448 makeRequestURL(key, ['httpsSameSite', 'httpsSameSite']), 449 {"mode": "no-cors"}, 450 'fallback' 451 ) 452 .then(() => retrieve(key)) 453 .then((headers) => { 454 assert_own_property(headers, 'sec-fetch-site'); 455 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 456 }); 457 }, 'sec-fetch-site - Same-Site -> Same-Site, init: mode=no-cors - fallback'); 458 459 promise_test((t) => { 460 const key = '{{uuid()}}'; 461 462 return induceRequest( 463 t, 464 makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite']), 465 {"mode": "no-cors"}, 466 'respondWith' 467 ) 468 .then(() => retrieve(key)) 469 .then((headers) => { 470 assert_own_property(headers, 'sec-fetch-site'); 471 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 472 }); 473 }, 'sec-fetch-site - Same-Site -> Cross-Site, init: mode=no-cors - respondWith'); 474 475 promise_test((t) => { 476 const key = '{{uuid()}}'; 477 478 return induceRequest( 479 t, 480 makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite']), 481 {"mode": "no-cors"}, 482 'fallback' 483 ) 484 .then(() => retrieve(key)) 485 .then((headers) => { 486 assert_own_property(headers, 'sec-fetch-site'); 487 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 488 }); 489 }, 'sec-fetch-site - Same-Site -> Cross-Site, init: mode=no-cors - fallback'); 490 491 promise_test((t) => { 492 const key = '{{uuid()}}'; 493 494 return induceRequest( 495 t, 496 makeRequestURL(key, []), 497 {}, 498 'respondWith' 499 ) 500 .then(() => retrieve(key)) 501 .then((headers) => { 502 assert_own_property(headers, 'sec-fetch-mode'); 503 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 504 }); 505 }, 'sec-fetch-mode - no init - respondWith'); 506 507 promise_test((t) => { 508 const key = '{{uuid()}}'; 509 510 return induceRequest( 511 t, 512 makeRequestURL(key, []), 513 {}, 514 'fallback' 515 ) 516 .then(() => retrieve(key)) 517 .then((headers) => { 518 assert_own_property(headers, 'sec-fetch-mode'); 519 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 520 }); 521 }, 'sec-fetch-mode - no init - fallback'); 522 523 promise_test((t) => { 524 const key = '{{uuid()}}'; 525 526 return induceRequest( 527 t, 528 makeRequestURL(key, []), 529 {"mode": "cors"}, 530 'respondWith' 531 ) 532 .then(() => retrieve(key)) 533 .then((headers) => { 534 assert_own_property(headers, 'sec-fetch-mode'); 535 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 536 }); 537 }, 'sec-fetch-mode - init: mode=cors - respondWith'); 538 539 promise_test((t) => { 540 const key = '{{uuid()}}'; 541 542 return induceRequest( 543 t, 544 makeRequestURL(key, []), 545 {"mode": "cors"}, 546 'fallback' 547 ) 548 .then(() => retrieve(key)) 549 .then((headers) => { 550 assert_own_property(headers, 'sec-fetch-mode'); 551 assert_array_equals(headers['sec-fetch-mode'], ['cors']); 552 }); 553 }, 'sec-fetch-mode - init: mode=cors - fallback'); 554 555 promise_test((t) => { 556 const key = '{{uuid()}}'; 557 558 return induceRequest( 559 t, 560 makeRequestURL(key, []), 561 {"mode": "no-cors"}, 562 'respondWith' 563 ) 564 .then(() => retrieve(key)) 565 .then((headers) => { 566 assert_own_property(headers, 'sec-fetch-mode'); 567 assert_array_equals(headers['sec-fetch-mode'], ['no-cors']); 568 }); 569 }, 'sec-fetch-mode - init: mode=no-cors - respondWith'); 570 571 promise_test((t) => { 572 const key = '{{uuid()}}'; 573 574 return induceRequest( 575 t, 576 makeRequestURL(key, []), 577 {"mode": "no-cors"}, 578 'fallback' 579 ) 580 .then(() => retrieve(key)) 581 .then((headers) => { 582 assert_own_property(headers, 'sec-fetch-mode'); 583 assert_array_equals(headers['sec-fetch-mode'], ['no-cors']); 584 }); 585 }, 'sec-fetch-mode - init: mode=no-cors - fallback'); 586 587 promise_test((t) => { 588 const key = '{{uuid()}}'; 589 590 return induceRequest( 591 t, 592 makeRequestURL(key, []), 593 {"mode": "same-origin"}, 594 'respondWith' 595 ) 596 .then(() => retrieve(key)) 597 .then((headers) => { 598 assert_own_property(headers, 'sec-fetch-mode'); 599 assert_array_equals(headers['sec-fetch-mode'], ['same-origin']); 600 }); 601 }, 'sec-fetch-mode - init: mode=same-origin - respondWith'); 602 603 promise_test((t) => { 604 const key = '{{uuid()}}'; 605 606 return induceRequest( 607 t, 608 makeRequestURL(key, []), 609 {"mode": "same-origin"}, 610 'fallback' 611 ) 612 .then(() => retrieve(key)) 613 .then((headers) => { 614 assert_own_property(headers, 'sec-fetch-mode'); 615 assert_array_equals(headers['sec-fetch-mode'], ['same-origin']); 616 }); 617 }, 'sec-fetch-mode - init: mode=same-origin - fallback'); 618 619 promise_test((t) => { 620 const key = '{{uuid()}}'; 621 622 return induceRequest( 623 t, 624 makeRequestURL(key, []), 625 {}, 626 'respondWith' 627 ) 628 .then(() => retrieve(key)) 629 .then((headers) => { 630 assert_own_property(headers, 'sec-fetch-dest'); 631 assert_array_equals(headers['sec-fetch-dest'], ['empty']); 632 }); 633 }, 'sec-fetch-dest - no init - respondWith'); 634 635 promise_test((t) => { 636 const key = '{{uuid()}}'; 637 638 return induceRequest( 639 t, 640 makeRequestURL(key, []), 641 {}, 642 'fallback' 643 ) 644 .then(() => retrieve(key)) 645 .then((headers) => { 646 assert_own_property(headers, 'sec-fetch-dest'); 647 assert_array_equals(headers['sec-fetch-dest'], ['empty']); 648 }); 649 }, 'sec-fetch-dest - no init - fallback'); 650 651 promise_test((t) => { 652 const key = '{{uuid()}}'; 653 654 return induceRequest( 655 t, 656 makeRequestURL(key, []), 657 {}, 658 'respondWith' 659 ) 660 .then(() => retrieve(key)) 661 .then((headers) => { 662 assert_not_own_property(headers, 'sec-fetch-user'); 663 }); 664 }, 'sec-fetch-user - no init - respondWith'); 665 666 promise_test((t) => { 667 const key = '{{uuid()}}'; 668 669 return induceRequest( 670 t, 671 makeRequestURL(key, []), 672 {}, 673 'fallback' 674 ) 675 .then(() => retrieve(key)) 676 .then((headers) => { 677 assert_not_own_property(headers, 'sec-fetch-user'); 678 }); 679 }, 'sec-fetch-user - no init - fallback'); 680 681 promise_test((t) => { 682 const key = '{{uuid()}}'; 683 684 return induceRequest( 685 t, 686 makeRequestURL(key, ['httpsCrossSite']), 687 {"credentials": "include", "mode": "no-cors"}, 688 'respondWith' 689 ) 690 .then(() => retrieve(key)) 691 .then((headers) => { 692 assert_own_property(headers, 'sec-fetch-storage-access'); 693 assert_array_equals(headers['sec-fetch-storage-access'], ['none']); 694 }); 695 }, 'sec-fetch-storage-access - Cross-site, init: mode=no-cors, credentials=include - respondWith'); 696 697 promise_test((t) => { 698 const key = '{{uuid()}}'; 699 700 return induceRequest( 701 t, 702 makeRequestURL(key, ['httpsCrossSite']), 703 {"credentials": "include", "mode": "no-cors"}, 704 'fallback' 705 ) 706 .then(() => retrieve(key)) 707 .then((headers) => { 708 assert_own_property(headers, 'sec-fetch-storage-access'); 709 assert_array_equals(headers['sec-fetch-storage-access'], ['none']); 710 }); 711 }, 'sec-fetch-storage-access - Cross-site, init: mode=no-cors, credentials=include - fallback'); 712 713 promise_test((t) => { 714 const key = '{{uuid()}}'; 715 716 return induceRequest( 717 t, 718 makeRequestURL(key, ['httpsSameSite']), 719 {"credentials": "include", "mode": "no-cors"}, 720 'respondWith' 721 ) 722 .then(() => retrieve(key)) 723 .then((headers) => { 724 assert_not_own_property(headers, 'sec-fetch-storage-access'); 725 }); 726 }, 'sec-fetch-storage-access - Same site, init: mode=no-cors, credentials=include - respondWith'); 727 728 promise_test((t) => { 729 const key = '{{uuid()}}'; 730 731 return induceRequest( 732 t, 733 makeRequestURL(key, ['httpsSameSite']), 734 {"credentials": "include", "mode": "no-cors"}, 735 'fallback' 736 ) 737 .then(() => retrieve(key)) 738 .then((headers) => { 739 assert_not_own_property(headers, 'sec-fetch-storage-access'); 740 }); 741 }, 'sec-fetch-storage-access - Same site, init: mode=no-cors, credentials=include - fallback'); 742 743 </script> 744 </body> 745 </html>