Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Side by Side Diff: net/url_request/url_request_job_unittest.cc

Issue 2918313002: Implement new referrer policies (Closed)
Patch Set: rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/url_request/url_request_job.h" 5 #include "net/url_request/url_request_job.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "net/base/request_priority.h" 10 #include "net/base/request_priority.h"
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 // ... but should be stripped to the origin for a cross-origin redirect. 381 // ... but should be stripped to the origin for a cross-origin redirect.
382 {"https://foo.test/one" /* original url */, 382 {"https://foo.test/one" /* original url */,
383 "https://foo.test/one" /* original referrer */, 383 "https://foo.test/one" /* original referrer */,
384 "Location: https://bar.test/two\n" 384 "Location: https://bar.test/two\n"
385 "Referrer-Policy: origin-when-cross-origin\n", 385 "Referrer-Policy: origin-when-cross-origin\n",
386 URLRequest::NEVER_CLEAR_REFERRER /* original policy */, 386 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
387 URLRequest:: 387 URLRequest::
388 ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN /* expected final policy */, 388 ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN /* expected final policy */,
389 "https://foo.test/" /* expected final referrer */}, 389 "https://foo.test/" /* expected final referrer */},
390 390
391 // If a redirect serves 'Referrer-Policy: same-origin', then the referrer
392 // should be untouched for a same-origin redirect,
393 {"https://foo.test/one" /* original url */,
394 "https://foo.test/referrer" /* original referrer */,
395 "Location: https://foo.test/two\n"
396 "Referrer-Policy: same-origin\n",
397 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
398 URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN /* expected final
399 policy */
mmenke 2017/06/07 21:04:00 Maybe replace "expected final policy" with "final
estark 2017/06/08 18:42:58 Done; I just removed it for these cases where the
400 ,
401 "https://foo.test/referrer" /* expected final referrer */},
402
403 // ... but should be cleared for a cross-origin redirect.
404 {"https://foo.test/one" /* original url */,
405 "https://foo.test/referrer" /* original referrer */,
406 "Location: https://bar.test/two\n"
407 "Referrer-Policy: same-origin\n",
408 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
409 URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN /* expected final
410 policy */
411 ,
412 "" /* expected final referrer */},
413
414 // If a redirect serves 'Referrer-Policy: strict-origin', then the
415 // referrer should be the origin only for a cross-origin non-downgrading
416 // redirect,
417 {"https://foo.test/one" /* original url */,
418 "https://foo.test/referrer" /* original referrer */,
419 "Location: https://bar.test/two\n"
420 "Referrer-Policy: strict-origin\n",
421 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
422 URLRequest::
423 ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE /* expected final
424 policy */
425 ,
426 "https://foo.test/" /* expected final referrer */},
427 {"http://foo.test/one" /* original url */,
428 "http://foo.test/referrer" /* original referrer */,
429 "Location: http://bar.test/two\n"
430 "Referrer-Policy: strict-origin\n",
431 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
432 URLRequest::
433 ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE /* expected final
434 policy */
435 ,
436 "http://foo.test/" /* expected final referrer */},
437
438 // ... but should be cleared for a downgrading redirect.
439 {"https://foo.test/one" /* original url */,
440 "https://foo.test/referrer" /* original referrer */,
441 "Location: http://foo.test/two\n"
442 "Referrer-Policy: strict-origin\n",
443 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
444 URLRequest::
445 ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE /* expected final
446 policy */
447 ,
448 "" /* expected final referrer */},
449
450 // If a redirect serves 'Referrer-Policy:
451 // strict-origin-when-cross-origin', then the referrer should be preserved
452 // for a same-origin redirect,
453 {"https://foo.test/one" /* original url */,
454 "https://foo.test/referrer" /* original referrer */,
455 "Location: https://foo.test/two\n"
456 "Referrer-Policy: strict-origin-when-cross-origin\n",
457 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
458 URLRequest::
459 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN /* expected
460 final
461 policy */
462 ,
463 "https://foo.test/referrer" /* expected final referrer */},
464 {"http://foo.test/one" /* original url */,
465 "http://foo.test/referrer" /* original referrer */,
466 "Location: http://foo.test/two\n"
467 "Referrer-Policy: strict-origin-when-cross-origin\n",
468 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
469 URLRequest::
470 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN /* expected
471 final
472 policy */
473 ,
474 "http://foo.test/referrer" /* expected final referrer */},
475
476 // ... but should be stripped to the origin for a cross-origin
477 // non-downgrading redirect,
478 {"https://foo.test/one" /* original url */,
479 "https://foo.test/referrer" /* original referrer */,
480 "Location: https://bar.test/two\n"
481 "Referrer-Policy: strict-origin-when-cross-origin\n",
482 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
483 URLRequest::
484 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN /* expected
485 final
486 policy */
487 ,
488 "https://foo.test/" /* expected final referrer */},
489 {"http://foo.test/one" /* original url */,
490 "http://foo.test/referrer" /* original referrer */,
491 "Location: http://bar.test/two\n"
492 "Referrer-Policy: strict-origin-when-cross-origin\n",
493 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
494 URLRequest::
495 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN /* expected
496 final
497 policy */
498 ,
499 "http://foo.test/" /* expected final referrer */},
500
501 // ... and should be cleared for a downgrading redirect.
502 {"https://foo.test/one" /* original url */,
503 "https://foo.test/referrer" /* original referrer */,
504 "Location: http://foo.test/two\n"
505 "Referrer-Policy: strict-origin-when-cross-origin\n",
506 URLRequest::NEVER_CLEAR_REFERRER /* original policy */,
507 URLRequest::
508 REDUCE_REFERRER_GRANULARITY_ON_TRANSITION_CROSS_ORIGIN /* expected
509 final
510 policy */
511 ,
512 "" /* expected final referrer */},
513
391 // If a redirect serves 'Referrer-Policy: unsafe-url', then the 514 // If a redirect serves 'Referrer-Policy: unsafe-url', then the
392 // referrer should remain, even if originally set to clear on 515 // referrer should remain, even if originally set to clear on
393 // downgrade. 516 // downgrade.
394 {"https://foo.test/one" /* original url */, 517 {"https://foo.test/one" /* original url */,
395 "https://foo.test/one" /* original referrer */, 518 "https://foo.test/one" /* original referrer */,
396 "Location: https://bar.test/two\n" 519 "Location: https://bar.test/two\n"
397 "Referrer-Policy: unsafe-url\n", 520 "Referrer-Policy: unsafe-url\n",
398 URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN /* original policy */, 521 URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN /* original policy */,
399 URLRequest::NEVER_CLEAR_REFERRER /* expected final policy */, 522 URLRequest::NEVER_CLEAR_REFERRER /* expected final policy */,
400 "https://foo.test/one" /* expected final referrer */}, 523 "https://foo.test/one" /* expected final referrer */},
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 743
621 EXPECT_FALSE(d.request_failed()); 744 EXPECT_FALSE(d.request_failed());
622 EXPECT_EQ(200, req->GetResponseCode()); 745 EXPECT_EQ(200, req->GetResponseCode());
623 EXPECT_EQ(kHelloData, d.data_received()); 746 EXPECT_EQ(kHelloData, d.data_received());
624 EXPECT_TRUE(network_layer.done_reading_called()); 747 EXPECT_TRUE(network_layer.done_reading_called());
625 748
626 RemoveMockTransaction(&kBrotli_Slow_Transaction); 749 RemoveMockTransaction(&kBrotli_Slow_Transaction);
627 } 750 }
628 751
629 } // namespace net 752 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698