blob: a209b457b50edd3d6ded05e1b77aca79cd571efb [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_NETWORK_PUBLIC_CPP_SHARED_HTTP_CACHE_UTIL_H_
#define SERVICES_NETWORK_PUBLIC_CPP_SHARED_HTTP_CACHE_UTIL_H_
#include "base/component_export.h"
namespace network {
struct ResourceRequest;
// Returns whether `request` is eligible for writing to / storing in the
// Renderer Accessible HTTP Cache (SharedHttpCache).
//
// Only static subresources (images, scripts, styles, and fonts) fetched via
// GET over HTTPS without Range headers, and without LOAD_DISABLE_CACHE,
// are eligible to be stored.
//
// Note: Requests with LOAD_BYPASS_CACHE (shift-reload) bypass reading from the
// cache, but the fresh network response is still written to the cache.
COMPONENT_EXPORT(NETWORK_CPP)
bool IsRequestEligibleForSharedHttpCacheWrite(const ResourceRequest& request);
// Returns whether `request` is eligible for cache lookup in the
// Renderer Accessible HTTP Cache (SharedHttpCache).
//
// In addition to write eligibility, the request must not bypass or force
// validation of the cache (LOAD_BYPASS_CACHE or LOAD_VALIDATE_CACHE) and must
// not be a revalidation request.
COMPONENT_EXPORT(NETWORK_CPP)
bool IsRequestEligibleForSharedHttpCacheLookup(const ResourceRequest& request);
} // namespace network
#endif // SERVICES_NETWORK_PUBLIC_CPP_SHARED_HTTP_CACHE_UTIL_H_