#include "third_party/blink/renderer/core/frame/csp/source_list_directive.h"
#include "base/feature_list.h"
#include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
#include "third_party/blink/renderer/core/frame/csp/csp_source.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace {
struct SupportedPrefixesStruct { … };
}
namespace blink {
namespace {
bool HasSourceMatchInList(
const Vector<network::mojom::blink::CSPSourcePtr>& list,
const String& self_protocol,
const KURL& url,
ResourceRequest::RedirectStatus redirect_status) { … }
bool IsScriptDirective(CSPDirectiveName directive_type) { … }
bool IsStyleDirective(CSPDirectiveName directive_type) { … }
}
CSPCheckResult CSPSourceListAllows(
const network::mojom::blink::CSPSourceList& source_list,
const network::mojom::blink::CSPSource& self_source,
const KURL& url,
ResourceRequest::RedirectStatus redirect_status) { … }
bool CSPSourceListAllowNonce(
const network::mojom::blink::CSPSourceList& source_list,
const String& nonce) { … }
bool CSPSourceListAllowHash(
const network::mojom::blink::CSPSourceList& source_list,
const network::mojom::blink::CSPHashSource& hash_value) { … }
bool CSPSourceListIsNone(
const network::mojom::blink::CSPSourceList& source_list) { … }
bool CSPSourceListIsSelf(
const network::mojom::blink::CSPSourceList& source_list) { … }
bool CSPSourceListIsHashOrNoncePresent(
const network::mojom::blink::CSPSourceList& source_list) { … }
bool CSPSourceListAllowsURLBasedMatching(
const network::mojom::blink::CSPSourceList& source_list) { … }
bool CSPSourceListAllowAllInline(
CSPDirectiveName directive_type,
ContentSecurityPolicy::InlineType inline_type,
const network::mojom::blink::CSPSourceList& source_list) { … }
}