aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 2c7372ebddf..858f17c002b 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -129,6 +129,7 @@ pub struct Element {
prefix: Option<Prefix>,
attrs: DOMRefCell<Vec<JS<Attr>>>,
id_attribute: DOMRefCell<Option<Atom>>,
+ is: DOMRefCell<Option<LocalName>>,
#[ignore_heap_size_of = "Arc"]
style_attribute: DOMRefCell<Option<Arc<Locked<PropertyDeclarationBlock>>>>,
attr_list: MutNullableJS<NamedNodeMap>,
@@ -205,9 +206,11 @@ impl<'a> TryFrom<&'a str> for AdjacentPosition {
//
impl Element {
pub fn create(name: QualName,
- document: &Document, creator: ElementCreator)
+ is: Option<LocalName>,
+ document: &Document,
+ creator: ElementCreator)
-> Root<Element> {
- create_element(name, document, creator)
+ create_element(name, is, document, creator)
}
pub fn new_inherited(local_name: LocalName,
@@ -229,6 +232,7 @@ impl Element {
prefix: prefix,
attrs: DOMRefCell::new(vec![]),
id_attribute: DOMRefCell::new(None),
+ is: DOMRefCell::new(None),
style_attribute: DOMRefCell::new(None),
attr_list: Default::default(),
class_list: Default::default(),
@@ -260,6 +264,14 @@ impl Element {
}
}
+ pub fn set_is(&self, is: LocalName) {
+ *self.is.borrow_mut() = Some(is);
+ }
+
+ pub fn get_is(&self) -> Option<LocalName> {
+ self.is.borrow().clone()
+ }
+
// https://drafts.csswg.org/cssom-view/#css-layout-box
// Elements that have a computed value of the display property
// that is table-column or table-column-group
@@ -1970,6 +1982,7 @@ impl ElementMethods for Element {
// Step 4.
NodeTypeId::DocumentFragment => {
let body_elem = Element::create(QualName::new(None, ns!(html), local_name!("body")),
+ None,
&context_document,
ElementCreator::ScriptCreated);
Root::upcast(body_elem)