diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-06-04 08:30:39 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-04 08:30:39 -0400 |
commit | fe8aad722749e8e5c9223800b98fc4e87b9ab161 (patch) | |
tree | 31150ecb4738828a3afd66fa1b1e76d0bf785550 /components/layout_thread/dom_wrapper.rs | |
parent | 6e83856d7bcb79d1a937f026ef4fcf1a3256c2c6 (diff) | |
parent | c155639bc5d8357d8c6e27535bc64f72bb8d2562 (diff) | |
download | servo-fe8aad722749e8e5c9223800b98fc4e87b9ab161.tar.gz servo-fe8aad722749e8e5c9223800b98fc4e87b9ab161.zip |
Auto merge of #23503 - emilio:gecko-sync, r=emilio
style: sync changes from mozilla-central
See each individual commit for details. This also cherry-picks #23463 with a few fixes that were needed in Gecko-only code.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23503)
<!-- Reviewable:end -->
Diffstat (limited to 'components/layout_thread/dom_wrapper.rs')
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index d738ef1151f..a0c1a8b7a61 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -715,6 +715,14 @@ impl<'le> TElement for ServoLayoutElement<'le> { .map(ServoShadowRoot::from_layout_js) } } + + fn local_name(&self) -> &LocalName { + self.element.local_name() + } + + fn namespace(&self) -> &Namespace { + self.element.namespace() + } } impl<'le> PartialEq for ServoLayoutElement<'le> { @@ -879,13 +887,19 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> { } #[inline] - fn local_name(&self) -> &LocalName { - self.element.local_name() + fn has_local_name(&self, name: &LocalName) -> bool { + self.element.local_name() == name } #[inline] - fn namespace(&self) -> &Namespace { - self.element.namespace() + fn has_namespace(&self, ns: &Namespace) -> bool { + self.element.namespace() == ns + } + + #[inline] + fn is_same_type(&self, other: &Self) -> bool { + self.element.local_name() == other.element.local_name() && + self.element.namespace() == other.element.namespace() } fn is_pseudo_element(&self) -> bool { @@ -1266,8 +1280,8 @@ where loop { let next_node = if let Some(ref node) = current_node { if let Some(element) = node.as_element() { - if element.local_name() == &local_name!("summary") && - element.namespace() == &ns!(html) + if element.has_local_name(&local_name!("summary")) && + element.has_namespace(&ns!(html)) { self.current_node = None; return Some(node.clone()); @@ -1286,8 +1300,10 @@ where let node = self.current_node.clone(); let node = node.and_then(|node| { if node.is_element() && - node.as_element().unwrap().local_name() == &local_name!("summary") && - node.as_element().unwrap().namespace() == &ns!(html) + node.as_element() + .unwrap() + .has_local_name(&local_name!("summary")) && + node.as_element().unwrap().has_namespace(&ns!(html)) { unsafe { node.dangerous_next_sibling() } } else { @@ -1437,13 +1453,19 @@ impl<'le> ::selectors::Element for ServoThreadSafeLayoutElement<'le> { } #[inline] - fn local_name(&self) -> &LocalName { - self.element.local_name() + fn has_local_name(&self, name: &LocalName) -> bool { + self.element.local_name() == name } #[inline] - fn namespace(&self) -> &Namespace { - self.element.namespace() + fn has_namespace(&self, ns: &Namespace) -> bool { + self.element.namespace() == ns + } + + #[inline] + fn is_same_type(&self, other: &Self) -> bool { + self.element.local_name() == other.element.local_name() && + self.element.namespace() == other.element.namespace() } fn match_pseudo_element( |