LibURL: Differentiate cross site opaque origins

Previously if we had two opaque origins both URLs were
being treated as same site.
This commit is contained in:
Shannon Booth 2025-06-30 15:19:27 +12:00 committed by Tim Ledbetter
commit bd67a5afaa
Notes: github-actions[bot] 2025-06-30 07:07:49 +00:00
2 changed files with 21 additions and 2 deletions

View file

@ -689,3 +689,23 @@ TEST_CASE(public_suffix)
EXPECT_EQ(domain->public_suffix(), OptionalNone {});
}
}
TEST_CASE(same_site)
{
auto opaque_origin = URL::Origin::create_opaque();
auto second_opaque_origin = URL::Origin::create_opaque();
auto site1_https_url = URL::Parser::basic_parse("https://www.ladybird.org"sv).value();
auto site1_https_second_url = URL::Parser::basic_parse("https://www.ladybird.org/some/file/path"sv).value();
auto site1_http_url = URL::Parser::basic_parse("http://www.ladybird.org"sv).value();
auto site2_https_url = URL::Parser::basic_parse("https://www.serenityos.org"sv).value();
EXPECT(!opaque_origin.is_same_site(second_opaque_origin));
EXPECT(opaque_origin.is_same_site(opaque_origin));
EXPECT(!opaque_origin.is_same_site(site1_https_url.origin()));
EXPECT(site1_https_url.origin().is_same_site(site1_https_second_url.origin()));
EXPECT(!site1_https_url.origin().is_same_site(site1_http_url.origin()));
EXPECT(!site1_https_url.origin().is_same_site(site2_https_url.origin()));
}