/* * Copyright (c) 2024, Luke Wilde * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::ContentSecurityPolicy::Directives { // https://w3c.github.io/webappsec-csp/#directive-script-src-elem class ScriptSourceElementDirective final : public Directive { GC_CELL(ScriptSourceElementDirective, Directive) GC_DECLARE_ALLOCATOR(ScriptSourceElementDirective); public: virtual ~ScriptSourceElementDirective() = default; virtual Result pre_request_check(GC::Heap&, GC::Ref, GC::Ref) const override; virtual Result post_request_check(GC::Heap&, GC::Ref, GC::Ref, GC::Ref) const override; virtual Result inline_check(GC::Heap&, GC::Ptr, InlineType, GC::Ref, String const&) const override; private: ScriptSourceElementDirective(String name, Vector value); }; }