OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "core/html/parser/HTMLPreloadScanner.h" | 5 #include "core/html/parser/HTMLPreloadScanner.h" |
6 | 6 |
7 #include "core/MediaTypeNames.h" | 7 #include "core/MediaTypeNames.h" |
8 #include "core/css/MediaValuesCached.h" | 8 #include "core/css/MediaValuesCached.h" |
9 #include "core/fetch/ClientHintsPreferences.h" | 9 #include "core/fetch/ClientHintsPreferences.h" |
10 #include "core/frame/Settings.h" | 10 #include "core/frame/Settings.h" |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 "bla.gif", "http://example.test/", Resource::Image, 0, | 620 "bla.gif", "http://example.test/", Resource::Image, 0, |
621 ReferrerPolicyOrigin}, | 621 ReferrerPolicyOrigin}, |
622 {"http://example.test", | 622 {"http://example.test", |
623 "<img referrerpolicy='not-a-valid-policy' src='bla.gif'/>", "bla.gif", | 623 "<img referrerpolicy='not-a-valid-policy' src='bla.gif'/>", "bla.gif", |
624 "http://example.test/", Resource::Image, 0, ReferrerPolicyDefault}, | 624 "http://example.test/", Resource::Image, 0, ReferrerPolicyDefault}, |
625 {"http://example.test", | 625 {"http://example.test", |
626 "<meta name='referrer' content='no-referrer'><img " | 626 "<meta name='referrer' content='no-referrer'><img " |
627 "referrerpolicy='origin' src='bla.gif'/>", | 627 "referrerpolicy='origin' src='bla.gif'/>", |
628 "bla.gif", "http://example.test/", Resource::Image, 0, | 628 "bla.gif", "http://example.test/", Resource::Image, 0, |
629 ReferrerPolicyOrigin}, | 629 ReferrerPolicyOrigin}, |
630 // The scanner's state is not reset between test cases, so all subsequent
test cases have a document referrer policy of no-referrer. | 630 // The scanner's state is not reset between test cases, so all subsequent |
| 631 // test cases have a document referrer policy of no-referrer. |
631 {"http://example.test", | 632 {"http://example.test", |
632 "<img referrerpolicy='not-a-valid-policy' src='bla.gif'/>", "bla.gif", | 633 "<img referrerpolicy='not-a-valid-policy' src='bla.gif'/>", "bla.gif", |
633 "http://example.test/", Resource::Image, 0, ReferrerPolicyNever}, | 634 "http://example.test/", Resource::Image, 0, ReferrerPolicyNever}, |
634 {"http://example.test", "<img src='bla.gif'/>", "bla.gif", | 635 {"http://example.test", "<img src='bla.gif'/>", "bla.gif", |
635 "http://example.test/", Resource::Image, 0, ReferrerPolicyNever}}; | 636 "http://example.test/", Resource::Image, 0, ReferrerPolicyNever}}; |
636 | 637 |
637 for (const auto& testCase : testCases) | 638 for (const auto& testCase : testCases) |
638 test(testCase); | 639 test(testCase); |
639 } | 640 } |
640 | 641 |
(...skipping 19 matching lines...) Expand all Loading... |
660 {"http://example.test", "<img src='/image' nonce=''>", ""}, | 661 {"http://example.test", "<img src='/image' nonce=''>", ""}, |
661 {"http://example.test", "<img src='/image' nonce='abc'>", ""}, | 662 {"http://example.test", "<img src='/image' nonce='abc'>", ""}, |
662 }; | 663 }; |
663 | 664 |
664 for (const auto& testCase : testCases) { | 665 for (const auto& testCase : testCases) { |
665 SCOPED_TRACE(testCase.inputHTML); | 666 SCOPED_TRACE(testCase.inputHTML); |
666 test(testCase); | 667 test(testCase); |
667 } | 668 } |
668 } | 669 } |
669 | 670 |
670 // Tests that a document-level referrer policy (e.g. one set by HTTP | 671 // Tests that a document-level referrer policy (e.g. one set by HTTP header) is |
671 // header) is applied for preload requests. | 672 // applied for preload requests. |
672 TEST_F(HTMLPreloadScannerTest, testReferrerPolicyOnDocument) { | 673 TEST_F(HTMLPreloadScannerTest, testReferrerPolicyOnDocument) { |
673 runSetUp(ViewportEnabled, PreloadEnabled, ReferrerPolicyOrigin); | 674 runSetUp(ViewportEnabled, PreloadEnabled, ReferrerPolicyOrigin); |
674 ReferrerPolicyTestCase testCases[] = { | 675 ReferrerPolicyTestCase testCases[] = { |
675 {"http://example.test", "<img src='blah.gif'/>", "blah.gif", | 676 {"http://example.test", "<img src='blah.gif'/>", "blah.gif", |
676 "http://example.test/", Resource::Image, 0, ReferrerPolicyOrigin}, | 677 "http://example.test/", Resource::Image, 0, ReferrerPolicyOrigin}, |
677 {"http://example.test", "<style>@import url('blah.css');</style>", | 678 {"http://example.test", "<style>@import url('blah.css');</style>", |
678 "blah.css", "http://example.test/", Resource::CSSStyleSheet, 0, | 679 "blah.css", "http://example.test/", Resource::CSSStyleSheet, 0, |
679 ReferrerPolicyOrigin}, | 680 ReferrerPolicyOrigin}, |
680 // Tests that a meta-delivered referrer policy with an | 681 // Tests that a meta-delivered referrer policy with an unrecognized policy |
681 // unrecognized policy value does not override the document's | 682 // value does not override the document's referrer policy. |
682 // referrer policy. | |
683 {"http://example.test", | 683 {"http://example.test", |
684 "<meta name='referrer' content='not-a-valid-policy'><img " | 684 "<meta name='referrer' content='not-a-valid-policy'><img " |
685 "src='bla.gif'/>", | 685 "src='bla.gif'/>", |
686 "bla.gif", "http://example.test/", Resource::Image, 0, | 686 "bla.gif", "http://example.test/", Resource::Image, 0, |
687 ReferrerPolicyOrigin}, | 687 ReferrerPolicyOrigin}, |
688 // Tests that a meta-delivered referrer policy with a | 688 // Tests that a meta-delivered referrer policy with a valid policy value |
689 // valid policy value does override the document's | 689 // does override the document's referrer policy. |
690 // referrer policy. | |
691 {"http://example.test", | 690 {"http://example.test", |
692 "<meta name='referrer' content='unsafe-url'><img src='bla.gif'/>", | 691 "<meta name='referrer' content='unsafe-url'><img src='bla.gif'/>", |
693 "bla.gif", "http://example.test/", Resource::Image, 0, | 692 "bla.gif", "http://example.test/", Resource::Image, 0, |
694 ReferrerPolicyAlways}, | 693 ReferrerPolicyAlways}, |
695 }; | 694 }; |
696 | 695 |
697 for (const auto& testCase : testCases) | 696 for (const auto& testCase : testCases) |
698 test(testCase); | 697 test(testCase); |
699 } | 698 } |
700 | 699 |
(...skipping 19 matching lines...) Expand all Loading... |
720 {"http://example.test", | 719 {"http://example.test", |
721 "<link rel=preload href=bla as=image media=\"(max-width: 400px)\">", | 720 "<link rel=preload href=bla as=image media=\"(max-width: 400px)\">", |
722 nullptr, "http://example.test/", Resource::Image, 0}, | 721 nullptr, "http://example.test/", Resource::Image, 0}, |
723 }; | 722 }; |
724 | 723 |
725 for (const auto& testCase : testCases) | 724 for (const auto& testCase : testCases) |
726 test(testCase); | 725 test(testCase); |
727 } | 726 } |
728 | 727 |
729 } // namespace blink | 728 } // namespace blink |
OLD | NEW |