From 1b6b21cb8579622955e2a25c59ebb2bb0875b169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=BClker?= Date: Mon, 10 Mar 2025 10:25:34 +0100 Subject: Implement `nonce` attribute to pass more CSP checks (#35876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add doc comments to RequestBuilder fields/methods Signed-off-by: Simon Wülker * Implement Request::cryptographic_nonce_metadata Signed-off-by: Simon Wülker * Implement HTMLOrSVGElement::nonce Signed-off-by: Simon Wülker * Set request cryptographic nonce metadata for link elements Signed-off-by: Simon Wülker * Set request's cryptographic nonce when fetching scripts Signed-off-by: Simon Wülker * Forward request nonce to rust-content-security-policy Signed-off-by: Simon Wülker * Update WPT expectations Signed-off-by: Simon Wülker --------- Signed-off-by: Simon Wülker --- components/script/dom/svgelement.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'components/script/dom/svgelement.rs') diff --git a/components/script/dom/svgelement.rs b/components/script/dom/svgelement.rs index 525c93c5741..6dd90a2efa8 100644 --- a/components/script/dom/svgelement.rs +++ b/components/script/dom/svgelement.rs @@ -5,6 +5,7 @@ use dom_struct::dom_struct; use html5ever::{LocalName, Prefix, local_name, namespace_url, ns}; use js::rust::HandleObject; +use script_bindings::str::DOMString; use style_dom::ElementState; use crate::dom::bindings::codegen::Bindings::SVGElementBinding::SVGElementMethods; @@ -81,6 +82,14 @@ impl SVGElementMethods for SVGElement { }) } + // FIXME: The nonce should be stored in an internal slot instead of an + // attribute (https://html.spec.whatwg.org/multipage/#cryptographicnonce) + // https://html.spec.whatwg.org/multipage/#dom-noncedelement-nonce + make_getter!(Nonce, "nonce"); + + // https://html.spec.whatwg.org/multipage/#dom-noncedelement-nonce + make_setter!(SetNonce, "nonce"); + // https://html.spec.whatwg.org/multipage/#dom-fe-autofocus fn Autofocus(&self) -> bool { self.element.has_attribute(&local_name!("autofocus")) -- cgit v1.2.3