chore: add A/B CHECK() for DomainIs

This commit is contained in:
Charles Kerr
2024-10-08 18:07:44 -05:00
parent 8badf365ca
commit 0a7425d90f

View File

@@ -30,6 +30,7 @@
#include "shell/common/gin_helper/dictionary.h"
#include "shell/common/gin_helper/object_template_builder.h"
#include "shell/common/gin_helper/promise.h"
#include "url/url_util.h"
namespace gin {
@@ -121,6 +122,13 @@ bool MatchesDomain(std::string filter, const std::string& domain) {
return false;
}
bool DomainIs(std::string_view host, const std::string_view domain) {
// Strip any leading '.'. character from the input cookie domain.
if (host.starts_with('.'))
host.remove_prefix(1);
return url::DomainIs(host, domain);
}
// Returns whether |cookie| matches |filter|.
bool MatchesCookie(const base::Value::Dict& filter,
const net::CanonicalCookie& cookie) {
@@ -129,9 +137,13 @@ bool MatchesCookie(const base::Value::Dict& filter,
return false;
if ((str = filter.FindString("path")) && *str != cookie.Path())
return false;
if ((str = filter.FindString("domain")) &&
!MatchesDomain(*str, cookie.Domain()))
return false;
if ((str = filter.FindString("domain"))) {
const bool old_domains_match = MatchesDomain(*str, cookie.Domain());
const bool new_domains_match = DomainIs(cookie.Domain(), *str);
CHECK_EQ(old_domains_match, new_domains_match);
if (!old_domains_match)
return false;
}
std::optional<bool> secure_filter = filter.FindBool("secure");
if (secure_filter && *secure_filter != cookie.SecureAttribute())
return false;