mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Bug 1335863 - Inline Gecko_IsHTMLElementInHTMLDocument. r=emilio
This commit is contained in:
parent
ae88d22399
commit
e78f2404e1
2 changed files with 12 additions and 4 deletions
|
@ -235,6 +235,7 @@ mod bindings {
|
||||||
.include(add_include("mozilla/Keyframe.h"))
|
.include(add_include("mozilla/Keyframe.h"))
|
||||||
.include(add_include("mozilla/ServoElementSnapshot.h"))
|
.include(add_include("mozilla/ServoElementSnapshot.h"))
|
||||||
.include(add_include("mozilla/dom/Element.h"))
|
.include(add_include("mozilla/dom/Element.h"))
|
||||||
|
.include(add_include("mozilla/dom/NameSpaceConstants.h"))
|
||||||
.include(add_include("mozilla/ServoBindings.h"))
|
.include(add_include("mozilla/ServoBindings.h"))
|
||||||
.include(add_include("nsMediaFeatures.h"))
|
.include(add_include("nsMediaFeatures.h"))
|
||||||
.include(add_include("nsMediaList.h"))
|
.include(add_include("nsMediaList.h"))
|
||||||
|
@ -258,6 +259,7 @@ mod bindings {
|
||||||
"BORDER_COLOR_.*",
|
"BORDER_COLOR_.*",
|
||||||
"BORDER_STYLE_.*",
|
"BORDER_STYLE_.*",
|
||||||
"mozilla::SERVO_PREF_.*",
|
"mozilla::SERVO_PREF_.*",
|
||||||
|
"kNameSpaceID_.*",
|
||||||
];
|
];
|
||||||
let whitelist = [
|
let whitelist = [
|
||||||
"RawGecko.*",
|
"RawGecko.*",
|
||||||
|
|
|
@ -25,12 +25,12 @@ use gecko::snapshot_helpers;
|
||||||
use gecko_bindings::bindings;
|
use gecko_bindings::bindings;
|
||||||
use gecko_bindings::bindings::{Gecko_DropStyleChildrenIterator, Gecko_MaybeCreateStyleChildrenIterator};
|
use gecko_bindings::bindings::{Gecko_DropStyleChildrenIterator, Gecko_MaybeCreateStyleChildrenIterator};
|
||||||
use gecko_bindings::bindings::{Gecko_ElementState, Gecko_GetLastChild, Gecko_GetNextStyleChild};
|
use gecko_bindings::bindings::{Gecko_ElementState, Gecko_GetLastChild, Gecko_GetNextStyleChild};
|
||||||
use gecko_bindings::bindings::{Gecko_GetServoDeclarationBlock, Gecko_IsHTMLElementInHTMLDocument};
|
|
||||||
use gecko_bindings::bindings::{Gecko_IsLink, Gecko_IsRootElement, Gecko_MatchesElement};
|
use gecko_bindings::bindings::{Gecko_IsLink, Gecko_IsRootElement, Gecko_MatchesElement};
|
||||||
use gecko_bindings::bindings::{Gecko_IsUnvisitedLink, Gecko_IsVisitedLink, Gecko_Namespace};
|
use gecko_bindings::bindings::{Gecko_IsUnvisitedLink, Gecko_IsVisitedLink, Gecko_Namespace};
|
||||||
use gecko_bindings::bindings::{Gecko_SetNodeFlags, Gecko_UnsetNodeFlags};
|
use gecko_bindings::bindings::{Gecko_SetNodeFlags, Gecko_UnsetNodeFlags};
|
||||||
use gecko_bindings::bindings::Gecko_ClassOrClassList;
|
use gecko_bindings::bindings::Gecko_ClassOrClassList;
|
||||||
use gecko_bindings::bindings::Gecko_GetAnimationRule;
|
use gecko_bindings::bindings::Gecko_GetAnimationRule;
|
||||||
|
use gecko_bindings::bindings::Gecko_GetServoDeclarationBlock;
|
||||||
use gecko_bindings::bindings::Gecko_GetStyleContext;
|
use gecko_bindings::bindings::Gecko_GetStyleContext;
|
||||||
use gecko_bindings::structs;
|
use gecko_bindings::structs;
|
||||||
use gecko_bindings::structs::{RawGeckoElement, RawGeckoNode};
|
use gecko_bindings::structs::{RawGeckoElement, RawGeckoNode};
|
||||||
|
@ -88,6 +88,11 @@ impl<'ln> GeckoNode<'ln> {
|
||||||
unsafe { &*self.0.mNodeInfo.mRawPtr }
|
unsafe { &*self.0.mNodeInfo.mRawPtr }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn owner_doc(&self) -> &structs::nsIDocument {
|
||||||
|
debug_assert!(!self.node_info().mDocument.is_null());
|
||||||
|
unsafe { &*self.node_info().mDocument }
|
||||||
|
}
|
||||||
|
|
||||||
fn first_child(&self) -> Option<GeckoNode<'ln>> {
|
fn first_child(&self) -> Option<GeckoNode<'ln>> {
|
||||||
unsafe { self.0.mFirstChild.as_ref().map(GeckoNode::from_content) }
|
unsafe { self.0.mFirstChild.as_ref().map(GeckoNode::from_content) }
|
||||||
}
|
}
|
||||||
|
@ -565,9 +570,10 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_html_element_in_html_document(&self) -> bool {
|
fn is_html_element_in_html_document(&self) -> bool {
|
||||||
unsafe {
|
let node = self.as_node();
|
||||||
Gecko_IsHTMLElementInHTMLDocument(self.0)
|
let node_info = node.node_info();
|
||||||
}
|
node_info.mInner.mNamespaceID == (structs::root::kNameSpaceID_XHTML as i32) &&
|
||||||
|
node.owner_doc().mType == structs::root::nsIDocument_Type::eHTML
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue