aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/servo/Cargo.lock2
-rw-r--r--ports/cef/Cargo.lock2
-rw-r--r--ports/geckolib/Cargo.lock1
-rw-r--r--ports/geckolib/Cargo.toml1
-rw-r--r--ports/geckolib/gecko_bindings/bindings.rs3
-rw-r--r--ports/geckolib/gecko_bindings/structs_debug.rs233
-rw-r--r--ports/geckolib/gecko_bindings/structs_release.rs233
-rwxr-xr-xports/geckolib/gecko_bindings/tools/regen.py4
-rw-r--r--ports/geckolib/lib.rs1
-rw-r--r--ports/geckolib/wrapper.rs49
10 files changed, 356 insertions, 173 deletions
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index e51ba302653..859e6b00e0d 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -1081,7 +1081,7 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.3"
-source = "git+https://github.com/servo/rust-mozjs#3ea62135ba1316b4aa845b18cf621bf127b56211"
+source = "git+https://github.com/servo/rust-mozjs#bc9add648b3174120d70d0bef3935912bd6f1313"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index a451ab23c6c..7bef903e9ce 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -990,7 +990,7 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.3"
-source = "git+https://github.com/servo/rust-mozjs#3ea62135ba1316b4aa845b18cf621bf127b56211"
+source = "git+https://github.com/servo/rust-mozjs#bc9add648b3174120d70d0bef3935912bd6f1313"
dependencies = [
"heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock
index c384b64242b..9f1b54a59eb 100644
--- a/ports/geckolib/Cargo.lock
+++ b/ports/geckolib/Cargo.lock
@@ -12,7 +12,6 @@ dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"string_cache 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"style_traits 0.0.1",
diff --git a/ports/geckolib/Cargo.toml b/ports/geckolib/Cargo.toml
index 48df8485e94..502fbe9b6c2 100644
--- a/ports/geckolib/Cargo.toml
+++ b/ports/geckolib/Cargo.toml
@@ -21,7 +21,6 @@ libc = "0.2"
log = {version = "0.3.5", features = ["release_max_level_info"]}
num_cpus = "0.2.2"
selectors = "0.7"
-smallvec = "0.1"
string_cache = {version = "0.2.20", features = ["unstable"]}
style = {path = "../../components/style", features = ["gecko"]}
style_traits = {path = "../../components/style_traits"}
diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs
index 174333ca1ff..f983c039acc 100644
--- a/ports/geckolib/gecko_bindings/bindings.rs
+++ b/ports/geckolib/gecko_bindings/bindings.rs
@@ -240,6 +240,9 @@ extern "C" {
principal: *mut ThreadSafePrincipalHolder);
pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay,
src: *const nsStyleDisplay);
+ pub fn Gecko_GetNodeFlags(node: *mut RawGeckoNode) -> u32;
+ pub fn Gecko_SetNodeFlags(node: *mut RawGeckoNode, flags: u32);
+ pub fn Gecko_UnsetNodeFlags(node: *mut RawGeckoNode, flags: u32);
pub fn Servo_StylesheetFromUTF8Bytes(bytes: *const u8, length: u32,
parsing_mode: SheetParsingMode,
base: *mut ThreadSafeURIHolder,
diff --git a/ports/geckolib/gecko_bindings/structs_debug.rs b/ports/geckolib/gecko_bindings/structs_debug.rs
index 13274054e3b..4797b2312d2 100644
--- a/ports/geckolib/gecko_bindings/structs_debug.rs
+++ b/ports/geckolib/gecko_bindings/structs_debug.rs
@@ -188,6 +188,10 @@ pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69;
pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1;
pub const NSID_LENGTH: ::std::os::raw::c_uint = 39;
pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2;
+pub const _STL_PAIR_H: ::std::os::raw::c_uint = 1;
+pub const _GLIBCXX_UTILITY: ::std::os::raw::c_uint = 1;
+pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1;
+pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2;
pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20;
pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72;
pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0;
@@ -2760,6 +2764,84 @@ pub enum SheetParsingMode {
pub struct HandleRefPtr<T> {
pub mHandle: T,
}
+pub enum nsAttrAndChildArray { }
+pub enum nsChildContentList { }
+pub enum nsCSSSelectorList { }
+pub enum nsDOMAttributeMap { }
+pub enum nsIAnimationObserver { }
+pub enum nsIDOMElement { }
+pub enum nsIDOMNodeList { }
+pub enum nsIEditor { }
+pub enum nsIFrame { }
+pub enum nsINodeList { }
+pub enum nsNodeSupportsWeakRefTearoff { }
+pub enum nsNodeWeakReference { }
+pub enum nsDOMMutationObserver { }
+pub enum ServoNodeData { }
+pub enum EventListenerManager { }
+pub enum BoxQuadOptions { }
+pub enum ConvertCoordinateOptions { }
+pub enum DOMPoint { }
+pub enum DOMQuad { }
+pub enum DOMRectReadOnly { }
+pub enum Element { }
+pub enum Text { }
+pub enum TextOrElementOrDocument { }
+pub enum DOMPointInit { }
+#[repr(u32)]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+pub enum NodeFlags {
+ NODE_HAS_LISTENERMANAGER = 4,
+ NODE_HAS_PROPERTIES = 8,
+ NODE_IS_ANONYMOUS_ROOT = 16,
+ NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32,
+ NODE_IS_NATIVE_ANONYMOUS_ROOT = 64,
+ NODE_FORCE_XBL_BINDINGS = 128,
+ NODE_MAY_BE_IN_BINDING_MNGR = 256,
+ NODE_IS_EDITABLE = 512,
+ NODE_MAY_HAVE_CLASS = 1024,
+ NODE_IS_IN_SHADOW_TREE = 2048,
+ NODE_HAS_EMPTY_SELECTOR = 4096,
+ NODE_HAS_SLOW_SELECTOR = 8192,
+ NODE_HAS_EDGE_CHILD_SELECTOR = 16384,
+ NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS = 32768,
+ NODE_ALL_SELECTOR_FLAGS = 61440,
+ NODE_NEEDS_FRAME = 65536,
+ NODE_DESCENDANTS_NEED_FRAMES = 131072,
+ NODE_HAS_ACCESSKEY = 262144,
+ NODE_HAS_DIRECTION_RTL = 524288,
+ NODE_HAS_DIRECTION_LTR = 1048576,
+ NODE_ALL_DIRECTION_FLAGS = 1572864,
+ NODE_CHROME_ONLY_ACCESS = 2097152,
+ NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS = 4194304,
+ NODE_IS_DIRTY_FOR_SERVO = 8388608,
+ NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO = 16777216,
+ NODE_TYPE_SPECIFIC_BITS_OFFSET = 23,
+}
+/**
+ * Class used to detect unexpected mutations. To use the class create an
+ * nsMutationGuard on the stack before unexpected mutations could occur.
+ * You can then at any time call Mutated to check if any unexpected mutations
+ * have occurred.
+ */
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsMutationGuard {
+ pub mStartingGeneration: u64,
+}
+impl ::std::clone::Clone for nsMutationGuard {
+ fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsMutationGuard() {
+ assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize);
+ assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize);
+}
+extern "C" {
+ #[link_name = "_ZN15nsMutationGuard11sGenerationE"]
+ pub static mut nsMutationGuard_consts_sGeneration:
+ ::std::os::raw::c_ulong;
+}
pub type Float = f32;
#[repr(i8)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
@@ -2991,7 +3073,7 @@ pub type gfxImageFormat = SurfaceFormat;
pub struct RectCorner;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum RectCorner_Types_h_unnamed_8 {
+pub enum RectCorner_Types_h_unnamed_10 {
TopLeft = 0,
TopRight = 1,
BottomRight = 2,
@@ -4222,14 +4304,14 @@ pub enum nsCSSUnit {
#[derive(Debug)]
pub struct nsCSSValue {
pub mUnit: nsCSSUnit,
- pub mValue: nsCSSValue_nsCSSValue_h_unnamed_10,
+ pub mValue: nsCSSValue_nsCSSValue_h_unnamed_12,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, }
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsCSSValue_nsCSSValue_h_unnamed_10 {
+pub struct nsCSSValue_nsCSSValue_h_unnamed_12 {
pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>,
pub mString: __BindgenUnionField<*mut nsStringBuffer>,
@@ -4252,15 +4334,15 @@ pub struct nsCSSValue_nsCSSValue_h_unnamed_10 {
pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
pub _bindgen_data_: u64,
}
-impl nsCSSValue_nsCSSValue_h_unnamed_10 { }
-impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_10 {
+impl nsCSSValue_nsCSSValue_h_unnamed_12 { }
+impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_12 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_10() {
- assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() ,
+fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_12() {
+ assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() ,
8usize);
- assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() ,
+ assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() ,
8usize);
}
#[test]
@@ -4581,7 +4663,7 @@ pub struct ArenaRefPtr<T> {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_11 {
+pub enum gfxFontConstants_h_unnamed_13 {
eFeatureAlternates_historical = 0,
eFeatureAlternates_stylistic = 1,
eFeatureAlternates_styleset = 2,
@@ -4593,7 +4675,7 @@ pub enum gfxFontConstants_h_unnamed_11 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_12 {
+pub enum gfxFontConstants_h_unnamed_14 {
eFeatureEastAsian_jis78 = 0,
eFeatureEastAsian_jis83 = 1,
eFeatureEastAsian_jis90 = 2,
@@ -4607,7 +4689,7 @@ pub enum gfxFontConstants_h_unnamed_12 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_13 {
+pub enum gfxFontConstants_h_unnamed_15 {
eFeatureLigatures_none = 0,
eFeatureLigatures_common = 1,
eFeatureLigatures_no_common = 2,
@@ -4621,7 +4703,7 @@ pub enum gfxFontConstants_h_unnamed_13 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_14 {
+pub enum gfxFontConstants_h_unnamed_16 {
eFeatureNumeric_lining = 0,
eFeatureNumeric_oldstyle = 1,
eFeatureNumeric_proportional = 2,
@@ -4708,22 +4790,22 @@ pub enum nsStyleUnit {
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleCoord_h_unnamed_15 {
+pub struct nsStyleCoord_h_unnamed_17 {
pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>,
pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub _bindgen_data_: u64,
}
-impl nsStyleCoord_h_unnamed_15 { }
-impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 {
+impl nsStyleCoord_h_unnamed_17 { }
+impl ::std::clone::Clone for nsStyleCoord_h_unnamed_17 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() {
- assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
+fn bindgen_test_layout_nsStyleCoord_h_unnamed_17() {
+ assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_17>() , 8usize);
+ assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_17>() , 8usize);
}
-pub type nsStyleUnion = nsStyleCoord_h_unnamed_15;
+pub type nsStyleUnion = nsStyleCoord_h_unnamed_17;
/**
* Class that hold a single size specification used by the style
* system. The size specification consists of two parts -- a number
@@ -4839,7 +4921,6 @@ fn bindgen_test_layout_imgRequestProxyStatic() {
assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize);
assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize);
}
-pub enum nsIFrame { }
pub enum nsStyleContext { }
pub enum nsTextFrame { }
#[repr(C)]
@@ -4917,27 +4998,27 @@ pub enum nsStyleImageType {
pub struct nsStyleImage {
pub mSubImages: u64,
pub mType: nsStyleImageType,
- pub nsStyleImage_nsStyleStruct_h_unnamed_18: nsStyleImage_nsStyleStruct_h_unnamed_18,
+ pub nsStyleImage_nsStyleStruct_h_unnamed_20: nsStyleImage_nsStyleStruct_h_unnamed_20,
pub mCropRect: nsAutoPtr<nsStyleSides>,
pub mImageTracked: bool,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 {
+pub struct nsStyleImage_nsStyleStruct_h_unnamed_20 {
pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
pub _bindgen_data_: u64,
}
-impl nsStyleImage_nsStyleStruct_h_unnamed_18 { }
-impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 {
+impl nsStyleImage_nsStyleStruct_h_unnamed_20 { }
+impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_20 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() {
- assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
+fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_20() {
+ assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
+ assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>()
, 8usize);
}
#[test]
@@ -4987,7 +5068,7 @@ pub struct nsStyleImageLayers {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_19 {
+pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_21 {
shorthand = 0,
color = 1,
image = 2,
@@ -5454,7 +5535,7 @@ fn bindgen_test_layout_nsStyleVisibility() {
#[derive(Debug, Copy)]
pub struct nsTimingFunction {
pub mType: nsTimingFunction_Type,
- pub nsTimingFunction_nsStyleStruct_h_unnamed_20: nsTimingFunction_nsStyleStruct_h_unnamed_20,
+ pub nsTimingFunction_nsStyleStruct_h_unnamed_22: nsTimingFunction_nsStyleStruct_h_unnamed_22,
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
@@ -5481,56 +5562,56 @@ pub enum nsTimingFunction_StepSyntax {
pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 {
- pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>,
- pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>,
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22 {
+ pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>,
+ pub nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>,
pub _bindgen_data_: [u32; 4usize],
}
-impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { }
-impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 {
+impl nsTimingFunction_nsStyleStruct_h_unnamed_22 { }
+impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_22 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>()
, 16usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>()
, 4usize);
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 {
pub mX1: f32,
pub mY1: f32,
pub mX2: f32,
pub mY2: f32,
}
impl ::std::clone::Clone for
- nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
+ nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>()
, 16usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>()
, 4usize);
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 {
pub mStepSyntax: nsTimingFunction_StepSyntax,
pub mSteps: u32,
}
impl ::std::clone::Clone for
- nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
+ nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>()
, 4usize);
}
impl ::std::clone::Clone for nsTimingFunction {
@@ -5675,26 +5756,26 @@ pub enum nsStyleContentType {
#[derive(Debug)]
pub struct nsStyleContentData {
pub mType: nsStyleContentType,
- pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_23,
+ pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_25,
pub mImageTracked: bool,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 {
+pub struct nsStyleContentData_nsStyleStruct_h_unnamed_25 {
pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mCounters: __BindgenUnionField<*mut Array>,
pub _bindgen_data_: u64,
}
-impl nsStyleContentData_nsStyleStruct_h_unnamed_23 { }
-impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 {
+impl nsStyleContentData_nsStyleStruct_h_unnamed_25 { }
+impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_25 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() {
- assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
+fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_25() {
+ assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
+ assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>()
, 8usize);
}
#[test]
@@ -5828,26 +5909,26 @@ pub enum nsStyleSVGOpacitySource {
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleSVGPaint {
- pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_24,
+ pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_26,
pub mType: nsStyleSVGPaintType,
pub mFallbackColor: nscolor,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
+pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 {
pub mColor: __BindgenUnionField<nscolor>,
pub mPaintServer: __BindgenUnionField<*mut nsIURI>,
pub _bindgen_data_: u64,
}
-impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { }
-impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
+impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { }
+impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() {
- assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
+fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_26() {
+ assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
+ assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>()
, 8usize);
}
#[test]
@@ -5882,7 +5963,7 @@ pub struct nsStyleSVG {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum nsStyleSVG_nsStyleStruct_h_unnamed_25 {
+pub enum nsStyleSVG_nsStyleStruct_h_unnamed_27 {
FILL_OPACITY_SOURCE_MASK = 3,
STROKE_OPACITY_SOURCE_MASK = 12,
STROKE_DASHARRAY_CONTEXT = 16,
@@ -5924,25 +6005,25 @@ fn bindgen_test_layout_nsStyleBasicShape() {
#[derive(Debug)]
pub struct nsStyleClipPath {
pub mType: i32,
- pub nsStyleClipPath_nsStyleStruct_h_unnamed_26: nsStyleClipPath_nsStyleStruct_h_unnamed_26,
+ pub nsStyleClipPath_nsStyleStruct_h_unnamed_28: nsStyleClipPath_nsStyleStruct_h_unnamed_28,
pub mSizingBox: u8,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
+pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_28 {
pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>,
pub mURL: __BindgenUnionField<*mut nsIURI>,
pub _bindgen_data_: u64,
}
-impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { }
-impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
+impl nsStyleClipPath_nsStyleStruct_h_unnamed_28 { }
+impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_28 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() {
- assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
+fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_28() {
+ assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
+ assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>()
, 8usize);
}
#[test]
@@ -5955,24 +6036,24 @@ fn bindgen_test_layout_nsStyleClipPath() {
pub struct nsStyleFilter {
pub mType: i32,
pub mFilterParameter: nsStyleCoord,
- pub nsStyleFilter_nsStyleStruct_h_unnamed_27: nsStyleFilter_nsStyleStruct_h_unnamed_27,
+ pub nsStyleFilter_nsStyleStruct_h_unnamed_29: nsStyleFilter_nsStyleStruct_h_unnamed_29,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 {
+pub struct nsStyleFilter_nsStyleStruct_h_unnamed_29 {
pub mURL: __BindgenUnionField<*mut nsIURI>,
pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
pub _bindgen_data_: u64,
}
-impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { }
-impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 {
+impl nsStyleFilter_nsStyleStruct_h_unnamed_29 { }
+impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_29 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() {
- assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
+fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_29() {
+ assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
+ assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>()
, 8usize);
}
#[test]
diff --git a/ports/geckolib/gecko_bindings/structs_release.rs b/ports/geckolib/gecko_bindings/structs_release.rs
index 90378f6adba..8ebcf846ab7 100644
--- a/ports/geckolib/gecko_bindings/structs_release.rs
+++ b/ports/geckolib/gecko_bindings/structs_release.rs
@@ -188,6 +188,10 @@ pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69;
pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1;
pub const NSID_LENGTH: ::std::os::raw::c_uint = 39;
pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2;
+pub const _STL_PAIR_H: ::std::os::raw::c_uint = 1;
+pub const _GLIBCXX_UTILITY: ::std::os::raw::c_uint = 1;
+pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1;
+pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2;
pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20;
pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72;
pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0;
@@ -2739,6 +2743,84 @@ pub enum SheetParsingMode {
pub struct HandleRefPtr<T> {
pub mHandle: T,
}
+pub enum nsAttrAndChildArray { }
+pub enum nsChildContentList { }
+pub enum nsCSSSelectorList { }
+pub enum nsDOMAttributeMap { }
+pub enum nsIAnimationObserver { }
+pub enum nsIDOMElement { }
+pub enum nsIDOMNodeList { }
+pub enum nsIEditor { }
+pub enum nsIFrame { }
+pub enum nsINodeList { }
+pub enum nsNodeSupportsWeakRefTearoff { }
+pub enum nsNodeWeakReference { }
+pub enum nsDOMMutationObserver { }
+pub enum ServoNodeData { }
+pub enum EventListenerManager { }
+pub enum BoxQuadOptions { }
+pub enum ConvertCoordinateOptions { }
+pub enum DOMPoint { }
+pub enum DOMQuad { }
+pub enum DOMRectReadOnly { }
+pub enum Element { }
+pub enum Text { }
+pub enum TextOrElementOrDocument { }
+pub enum DOMPointInit { }
+#[repr(u32)]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+pub enum NodeFlags {
+ NODE_HAS_LISTENERMANAGER = 4,
+ NODE_HAS_PROPERTIES = 8,
+ NODE_IS_ANONYMOUS_ROOT = 16,
+ NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32,
+ NODE_IS_NATIVE_ANONYMOUS_ROOT = 64,
+ NODE_FORCE_XBL_BINDINGS = 128,
+ NODE_MAY_BE_IN_BINDING_MNGR = 256,
+ NODE_IS_EDITABLE = 512,
+ NODE_MAY_HAVE_CLASS = 1024,
+ NODE_IS_IN_SHADOW_TREE = 2048,
+ NODE_HAS_EMPTY_SELECTOR = 4096,
+ NODE_HAS_SLOW_SELECTOR = 8192,
+ NODE_HAS_EDGE_CHILD_SELECTOR = 16384,
+ NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS = 32768,
+ NODE_ALL_SELECTOR_FLAGS = 61440,
+ NODE_NEEDS_FRAME = 65536,
+ NODE_DESCENDANTS_NEED_FRAMES = 131072,
+ NODE_HAS_ACCESSKEY = 262144,
+ NODE_HAS_DIRECTION_RTL = 524288,
+ NODE_HAS_DIRECTION_LTR = 1048576,
+ NODE_ALL_DIRECTION_FLAGS = 1572864,
+ NODE_CHROME_ONLY_ACCESS = 2097152,
+ NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS = 4194304,
+ NODE_IS_DIRTY_FOR_SERVO = 8388608,
+ NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO = 16777216,
+ NODE_TYPE_SPECIFIC_BITS_OFFSET = 23,
+}
+/**
+ * Class used to detect unexpected mutations. To use the class create an
+ * nsMutationGuard on the stack before unexpected mutations could occur.
+ * You can then at any time call Mutated to check if any unexpected mutations
+ * have occurred.
+ */
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsMutationGuard {
+ pub mStartingGeneration: u64,
+}
+impl ::std::clone::Clone for nsMutationGuard {
+ fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsMutationGuard() {
+ assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize);
+ assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize);
+}
+extern "C" {
+ #[link_name = "_ZN15nsMutationGuard11sGenerationE"]
+ pub static mut nsMutationGuard_consts_sGeneration:
+ ::std::os::raw::c_ulong;
+}
pub type Float = f32;
#[repr(i8)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
@@ -2970,7 +3052,7 @@ pub type gfxImageFormat = SurfaceFormat;
pub struct RectCorner;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum RectCorner_Types_h_unnamed_8 {
+pub enum RectCorner_Types_h_unnamed_10 {
TopLeft = 0,
TopRight = 1,
BottomRight = 2,
@@ -4201,14 +4283,14 @@ pub enum nsCSSUnit {
#[derive(Debug)]
pub struct nsCSSValue {
pub mUnit: nsCSSUnit,
- pub mValue: nsCSSValue_nsCSSValue_h_unnamed_10,
+ pub mValue: nsCSSValue_nsCSSValue_h_unnamed_12,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, }
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsCSSValue_nsCSSValue_h_unnamed_10 {
+pub struct nsCSSValue_nsCSSValue_h_unnamed_12 {
pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>,
pub mString: __BindgenUnionField<*mut nsStringBuffer>,
@@ -4231,15 +4313,15 @@ pub struct nsCSSValue_nsCSSValue_h_unnamed_10 {
pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
pub _bindgen_data_: u64,
}
-impl nsCSSValue_nsCSSValue_h_unnamed_10 { }
-impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_10 {
+impl nsCSSValue_nsCSSValue_h_unnamed_12 { }
+impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_12 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_10() {
- assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() ,
+fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_12() {
+ assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() ,
8usize);
- assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() ,
+ assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() ,
8usize);
}
#[test]
@@ -4560,7 +4642,7 @@ pub struct ArenaRefPtr<T> {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_11 {
+pub enum gfxFontConstants_h_unnamed_13 {
eFeatureAlternates_historical = 0,
eFeatureAlternates_stylistic = 1,
eFeatureAlternates_styleset = 2,
@@ -4572,7 +4654,7 @@ pub enum gfxFontConstants_h_unnamed_11 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_12 {
+pub enum gfxFontConstants_h_unnamed_14 {
eFeatureEastAsian_jis78 = 0,
eFeatureEastAsian_jis83 = 1,
eFeatureEastAsian_jis90 = 2,
@@ -4586,7 +4668,7 @@ pub enum gfxFontConstants_h_unnamed_12 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_13 {
+pub enum gfxFontConstants_h_unnamed_15 {
eFeatureLigatures_none = 0,
eFeatureLigatures_common = 1,
eFeatureLigatures_no_common = 2,
@@ -4600,7 +4682,7 @@ pub enum gfxFontConstants_h_unnamed_13 {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum gfxFontConstants_h_unnamed_14 {
+pub enum gfxFontConstants_h_unnamed_16 {
eFeatureNumeric_lining = 0,
eFeatureNumeric_oldstyle = 1,
eFeatureNumeric_proportional = 2,
@@ -4687,22 +4769,22 @@ pub enum nsStyleUnit {
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleCoord_h_unnamed_15 {
+pub struct nsStyleCoord_h_unnamed_17 {
pub mInt: __BindgenUnionField<i32>,
pub mFloat: __BindgenUnionField<f32>,
pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
pub _bindgen_data_: u64,
}
-impl nsStyleCoord_h_unnamed_15 { }
-impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 {
+impl nsStyleCoord_h_unnamed_17 { }
+impl ::std::clone::Clone for nsStyleCoord_h_unnamed_17 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() {
- assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize);
+fn bindgen_test_layout_nsStyleCoord_h_unnamed_17() {
+ assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_17>() , 8usize);
+ assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_17>() , 8usize);
}
-pub type nsStyleUnion = nsStyleCoord_h_unnamed_15;
+pub type nsStyleUnion = nsStyleCoord_h_unnamed_17;
/**
* Class that hold a single size specification used by the style
* system. The size specification consists of two parts -- a number
@@ -4818,7 +4900,6 @@ fn bindgen_test_layout_imgRequestProxyStatic() {
assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize);
assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize);
}
-pub enum nsIFrame { }
pub enum nsStyleContext { }
pub enum nsTextFrame { }
#[repr(C)]
@@ -4896,26 +4977,26 @@ pub enum nsStyleImageType {
pub struct nsStyleImage {
pub mSubImages: u64,
pub mType: nsStyleImageType,
- pub nsStyleImage_nsStyleStruct_h_unnamed_18: nsStyleImage_nsStyleStruct_h_unnamed_18,
+ pub nsStyleImage_nsStyleStruct_h_unnamed_20: nsStyleImage_nsStyleStruct_h_unnamed_20,
pub mCropRect: nsAutoPtr<nsStyleSides>,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 {
+pub struct nsStyleImage_nsStyleStruct_h_unnamed_20 {
pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
pub _bindgen_data_: u64,
}
-impl nsStyleImage_nsStyleStruct_h_unnamed_18 { }
-impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 {
+impl nsStyleImage_nsStyleStruct_h_unnamed_20 { }
+impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_20 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() {
- assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
+fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_20() {
+ assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>()
+ assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>()
, 8usize);
}
#[test]
@@ -4965,7 +5046,7 @@ pub struct nsStyleImageLayers {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_19 {
+pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_21 {
shorthand = 0,
color = 1,
image = 2,
@@ -5432,7 +5513,7 @@ fn bindgen_test_layout_nsStyleVisibility() {
#[derive(Debug, Copy)]
pub struct nsTimingFunction {
pub mType: nsTimingFunction_Type,
- pub nsTimingFunction_nsStyleStruct_h_unnamed_20: nsTimingFunction_nsStyleStruct_h_unnamed_20,
+ pub nsTimingFunction_nsStyleStruct_h_unnamed_22: nsTimingFunction_nsStyleStruct_h_unnamed_22,
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
@@ -5459,56 +5540,56 @@ pub enum nsTimingFunction_StepSyntax {
pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 {
- pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>,
- pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>,
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22 {
+ pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>,
+ pub nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>,
pub _bindgen_data_: [u32; 4usize],
}
-impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { }
-impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 {
+impl nsTimingFunction_nsStyleStruct_h_unnamed_22 { }
+impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_22 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>()
, 16usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>()
, 4usize);
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 {
pub mX1: f32,
pub mY1: f32,
pub mX2: f32,
pub mY2: f32,
}
impl ::std::clone::Clone for
- nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 {
+ nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>()
, 16usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>()
, 4usize);
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
+pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 {
pub mStepSyntax: nsTimingFunction_StepSyntax,
pub mSteps: u32,
}
impl ::std::clone::Clone for
- nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 {
+ nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22() {
- assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>()
+fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24() {
+ assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>()
+ assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>()
, 4usize);
}
impl ::std::clone::Clone for nsTimingFunction {
@@ -5653,25 +5734,25 @@ pub enum nsStyleContentType {
#[derive(Debug)]
pub struct nsStyleContentData {
pub mType: nsStyleContentType,
- pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_23,
+ pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_25,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 {
+pub struct nsStyleContentData_nsStyleStruct_h_unnamed_25 {
pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>,
pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
pub mCounters: __BindgenUnionField<*mut Array>,
pub _bindgen_data_: u64,
}
-impl nsStyleContentData_nsStyleStruct_h_unnamed_23 { }
-impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 {
+impl nsStyleContentData_nsStyleStruct_h_unnamed_25 { }
+impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_25 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() {
- assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
+fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_25() {
+ assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>()
+ assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>()
, 8usize);
}
#[test]
@@ -5805,26 +5886,26 @@ pub enum nsStyleSVGOpacitySource {
#[repr(C)]
#[derive(Debug)]
pub struct nsStyleSVGPaint {
- pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_24,
+ pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_26,
pub mType: nsStyleSVGPaintType,
pub mFallbackColor: nscolor,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
+pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 {
pub mColor: __BindgenUnionField<nscolor>,
pub mPaintServer: __BindgenUnionField<*mut nsIURI>,
pub _bindgen_data_: u64,
}
-impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { }
-impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 {
+impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { }
+impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() {
- assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
+fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_26() {
+ assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>()
+ assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>()
, 8usize);
}
#[test]
@@ -5859,7 +5940,7 @@ pub struct nsStyleSVG {
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
-pub enum nsStyleSVG_nsStyleStruct_h_unnamed_25 {
+pub enum nsStyleSVG_nsStyleStruct_h_unnamed_27 {
FILL_OPACITY_SOURCE_MASK = 3,
STROKE_OPACITY_SOURCE_MASK = 12,
STROKE_DASHARRAY_CONTEXT = 16,
@@ -5901,25 +5982,25 @@ fn bindgen_test_layout_nsStyleBasicShape() {
#[derive(Debug)]
pub struct nsStyleClipPath {
pub mType: i32,
- pub nsStyleClipPath_nsStyleStruct_h_unnamed_26: nsStyleClipPath_nsStyleStruct_h_unnamed_26,
+ pub nsStyleClipPath_nsStyleStruct_h_unnamed_28: nsStyleClipPath_nsStyleStruct_h_unnamed_28,
pub mSizingBox: u8,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
+pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_28 {
pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>,
pub mURL: __BindgenUnionField<*mut nsIURI>,
pub _bindgen_data_: u64,
}
-impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { }
-impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 {
+impl nsStyleClipPath_nsStyleStruct_h_unnamed_28 { }
+impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_28 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() {
- assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
+fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_28() {
+ assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>()
+ assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>()
, 8usize);
}
#[test]
@@ -5932,24 +6013,24 @@ fn bindgen_test_layout_nsStyleClipPath() {
pub struct nsStyleFilter {
pub mType: i32,
pub mFilterParameter: nsStyleCoord,
- pub nsStyleFilter_nsStyleStruct_h_unnamed_27: nsStyleFilter_nsStyleStruct_h_unnamed_27,
+ pub nsStyleFilter_nsStyleStruct_h_unnamed_29: nsStyleFilter_nsStyleStruct_h_unnamed_29,
}
#[repr(C)]
#[derive(Debug, Copy)]
-pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 {
+pub struct nsStyleFilter_nsStyleStruct_h_unnamed_29 {
pub mURL: __BindgenUnionField<*mut nsIURI>,
pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
pub _bindgen_data_: u64,
}
-impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { }
-impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 {
+impl nsStyleFilter_nsStyleStruct_h_unnamed_29 { }
+impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_29 {
fn clone(&self) -> Self { *self }
}
#[test]
-fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() {
- assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
+fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_29() {
+ assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>()
, 8usize);
- assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>()
+ assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>()
, 8usize);
}
#[test]
diff --git a/ports/geckolib/gecko_bindings/tools/regen.py b/ports/geckolib/gecko_bindings/tools/regen.py
index c21f56f6814..1a80939b266 100755
--- a/ports/geckolib/gecko_bindings/tools/regen.py
+++ b/ports/geckolib/gecko_bindings/tools/regen.py
@@ -74,7 +74,8 @@ COMPILATION_TARGETS = {
"nsDataHashtable.h", "nsCSSScanner.h", "utility", "nsTArray",
"pair", "SheetParsingMode.h", "StaticPtr.h", "nsProxyRelease.h",
"mozilla/dom/AnimationEffectReadOnlyBinding.h",
- "/Types.h", # <- Disallow UnionTypes.h
+ "/Types.h", # <- Disallow UnionTypes.h
+ "nsINode.h", # <- For `NodeFlags`.
],
"blacklist": [
"IsDestructibleFallbackImpl", "IsDestructibleFallback",
@@ -84,6 +85,7 @@ COMPILATION_TARGETS = {
"_Itup_cat", "AnimationEffectTimingProperties",
"FastAnimationEffectTimingProperties", "ComputedTimingProperties",
"FastComputedTimingProperties",
+ "nsINode",
],
"opaque_types": [
"nsIntMargin", "nsIntPoint", "nsIntRect", "nsCOMArray",
diff --git a/ports/geckolib/lib.rs b/ports/geckolib/lib.rs
index 02da948fd32..05e766b4c56 100644
--- a/ports/geckolib/lib.rs
+++ b/ports/geckolib/lib.rs
@@ -15,7 +15,6 @@ extern crate libc;
extern crate log;
extern crate num_cpus;
extern crate selectors;
-extern crate smallvec;
#[macro_use(atom, ns)]
extern crate string_cache;
extern crate style;
diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs
index e615fcd9359..a30044315ef 100644
--- a/ports/geckolib/wrapper.rs
+++ b/ports/geckolib/wrapper.rs
@@ -14,6 +14,7 @@ use gecko_bindings::bindings::{Gecko_ElementState, Gecko_GetDocumentElement};
use gecko_bindings::bindings::{Gecko_GetFirstChild, Gecko_GetFirstChildElement};
use gecko_bindings::bindings::{Gecko_GetLastChild, Gecko_GetLastChildElement};
use gecko_bindings::bindings::{Gecko_GetNextSibling, Gecko_GetNextSiblingElement};
+use gecko_bindings::bindings::{Gecko_GetNodeFlags, Gecko_SetNodeFlags, Gecko_UnsetNodeFlags};
use gecko_bindings::bindings::{Gecko_GetParentElement, Gecko_GetParentNode};
use gecko_bindings::bindings::{Gecko_GetPrevSibling, Gecko_GetPrevSiblingElement};
use gecko_bindings::bindings::{Gecko_GetServoDeclarationBlock, Gecko_IsHTMLElementInHTMLDocument};
@@ -30,12 +31,10 @@ use selector_impl::{GeckoSelectorImpl, NonTSPseudoClass, PrivateStyleData};
use selectors::Element;
use selectors::matching::DeclarationBlock;
use selectors::parser::{AttrSelector, NamespaceConstraint};
-use smallvec::VecLike;
use std::marker::PhantomData;
use std::ops::BitOr;
use std::ptr;
use std::slice;
-use std::str::from_utf8_unchecked;
use std::sync::Arc;
use string_cache::{Atom, BorrowedAtom, BorrowedNamespace, Namespace};
use style::dom::{OpaqueNode, PresentationalHintsSynthetizer};
@@ -185,21 +184,44 @@ impl<'ln> TNode for GeckoNode<'ln> {
}
fn is_dirty(&self) -> bool {
- // FIXME(bholley)
- true
+ use gecko_bindings::structs::NodeFlags::*;
+ // Return true unconditionally if we're not yet styled. This is a hack
+ // and should go away soon.
+ if unsafe { Gecko_GetNodeData(self.node) }.is_null() {
+ return true;
+ }
+
+ let flags = unsafe { Gecko_GetNodeFlags(self.node) };
+ flags & (NODE_IS_DIRTY_FOR_SERVO as u32) != 0
}
- unsafe fn set_dirty(&self, _value: bool) {
- unimplemented!()
+ unsafe fn set_dirty(&self, value: bool) {
+ use gecko_bindings::structs::NodeFlags::*;
+ if value {
+ Gecko_SetNodeFlags(self.node, NODE_IS_DIRTY_FOR_SERVO as u32)
+ } else {
+ Gecko_UnsetNodeFlags(self.node, NODE_IS_DIRTY_FOR_SERVO as u32)
+ }
}
fn has_dirty_descendants(&self) -> bool {
- // FIXME(bholley)
- true
+ use gecko_bindings::structs::NodeFlags::*;
+ // Return true unconditionally if we're not yet styled. This is a hack
+ // and should go away soon.
+ if unsafe { Gecko_GetNodeData(self.node) }.is_null() {
+ return true;
+ }
+ let flags = unsafe { Gecko_GetNodeFlags(self.node) };
+ flags & (NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32) != 0
}
- unsafe fn set_dirty_descendants(&self, _value: bool) {
- unimplemented!()
+ unsafe fn set_dirty_descendants(&self, value: bool) {
+ use gecko_bindings::structs::NodeFlags::*;
+ if value {
+ Gecko_SetNodeFlags(self.node, NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32)
+ } else {
+ Gecko_UnsetNodeFlags(self.node, NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32)
+ }
}
fn can_be_fragmented(&self) -> bool {
@@ -430,7 +452,8 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
}
fn is_empty(&self) -> bool {
- unimplemented!()
+ // XXX(emilio): Implement this properly.
+ false
}
fn get_local_name<'a>(&'a self) -> BorrowedAtom<'a> {
@@ -616,7 +639,3 @@ impl<'le> ElementExt for GeckoElement<'le> {
self.match_non_ts_pseudo_class(NonTSPseudoClass::AnyLink)
}
}
-
-unsafe fn reinterpret_string<'a>(ptr: *const ::libc::c_char, length: u32) -> Option<&'a str> {
- (ptr as *const u8).as_ref().map(|p| from_utf8_unchecked(slice::from_raw_parts(p, length as usize)))
-}