diff options
Diffstat (limited to 'chromium/net/cookies/canonical_cookie.cc')
-rw-r--r-- | chromium/net/cookies/canonical_cookie.cc | 359 |
1 files changed, 25 insertions, 334 deletions
diff --git a/chromium/net/cookies/canonical_cookie.cc b/chromium/net/cookies/canonical_cookie.cc index e87937435d9..68fa41779bb 100644 --- a/chromium/net/cookies/canonical_cookie.cc +++ b/chromium/net/cookies/canonical_cookie.cc @@ -105,16 +105,6 @@ void AppendCookieLineEntry(const CanonicalCookie& cookie, *cookie_line += cookie.Value(); } -uint32_t GetExclusionBitmask( - CanonicalCookie::CookieInclusionStatus::ExclusionReason reason) { - return 1u << static_cast<uint32_t>(reason); -} - -uint32_t GetWarningBitmask( - CanonicalCookie::CookieInclusionStatus::WarningReason reason) { - return 1u << static_cast<uint32_t>(reason); -} - // Captures Strict -> Lax context downgrade with Strict cookie bool IsBreakingStrictToLaxDowngrade( CookieOptions::SameSiteCookieContext::ContextType context, @@ -198,13 +188,13 @@ void ApplySameSiteCookieWarningToStatus( CookieEffectiveSameSite effective_samesite, bool is_secure, CookieOptions::SameSiteCookieContext same_site_context, - CanonicalCookie::CookieInclusionStatus* status, + CookieInclusionStatus* status, bool is_cookie_being_set) { if (samesite == CookieSameSite::UNSPECIFIED && same_site_context.GetContextForCookieInclusion() < CookieOptions::SameSiteCookieContext::ContextType::SAME_SITE_LAX) { - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT); + status->AddWarningReason( + CookieInclusionStatus::WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT); } if (effective_samesite == CookieEffectiveSameSite::LAX_MODE_ALLOW_UNSAFE && same_site_context.GetContextForCookieInclusion() == @@ -213,14 +203,13 @@ void ApplySameSiteCookieWarningToStatus( // This warning is more specific so remove the previous, more general, // warning. status->RemoveWarningReason( - CanonicalCookie::CookieInclusionStatus:: - WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT); - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE); + CookieInclusionStatus::WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT); + status->AddWarningReason( + CookieInclusionStatus::WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE); } if (samesite == CookieSameSite::NO_RESTRICTION && !is_secure) { status->AddWarningReason( - CanonicalCookie::CookieInclusionStatus::WARN_SAMESITE_NONE_INSECURE); + CookieInclusionStatus::WARN_SAMESITE_NONE_INSECURE); } // Add a warning if the cookie would be accessible in @@ -229,19 +218,19 @@ void ApplySameSiteCookieWarningToStatus( if (IsBreakingStrictToLaxDowngrade(same_site_context.context(), same_site_context.schemeful_context(), effective_samesite, is_cookie_being_set)) { - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE); + status->AddWarningReason( + CookieInclusionStatus::WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE); } else if (IsBreakingStrictToCrossDowngrade( same_site_context.context(), same_site_context.schemeful_context(), effective_samesite)) { // Which warning to apply depends on the SameSite value. if (effective_samesite == CookieEffectiveSameSite::STRICT_MODE) { - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE); + status->AddWarningReason( + CookieInclusionStatus::WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE); } else { // LAX_MODE or LAX_MODE_ALLOW_UNSAFE. - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE); + status->AddWarningReason( + CookieInclusionStatus::WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE); } } else if (IsBreakingLaxToCrossDowngrade( @@ -250,13 +239,13 @@ void ApplySameSiteCookieWarningToStatus( is_cookie_being_set)) { // Which warning to apply depends on the SameSite value. if (effective_samesite == CookieEffectiveSameSite::STRICT_MODE) { - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE); + status->AddWarningReason( + CookieInclusionStatus::WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE); } else { // LAX_MODE or LAX_MODE_ALLOW_UNSAFE. // This warning applies to both set/send. - status->AddWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE); + status->AddWarningReason( + CookieInclusionStatus::WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE); } } @@ -581,11 +570,10 @@ bool CanonicalCookie::IsDomainMatch(const std::string& host) const { return cookie_util::IsDomainMatch(domain_, host); } -CanonicalCookie::CookieInclusionStatus CanonicalCookie::IncludeForRequestURL( +CookieAccessResult CanonicalCookie::IncludeForRequestURL( const GURL& url, const CookieOptions& options, CookieAccessSemantics access_semantics) const { - base::TimeDelta cookie_age = base::Time::Now() - CreationDate(); CookieInclusionStatus status; // Filter out HttpOnly cookies, per options. if (options.exclude_httponly() && IsHttpOnly()) @@ -627,17 +615,6 @@ CanonicalCookie::CookieInclusionStatus CanonicalCookie::IncludeForRequestURL( case CookieEffectiveSameSite::LAX_MODE: if (options.same_site_cookie_context().GetContextForCookieInclusion() < CookieOptions::SameSiteCookieContext::ContextType::SAME_SITE_LAX) { - // Log metrics for a cookie that would have been included under the - // "Lax-allow-unsafe" intervention, had it been new enough. - if (SameSite() == CookieSameSite::UNSPECIFIED && - options.same_site_cookie_context().GetContextForCookieInclusion() == - CookieOptions::SameSiteCookieContext::ContextType:: - SAME_SITE_LAX_METHOD_UNSAFE) { - UMA_HISTOGRAM_CUSTOM_TIMES( - "Cookie.SameSiteUnspecifiedTooOldToAllowUnsafe", cookie_age, - base::TimeDelta::FromMinutes(1), base::TimeDelta::FromDays(5), - 100); - } status.AddExclusionReason( (SameSite() == CookieSameSite::UNSPECIFIED) ? CookieInclusionStatus:: @@ -654,15 +631,6 @@ CanonicalCookie::CookieInclusionStatus CanonicalCookie::IncludeForRequestURL( // TODO(chlily): Do we need a separate CookieInclusionStatus for this? status.AddExclusionReason( CookieInclusionStatus::EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX); - } else if (options.same_site_cookie_context() - .GetContextForCookieInclusion() == - CookieOptions::SameSiteCookieContext::ContextType:: - SAME_SITE_LAX_METHOD_UNSAFE) { - // Log metrics for cookies that activate the "Lax-allow-unsafe" - // intervention. This histogram macro allows up to 3 minutes, which is - // enough for the current threshold of 2 minutes. - UMA_HISTOGRAM_MEDIUM_TIMES("Cookie.LaxAllowUnsafeCookieIncludedAge", - cookie_age); } break; default: @@ -700,10 +668,10 @@ CanonicalCookie::CookieInclusionStatus CanonicalCookie::IncludeForRequestURL( } // TODO(chlily): Log metrics. - return status; + return CookieAccessResult(effective_same_site, status); } -CanonicalCookie::CookieInclusionStatus CanonicalCookie::IsSetPermittedInContext( +CookieInclusionStatus CanonicalCookie::IsSetPermittedInContext( const CookieOptions& options, CookieAccessSemantics access_semantics) const { CookieInclusionStatus status; @@ -730,7 +698,7 @@ void CanonicalCookie::IsSetPermittedInContext( DVLOG(net::cookie_util::kVlogSetCookies) << "SetCookie() rejecting insecure cookie with SameSite=None."; status->AddExclusionReason( - CanonicalCookie::CookieInclusionStatus::EXCLUDE_SAMESITE_NONE_INSECURE); + CookieInclusionStatus::EXCLUDE_SAMESITE_NONE_INSECURE); } // Log whether a SameSite=None cookie is Secure or not. if (SameSite() == CookieSameSite::NO_RESTRICTION) { @@ -867,10 +835,10 @@ std::string CanonicalCookie::BuildCookieLine(const CookieList& cookies) { // static std::string CanonicalCookie::BuildCookieLine( - const CookieStatusList& cookie_status_list) { + const CookieAccessResultList& cookie_access_result_list) { std::string cookie_line; - for (const auto& cookie_with_status : cookie_status_list) { - const CanonicalCookie& cookie = cookie_with_status.cookie; + for (const auto& cookie_with_access_result : cookie_access_result_list) { + const CanonicalCookie& cookie = cookie_with_access_result.cookie; AppendCookieLineEntry(cookie, &cookie_line); } return cookie_line; @@ -973,289 +941,12 @@ bool CanonicalCookie::IsRecentlyCreated(base::TimeDelta age_threshold) const { return (base::Time::Now() - creation_date_) <= age_threshold; } -CanonicalCookie::CookieInclusionStatus::CookieInclusionStatus() - : exclusion_reasons_(0u), warning_reasons_(0u) {} - -CanonicalCookie::CookieInclusionStatus::CookieInclusionStatus( - ExclusionReason reason) - : exclusion_reasons_(GetExclusionBitmask(reason)) {} - -CanonicalCookie::CookieInclusionStatus::CookieInclusionStatus( - ExclusionReason reason, - WarningReason warning) - : exclusion_reasons_(GetExclusionBitmask(reason)), - warning_reasons_(GetWarningBitmask(warning)) {} - -bool CanonicalCookie::CookieInclusionStatus::operator==( - const CookieInclusionStatus& other) const { - return exclusion_reasons_ == other.exclusion_reasons_ && - warning_reasons_ == other.warning_reasons_; -} - -bool CanonicalCookie::CookieInclusionStatus::operator!=( - const CookieInclusionStatus& other) const { - return !operator==(other); -} - -bool CanonicalCookie::CookieInclusionStatus::IsInclude() const { - return exclusion_reasons_ == 0u; -} - -bool CanonicalCookie::CookieInclusionStatus::HasExclusionReason( - ExclusionReason reason) const { - return exclusion_reasons_ & GetExclusionBitmask(reason); -} - -void CanonicalCookie::CookieInclusionStatus::AddExclusionReason( - ExclusionReason reason) { - exclusion_reasons_ |= GetExclusionBitmask(reason); - // If the cookie would be excluded for reasons other than the new SameSite - // rules, don't bother warning about it. - MaybeClearSameSiteWarning(); -} - -void CanonicalCookie::CookieInclusionStatus::RemoveExclusionReason( - ExclusionReason reason) { - exclusion_reasons_ &= ~(GetExclusionBitmask(reason)); -} - -void CanonicalCookie::CookieInclusionStatus::MaybeClearSameSiteWarning() { - uint32_t samesite_reasons_mask = - GetExclusionBitmask(EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX) | - GetExclusionBitmask(EXCLUDE_SAMESITE_NONE_INSECURE); - if (exclusion_reasons_ & ~samesite_reasons_mask) { - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT); - RemoveWarningReason( - CanonicalCookie::CookieInclusionStatus::WARN_SAMESITE_NONE_INSECURE); - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE); - } - - uint32_t context_reasons_mask = - GetExclusionBitmask(EXCLUDE_SAMESITE_STRICT) | - GetExclusionBitmask(EXCLUDE_SAMESITE_LAX) | - GetExclusionBitmask(EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX); - if (exclusion_reasons_ & ~context_reasons_mask) { - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE); - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE); - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE); - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE); - RemoveWarningReason(CanonicalCookie::CookieInclusionStatus:: - WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE); - } -} - -bool CanonicalCookie::CookieInclusionStatus::ShouldRecordDowngradeMetrics() - const { - uint32_t context_reasons_mask = - GetExclusionBitmask(EXCLUDE_SAMESITE_STRICT) | - GetExclusionBitmask(EXCLUDE_SAMESITE_LAX) | - GetExclusionBitmask(EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX); - - return (exclusion_reasons_ & ~context_reasons_mask) == 0u; -} - -bool CanonicalCookie::CookieInclusionStatus::ShouldWarn() const { - return warning_reasons_ != 0u; -} - -bool CanonicalCookie::CookieInclusionStatus::HasWarningReason( - WarningReason reason) const { - return warning_reasons_ & GetWarningBitmask(reason); -} - -bool net::CanonicalCookie::CookieInclusionStatus::HasDowngradeWarning( - CookieInclusionStatus::WarningReason* reason) const { - if (!ShouldWarn()) - return false; - - const CookieInclusionStatus::WarningReason kDowngradeWarnings[] = { - WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE, - WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE, - WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE, - WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE, - WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE, - }; - - for (auto warning : kDowngradeWarnings) { - if (!HasWarningReason(warning)) - continue; - - if (reason) - *reason = warning; - - return true; - } - - return false; -} - -void CanonicalCookie::CookieInclusionStatus::AddWarningReason( - WarningReason reason) { - warning_reasons_ |= GetWarningBitmask(reason); -} - -void CanonicalCookie::CookieInclusionStatus::RemoveWarningReason( - WarningReason reason) { - warning_reasons_ &= ~(GetWarningBitmask(reason)); -} - -CanonicalCookie::CookieInclusionStatus::ContextDowngradeMetricValues -CanonicalCookie::CookieInclusionStatus::GetBreakingDowngradeMetricsEnumValue( - const GURL& url) const { - bool url_is_secure = url.SchemeIsCryptographic(); - - // Start the |reason| as something other than the downgrade warnings. - WarningReason reason = WarningReason::NUM_WARNING_REASONS; - - // Don't bother checking the return value because the default switch case - // will handle if no reason was found. - HasDowngradeWarning(&reason); - - switch (reason) { - case WarningReason::WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE: - return url_is_secure - ? ContextDowngradeMetricValues::STRICT_LAX_STRICT_SECURE - : ContextDowngradeMetricValues::STRICT_LAX_STRICT_INSECURE; - case WarningReason::WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE: - return url_is_secure - ? ContextDowngradeMetricValues::STRICT_CROSS_STRICT_SECURE - : ContextDowngradeMetricValues::STRICT_CROSS_STRICT_INSECURE; - case WarningReason::WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE: - return url_is_secure - ? ContextDowngradeMetricValues::STRICT_CROSS_LAX_SECURE - : ContextDowngradeMetricValues::STRICT_CROSS_LAX_INSECURE; - case WarningReason::WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE: - return url_is_secure - ? ContextDowngradeMetricValues::LAX_CROSS_STRICT_SECURE - : ContextDowngradeMetricValues::LAX_CROSS_STRICT_INSECURE; - case WarningReason::WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE: - return url_is_secure - ? ContextDowngradeMetricValues::LAX_CROSS_LAX_SECURE - : ContextDowngradeMetricValues::LAX_CROSS_LAX_INSECURE; - default: - return url_is_secure - ? ContextDowngradeMetricValues::NO_DOWNGRADE_SECURE - : ContextDowngradeMetricValues::NO_DOWNGRADE_INSECURE; - } -} - -std::string CanonicalCookie::CookieInclusionStatus::GetDebugString() const { - std::string out; - - // Inclusion/exclusion - if (IsInclude()) - base::StrAppend(&out, {"INCLUDE, "}); - if (HasExclusionReason(EXCLUDE_UNKNOWN_ERROR)) - base::StrAppend(&out, {"EXCLUDE_UNKNOWN_ERROR, "}); - if (HasExclusionReason(EXCLUDE_HTTP_ONLY)) - base::StrAppend(&out, {"EXCLUDE_HTTP_ONLY, "}); - if (HasExclusionReason(EXCLUDE_SECURE_ONLY)) - base::StrAppend(&out, {"EXCLUDE_SECURE_ONLY, "}); - if (HasExclusionReason(EXCLUDE_DOMAIN_MISMATCH)) - base::StrAppend(&out, {"EXCLUDE_DOMAIN_MISMATCH, "}); - if (HasExclusionReason(EXCLUDE_NOT_ON_PATH)) - base::StrAppend(&out, {"EXCLUDE_NOT_ON_PATH, "}); - if (HasExclusionReason(EXCLUDE_SAMESITE_STRICT)) - base::StrAppend(&out, {"EXCLUDE_SAMESITE_STRICT, "}); - if (HasExclusionReason(EXCLUDE_SAMESITE_LAX)) - base::StrAppend(&out, {"EXCLUDE_SAMESITE_LAX, "}); - if (HasExclusionReason(EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX)) - base::StrAppend(&out, {"EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX, "}); - if (HasExclusionReason(EXCLUDE_SAMESITE_NONE_INSECURE)) - base::StrAppend(&out, {"EXCLUDE_SAMESITE_NONE_INSECURE, "}); - if (HasExclusionReason(EXCLUDE_USER_PREFERENCES)) - base::StrAppend(&out, {"EXCLUDE_USER_PREFERENCES, "}); - if (HasExclusionReason(EXCLUDE_FAILURE_TO_STORE)) - base::StrAppend(&out, {"EXCLUDE_FAILURE_TO_STORE, "}); - if (HasExclusionReason(EXCLUDE_NONCOOKIEABLE_SCHEME)) - base::StrAppend(&out, {"EXCLUDE_NONCOOKIEABLE_SCHEME, "}); - if (HasExclusionReason(EXCLUDE_OVERWRITE_SECURE)) - base::StrAppend(&out, {"EXCLUDE_OVERWRITE_SECURE, "}); - if (HasExclusionReason(EXCLUDE_OVERWRITE_HTTP_ONLY)) - base::StrAppend(&out, {"EXCLUDE_OVERWRITE_HTTP_ONLY, "}); - if (HasExclusionReason(EXCLUDE_INVALID_DOMAIN)) - base::StrAppend(&out, {"EXCLUDE_INVALID_DOMAIN, "}); - if (HasExclusionReason(EXCLUDE_INVALID_PREFIX)) - base::StrAppend(&out, {"EXCLUDE_INVALID_PREFIX, "}); - - // Add warning - if (!ShouldWarn()) { - base::StrAppend(&out, {"DO_NOT_WARN"}); - return out; - } - - if (HasWarningReason(WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT)) - base::StrAppend(&out, {"WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT, "}); - if (HasWarningReason(WARN_SAMESITE_NONE_INSECURE)) - base::StrAppend(&out, {"WARN_SAMESITE_NONE_INSECURE, "}); - if (HasWarningReason(WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE)) - base::StrAppend(&out, {"WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE, "}); - if (HasWarningReason(WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE)) - base::StrAppend(&out, {"WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE, "}); - if (HasWarningReason(WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE)) - base::StrAppend(&out, {"WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE, "}); - if (HasWarningReason(WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE)) - base::StrAppend(&out, {"WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE, "}); - if (HasWarningReason(WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE)) - base::StrAppend(&out, {"WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE, "}); - if (HasWarningReason(WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE)) - base::StrAppend(&out, {"WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE, "}); - - // Strip trailing comma and space. - out.erase(out.end() - 2, out.end()); - - return out; -} - -bool CanonicalCookie::CookieInclusionStatus::IsValid() const { - // Bit positions where there should not be any true bits. - uint32_t exclusion_mask = ~0u << static_cast<int>(NUM_EXCLUSION_REASONS); - uint32_t warning_mask = ~0u << static_cast<int>(NUM_WARNING_REASONS); - return (exclusion_mask & exclusion_reasons_) == 0u && - (warning_mask & warning_reasons_) == 0u; -} - -bool CanonicalCookie::CookieInclusionStatus:: - HasExactlyExclusionReasonsForTesting( - std::vector<CanonicalCookie::CookieInclusionStatus::ExclusionReason> - reasons) const { - CookieInclusionStatus expected = MakeFromReasonsForTesting(reasons); - return expected.exclusion_reasons_ == exclusion_reasons_; -} - -bool CanonicalCookie::CookieInclusionStatus::HasExactlyWarningReasonsForTesting( - std::vector<WarningReason> reasons) const { - CookieInclusionStatus expected = MakeFromReasonsForTesting({}, reasons); - return expected.warning_reasons_ == warning_reasons_; -} - -// static -CanonicalCookie::CookieInclusionStatus -CanonicalCookie::CookieInclusionStatus::MakeFromReasonsForTesting( - std::vector<ExclusionReason> reasons, - std::vector<WarningReason> warnings) { - CookieInclusionStatus status; - for (ExclusionReason reason : reasons) { - status.AddExclusionReason(reason); - } - for (WarningReason warning : warnings) { - status.AddWarningReason(warning); - } - return status; -} - CookieAndLineWithStatus::CookieAndLineWithStatus() = default; CookieAndLineWithStatus::CookieAndLineWithStatus( base::Optional<CanonicalCookie> cookie, std::string cookie_string, - CanonicalCookie::CookieInclusionStatus status) + CookieInclusionStatus status) : cookie(std::move(cookie)), cookie_string(std::move(cookie_string)), status(status) {} |