window-location.https.sub.html (44676B)
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/window-location.sub.html 7 --> 8 <html lang="en"> 9 <meta charset="utf-8"> 10 <meta name="timeout" content="long"> 11 <title>HTTP headers on request for navigation via the HTML Location API</title> 12 <script src="/resources/testharness.js"></script> 13 <script src="/resources/testharnessreport.js"></script> 14 <script src="/resources/testdriver.js"></script> 15 <script src="/resources/testdriver-vendor.js"></script> 16 <script src="/fetch/metadata/resources/helper.sub.js"></script> 17 <body> 18 <script> 19 'use strict'; 20 21 function induceRequest(url, navigate, userActivated) { 22 const win = window.open(); 23 24 return new Promise((resolve) => { 25 addEventListener('message', function(event) { 26 if (event.source === win) { 27 resolve(); 28 } 29 }); 30 31 if (userActivated) { 32 test_driver.bless('enable user activation', () => { 33 navigate(win, url); 34 }); 35 } else { 36 navigate(win, url); 37 } 38 }) 39 .then(() => win.close()); 40 } 41 42 const responseParams = { 43 mime: 'text/html', 44 body: `<script>opener.postMessage('done', '*')</${''}script>` 45 }; 46 47 promise_test(() => { 48 const key = '{{uuid()}}'; 49 const url = makeRequestURL(key, ['httpsOrigin'], responseParams); 50 51 const navigate = (win, path) => { 52 win.location = path; 53 }; 54 return induceRequest(url, navigate, false) 55 .then(() => retrieve(key)) 56 .then((headers) => { 57 assert_own_property(headers, 'sec-fetch-site'); 58 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 59 }); 60 }, 'sec-fetch-site - Same origin - location'); 61 62 promise_test(() => { 63 const key = '{{uuid()}}'; 64 const url = makeRequestURL(key, ['httpsOrigin'], responseParams); 65 66 const navigate = (win, path) => { 67 win.location.href = path; 68 }; 69 return induceRequest(url, navigate, false) 70 .then(() => retrieve(key)) 71 .then((headers) => { 72 assert_own_property(headers, 'sec-fetch-site'); 73 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 74 }); 75 }, 'sec-fetch-site - Same origin - location.href'); 76 77 promise_test(() => { 78 const key = '{{uuid()}}'; 79 const url = makeRequestURL(key, ['httpsOrigin'], responseParams); 80 81 const navigate = (win, path) => { 82 win.location.assign(path); 83 }; 84 return induceRequest(url, navigate, false) 85 .then(() => retrieve(key)) 86 .then((headers) => { 87 assert_own_property(headers, 'sec-fetch-site'); 88 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 89 }); 90 }, 'sec-fetch-site - Same origin - location.assign'); 91 92 promise_test(() => { 93 const key = '{{uuid()}}'; 94 const url = makeRequestURL(key, ['httpsOrigin'], responseParams); 95 96 const navigate = (win, path) => { 97 win.location.replace(path); 98 }; 99 return induceRequest(url, navigate, false) 100 .then(() => retrieve(key)) 101 .then((headers) => { 102 assert_own_property(headers, 'sec-fetch-site'); 103 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 104 }); 105 }, 'sec-fetch-site - Same origin - location.replace'); 106 107 promise_test(() => { 108 const key = '{{uuid()}}'; 109 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 110 111 const navigate = (win, path) => { 112 win.location = path; 113 }; 114 return induceRequest(url, navigate, false) 115 .then(() => retrieve(key)) 116 .then((headers) => { 117 assert_own_property(headers, 'sec-fetch-site'); 118 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 119 }); 120 }, 'sec-fetch-site - Cross-site - location'); 121 122 promise_test(() => { 123 const key = '{{uuid()}}'; 124 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 125 126 const navigate = (win, path) => { 127 win.location.href = path; 128 }; 129 return induceRequest(url, navigate, false) 130 .then(() => retrieve(key)) 131 .then((headers) => { 132 assert_own_property(headers, 'sec-fetch-site'); 133 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 134 }); 135 }, 'sec-fetch-site - Cross-site - location.href'); 136 137 promise_test(() => { 138 const key = '{{uuid()}}'; 139 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 140 141 const navigate = (win, path) => { 142 win.location.assign(path); 143 }; 144 return induceRequest(url, navigate, false) 145 .then(() => retrieve(key)) 146 .then((headers) => { 147 assert_own_property(headers, 'sec-fetch-site'); 148 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 149 }); 150 }, 'sec-fetch-site - Cross-site - location.assign'); 151 152 promise_test(() => { 153 const key = '{{uuid()}}'; 154 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 155 156 const navigate = (win, path) => { 157 win.location.replace(path); 158 }; 159 return induceRequest(url, navigate, false) 160 .then(() => retrieve(key)) 161 .then((headers) => { 162 assert_own_property(headers, 'sec-fetch-site'); 163 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 164 }); 165 }, 'sec-fetch-site - Cross-site - location.replace'); 166 167 promise_test(() => { 168 const key = '{{uuid()}}'; 169 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 170 171 const navigate = (win, path) => { 172 win.location = path; 173 }; 174 return induceRequest(url, navigate, false) 175 .then(() => retrieve(key)) 176 .then((headers) => { 177 assert_own_property(headers, 'sec-fetch-site'); 178 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 179 }); 180 }, 'sec-fetch-site - Same site - location'); 181 182 promise_test(() => { 183 const key = '{{uuid()}}'; 184 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 185 186 const navigate = (win, path) => { 187 win.location.href = path; 188 }; 189 return induceRequest(url, navigate, false) 190 .then(() => retrieve(key)) 191 .then((headers) => { 192 assert_own_property(headers, 'sec-fetch-site'); 193 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 194 }); 195 }, 'sec-fetch-site - Same site - location.href'); 196 197 promise_test(() => { 198 const key = '{{uuid()}}'; 199 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 200 201 const navigate = (win, path) => { 202 win.location.assign(path); 203 }; 204 return induceRequest(url, navigate, false) 205 .then(() => retrieve(key)) 206 .then((headers) => { 207 assert_own_property(headers, 'sec-fetch-site'); 208 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 209 }); 210 }, 'sec-fetch-site - Same site - location.assign'); 211 212 promise_test(() => { 213 const key = '{{uuid()}}'; 214 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 215 216 const navigate = (win, path) => { 217 win.location.replace(path); 218 }; 219 return induceRequest(url, navigate, false) 220 .then(() => retrieve(key)) 221 .then((headers) => { 222 assert_own_property(headers, 'sec-fetch-site'); 223 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 224 }); 225 }, 'sec-fetch-site - Same site - location.replace'); 226 227 promise_test(() => { 228 const key = '{{uuid()}}'; 229 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams); 230 231 const navigate = (win, path) => { 232 win.location = path; 233 }; 234 return induceRequest(url, navigate, false) 235 .then(() => retrieve(key)) 236 .then((headers) => { 237 assert_own_property(headers, 'sec-fetch-site'); 238 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 239 }); 240 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location'); 241 242 promise_test(() => { 243 const key = '{{uuid()}}'; 244 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams); 245 246 const navigate = (win, path) => { 247 win.location.href = path; 248 }; 249 return induceRequest(url, navigate, false) 250 .then(() => retrieve(key)) 251 .then((headers) => { 252 assert_own_property(headers, 'sec-fetch-site'); 253 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 254 }); 255 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.href'); 256 257 promise_test(() => { 258 const key = '{{uuid()}}'; 259 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams); 260 261 const navigate = (win, path) => { 262 win.location.assign(path); 263 }; 264 return induceRequest(url, navigate, false) 265 .then(() => retrieve(key)) 266 .then((headers) => { 267 assert_own_property(headers, 'sec-fetch-site'); 268 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 269 }); 270 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.assign'); 271 272 promise_test(() => { 273 const key = '{{uuid()}}'; 274 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite', 'httpsOrigin'], responseParams); 275 276 const navigate = (win, path) => { 277 win.location.replace(path); 278 }; 279 return induceRequest(url, navigate, false) 280 .then(() => retrieve(key)) 281 .then((headers) => { 282 assert_own_property(headers, 'sec-fetch-site'); 283 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 284 }); 285 }, 'sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect - location.replace'); 286 287 promise_test(() => { 288 const key = '{{uuid()}}'; 289 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams); 290 291 const navigate = (win, path) => { 292 win.location = path; 293 }; 294 return induceRequest(url, navigate, false) 295 .then(() => retrieve(key)) 296 .then((headers) => { 297 assert_own_property(headers, 'sec-fetch-site'); 298 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 299 }); 300 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location'); 301 302 promise_test(() => { 303 const key = '{{uuid()}}'; 304 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams); 305 306 const navigate = (win, path) => { 307 win.location.href = path; 308 }; 309 return induceRequest(url, navigate, false) 310 .then(() => retrieve(key)) 311 .then((headers) => { 312 assert_own_property(headers, 'sec-fetch-site'); 313 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 314 }); 315 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location.href'); 316 317 promise_test(() => { 318 const key = '{{uuid()}}'; 319 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams); 320 321 const navigate = (win, path) => { 322 win.location.assign(path); 323 }; 324 return induceRequest(url, navigate, false) 325 .then(() => retrieve(key)) 326 .then((headers) => { 327 assert_own_property(headers, 'sec-fetch-site'); 328 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 329 }); 330 }, 'sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect - location.assign'); 331 332 promise_test(() => { 333 const key = '{{uuid()}}'; 334 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite', 'httpsOrigin'], responseParams); 335 336 const navigate = (win, path) => { 337 win.location.replace(path); 338 }; 339 return induceRequest(url, navigate, false) 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 -> Same-Origin redirect - location.replace'); 346 347 promise_test(() => { 348 const key = '{{uuid()}}'; 349 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams); 350 351 const navigate = (win, path) => { 352 win.location = path; 353 }; 354 return induceRequest(url, navigate, false) 355 .then(() => retrieve(key)) 356 .then((headers) => { 357 assert_own_property(headers, 'sec-fetch-site'); 358 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 359 }); 360 }, 'sec-fetch-site - Cross-Site -> Same Origin - location'); 361 362 promise_test(() => { 363 const key = '{{uuid()}}'; 364 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams); 365 366 const navigate = (win, path) => { 367 win.location.href = path; 368 }; 369 return induceRequest(url, navigate, false) 370 .then(() => retrieve(key)) 371 .then((headers) => { 372 assert_own_property(headers, 'sec-fetch-site'); 373 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 374 }); 375 }, 'sec-fetch-site - Cross-Site -> Same Origin - location.href'); 376 377 promise_test(() => { 378 const key = '{{uuid()}}'; 379 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams); 380 381 const navigate = (win, path) => { 382 win.location.assign(path); 383 }; 384 return induceRequest(url, navigate, false) 385 .then(() => retrieve(key)) 386 .then((headers) => { 387 assert_own_property(headers, 'sec-fetch-site'); 388 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 389 }); 390 }, 'sec-fetch-site - Cross-Site -> Same Origin - location.assign'); 391 392 promise_test(() => { 393 const key = '{{uuid()}}'; 394 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsOrigin'], responseParams); 395 396 const navigate = (win, path) => { 397 win.location.replace(path); 398 }; 399 return induceRequest(url, navigate, false) 400 .then(() => retrieve(key)) 401 .then((headers) => { 402 assert_own_property(headers, 'sec-fetch-site'); 403 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 404 }); 405 }, 'sec-fetch-site - Cross-Site -> Same Origin - location.replace'); 406 407 promise_test(() => { 408 const key = '{{uuid()}}'; 409 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams); 410 411 const navigate = (win, path) => { 412 win.location = path; 413 }; 414 return induceRequest(url, navigate, false) 415 .then(() => retrieve(key)) 416 .then((headers) => { 417 assert_own_property(headers, 'sec-fetch-site'); 418 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 419 }); 420 }, 'sec-fetch-site - Cross-Site -> Same-Site - location'); 421 422 promise_test(() => { 423 const key = '{{uuid()}}'; 424 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams); 425 426 const navigate = (win, path) => { 427 win.location.href = path; 428 }; 429 return induceRequest(url, navigate, false) 430 .then(() => retrieve(key)) 431 .then((headers) => { 432 assert_own_property(headers, 'sec-fetch-site'); 433 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 434 }); 435 }, 'sec-fetch-site - Cross-Site -> Same-Site - location.href'); 436 437 promise_test(() => { 438 const key = '{{uuid()}}'; 439 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams); 440 441 const navigate = (win, path) => { 442 win.location.assign(path); 443 }; 444 return induceRequest(url, navigate, false) 445 .then(() => retrieve(key)) 446 .then((headers) => { 447 assert_own_property(headers, 'sec-fetch-site'); 448 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 449 }); 450 }, 'sec-fetch-site - Cross-Site -> Same-Site - location.assign'); 451 452 promise_test(() => { 453 const key = '{{uuid()}}'; 454 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsSameSite'], responseParams); 455 456 const navigate = (win, path) => { 457 win.location.replace(path); 458 }; 459 return induceRequest(url, navigate, false) 460 .then(() => retrieve(key)) 461 .then((headers) => { 462 assert_own_property(headers, 'sec-fetch-site'); 463 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 464 }); 465 }, 'sec-fetch-site - Cross-Site -> Same-Site - location.replace'); 466 467 promise_test(() => { 468 const key = '{{uuid()}}'; 469 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams); 470 471 const navigate = (win, path) => { 472 win.location = path; 473 }; 474 return induceRequest(url, navigate, false) 475 .then(() => retrieve(key)) 476 .then((headers) => { 477 assert_own_property(headers, 'sec-fetch-site'); 478 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 479 }); 480 }, 'sec-fetch-site - Cross-Site -> Cross-Site - location'); 481 482 promise_test(() => { 483 const key = '{{uuid()}}'; 484 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams); 485 486 const navigate = (win, path) => { 487 win.location.href = path; 488 }; 489 return induceRequest(url, navigate, false) 490 .then(() => retrieve(key)) 491 .then((headers) => { 492 assert_own_property(headers, 'sec-fetch-site'); 493 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 494 }); 495 }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.href'); 496 497 promise_test(() => { 498 const key = '{{uuid()}}'; 499 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams); 500 501 const navigate = (win, path) => { 502 win.location.assign(path); 503 }; 504 return induceRequest(url, navigate, false) 505 .then(() => retrieve(key)) 506 .then((headers) => { 507 assert_own_property(headers, 'sec-fetch-site'); 508 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 509 }); 510 }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.assign'); 511 512 promise_test(() => { 513 const key = '{{uuid()}}'; 514 const url = makeRequestURL(key, ['httpsCrossSite', 'httpsCrossSite'], responseParams); 515 516 const navigate = (win, path) => { 517 win.location.replace(path); 518 }; 519 return induceRequest(url, navigate, false) 520 .then(() => retrieve(key)) 521 .then((headers) => { 522 assert_own_property(headers, 'sec-fetch-site'); 523 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 524 }); 525 }, 'sec-fetch-site - Cross-Site -> Cross-Site - location.replace'); 526 527 promise_test(() => { 528 const key = '{{uuid()}}'; 529 const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams); 530 531 const navigate = (win, path) => { 532 win.location = path; 533 }; 534 return induceRequest(url, navigate, false) 535 .then(() => retrieve(key)) 536 .then((headers) => { 537 assert_own_property(headers, 'sec-fetch-site'); 538 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 539 }); 540 }, 'sec-fetch-site - Same-Origin -> Same Origin - location'); 541 542 promise_test(() => { 543 const key = '{{uuid()}}'; 544 const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams); 545 546 const navigate = (win, path) => { 547 win.location.href = path; 548 }; 549 return induceRequest(url, navigate, false) 550 .then(() => retrieve(key)) 551 .then((headers) => { 552 assert_own_property(headers, 'sec-fetch-site'); 553 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 554 }); 555 }, 'sec-fetch-site - Same-Origin -> Same Origin - location.href'); 556 557 promise_test(() => { 558 const key = '{{uuid()}}'; 559 const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams); 560 561 const navigate = (win, path) => { 562 win.location.assign(path); 563 }; 564 return induceRequest(url, navigate, false) 565 .then(() => retrieve(key)) 566 .then((headers) => { 567 assert_own_property(headers, 'sec-fetch-site'); 568 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 569 }); 570 }, 'sec-fetch-site - Same-Origin -> Same Origin - location.assign'); 571 572 promise_test(() => { 573 const key = '{{uuid()}}'; 574 const url = makeRequestURL(key, ['httpsOrigin', 'httpsOrigin'], responseParams); 575 576 const navigate = (win, path) => { 577 win.location.replace(path); 578 }; 579 return induceRequest(url, navigate, false) 580 .then(() => retrieve(key)) 581 .then((headers) => { 582 assert_own_property(headers, 'sec-fetch-site'); 583 assert_array_equals(headers['sec-fetch-site'], ['same-origin']); 584 }); 585 }, 'sec-fetch-site - Same-Origin -> Same Origin - location.replace'); 586 587 promise_test(() => { 588 const key = '{{uuid()}}'; 589 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams); 590 591 const navigate = (win, path) => { 592 win.location = path; 593 }; 594 return induceRequest(url, navigate, false) 595 .then(() => retrieve(key)) 596 .then((headers) => { 597 assert_own_property(headers, 'sec-fetch-site'); 598 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 599 }); 600 }, 'sec-fetch-site - Same-Origin -> Same-Site - location'); 601 602 promise_test(() => { 603 const key = '{{uuid()}}'; 604 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams); 605 606 const navigate = (win, path) => { 607 win.location.href = path; 608 }; 609 return induceRequest(url, navigate, false) 610 .then(() => retrieve(key)) 611 .then((headers) => { 612 assert_own_property(headers, 'sec-fetch-site'); 613 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 614 }); 615 }, 'sec-fetch-site - Same-Origin -> Same-Site - location.href'); 616 617 promise_test(() => { 618 const key = '{{uuid()}}'; 619 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams); 620 621 const navigate = (win, path) => { 622 win.location.assign(path); 623 }; 624 return induceRequest(url, navigate, false) 625 .then(() => retrieve(key)) 626 .then((headers) => { 627 assert_own_property(headers, 'sec-fetch-site'); 628 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 629 }); 630 }, 'sec-fetch-site - Same-Origin -> Same-Site - location.assign'); 631 632 promise_test(() => { 633 const key = '{{uuid()}}'; 634 const url = makeRequestURL(key, ['httpsOrigin', 'httpsSameSite'], responseParams); 635 636 const navigate = (win, path) => { 637 win.location.replace(path); 638 }; 639 return induceRequest(url, navigate, false) 640 .then(() => retrieve(key)) 641 .then((headers) => { 642 assert_own_property(headers, 'sec-fetch-site'); 643 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 644 }); 645 }, 'sec-fetch-site - Same-Origin -> Same-Site - location.replace'); 646 647 promise_test(() => { 648 const key = '{{uuid()}}'; 649 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams); 650 651 const navigate = (win, path) => { 652 win.location = path; 653 }; 654 return induceRequest(url, navigate, false) 655 .then(() => retrieve(key)) 656 .then((headers) => { 657 assert_own_property(headers, 'sec-fetch-site'); 658 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 659 }); 660 }, 'sec-fetch-site - Same-Origin -> Cross-Site - location'); 661 662 promise_test(() => { 663 const key = '{{uuid()}}'; 664 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams); 665 666 const navigate = (win, path) => { 667 win.location.href = path; 668 }; 669 return induceRequest(url, navigate, false) 670 .then(() => retrieve(key)) 671 .then((headers) => { 672 assert_own_property(headers, 'sec-fetch-site'); 673 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 674 }); 675 }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.href'); 676 677 promise_test(() => { 678 const key = '{{uuid()}}'; 679 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams); 680 681 const navigate = (win, path) => { 682 win.location.assign(path); 683 }; 684 return induceRequest(url, navigate, false) 685 .then(() => retrieve(key)) 686 .then((headers) => { 687 assert_own_property(headers, 'sec-fetch-site'); 688 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 689 }); 690 }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.assign'); 691 692 promise_test(() => { 693 const key = '{{uuid()}}'; 694 const url = makeRequestURL(key, ['httpsOrigin', 'httpsCrossSite'], responseParams); 695 696 const navigate = (win, path) => { 697 win.location.replace(path); 698 }; 699 return induceRequest(url, navigate, false) 700 .then(() => retrieve(key)) 701 .then((headers) => { 702 assert_own_property(headers, 'sec-fetch-site'); 703 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 704 }); 705 }, 'sec-fetch-site - Same-Origin -> Cross-Site - location.replace'); 706 707 promise_test(() => { 708 const key = '{{uuid()}}'; 709 const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams); 710 711 const navigate = (win, path) => { 712 win.location = path; 713 }; 714 return induceRequest(url, navigate, false) 715 .then(() => retrieve(key)) 716 .then((headers) => { 717 assert_own_property(headers, 'sec-fetch-site'); 718 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 719 }); 720 }, 'sec-fetch-site - Same-Site -> Same Origin - location'); 721 722 promise_test(() => { 723 const key = '{{uuid()}}'; 724 const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams); 725 726 const navigate = (win, path) => { 727 win.location.href = path; 728 }; 729 return induceRequest(url, navigate, false) 730 .then(() => retrieve(key)) 731 .then((headers) => { 732 assert_own_property(headers, 'sec-fetch-site'); 733 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 734 }); 735 }, 'sec-fetch-site - Same-Site -> Same Origin - location.href'); 736 737 promise_test(() => { 738 const key = '{{uuid()}}'; 739 const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams); 740 741 const navigate = (win, path) => { 742 win.location.assign(path); 743 }; 744 return induceRequest(url, navigate, false) 745 .then(() => retrieve(key)) 746 .then((headers) => { 747 assert_own_property(headers, 'sec-fetch-site'); 748 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 749 }); 750 }, 'sec-fetch-site - Same-Site -> Same Origin - location.assign'); 751 752 promise_test(() => { 753 const key = '{{uuid()}}'; 754 const url = makeRequestURL(key, ['httpsSameSite', 'httpsOrigin'], responseParams); 755 756 const navigate = (win, path) => { 757 win.location.replace(path); 758 }; 759 return induceRequest(url, navigate, false) 760 .then(() => retrieve(key)) 761 .then((headers) => { 762 assert_own_property(headers, 'sec-fetch-site'); 763 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 764 }); 765 }, 'sec-fetch-site - Same-Site -> Same Origin - location.replace'); 766 767 promise_test(() => { 768 const key = '{{uuid()}}'; 769 const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams); 770 771 const navigate = (win, path) => { 772 win.location = path; 773 }; 774 return induceRequest(url, navigate, false) 775 .then(() => retrieve(key)) 776 .then((headers) => { 777 assert_own_property(headers, 'sec-fetch-site'); 778 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 779 }); 780 }, 'sec-fetch-site - Same-Site -> Same-Site - location'); 781 782 promise_test(() => { 783 const key = '{{uuid()}}'; 784 const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams); 785 786 const navigate = (win, path) => { 787 win.location.href = path; 788 }; 789 return induceRequest(url, navigate, false) 790 .then(() => retrieve(key)) 791 .then((headers) => { 792 assert_own_property(headers, 'sec-fetch-site'); 793 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 794 }); 795 }, 'sec-fetch-site - Same-Site -> Same-Site - location.href'); 796 797 promise_test(() => { 798 const key = '{{uuid()}}'; 799 const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams); 800 801 const navigate = (win, path) => { 802 win.location.assign(path); 803 }; 804 return induceRequest(url, navigate, false) 805 .then(() => retrieve(key)) 806 .then((headers) => { 807 assert_own_property(headers, 'sec-fetch-site'); 808 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 809 }); 810 }, 'sec-fetch-site - Same-Site -> Same-Site - location.assign'); 811 812 promise_test(() => { 813 const key = '{{uuid()}}'; 814 const url = makeRequestURL(key, ['httpsSameSite', 'httpsSameSite'], responseParams); 815 816 const navigate = (win, path) => { 817 win.location.replace(path); 818 }; 819 return induceRequest(url, navigate, false) 820 .then(() => retrieve(key)) 821 .then((headers) => { 822 assert_own_property(headers, 'sec-fetch-site'); 823 assert_array_equals(headers['sec-fetch-site'], ['same-site']); 824 }); 825 }, 'sec-fetch-site - Same-Site -> Same-Site - location.replace'); 826 827 promise_test(() => { 828 const key = '{{uuid()}}'; 829 const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams); 830 831 const navigate = (win, path) => { 832 win.location = path; 833 }; 834 return induceRequest(url, navigate, false) 835 .then(() => retrieve(key)) 836 .then((headers) => { 837 assert_own_property(headers, 'sec-fetch-site'); 838 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 839 }); 840 }, 'sec-fetch-site - Same-Site -> Cross-Site - location'); 841 842 promise_test(() => { 843 const key = '{{uuid()}}'; 844 const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams); 845 846 const navigate = (win, path) => { 847 win.location.href = path; 848 }; 849 return induceRequest(url, navigate, false) 850 .then(() => retrieve(key)) 851 .then((headers) => { 852 assert_own_property(headers, 'sec-fetch-site'); 853 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 854 }); 855 }, 'sec-fetch-site - Same-Site -> Cross-Site - location.href'); 856 857 promise_test(() => { 858 const key = '{{uuid()}}'; 859 const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams); 860 861 const navigate = (win, path) => { 862 win.location.assign(path); 863 }; 864 return induceRequest(url, navigate, false) 865 .then(() => retrieve(key)) 866 .then((headers) => { 867 assert_own_property(headers, 'sec-fetch-site'); 868 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 869 }); 870 }, 'sec-fetch-site - Same-Site -> Cross-Site - location.assign'); 871 872 promise_test(() => { 873 const key = '{{uuid()}}'; 874 const url = makeRequestURL(key, ['httpsSameSite', 'httpsCrossSite'], responseParams); 875 876 const navigate = (win, path) => { 877 win.location.replace(path); 878 }; 879 return induceRequest(url, navigate, false) 880 .then(() => retrieve(key)) 881 .then((headers) => { 882 assert_own_property(headers, 'sec-fetch-site'); 883 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 884 }); 885 }, 'sec-fetch-site - Same-Site -> Cross-Site - location.replace'); 886 887 promise_test(() => { 888 const key = '{{uuid()}}'; 889 const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams); 890 891 const navigate = (win, path) => { 892 win.location = path; 893 }; 894 return induceRequest(url, navigate, false) 895 .then(() => retrieve(key)) 896 .then((headers) => { 897 assert_own_property(headers, 'sec-fetch-site'); 898 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 899 }); 900 }, 'sec-fetch-site - HTTPS downgrade-upgrade - location'); 901 902 promise_test(() => { 903 const key = '{{uuid()}}'; 904 const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams); 905 906 const navigate = (win, path) => { 907 win.location.href = path; 908 }; 909 return induceRequest(url, navigate, false) 910 .then(() => retrieve(key)) 911 .then((headers) => { 912 assert_own_property(headers, 'sec-fetch-site'); 913 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 914 }); 915 }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.href'); 916 917 promise_test(() => { 918 const key = '{{uuid()}}'; 919 const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams); 920 921 const navigate = (win, path) => { 922 win.location.assign(path); 923 }; 924 return induceRequest(url, navigate, false) 925 .then(() => retrieve(key)) 926 .then((headers) => { 927 assert_own_property(headers, 'sec-fetch-site'); 928 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 929 }); 930 }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.assign'); 931 932 promise_test(() => { 933 const key = '{{uuid()}}'; 934 const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin', 'httpsOrigin'], responseParams); 935 936 const navigate = (win, path) => { 937 win.location.replace(path); 938 }; 939 return induceRequest(url, navigate, false) 940 .then(() => retrieve(key)) 941 .then((headers) => { 942 assert_own_property(headers, 'sec-fetch-site'); 943 assert_array_equals(headers['sec-fetch-site'], ['cross-site']); 944 }); 945 }, 'sec-fetch-site - HTTPS downgrade-upgrade - location.replace'); 946 947 promise_test(() => { 948 const key = '{{uuid()}}'; 949 const url = makeRequestURL(key, [], responseParams); 950 951 const navigate = (win, path) => { 952 win.location = path; 953 }; 954 return induceRequest(url, navigate, false) 955 .then(() => retrieve(key)) 956 .then((headers) => { 957 assert_own_property(headers, 'sec-fetch-mode'); 958 assert_array_equals(headers['sec-fetch-mode'], ['navigate']); 959 }); 960 }, 'sec-fetch-mode - location'); 961 962 promise_test(() => { 963 const key = '{{uuid()}}'; 964 const url = makeRequestURL(key, [], responseParams); 965 966 const navigate = (win, path) => { 967 win.location.href = path; 968 }; 969 return induceRequest(url, navigate, false) 970 .then(() => retrieve(key)) 971 .then((headers) => { 972 assert_own_property(headers, 'sec-fetch-mode'); 973 assert_array_equals(headers['sec-fetch-mode'], ['navigate']); 974 }); 975 }, 'sec-fetch-mode - location.href'); 976 977 promise_test(() => { 978 const key = '{{uuid()}}'; 979 const url = makeRequestURL(key, [], responseParams); 980 981 const navigate = (win, path) => { 982 win.location.assign(path); 983 }; 984 return induceRequest(url, navigate, false) 985 .then(() => retrieve(key)) 986 .then((headers) => { 987 assert_own_property(headers, 'sec-fetch-mode'); 988 assert_array_equals(headers['sec-fetch-mode'], ['navigate']); 989 }); 990 }, 'sec-fetch-mode - location.assign'); 991 992 promise_test(() => { 993 const key = '{{uuid()}}'; 994 const url = makeRequestURL(key, [], responseParams); 995 996 const navigate = (win, path) => { 997 win.location.replace(path); 998 }; 999 return induceRequest(url, navigate, false) 1000 .then(() => retrieve(key)) 1001 .then((headers) => { 1002 assert_own_property(headers, 'sec-fetch-mode'); 1003 assert_array_equals(headers['sec-fetch-mode'], ['navigate']); 1004 }); 1005 }, 'sec-fetch-mode - location.replace'); 1006 1007 promise_test(() => { 1008 const key = '{{uuid()}}'; 1009 const url = makeRequestURL(key, [], responseParams); 1010 1011 const navigate = (win, path) => { 1012 win.location = path; 1013 }; 1014 return induceRequest(url, navigate, false) 1015 .then(() => retrieve(key)) 1016 .then((headers) => { 1017 assert_own_property(headers, 'sec-fetch-dest'); 1018 assert_array_equals(headers['sec-fetch-dest'], ['document']); 1019 }); 1020 }, 'sec-fetch-dest - location'); 1021 1022 promise_test(() => { 1023 const key = '{{uuid()}}'; 1024 const url = makeRequestURL(key, [], responseParams); 1025 1026 const navigate = (win, path) => { 1027 win.location.href = path; 1028 }; 1029 return induceRequest(url, navigate, false) 1030 .then(() => retrieve(key)) 1031 .then((headers) => { 1032 assert_own_property(headers, 'sec-fetch-dest'); 1033 assert_array_equals(headers['sec-fetch-dest'], ['document']); 1034 }); 1035 }, 'sec-fetch-dest - location.href'); 1036 1037 promise_test(() => { 1038 const key = '{{uuid()}}'; 1039 const url = makeRequestURL(key, [], responseParams); 1040 1041 const navigate = (win, path) => { 1042 win.location.assign(path); 1043 }; 1044 return induceRequest(url, navigate, false) 1045 .then(() => retrieve(key)) 1046 .then((headers) => { 1047 assert_own_property(headers, 'sec-fetch-dest'); 1048 assert_array_equals(headers['sec-fetch-dest'], ['document']); 1049 }); 1050 }, 'sec-fetch-dest - location.assign'); 1051 1052 promise_test(() => { 1053 const key = '{{uuid()}}'; 1054 const url = makeRequestURL(key, [], responseParams); 1055 1056 const navigate = (win, path) => { 1057 win.location.replace(path); 1058 }; 1059 return induceRequest(url, navigate, false) 1060 .then(() => retrieve(key)) 1061 .then((headers) => { 1062 assert_own_property(headers, 'sec-fetch-dest'); 1063 assert_array_equals(headers['sec-fetch-dest'], ['document']); 1064 }); 1065 }, 'sec-fetch-dest - location.replace'); 1066 1067 promise_test(() => { 1068 const key = '{{uuid()}}'; 1069 const url = makeRequestURL(key, [], responseParams); 1070 1071 const navigate = (win, path) => { 1072 win.location = path; 1073 }; 1074 return induceRequest(url, navigate, false) 1075 .then(() => retrieve(key)) 1076 .then((headers) => { 1077 assert_not_own_property(headers, 'sec-fetch-user'); 1078 }); 1079 }, 'sec-fetch-user - location'); 1080 1081 promise_test(() => { 1082 const key = '{{uuid()}}'; 1083 const url = makeRequestURL(key, [], responseParams); 1084 1085 const navigate = (win, path) => { 1086 win.location.href = path; 1087 }; 1088 return induceRequest(url, navigate, false) 1089 .then(() => retrieve(key)) 1090 .then((headers) => { 1091 assert_not_own_property(headers, 'sec-fetch-user'); 1092 }); 1093 }, 'sec-fetch-user - location.href'); 1094 1095 promise_test(() => { 1096 const key = '{{uuid()}}'; 1097 const url = makeRequestURL(key, [], responseParams); 1098 1099 const navigate = (win, path) => { 1100 win.location.assign(path); 1101 }; 1102 return induceRequest(url, navigate, false) 1103 .then(() => retrieve(key)) 1104 .then((headers) => { 1105 assert_not_own_property(headers, 'sec-fetch-user'); 1106 }); 1107 }, 'sec-fetch-user - location.assign'); 1108 1109 promise_test(() => { 1110 const key = '{{uuid()}}'; 1111 const url = makeRequestURL(key, [], responseParams); 1112 1113 const navigate = (win, path) => { 1114 win.location.replace(path); 1115 }; 1116 return induceRequest(url, navigate, false) 1117 .then(() => retrieve(key)) 1118 .then((headers) => { 1119 assert_not_own_property(headers, 'sec-fetch-user'); 1120 }); 1121 }, 'sec-fetch-user - location.replace'); 1122 1123 promise_test(() => { 1124 const key = '{{uuid()}}'; 1125 const url = makeRequestURL(key, [], responseParams); 1126 1127 const navigate = (win, path) => { 1128 win.location = path; 1129 }; 1130 return induceRequest(url, navigate, true) 1131 .then(() => retrieve(key)) 1132 .then((headers) => { 1133 assert_own_property(headers, 'sec-fetch-user'); 1134 assert_array_equals(headers['sec-fetch-user'], ['?1']); 1135 }); 1136 }, 'sec-fetch-user - location with user activation'); 1137 1138 promise_test(() => { 1139 const key = '{{uuid()}}'; 1140 const url = makeRequestURL(key, [], responseParams); 1141 1142 const navigate = (win, path) => { 1143 win.location.href = path; 1144 }; 1145 return induceRequest(url, navigate, true) 1146 .then(() => retrieve(key)) 1147 .then((headers) => { 1148 assert_own_property(headers, 'sec-fetch-user'); 1149 assert_array_equals(headers['sec-fetch-user'], ['?1']); 1150 }); 1151 }, 'sec-fetch-user - location.href with user activation'); 1152 1153 promise_test(() => { 1154 const key = '{{uuid()}}'; 1155 const url = makeRequestURL(key, [], responseParams); 1156 1157 const navigate = (win, path) => { 1158 win.location.assign(path); 1159 }; 1160 return induceRequest(url, navigate, true) 1161 .then(() => retrieve(key)) 1162 .then((headers) => { 1163 assert_own_property(headers, 'sec-fetch-user'); 1164 assert_array_equals(headers['sec-fetch-user'], ['?1']); 1165 }); 1166 }, 'sec-fetch-user - location.assign with user activation'); 1167 1168 promise_test(() => { 1169 const key = '{{uuid()}}'; 1170 const url = makeRequestURL(key, [], responseParams); 1171 1172 const navigate = (win, path) => { 1173 win.location.replace(path); 1174 }; 1175 return induceRequest(url, navigate, true) 1176 .then(() => retrieve(key)) 1177 .then((headers) => { 1178 assert_own_property(headers, 'sec-fetch-user'); 1179 assert_array_equals(headers['sec-fetch-user'], ['?1']); 1180 }); 1181 }, 'sec-fetch-user - location.replace with user activation'); 1182 1183 promise_test(() => { 1184 const key = '{{uuid()}}'; 1185 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 1186 1187 const navigate = (win, path) => { 1188 win.location = path; 1189 }; 1190 return induceRequest(url, navigate, false) 1191 .then(() => retrieve(key)) 1192 .then((headers) => { 1193 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1194 }); 1195 }, 'sec-fetch-storage-access - Cross-site - location'); 1196 1197 promise_test(() => { 1198 const key = '{{uuid()}}'; 1199 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 1200 1201 const navigate = (win, path) => { 1202 win.location.href = path; 1203 }; 1204 return induceRequest(url, navigate, false) 1205 .then(() => retrieve(key)) 1206 .then((headers) => { 1207 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1208 }); 1209 }, 'sec-fetch-storage-access - Cross-site - location.href'); 1210 1211 promise_test(() => { 1212 const key = '{{uuid()}}'; 1213 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 1214 1215 const navigate = (win, path) => { 1216 win.location.assign(path); 1217 }; 1218 return induceRequest(url, navigate, false) 1219 .then(() => retrieve(key)) 1220 .then((headers) => { 1221 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1222 }); 1223 }, 'sec-fetch-storage-access - Cross-site - location.assign'); 1224 1225 promise_test(() => { 1226 const key = '{{uuid()}}'; 1227 const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); 1228 1229 const navigate = (win, path) => { 1230 win.location.replace(path); 1231 }; 1232 return induceRequest(url, navigate, false) 1233 .then(() => retrieve(key)) 1234 .then((headers) => { 1235 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1236 }); 1237 }, 'sec-fetch-storage-access - Cross-site - location.replace'); 1238 1239 promise_test(() => { 1240 const key = '{{uuid()}}'; 1241 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 1242 1243 const navigate = (win, path) => { 1244 win.location = path; 1245 }; 1246 return induceRequest(url, navigate, false) 1247 .then(() => retrieve(key)) 1248 .then((headers) => { 1249 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1250 }); 1251 }, 'sec-fetch-storage-access - Same site - location'); 1252 1253 promise_test(() => { 1254 const key = '{{uuid()}}'; 1255 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 1256 1257 const navigate = (win, path) => { 1258 win.location.href = path; 1259 }; 1260 return induceRequest(url, navigate, false) 1261 .then(() => retrieve(key)) 1262 .then((headers) => { 1263 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1264 }); 1265 }, 'sec-fetch-storage-access - Same site - location.href'); 1266 1267 promise_test(() => { 1268 const key = '{{uuid()}}'; 1269 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 1270 1271 const navigate = (win, path) => { 1272 win.location.assign(path); 1273 }; 1274 return induceRequest(url, navigate, false) 1275 .then(() => retrieve(key)) 1276 .then((headers) => { 1277 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1278 }); 1279 }, 'sec-fetch-storage-access - Same site - location.assign'); 1280 1281 promise_test(() => { 1282 const key = '{{uuid()}}'; 1283 const url = makeRequestURL(key, ['httpsSameSite'], responseParams); 1284 1285 const navigate = (win, path) => { 1286 win.location.replace(path); 1287 }; 1288 return induceRequest(url, navigate, false) 1289 .then(() => retrieve(key)) 1290 .then((headers) => { 1291 assert_not_own_property(headers, 'sec-fetch-storage-access'); 1292 }); 1293 }, 'sec-fetch-storage-access - Same site - location.replace'); 1294 </script> 1295 </body> 1296 </html>