diff options
author | mrnayak <rmuddur@gmail.com> | 2017-01-13 23:35:00 +0530 |
---|---|---|
committer | mrnayak <rmuddur@gmail.com> | 2017-01-13 23:35:00 +0530 |
commit | 3d9e44a8c497acd52b428dd02062a9c55a2efafc (patch) | |
tree | e62450e7f88ea8152da2d0f0276c25ad5402ed66 /components/script/dom/htmlscriptelement.rs | |
parent | dc93a72997aefaeb04cdc058b01fdd2eb14cef8f (diff) | |
download | servo-3d9e44a8c497acd52b428dd02062a9c55a2efafc.tar.gz servo-3d9e44a8c497acd52b428dd02062a9c55a2efafc.zip |
Handle crossorigin in link and refactor crossorigin handling
Implemented Step three and handled step four of obtain the resource part
of 4.2.4 The link element.
Link to spec : https://html.spec.whatwg.org/multipage/semantics.html#concept-link-obtain
Refactored crossOrigin handling in HTMLScriptElement, HTMLImageElement
Diffstat (limited to 'components/script/dom/htmlscriptelement.rs')
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index cf0d3c6cf94..1a946871f32 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -4,7 +4,6 @@ use document_loader::LoadType; use dom::attr::Attr; -use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods; use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use dom::bindings::codegen::Bindings::HTMLScriptElementBinding; use dom::bindings::codegen::Bindings::HTMLScriptElementBinding::HTMLScriptElementMethods; @@ -17,6 +16,7 @@ use dom::bindings::reflector::DomObject; use dom::bindings::str::DOMString; use dom::document::Document; use dom::element::{AttributeMutation, Element, ElementCreator}; +use dom::element::{cors_setting_for_element, reflect_cross_origin_attribute, set_cross_origin_attribute}; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventdispatcher::EventStatus; use dom::globalscope::GlobalScope; @@ -369,12 +369,7 @@ impl HTMLScriptElement { .unwrap_or_else(|| doc.encoding()); // Step 14. - let cors_setting = match self.GetCrossOrigin() { - Some(ref s) if *s == "anonymous" => Some(CorsSettings::Anonymous), - Some(ref s) if *s == "use-credentials" => Some(CorsSettings::UseCredentials), - None => None, - _ => unreachable!() - }; + let cors_setting = cors_setting_for_element(element); // TODO: Step 15: Module script credentials mode. @@ -707,28 +702,12 @@ impl HTMLScriptElementMethods for HTMLScriptElement { // https://html.spec.whatwg.org/multipage/#dom-script-crossorigin fn GetCrossOrigin(&self) -> Option<DOMString> { - let element = self.upcast::<Element>(); - let attr = element.get_attribute(&ns!(), &local_name!("crossorigin")); - - if let Some(mut val) = attr.map(|v| v.Value()) { - val.make_ascii_lowercase(); - if val == "anonymous" || val == "use-credentials" { - return Some(val); - } - return Some(DOMString::from("anonymous")); - } - None + reflect_cross_origin_attribute(self.upcast::<Element>()) } // https://html.spec.whatwg.org/multipage/#dom-script-crossorigin fn SetCrossOrigin(&self, value: Option<DOMString>) { - let element = self.upcast::<Element>(); - match value { - Some(val) => element.set_string_attribute(&local_name!("crossorigin"), val), - None => { - element.remove_attribute(&ns!(), &local_name!("crossorigin")); - } - } + set_cross_origin_attribute(self.upcast::<Element>(), value); } // https://html.spec.whatwg.org/multipage/#dom-script-text |