aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/document.rs12
-rw-r--r--components/script/dom/element.rs5
2 files changed, 14 insertions, 3 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 7bc0345b279..94263523bf1 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -311,6 +311,18 @@ pub enum DocumentSource {
NotFromParser,
}
+pub trait LayoutDocumentHelpers {
+ unsafe fn is_html_document_for_layout(&self) -> bool;
+}
+
+impl LayoutDocumentHelpers for JS<Document> {
+ #[allow(unrooted_must_root)]
+ #[inline]
+ unsafe fn is_html_document_for_layout(&self) -> bool {
+ (*self.unsafe_get()).is_html_document
+ }
+}
+
impl Document {
fn new_inherited(window: JSRef<Window>,
url: Option<Url>,
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index f71e9626b29..08ad02287fa 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -21,7 +21,7 @@ use dom::bindings::error::{ErrorResult, Fallible, NamespaceError, InvalidCharact
use dom::bindings::utils::{QName, Name, InvalidXMLName, xml_name_type};
use dom::domrect::DOMRect;
use dom::domrectlist::DOMRectList;
-use dom::document::{Document, DocumentHelpers};
+use dom::document::{Document, DocumentHelpers, LayoutDocumentHelpers};
use dom::domtokenlist::DOMTokenList;
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlcollection::HTMLCollection;
@@ -335,8 +335,7 @@ impl LayoutElementHelpers for JS<Element> {
return false
}
let node: JS<Node> = self.transmute_copy();
- let owner_doc = node.owner_doc_for_layout().unsafe_get();
- (*owner_doc).is_html_document()
+ node.owner_doc_for_layout().is_html_document_for_layout()
}
}