mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Implement nonce
attribute to pass more CSP checks (#35876)
* Add doc comments to RequestBuilder fields/methods Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement Request::cryptographic_nonce_metadata Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement HTMLOrSVGElement::nonce Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Set request cryptographic nonce metadata for link elements Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Set request's cryptographic nonce when fetching scripts Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Forward request nonce to rust-content-security-policy Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
ce4ba30992
commit
1b6b21cb85
18 changed files with 111 additions and 289 deletions
|
@ -41,6 +41,7 @@ use crate::dom::attr::Attr;
|
|||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLScriptElementBinding::HTMLScriptElementMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeMethods;
|
||||
use crate::dom::bindings::codegen::GenericBindings::HTMLElementBinding::HTMLElement_Binding::HTMLElementMethods;
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::refcounted::Trusted;
|
||||
use crate::dom::bindings::reflector::DomGlobal;
|
||||
|
@ -582,6 +583,7 @@ pub(crate) fn script_fetch_request(
|
|||
.parser_metadata(options.parser_metadata)
|
||||
.integrity_metadata(options.integrity_metadata.clone())
|
||||
.referrer_policy(options.referrer_policy)
|
||||
.cryptographic_nonce_metadata(options.cryptographic_nonce)
|
||||
}
|
||||
|
||||
/// <https://html.spec.whatwg.org/multipage/#fetch-a-classic-script>
|
||||
|
@ -776,7 +778,7 @@ impl HTMLScriptElement {
|
|||
|
||||
// Step 29. Fetch options.
|
||||
let options = ScriptFetchOptions {
|
||||
cryptographic_nonce: "".into(),
|
||||
cryptographic_nonce: self.upcast::<HTMLElement>().Nonce().into(),
|
||||
integrity_metadata: integrity_metadata.to_owned(),
|
||||
parser_metadata,
|
||||
referrer: self.global().get_referrer(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue