diff options
author | CYBAI <cyb.ai.815@gmail.com> | 2019-12-16 10:25:33 +0900 |
---|---|---|
committer | CYBAI <cyb.ai.815@gmail.com> | 2020-01-03 13:04:19 +0900 |
commit | 5c9536acdc8aed056fa91e0e3cffd3e3e0b0ad03 (patch) | |
tree | 3804d16ac7eda92ab9e3e9a8206d4f8a167b03f6 /components/script/dom/htmlscriptelement.rs | |
parent | cfad32cffdaa86c1ff2f57bb25c3947202f75e94 (diff) | |
download | servo-5c9536acdc8aed056fa91e0e3cffd3e3e0b0ad03.tar.gz servo-5c9536acdc8aed056fa91e0e3cffd3e3e0b0ad03.zip |
Support module script credentials mode
Diffstat (limited to 'components/script/dom/htmlscriptelement.rs')
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 66e70da48e8..8285b26605d 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -38,7 +38,7 @@ use ipc_channel::ipc; use ipc_channel::router::ROUTER; use js::jsval::UndefinedValue; use msg::constellation_msg::PipelineId; -use net_traits::request::{CorsSettings, Destination, Referrer, RequestBuilder}; +use net_traits::request::{CorsSettings, CredentialsMode, Destination, Referrer, RequestBuilder}; use net_traits::ReferrerPolicy; use net_traits::{FetchMetadata, FetchResponseListener, Metadata, NetworkError}; use net_traits::{ResourceFetchTiming, ResourceTimingType}; @@ -491,7 +491,18 @@ impl HTMLScriptElement { // Step 16. let cors_setting = cors_setting_for_element(element); - // TODO: Step 17: Module script credentials mode. + // Step 17. + let credentials_mode = match script_type { + ScriptType::Classic => None, + ScriptType::Module => Some(reflect_cross_origin_attribute(element).map_or( + CredentialsMode::CredentialsSameOrigin, + |attr| match &*attr { + "use-credentials" => CredentialsMode::Include, + "anonymous" => CredentialsMode::CredentialsSameOrigin, + _ => CredentialsMode::CredentialsSameOrigin, + }, + )), + }; // TODO: Step 18: Nonce. @@ -583,6 +594,7 @@ impl HTMLScriptElement { url.clone(), Destination::Script, integrity_metadata.to_owned(), + credentials_mode.unwrap(), ); if !r#async && was_parser_inserted { @@ -637,6 +649,7 @@ impl HTMLScriptElement { text.clone(), base_url.clone(), self.id.clone(), + credentials_mode.unwrap(), ); }, } |