diff options
author | Connor Brewster <connor.brewster@eagles.oc.edu> | 2017-06-16 14:34:17 -0600 |
---|---|---|
committer | Connor Brewster <connor.brewster@eagles.oc.edu> | 2017-06-23 21:09:55 -0600 |
commit | 2f36d3544fd7082cb5fcb16a43955cbb446bcbd7 (patch) | |
tree | 7e2531ba5c2d978ab1c99c68926bf0e8faf14b1b /components/script/dom/servoparser/async_html.rs | |
parent | 6697f5469d0e331d704dc1211c6236b751102bc8 (diff) | |
download | servo-2f36d3544fd7082cb5fcb16a43955cbb446bcbd7.tar.gz servo-2f36d3544fd7082cb5fcb16a43955cbb446bcbd7.zip |
Support `is` option when creating elements
Diffstat (limited to 'components/script/dom/servoparser/async_html.rs')
-rw-r--r-- | components/script/dom/servoparser/async_html.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/components/script/dom/servoparser/async_html.rs b/components/script/dom/servoparser/async_html.rs index e1632ffaf3c..899229be8f8 100644 --- a/components/script/dom/servoparser/async_html.rs +++ b/components/script/dom/servoparser/async_html.rs @@ -20,7 +20,7 @@ use dom::htmltemplateelement::HTMLTemplateElement; use dom::node::Node; use dom::processinginstruction::ProcessingInstruction; use dom::virtualmethods::vtable_for; -use html5ever::{Attribute, QualName, ExpandedName}; +use html5ever::{Attribute, LocalName, QualName, ExpandedName}; use html5ever::buffer_queue::BufferQueue; use html5ever::tendril::StrTendril; use html5ever::tokenizer::{Tokenizer as HtmlTokenizer, TokenizerOpts, TokenizerResult}; @@ -245,7 +245,13 @@ impl Sink { self.insert_node(contents, JS::from_ref(template.Content().upcast())); } ParseOperation::CreateElement(id, name, attrs) => { - let elem = Element::create(name, &*self.document, + let is = attrs.iter() + .find(|attr| attr.name.local.eq_str_ignore_ascii_case("is")) + .map(|attr| LocalName::from(&*attr.value)); + + let elem = Element::create(name, + is, + &*self.document, ElementCreator::ParserCreated(self.current_line)); for attr in attrs { elem.set_attribute_from_parser(attr.name, DOMString::from(String::from(attr.value)), None); |