#include "content/browser/renderer_host/cookie_utils.h"
#include <cstddef>
#include <ostream>
#include <string>
#include "base/feature_list.h"
#include "base/logging.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_util.h"
#include "base/unguessable_token.h"
#include "content/browser/devtools/devtools_instrumentation.h"
#include "content/browser/navigation_or_document_handle.h"
#include "content/browser/renderer_host/navigation_request.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/cookie_access_details.h"
#include "content/public/browser/legacy_tech_cookie_issue_details.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_features.h"
#include "net/cookies/cookie_inclusion_status.h"
#include "services/metrics/public/cpp/metrics_utils.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "url/gurl.h"
namespace content {
namespace {
void PotentiallyRecordNonAsciiCookieNameValue(
RenderFrameHost* rfh,
CookieAccessDetails::Type access_type,
const std::string& name,
const std::string& value) { … }
void RecordFirstPartyPartitionedCookieCrossSiteContextUKM(
RenderFrameHostImpl* render_frame_host_impl,
const net::CanonicalCookie& cookie,
const ukm::SourceId& source_id) { … }
void RecordPartitionedCookieUseV2UKM(RenderFrameHost* rfh,
const net::CanonicalCookie& cookie,
const ukm::SourceId& source_id) { … }
void RecordPartitionedCookiesUKMs(RenderFrameHostImpl* render_frame_host_impl,
const net::CanonicalCookie& cookie) { … }
void RecordRedirectContextDowngradeUKM(RenderFrameHost* rfh,
CookieAccessDetails::Type access_type,
const net::CanonicalCookie& cookie,
const GURL& url) { … }
void RecordSchemefulContextDowngradeUKM(
RenderFrameHost* rfh,
CookieAccessDetails::Type access_type,
const net::CookieInclusionStatus& status,
const GURL& url) { … }
bool ShouldReportDevToolsIssueForStatus(
const net::CookieInclusionStatus& status) { … }
bool ShouldReportLegacyTechIssueForStatus(
const net::CookieInclusionStatus& status) { … }
void EmitCookieWarningsAndMetricsOnce(
RenderFrameHostImpl* rfh,
const network::mojom::CookieAccessDetailsPtr& cookie_details) { … }
void ReportLegacyTechEvent(
RenderFrameHostImpl* render_frame_host,
NavigationRequest* navigation_request,
const network::mojom::CookieAccessDetailsPtr& cookie_details) { … }
}
void SplitCookiesIntoAllowedAndBlocked(
const network::mojom::CookieAccessDetailsPtr& cookie_details,
CookieAccessDetails* allowed,
CookieAccessDetails* blocked) { … }
void EmitCookieWarningsAndMetrics(
RenderFrameHostImpl* rfh,
NavigationRequest* navigation_request,
const network::mojom::CookieAccessDetailsPtr& cookie_details) { … }
}