diff options
41 files changed, 2529 insertions, 1893 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 6510879c5ce..1baa297f191 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -103,7 +103,7 @@ pub struct IOCompositor<Window: WindowMethods> { window: Rc<Window>, /// The port on which we receive messages. - port: Box<CompositorReceiver>, + port: CompositorReceiver, /// The root pipeline. root_pipeline: Option<CompositionPipeline>, @@ -133,7 +133,7 @@ pub struct IOCompositor<Window: WindowMethods> { /// The device pixel ratio for this window. scale_factor: ScaleFactor<f32, DeviceIndependentPixel, DevicePixel>, - channel_to_self: Box<CompositorProxy + Send>, + channel_to_self: CompositorProxy, /// A handle to the delayed composition timer. delayed_composition_timer: DelayedCompositionTimerProxy, @@ -312,11 +312,11 @@ fn initialize_png(gl: &gl::Gl, width: usize, height: usize) -> RenderTargetInfo } struct RenderNotifier { - compositor_proxy: Box<CompositorProxy>, + compositor_proxy: CompositorProxy, } impl RenderNotifier { - fn new(compositor_proxy: Box<CompositorProxy>, + fn new(compositor_proxy: CompositorProxy, _: Sender<ConstellationMsg>) -> RenderNotifier { RenderNotifier { compositor_proxy: compositor_proxy, @@ -336,7 +336,7 @@ impl webrender_traits::RenderNotifier for RenderNotifier { // Used to dispatch functions from webrender to the main thread's event loop. struct CompositorThreadDispatcher { - compositor_proxy: Box<CompositorProxy> + compositor_proxy: CompositorProxy } impl webrender_traits::RenderDispatcher for CompositorThreadDispatcher { diff --git a/components/compositing/compositor_thread.rs b/components/compositing/compositor_thread.rs index bc91a847439..53706ae4483 100644 --- a/components/compositing/compositor_thread.rs +++ b/components/compositing/compositor_thread.rs @@ -22,32 +22,46 @@ use style_traits::viewport::ViewportConstraints; use webrender; use webrender_traits; -/// Sends messages to the compositor. This is a trait supplied by the port because the method used -/// to communicate with the compositor may have to kick OS event loops awake, communicate cross- -/// process, and so forth. -pub trait CompositorProxy : 'static + Send { - /// Sends a message to the compositor. - fn send(&self, msg: Msg); - /// Clones the compositor proxy. - fn clone_compositor_proxy(&self) -> Box<CompositorProxy + 'static + Send>; + +/// Used to wake up the event loop, provided by the servo port/embedder. +pub trait EventLoopWaker : 'static + Send { + fn clone(&self) -> Box<EventLoopWaker + Send>; + fn wake(&self); +} + +/// Sends messages to the compositor. +pub struct CompositorProxy { + pub sender: Sender<Msg>, + pub event_loop_waker: Box<EventLoopWaker>, +} + +impl CompositorProxy { + pub fn send(&self, msg: Msg) { + // Send a message and kick the OS event loop awake. + if let Err(err) = self.sender.send(msg) { + warn!("Failed to send response ({}).", err); + } + self.event_loop_waker.wake(); + } + pub fn clone_compositor_proxy(&self) -> CompositorProxy { + CompositorProxy { + sender: self.sender.clone(), + event_loop_waker: self.event_loop_waker.clone(), + } + } } -/// The port that the compositor receives messages on. As above, this is a trait supplied by the -/// Servo port. -pub trait CompositorReceiver : 'static { - /// Receives the next message inbound for the compositor. This must not block. - fn try_recv_compositor_msg(&mut self) -> Option<Msg>; - /// Synchronously waits for, and returns, the next message inbound for the compositor. - fn recv_compositor_msg(&mut self) -> Msg; +/// The port that the compositor receives messages on. +pub struct CompositorReceiver { + pub receiver: Receiver<Msg> } -/// A convenience implementation of `CompositorReceiver` for a plain old Rust `Receiver`. -impl CompositorReceiver for Receiver<Msg> { - fn try_recv_compositor_msg(&mut self) -> Option<Msg> { - self.try_recv().ok() +impl CompositorReceiver { + pub fn try_recv_compositor_msg(&mut self) -> Option<Msg> { + self.receiver.try_recv().ok() } - fn recv_compositor_msg(&mut self) -> Msg { - self.recv().unwrap() + pub fn recv_compositor_msg(&mut self) -> Msg { + self.receiver.recv().unwrap() } } @@ -55,7 +69,7 @@ pub trait RenderListener { fn recomposite(&mut self, reason: CompositingReason); } -impl RenderListener for Box<CompositorProxy + 'static> { +impl RenderListener for CompositorProxy { fn recomposite(&mut self, reason: CompositingReason) { self.send(Msg::Recomposite(reason)); } @@ -173,9 +187,9 @@ impl Debug for Msg { /// Data used to construct a compositor. pub struct InitialCompositorState { /// A channel to the compositor. - pub sender: Box<CompositorProxy + Send>, + pub sender: CompositorProxy, /// A port on which messages inbound to the compositor can be received. - pub receiver: Box<CompositorReceiver>, + pub receiver: CompositorReceiver, /// A channel to the constellation. pub constellation_chan: Sender<ConstellationMsg>, /// A channel to the time profiler thread. diff --git a/components/compositing/delayed_composition.rs b/components/compositing/delayed_composition.rs index 36c0306011a..1ea1fe13a4f 100644 --- a/components/compositing/delayed_composition.rs +++ b/components/compositing/delayed_composition.rs @@ -23,7 +23,7 @@ pub struct DelayedCompositionTimerProxy { } struct DelayedCompositionTimer { - compositor_proxy: Box<CompositorProxy>, + compositor_proxy: CompositorProxy, receiver: Receiver<ToDelayedCompositionTimerMsg>, } @@ -33,7 +33,7 @@ enum ToDelayedCompositionTimerMsg { } impl DelayedCompositionTimerProxy { - pub fn new(compositor_proxy: Box<CompositorProxy + Send>) -> DelayedCompositionTimerProxy { + pub fn new(compositor_proxy: CompositorProxy) -> DelayedCompositionTimerProxy { let (to_timer_sender, to_timer_receiver) = channel(); Builder::new().spawn(move || { let mut timer = DelayedCompositionTimer { diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs index b929e47ead1..e4c75762379 100644 --- a/components/compositing/windowing.rs +++ b/components/compositing/windowing.rs @@ -4,7 +4,7 @@ //! Abstract windowing methods. The concrete implementations of these can be found in `platform/`. -use compositor_thread::{CompositorProxy, CompositorReceiver}; +use compositor_thread::EventLoopWaker; use euclid::{Point2D, Size2D}; use euclid::point::TypedPoint2D; use euclid::rect::TypedRect; @@ -144,12 +144,8 @@ pub trait WindowMethods { /// Returns the scale factor of the system (device pixels / device independent pixels). fn hidpi_factor(&self) -> ScaleFactor<f32, DeviceIndependentPixel, DevicePixel>; - /// Creates a channel to the compositor. The dummy parameter is needed because we don't have - /// UFCS in Rust yet. - /// - /// This is part of the windowing system because its implementation often involves OS-specific - /// magic to wake the up window's event loop. - fn create_compositor_channel(&self) -> (Box<CompositorProxy + Send>, Box<CompositorReceiver>); + /// Returns a thread-safe object to wake up the window's event loop. + fn create_event_loop_waker(&self) -> Box<EventLoopWaker>; /// Requests that the window system prepare a composite. Typically this will involve making /// some type of platform-specific graphics context current. Returns true if the composite may diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs index 90b3fd6c13a..b3272f57048 100644 --- a/components/constellation/constellation.rs +++ b/components/constellation/constellation.rs @@ -172,7 +172,7 @@ pub struct Constellation<Message, LTF, STF> { /// A channel (the implementation of which is port-specific) for the /// constellation to send messages to the compositor thread. - compositor_proxy: Box<CompositorProxy>, + compositor_proxy: CompositorProxy, /// Channels for the constellation to send messages to the public /// resource-related threads. There are two groups of resource @@ -302,7 +302,7 @@ pub struct Constellation<Message, LTF, STF> { /// State needed to construct a constellation. pub struct InitialConstellationState { /// A channel through which messages can be sent to the compositor. - pub compositor_proxy: Box<CompositorProxy + Send>, + pub compositor_proxy: CompositorProxy, /// A channel to the debugger, if applicable. pub debugger_chan: Option<debugger::Sender>, diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs index 1fb385d551f..1b53e2d06ff 100644 --- a/components/constellation/pipeline.rs +++ b/components/constellation/pipeline.rs @@ -69,7 +69,7 @@ pub struct Pipeline { pub layout_chan: IpcSender<LayoutControlMsg>, /// A channel to the compositor. - pub compositor_proxy: Box<CompositorProxy + 'static + Send>, + pub compositor_proxy: CompositorProxy, /// The most recently loaded URL in this pipeline. /// Note that this URL can change, for example if the page navigates @@ -123,7 +123,7 @@ pub struct InitialPipelineState { pub scheduler_chan: IpcSender<TimerSchedulerMsg>, /// A channel to the compositor. - pub compositor_proxy: Box<CompositorProxy + 'static + Send>, + pub compositor_proxy: CompositorProxy, /// A channel to the developer tools, if applicable. pub devtools_chan: Option<Sender<DevtoolsControlMsg>>, @@ -303,7 +303,7 @@ impl Pipeline { parent_info: Option<(PipelineId, FrameType)>, event_loop: Rc<EventLoop>, layout_chan: IpcSender<LayoutControlMsg>, - compositor_proxy: Box<CompositorProxy + 'static + Send>, + compositor_proxy: CompositorProxy, is_private: bool, url: ServoUrl, visible: bool) diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index c2dd009c764..c4a20d1ee11 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -51,7 +51,6 @@ use style::computed_values::{background_attachment, background_clip, background_ use style::computed_values::{background_repeat, border_style, cursor}; use style::computed_values::{image_rendering, overflow_x, pointer_events, position, visibility}; use style::computed_values::filter::Filter; -use style::computed_values::text_shadow::TextShadow; use style::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize, WritingMode}; use style::properties::{self, ServoComputedValues}; use style::properties::longhands::border_image_repeat::computed_value::RepeatKeyword; @@ -59,7 +58,7 @@ use style::properties::style_structs; use style::servo::restyle_damage::REPAINT; use style::values::{Either, RGBA}; use style::values::computed::{Gradient, GradientItem, LengthOrPercentage}; -use style::values::computed::{LengthOrPercentageOrAuto, NumberOrPercentage, Position}; +use style::values::computed::{LengthOrPercentageOrAuto, NumberOrPercentage, Position, Shadow}; use style::values::computed::image::{EndingShape, LineDirection}; use style::values::generics::background::BackgroundSize; use style::values::generics::image::{Circle, Ellipse, EndingShape as GenericEndingShape}; @@ -504,7 +503,7 @@ pub trait FragmentDisplayListBuilding { state: &mut DisplayListBuildState, text_fragment: &ScannedTextFragmentInfo, stacking_relative_content_box: &Rect<Au>, - text_shadow: Option<&TextShadow>, + text_shadow: Option<&Shadow>, clip: &Rect<Au>); /// Creates the display item for a text decoration: underline, overline, or line-through. @@ -1949,7 +1948,7 @@ impl FragmentDisplayListBuilding for Fragment { state: &mut DisplayListBuildState, text_fragment: &ScannedTextFragmentInfo, stacking_relative_content_box: &Rect<Au>, - text_shadow: Option<&TextShadow>, + text_shadow: Option<&Shadow>, clip: &Rect<Au>) { // TODO(emilio): Allow changing more properties by ::selection let text_color = if let Some(shadow) = text_shadow { diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 9ba2f697e5a..c0d766dc544 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -2896,6 +2896,12 @@ impl Fragment { Matrix4D::create_skew(Radians::new(theta_x.radians()), Radians::new(theta_y.radians())) } + transform::ComputedOperation::InterpolateMatrix { .. } | + transform::ComputedOperation::AccumulateMatrix { .. } => { + // TODO: Convert InterpolateMatrix/AccmulateMatrix into a valid Matrix4D by + // the reference box. + Matrix4D::identity() + } }; transform = transform.pre_mul(&matrix); diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index eb1578d1b3a..8267c5bf2d1 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -51,6 +51,7 @@ use net_traits::image::base::PixelFormat; use net_traits::image_cache::ImageResponse; use offscreen_gl_context::{GLContextAttributes, GLLimits}; use script_traits::ScriptMsg as ConstellationMsg; +use servo_config::prefs::PREFS; use std::cell::Cell; use std::collections::HashMap; use webrender_traits; @@ -166,6 +167,10 @@ impl WebGLRenderingContext { size: Size2D<i32>, attrs: GLContextAttributes) -> Result<WebGLRenderingContext, String> { + if let Some(true) = PREFS.get("webgl.testing.context_creation_error").as_boolean() { + return Err("WebGL context creation error forced by pref `webgl.testing.context_creation_error`".into()); + } + let (sender, receiver) = ipc::channel().unwrap(); let constellation_chan = window.upcast::<GlobalScope>().constellation_chan(); constellation_chan.send(ConstellationMsg::CreateWebGLPaintThread(size, attrs, sender)) diff --git a/components/selectors/parser.rs b/components/selectors/parser.rs index a7f3d259fbd..c613d741eb6 100644 --- a/components/selectors/parser.rs +++ b/components/selectors/parser.rs @@ -62,7 +62,7 @@ macro_rules! with_all_bounds { /// NB: We need Clone so that we can derive(Clone) on struct with that /// are parameterized on SelectorImpl. See /// https://github.com/rust-lang/rust/issues/26925 - pub trait SelectorImpl: Clone + Sized { + pub trait SelectorImpl: Clone + Sized + 'static { type AttrValue: $($InSelector)*; type Identifier: $($InSelector)* + PrecomputedHash; type ClassName: $($InSelector)* + PrecomputedHash; diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 77c5b8e8fe0..22279a4189b 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -68,8 +68,8 @@ fn webdriver(_port: u16, _constellation: Sender<ConstellationMsg>) { } use bluetooth::BluetoothThreadFactory; use bluetooth_traits::BluetoothRequest; -use compositing::{CompositorProxy, IOCompositor}; -use compositing::compositor_thread::InitialCompositorState; +use compositing::IOCompositor; +use compositing::compositor_thread::{self, CompositorProxy, CompositorReceiver, InitialCompositorState}; use compositing::windowing::WindowEvent; use compositing::windowing::WindowMethods; use constellation::{Constellation, InitialConstellationState, UnprivilegedPipelineContent}; @@ -97,7 +97,7 @@ use std::borrow::Cow; use std::cmp::max; use std::path::PathBuf; use std::rc::Rc; -use std::sync::mpsc::Sender; +use std::sync::mpsc::{Sender, channel}; use webrender::renderer::RendererKind; use webvr::{WebVRThread, WebVRCompositorHandler}; @@ -134,7 +134,7 @@ impl<Window> Browser<Window> where Window: WindowMethods + 'static { // messages to client may need to pump a platform-specific event loop // to deliver the message. let (compositor_proxy, compositor_receiver) = - window.create_compositor_channel(); + create_compositor_channel(window.create_event_loop_waker()); let supports_clipboard = window.supports_clipboard(); let time_profiler_chan = profile_time::Profiler::create(&opts.time_profiling, opts.time_profiler_trace_path.clone()); @@ -273,10 +273,22 @@ impl<Window> Browser<Window> where Window: WindowMethods + 'static { } } +fn create_compositor_channel(event_loop_waker: Box<compositor_thread::EventLoopWaker>) + -> (CompositorProxy, CompositorReceiver) { + let (sender, receiver) = channel(); + (CompositorProxy { + sender: sender, + event_loop_waker: event_loop_waker, + }, + CompositorReceiver { + receiver: receiver + }) +} + fn create_constellation(user_agent: Cow<'static, str>, config_dir: Option<PathBuf>, url: Option<ServoUrl>, - compositor_proxy: Box<CompositorProxy + Send>, + compositor_proxy: CompositorProxy, time_profiler_chan: time::ProfilerChan, mem_profiler_chan: mem::ProfilerChan, debugger_chan: Option<debugger::Sender>, diff --git a/components/servo_arc/lib.rs b/components/servo_arc/lib.rs index 5d91c9bc44f..4fbc094d070 100644 --- a/components/servo_arc/lib.rs +++ b/components/servo_arc/lib.rs @@ -69,22 +69,64 @@ macro_rules! offset_of { /// necessarily) at _exactly_ `MAX_REFCOUNT + 1` references. const MAX_REFCOUNT: usize = (isize::MAX) as usize; -pub struct Arc<T: ?Sized> { - // FIXME(bholley): When NonZero/Shared/Unique are stabilized, we should use - // Shared here to get the NonZero optimization. Gankro is working on this. - // - // If we need a compact Option<Arc<T>> beforehand, we can make a helper - // class that wraps the result of Arc::into_raw. - // - // https://github.com/rust-lang/rust/issues/27730 - ptr: *mut ArcInner<T>, +/// Wrapper type for pointers to get the non-zero optimization. When +/// NonZero/Shared/Unique are stabilized, we should just use Shared +/// here to get the same effect. Gankro is working on this in [1]. +/// +/// It's unfortunate that this needs to infect all the caller types +/// with 'static. It would be nice to just use a &() and a PhantomData<T> +/// instead, but then the compiler can't determine whether the &() should +/// be thin or fat (which depends on whether or not T is sized). Given +/// that this is all a temporary hack, this restriction is fine for now. +/// +/// [1] https://github.com/rust-lang/rust/issues/27730 +pub struct NonZeroPtrMut<T: ?Sized + 'static>(&'static mut T); +impl<T: ?Sized> NonZeroPtrMut<T> { + pub fn new(ptr: *mut T) -> Self { + assert!(!(ptr as *mut u8).is_null()); + NonZeroPtrMut(unsafe { mem::transmute(ptr) }) + } + + pub fn ptr(&self) -> *mut T { + self.0 as *const T as *mut T + } +} + +impl<T: ?Sized + 'static> Clone for NonZeroPtrMut<T> { + fn clone(&self) -> Self { + NonZeroPtrMut::new(self.ptr()) + } +} + +impl<T: ?Sized + 'static> fmt::Pointer for NonZeroPtrMut<T> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fmt::Pointer::fmt(&self.ptr(), f) + } +} + +impl<T: ?Sized + 'static> fmt::Debug for NonZeroPtrMut<T> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + <Self as fmt::Pointer>::fmt(self, f) + } +} + +impl<T: ?Sized + 'static> PartialEq for NonZeroPtrMut<T> { + fn eq(&self, other: &Self) -> bool { + self.ptr() == other.ptr() + } +} + +impl<T: ?Sized + 'static> Eq for NonZeroPtrMut<T> {} + +pub struct Arc<T: ?Sized + 'static> { + p: NonZeroPtrMut<ArcInner<T>>, } /// An Arc that is known to be uniquely owned /// /// This lets us build arcs that we can mutate before /// freezing, without needing to change the allocation -pub struct UniqueArc<T: ?Sized>(Arc<T>); +pub struct UniqueArc<T: ?Sized + 'static>(Arc<T>); impl<T> UniqueArc<T> { #[inline] @@ -110,7 +152,7 @@ impl<T> Deref for UniqueArc<T> { impl<T> DerefMut for UniqueArc<T> { fn deref_mut(&mut self) -> &mut T { // We know this to be uniquely owned - unsafe { &mut (*self.0.ptr).data } + unsafe { &mut (*self.0.ptr()).data } } } @@ -132,11 +174,11 @@ impl<T> Arc<T> { count: atomic::AtomicUsize::new(1), data: data, }); - Arc { ptr: Box::into_raw(x) } + Arc { p: NonZeroPtrMut::new(Box::into_raw(x)) } } pub fn into_raw(this: Self) -> *const T { - let ptr = unsafe { &((*this.ptr).data) as *const _ }; + let ptr = unsafe { &((*this.ptr()).data) as *const _ }; mem::forget(this); ptr } @@ -146,7 +188,7 @@ impl<T> Arc<T> { // to subtract the offset of the `data` field from the pointer. let ptr = (ptr as *const u8).offset(-offset_of!(ArcInner<T>, data)); Arc { - ptr: ptr as *mut ArcInner<T>, + p: NonZeroPtrMut::new(ptr as *mut ArcInner<T>), } } } @@ -159,19 +201,23 @@ impl<T: ?Sized> Arc<T> { // `ArcInner` structure itself is `Sync` because the inner data is // `Sync` as well, so we're ok loaning out an immutable pointer to these // contents. - unsafe { &*self.ptr } + unsafe { &*self.ptr() } } // Non-inlined part of `drop`. Just invokes the destructor. #[inline(never)] unsafe fn drop_slow(&mut self) { - let _ = Box::from_raw(self.ptr); + let _ = Box::from_raw(self.ptr()); } #[inline] pub fn ptr_eq(this: &Self, other: &Self) -> bool { - this.ptr == other.ptr + this.ptr() == other.ptr() + } + + fn ptr(&self) -> *mut ArcInner<T> { + self.p.ptr() } } @@ -210,7 +256,7 @@ impl<T: ?Sized> Clone for Arc<T> { panic!(); } - Arc { ptr: self.ptr } + Arc { p: NonZeroPtrMut::new(self.ptr()) } } } @@ -237,7 +283,7 @@ impl<T: Clone> Arc<T> { // reference count is guaranteed to be 1 at this point, and we required // the Arc itself to be `mut`, so we're returning the only possible // reference to the inner data. - &mut (*this.ptr).data + &mut (*this.ptr()).data } } } @@ -248,7 +294,7 @@ impl<T: ?Sized> Arc<T> { if this.is_unique() { unsafe { // See make_mut() for documentation of the threadsafety here. - Some(&mut (*this.ptr).data) + Some(&mut (*this.ptr()).data) } } else { None @@ -357,7 +403,7 @@ impl<T: ?Sized + fmt::Debug> fmt::Debug for Arc<T> { impl<T: ?Sized> fmt::Pointer for Arc<T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Pointer::fmt(&self.ptr, f) + fmt::Pointer::fmt(&self.ptr(), f) } } @@ -481,6 +527,8 @@ impl<H, T> Arc<HeaderSlice<H, [T]>> { // // To avoid alignment issues, we allocate words rather than bytes, // rounding up to the nearest word size. + assert!(mem::align_of::<T>() <= mem::align_of::<usize>(), + "We don't handle over-aligned types"); let words_to_allocate = divide_rounding_up(size, size_of::<usize>()); let mut vec = Vec::<usize>::with_capacity(words_to_allocate); vec.set_len(words_to_allocate); @@ -496,6 +544,9 @@ impl<H, T> Arc<HeaderSlice<H, [T]>> { ptr = fake_slice as *mut [T] as *mut ArcInner<HeaderSlice<H, [T]>>; // Write the data. + // + // Note that any panics here (i.e. from the iterator) are safe, since + // we'll just leak the uninitialized memory. ptr::write(&mut ((*ptr).count), atomic::AtomicUsize::new(1)); ptr::write(&mut ((*ptr).data.header), header); let mut current: *mut T = &mut (*ptr).data.slice[0]; @@ -511,7 +562,7 @@ impl<H, T> Arc<HeaderSlice<H, [T]>> { // Return the fat Arc. assert_eq!(size_of::<Self>(), size_of::<usize>() * 2, "The Arc will be fat"); - Arc { ptr: ptr } + Arc { p: NonZeroPtrMut::new(ptr) } } } @@ -536,8 +587,9 @@ impl<H> HeaderWithLength<H> { } } -pub struct ThinArc<H, T> { - ptr: *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T; 1]>>, +type HeaderSliceWithLength<H, T> = HeaderSlice<HeaderWithLength<H>, T>; +pub struct ThinArc<H: 'static, T: 'static> { + ptr: *mut ArcInner<HeaderSliceWithLength<H, [T; 1]>>, } unsafe impl<H: Sync + Send, T: Sync + Send> Send for ThinArc<H, T> {} @@ -546,27 +598,27 @@ unsafe impl<H: Sync + Send, T: Sync + Send> Sync for ThinArc<H, T> {} // Synthesize a fat pointer from a thin pointer. // // See the comment around the analogous operation in from_header_and_iter. -fn thin_to_thick<H, T>(thin: *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T; 1]>>) - -> *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T]>> +fn thin_to_thick<H, T>(thin: *mut ArcInner<HeaderSliceWithLength<H, [T; 1]>>) + -> *mut ArcInner<HeaderSliceWithLength<H, [T]>> { let len = unsafe { (*thin).data.header.length }; let fake_slice: *mut [T] = unsafe { slice::from_raw_parts_mut(thin as *mut T, len) }; - fake_slice as *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T]>> + fake_slice as *mut ArcInner<HeaderSliceWithLength<H, [T]>> } -impl<H, T> ThinArc<H, T> { +impl<H: 'static, T: 'static> ThinArc<H, T> { /// Temporarily converts |self| into a bonafide Arc and exposes it to the /// provided callback. The refcount is not modified. #[inline(always)] pub fn with_arc<F, U>(&self, f: F) -> U - where F: FnOnce(&Arc<HeaderSlice<HeaderWithLength<H>, [T]>>) -> U + where F: FnOnce(&Arc<HeaderSliceWithLength<H, [T]>>) -> U { // Synthesize transient Arc, which never touches the refcount of the ArcInner. let transient = NoDrop::new(Arc { - ptr: thin_to_thick(self.ptr) + p: NonZeroPtrMut::new(thin_to_thick(self.ptr)) }); // Expose the transient Arc to the callback, which may clone it if it wants. @@ -581,35 +633,35 @@ impl<H, T> ThinArc<H, T> { } impl<H, T> Deref for ThinArc<H, T> { - type Target = HeaderSlice<HeaderWithLength<H>, [T]>; + type Target = HeaderSliceWithLength<H, [T]>; fn deref(&self) -> &Self::Target { unsafe { &(*thin_to_thick(self.ptr)).data } } } -impl<H, T> Clone for ThinArc<H, T> { +impl<H: 'static, T: 'static> Clone for ThinArc<H, T> { fn clone(&self) -> Self { ThinArc::with_arc(self, |a| Arc::into_thin(a.clone())) } } -impl<H, T> Drop for ThinArc<H, T> { +impl<H: 'static, T: 'static> Drop for ThinArc<H, T> { fn drop(&mut self) { let _ = Arc::from_thin(ThinArc { ptr: self.ptr }); } } -impl<H, T> Arc<HeaderSlice<HeaderWithLength<H>, [T]>> { +impl<H: 'static, T: 'static> Arc<HeaderSliceWithLength<H, [T]>> { /// Converts an Arc into a ThinArc. This consumes the Arc, so the refcount /// is not modified. pub fn into_thin(a: Self) -> ThinArc<H, T> { assert!(a.header.length == a.slice.len(), "Length needs to be correct for ThinArc to work"); - let fat_ptr: *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T]>> = a.ptr; + let fat_ptr: *mut ArcInner<HeaderSliceWithLength<H, [T]>> = a.ptr(); mem::forget(a); let thin_ptr = fat_ptr as *mut [usize] as *mut usize; ThinArc { - ptr: thin_ptr as *mut ArcInner<HeaderSlice<HeaderWithLength<H>, [T; 1]>> + ptr: thin_ptr as *mut ArcInner<HeaderSliceWithLength<H, [T; 1]>> } } @@ -619,12 +671,12 @@ impl<H, T> Arc<HeaderSlice<HeaderWithLength<H>, [T]>> { let ptr = thin_to_thick(a.ptr); mem::forget(a); Arc { - ptr: ptr + p: NonZeroPtrMut::new(ptr) } } } -impl<H: PartialEq, T: PartialEq> PartialEq for ThinArc<H, T> { +impl<H: PartialEq + 'static, T: PartialEq + 'static> PartialEq for ThinArc<H, T> { fn eq(&self, other: &ThinArc<H, T>) -> bool { ThinArc::with_arc(self, |a| { ThinArc::with_arc(other, |b| { @@ -634,7 +686,7 @@ impl<H: PartialEq, T: PartialEq> PartialEq for ThinArc<H, T> { } } -impl<H: Eq, T: Eq> Eq for ThinArc<H, T> {} +impl<H: Eq + 'static, T: Eq + 'static> Eq for ThinArc<H, T> {} #[cfg(test)] mod tests { @@ -649,13 +701,7 @@ mod tests { impl Drop for Canary { fn drop(&mut self) { - unsafe { - match *self { - Canary(c) => { - (*c).fetch_add(1, SeqCst); - } - } - } + unsafe { (*self.0).fetch_add(1, SeqCst); } } } diff --git a/components/style/gecko/generated/bindings.rs b/components/style/gecko/generated/bindings.rs index c0c865e3591..7054148ba70 100644 --- a/components/style/gecko/generated/bindings.rs +++ b/components/style/gecko/generated/bindings.rs @@ -1,6 +1,7 @@ /* automatically generated by rust-bindgen */ pub use nsstring::{nsACString, nsAString, nsString, nsStringRepr}; +use gecko_bindings::structs::nsStyleTransformMatrix; use gecko_bindings::structs::nsTArray; type nsACString_internal = nsACString; type nsAString_internal = nsAString; @@ -209,6 +210,10 @@ use gecko_bindings::structs::ParsingMode; use gecko_bindings::structs::InheritTarget; use gecko_bindings::structs::URLMatchingFunction; use gecko_bindings::structs::StyleRuleInclusion; +use gecko_bindings::structs::nsStyleTransformMatrix::MatrixTransformOperator; +unsafe impl Send for nsStyleTransformMatrix::MatrixTransformOperator {} +unsafe impl Sync for nsStyleTransformMatrix::MatrixTransformOperator {} +use gecko_bindings::structs::RawGeckoGfxMatrix4x4; pub type nsTArrayBorrowed_uintptr_t<'a> = &'a mut ::gecko_bindings::structs::nsTArray<usize>; pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoStyleSet>; pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoStyleSet>; @@ -1311,6 +1316,10 @@ extern "C" { len: u32); } extern "C" { + pub fn Gecko_CSSValue_InitSharedList(css_value: nsCSSValueBorrowedMut, + len: u32); +} +extern "C" { pub fn Gecko_CSSValue_Drop(css_value: nsCSSValueBorrowedMut); } extern "C" { @@ -2180,6 +2189,15 @@ extern "C" { nsCSSPropertyIDSetBorrowedMut); } extern "C" { + pub fn Servo_MatrixTransform_Operate(matrix_operator: + MatrixTransformOperator, + from: *const RawGeckoGfxMatrix4x4, + to: *const RawGeckoGfxMatrix4x4, + progress: f64, + result: + *mut RawGeckoGfxMatrix4x4); +} +extern "C" { pub fn Servo_AnimationValues_Interpolate(from: RawServoAnimationValueBorrowed, to: diff --git a/components/style/gecko/generated/structs_debug.rs b/components/style/gecko/generated/structs_debug.rs index 1709aa24417..01cae3906b3 100644 --- a/components/style/gecko/generated/structs_debug.rs +++ b/components/style/gecko/generated/structs_debug.rs @@ -975,6 +975,7 @@ pub mod root { pub const NS_STYLE_DISPLAY_MODE_BROWSER: ::std::os::raw::c_uint = 0; pub const NS_STYLE_DISPLAY_MODE_MINIMAL_UI: ::std::os::raw::c_uint = 1; pub const NS_STYLE_DISPLAY_MODE_STANDALONE: ::std::os::raw::c_uint = 2; + pub const NS_STYLE_DISPLAY_MODE_FULLSCREEN: ::std::os::raw::c_uint = 3; pub const CSS_PSEUDO_ELEMENT_IS_CSS2: ::std::os::raw::c_uint = 1; pub const CSS_PSEUDO_ELEMENT_CONTAINS_ELEMENTS: ::std::os::raw::c_uint = 2; @@ -1045,6 +1046,19 @@ pub mod root { } pub type pair_first_type<_T1> = _T1; pub type pair_second_type<_T2> = _T2; + pub type pair__EnableB = u8; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct pair__CheckArgs { + pub _address: u8, + } + pub type pair__CheckArgsDep = u8; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct pair__CheckTupleLikeConstructor { + pub _address: u8, + } + pub type pair__CheckTLC = u8; #[repr(C)] #[derive(Debug, Copy)] pub struct input_iterator_tag { @@ -1064,54 +1078,101 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct iterator { + #[derive(Debug, Copy)] + pub struct forward_iterator_tag { pub _address: u8, } - pub type iterator_iterator_category<_Category> = _Category; - pub type iterator_value_type<_Tp> = _Tp; - pub type iterator_difference_type<_Distance> = _Distance; - pub type iterator_pointer<_Pointer> = _Pointer; - pub type iterator_reference<_Reference> = _Reference; + #[test] + fn bindgen_test_layout_forward_iterator_tag() { + assert_eq!(::std::mem::size_of::<forward_iterator_tag>() , 1usize + , concat ! ( + "Size of: " , stringify ! ( forward_iterator_tag ) )); + assert_eq! (::std::mem::align_of::<forward_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( forward_iterator_tag ) + )); + } + impl Clone for forward_iterator_tag { + fn clone(&self) -> Self { *self } + } #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct __iterator_traits { + #[derive(Debug, Copy)] + pub struct bidirectional_iterator_tag { pub _address: u8, } + #[test] + fn bindgen_test_layout_bidirectional_iterator_tag() { + assert_eq!(::std::mem::size_of::<bidirectional_iterator_tag>() , + 1usize , concat ! ( + "Size of: " , stringify ! ( bidirectional_iterator_tag + ) )); + assert_eq! (::std::mem::align_of::<bidirectional_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( + bidirectional_iterator_tag ) )); + } + impl Clone for bidirectional_iterator_tag { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct random_access_iterator_tag { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_random_access_iterator_tag() { + assert_eq!(::std::mem::size_of::<random_access_iterator_tag>() , + 1usize , concat ! ( + "Size of: " , stringify ! ( random_access_iterator_tag + ) )); + assert_eq! (::std::mem::align_of::<random_access_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( + random_access_iterator_tag ) )); + } + impl Clone for random_access_iterator_tag { + fn clone(&self) -> Self { *self } + } #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct iterator_traits { pub _address: u8, } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct reverse_iterator<_Iterator> { - pub current: _Iterator, - pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_Iterator>>, + pub struct iterator { + pub _address: u8, + } + pub type iterator_value_type<_Tp> = _Tp; + pub type iterator_difference_type<_Distance> = _Distance; + pub type iterator_pointer<_Pointer> = _Pointer; + pub type iterator_reference<_Reference> = _Reference; + pub type iterator_iterator_category<_Category> = _Category; + #[repr(C)] + pub struct reverse_iterator<_Iter> { + pub __t: _Iter, + pub current: _Iter, + pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_Iter>>, } - pub type reverse_iterator___traits_type = root::std::iterator_traits; - pub type reverse_iterator_iterator_type<_Iterator> = _Iterator; + pub type reverse_iterator_iterator_type<_Iter> = _Iter; pub type reverse_iterator_difference_type = - root::std::reverse_iterator___traits_type; - pub type reverse_iterator_pointer = - root::std::reverse_iterator___traits_type; - pub type reverse_iterator_reference = - root::std::reverse_iterator___traits_type; + root::std::iterator_traits; + pub type reverse_iterator_reference = root::std::iterator_traits; + pub type reverse_iterator_pointer = root::std::iterator_traits; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct atomic { } - pub mod chrono { - #[allow(unused_imports)] - use self::super::super::super::root; + pub type atomic___base = u8; + #[repr(C)] + pub struct __bit_const_reference { + pub __seg_: root::std::__bit_const_reference___storage_pointer, + pub __mask_: root::std::__bit_const_reference___storage_type, } + pub type __bit_const_reference___storage_type = [u8; 0usize]; + pub type __bit_const_reference___storage_pointer = [u8; 0usize]; } - pub mod __gnu_cxx { - #[allow(unused_imports)] - use self::super::super::root; - } - pub type __off_t = ::std::os::raw::c_long; - pub type __off64_t = ::std::os::raw::c_long; + pub type __int64_t = ::std::os::raw::c_longlong; + pub type __darwin_off_t = root::__int64_t; pub mod mozilla { #[allow(unused_imports)] use self::super::super::root; @@ -1154,8 +1215,9 @@ pub mod root { root::nsSubstringTuple; pub type nsStringRepr_string_type = ::nsstring::nsStringRepr; pub type nsStringRepr_const_iterator = - root::nsReadingIterator<u16>; - pub type nsStringRepr_iterator = root::nsWritingIterator<u16>; + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>; + pub type nsStringRepr_iterator = + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>; pub type nsStringRepr_comparator_type = root::nsStringComparator; pub type nsStringRepr_char_iterator = *mut root::mozilla::detail::nsStringRepr_char_type; @@ -1245,9 +1307,9 @@ pub mod root { root::nsCSubstringTuple; pub type nsCStringRepr_string_type = root::nsCString; pub type nsCStringRepr_const_iterator = - root::nsReadingIterator<::std::os::raw::c_char>; + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>; pub type nsCStringRepr_iterator = - root::nsWritingIterator<::std::os::raw::c_char>; + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>; pub type nsCStringRepr_comparator_type = root::nsCStringComparator; pub type nsCStringRepr_char_iterator = @@ -1395,7 +1457,7 @@ pub mod root { #[repr(C)] #[derive(Debug)] pub struct MutexImpl { - pub platformData_: [*mut ::std::os::raw::c_void; 5usize], + pub platformData_: [*mut ::std::os::raw::c_void; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1404,7 +1466,7 @@ pub mod root { } #[test] fn bindgen_test_layout_MutexImpl() { - assert_eq!(::std::mem::size_of::<MutexImpl>() , 40usize , + assert_eq!(::std::mem::size_of::<MutexImpl>() , 64usize , concat ! ( "Size of: " , stringify ! ( MutexImpl ) )); assert_eq! (::std::mem::align_of::<MutexImpl>() , 8usize , @@ -2234,7 +2296,7 @@ pub mod root { } } #[repr(C)] - #[derive(Debug)] + #[derive(Debug, Copy)] pub struct ThreadSafeAutoRefCnt { pub mValue: u64, } @@ -2255,6 +2317,9 @@ pub mod root { ThreadSafeAutoRefCnt ) , "::" , stringify ! ( mValue ) )); } + impl Clone for ThreadSafeAutoRefCnt { + fn clone(&self) -> Self { *self } + } #[repr(C)] #[derive(Debug)] pub struct OwningNonNull<T> { @@ -2329,6 +2394,7 @@ pub mod root { #[allow(unused_imports)] use self::super::super::super::root; pub type IntRegion = [u64; 3usize]; + pub type Float = f32; #[repr(C)] #[derive(Debug, Copy)] pub struct Color { @@ -8239,7 +8305,7 @@ pub mod root { } #[test] fn bindgen_test_layout_OffTheBooksMutex() { - assert_eq!(::std::mem::size_of::<OffTheBooksMutex>() , 72usize , + assert_eq!(::std::mem::size_of::<OffTheBooksMutex>() , 96usize , concat ! ( "Size of: " , stringify ! ( OffTheBooksMutex ) )); assert_eq! (::std::mem::align_of::<OffTheBooksMutex>() , 8usize , @@ -8247,7 +8313,7 @@ pub mod root { "Alignment of " , stringify ! ( OffTheBooksMutex ) )); assert_eq! (unsafe { & ( * ( 0 as * const OffTheBooksMutex ) ) . - mOwningThread as * const _ as usize } , 64usize , + mOwningThread as * const _ as usize } , 88usize , concat ! ( "Alignment of field: " , stringify ! ( OffTheBooksMutex ) , "::" , stringify ! ( @@ -8265,7 +8331,7 @@ pub mod root { } #[test] fn bindgen_test_layout_Mutex() { - assert_eq!(::std::mem::size_of::<Mutex>() , 72usize , concat ! ( + assert_eq!(::std::mem::size_of::<Mutex>() , 96usize , concat ! ( "Size of: " , stringify ! ( Mutex ) )); assert_eq! (::std::mem::align_of::<Mutex>() , 8usize , concat ! ( "Alignment of " , stringify ! ( Mutex ) )); @@ -9474,6 +9540,8 @@ pub mod root { PropertyStyleAnimationValuePair ) , "::" , stringify ! ( mValue ) )); } + pub type ComputedKeyframeValues = + root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>; #[test] fn __bindgen_test_layout_DefaultDelete_instantiation_3() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , @@ -10671,196 +10739,194 @@ pub mod root { pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>, } } + pub type va_list = root::__builtin_va_list; + pub type fpos_t = root::__darwin_off_t; #[repr(C)] #[derive(Debug, Copy)] - pub struct _IO_FILE { - pub _flags: ::std::os::raw::c_int, - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - pub _IO_read_end: *mut ::std::os::raw::c_char, - pub _IO_read_base: *mut ::std::os::raw::c_char, - pub _IO_write_base: *mut ::std::os::raw::c_char, - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - pub _IO_write_end: *mut ::std::os::raw::c_char, - pub _IO_buf_base: *mut ::std::os::raw::c_char, - pub _IO_buf_end: *mut ::std::os::raw::c_char, - pub _IO_save_base: *mut ::std::os::raw::c_char, - pub _IO_backup_base: *mut ::std::os::raw::c_char, - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut root::_IO_marker, - pub _chain: *mut root::_IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - pub _old_offset: root::__off_t, - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut root::_IO_lock_t, - pub _offset: root::__off64_t, - pub __pad1: *mut ::std::os::raw::c_void, - pub __pad2: *mut ::std::os::raw::c_void, - pub __pad3: *mut ::std::os::raw::c_void, - pub __pad4: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - pub _unused2: [::std::os::raw::c_char; 20usize], - } - #[test] - fn bindgen_test_layout__IO_FILE() { - assert_eq!(::std::mem::size_of::<_IO_FILE>() , 216usize , concat ! ( - "Size of: " , stringify ! ( _IO_FILE ) )); - assert_eq! (::std::mem::align_of::<_IO_FILE>() , 8usize , concat ! ( - "Alignment of " , stringify ! ( _IO_FILE ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _flags as * const _ as + pub struct __sbuf { + pub _base: *mut ::std::os::raw::c_uchar, + pub _size: ::std::os::raw::c_int, + } + #[test] + fn bindgen_test_layout___sbuf() { + assert_eq!(::std::mem::size_of::<__sbuf>() , 16usize , concat ! ( + "Size of: " , stringify ! ( __sbuf ) )); + assert_eq! (::std::mem::align_of::<__sbuf>() , 8usize , concat ! ( + "Alignment of " , stringify ! ( __sbuf ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sbuf ) ) . _base as * const _ as usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _flags ) )); + "Alignment of field: " , stringify ! ( __sbuf ) , "::" , + stringify ! ( _base ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_ptr as * - const _ as usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_read_ptr ) )); + & ( * ( 0 as * const __sbuf ) ) . _size as * const _ as + usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( __sbuf ) , "::" , + stringify ! ( _size ) )); + } + impl Clone for __sbuf { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct __sFILEX { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct __sFILE { + pub _p: *mut ::std::os::raw::c_uchar, + pub _r: ::std::os::raw::c_int, + pub _w: ::std::os::raw::c_int, + pub _flags: ::std::os::raw::c_short, + pub _file: ::std::os::raw::c_short, + pub _bf: root::__sbuf, + pub _lbfsize: ::std::os::raw::c_int, + pub _cookie: *mut ::std::os::raw::c_void, + pub _close: ::std::option::Option<unsafe extern "C" fn(arg1: + *mut ::std::os::raw::c_void) + -> ::std::os::raw::c_int>, + pub _read: ::std::option::Option<unsafe extern "C" fn(arg1: + *mut ::std::os::raw::c_void, + arg2: + *mut ::std::os::raw::c_char, + arg3: + ::std::os::raw::c_int) + -> ::std::os::raw::c_int>, + pub _seek: ::std::option::Option<unsafe extern "C" fn(arg1: + *mut ::std::os::raw::c_void, + arg2: + root::fpos_t, + arg3: + ::std::os::raw::c_int) + -> root::fpos_t>, + pub _write: ::std::option::Option<unsafe extern "C" fn(arg1: + *mut ::std::os::raw::c_void, + arg2: + *const ::std::os::raw::c_char, + arg3: + ::std::os::raw::c_int) + -> ::std::os::raw::c_int>, + pub _ub: root::__sbuf, + pub _extra: *mut root::__sFILEX, + pub _ur: ::std::os::raw::c_int, + pub _ubuf: [::std::os::raw::c_uchar; 3usize], + pub _nbuf: [::std::os::raw::c_uchar; 1usize], + pub _lb: root::__sbuf, + pub _blksize: ::std::os::raw::c_int, + pub _offset: root::fpos_t, + } + #[test] + fn bindgen_test_layout___sFILE() { + assert_eq!(::std::mem::size_of::<__sFILE>() , 152usize , concat ! ( + "Size of: " , stringify ! ( __sFILE ) )); + assert_eq! (::std::mem::align_of::<__sFILE>() , 8usize , concat ! ( + "Alignment of " , stringify ! ( __sFILE ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _p as * const _ as + usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _p ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_end as * - const _ as usize } , 16usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_read_end ) )); + & ( * ( 0 as * const __sFILE ) ) . _r as * const _ as + usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _r ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_base as * - const _ as usize } , 24usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_read_base ) )); + & ( * ( 0 as * const __sFILE ) ) . _w as * const _ as + usize } , 12usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _w ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_base as * - const _ as usize } , 32usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_write_base ) )); + & ( * ( 0 as * const __sFILE ) ) . _flags as * const _ as + usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _flags ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_ptr as * - const _ as usize } , 40usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_write_ptr ) )); + & ( * ( 0 as * const __sFILE ) ) . _file as * const _ as + usize } , 18usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _file ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_end as * - const _ as usize } , 48usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_write_end ) )); + & ( * ( 0 as * const __sFILE ) ) . _bf as * const _ as + usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _bf ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_base as * - const _ as usize } , 56usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_buf_base ) )); + & ( * ( 0 as * const __sFILE ) ) . _lbfsize as * const _ + as usize } , 40usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _lbfsize ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_end as * const - _ as usize } , 64usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_buf_end ) )); + & ( * ( 0 as * const __sFILE ) ) . _cookie as * const _ as + usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _cookie ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_base as * - const _ as usize } , 72usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_save_base ) )); + & ( * ( 0 as * const __sFILE ) ) . _close as * const _ as + usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _close ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_backup_base as * - const _ as usize } , 80usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_backup_base ) )); + & ( * ( 0 as * const __sFILE ) ) . _read as * const _ as + usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _read ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_end as * - const _ as usize } , 88usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _IO_save_end ) )); + & ( * ( 0 as * const __sFILE ) ) . _seek as * const _ as + usize } , 72usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _seek ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _markers as * const _ - as usize } , 96usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _markers ) )); + & ( * ( 0 as * const __sFILE ) ) . _write as * const _ as + usize } , 80usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _write ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _ub as * const _ as + usize } , 88usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _ub ) )); assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _chain as * const _ as + & ( * ( 0 as * const __sFILE ) ) . _extra as * const _ as usize } , 104usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _chain ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _fileno as * const _ - as usize } , 112usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _fileno ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _flags2 as * const _ - as usize } , 116usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _flags2 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _old_offset as * const - _ as usize } , 120usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _old_offset ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _cur_column as * const - _ as usize } , 128usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _cur_column ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _vtable_offset as * - const _ as usize } , 130usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _vtable_offset ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _shortbuf as * const _ - as usize } , 131usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _shortbuf ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _lock as * const _ as - usize } , 136usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _lock ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _offset as * const _ - as usize } , 144usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _extra ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _ur as * const _ as + usize } , 112usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _ur ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _ubuf as * const _ as + usize } , 116usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _ubuf ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _nbuf as * const _ as + usize } , 119usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _nbuf ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _lb as * const _ as + usize } , 120usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _lb ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _blksize as * const _ + as usize } , 136usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + stringify ! ( _blksize ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const __sFILE ) ) . _offset as * const _ as + usize } , 144usize , concat ! ( + "Alignment of field: " , stringify ! ( __sFILE ) , "::" , stringify ! ( _offset ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . __pad1 as * const _ as - usize } , 152usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( __pad1 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . __pad2 as * const _ as - usize } , 160usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( __pad2 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . __pad3 as * const _ as - usize } , 168usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( __pad3 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . __pad4 as * const _ as - usize } , 176usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( __pad4 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . __pad5 as * const _ as - usize } , 184usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( __pad5 ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _mode as * const _ as - usize } , 192usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _mode ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_FILE ) ) . _unused2 as * const _ - as usize } , 196usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , - stringify ! ( _unused2 ) )); - } - impl Clone for _IO_FILE { + } + impl Clone for __sFILE { fn clone(&self) -> Self { *self } } - pub type FILE = root::_IO_FILE; - pub type va_list = root::__builtin_va_list; + pub type FILE = root::__sFILE; #[repr(C)] #[derive(Debug, Copy)] pub struct InfallibleAllocPolicy { @@ -11417,39 +11483,6 @@ pub mod root { NS_OK_NO_NAME_CLAUSE_HANDLED = 7864354, } pub type nsrefcnt = root::MozRefCountType; - pub type _IO_lock_t = ::std::os::raw::c_void; - #[repr(C)] - #[derive(Debug, Copy)] - pub struct _IO_marker { - pub _next: *mut root::_IO_marker, - pub _sbuf: *mut root::_IO_FILE, - pub _pos: ::std::os::raw::c_int, - } - #[test] - fn bindgen_test_layout__IO_marker() { - assert_eq!(::std::mem::size_of::<_IO_marker>() , 24usize , concat ! ( - "Size of: " , stringify ! ( _IO_marker ) )); - assert_eq! (::std::mem::align_of::<_IO_marker>() , 8usize , concat ! ( - "Alignment of " , stringify ! ( _IO_marker ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_marker ) ) . _next as * const _ - as usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_marker ) , "::" - , stringify ! ( _next ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_marker ) ) . _sbuf as * const _ - as usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_marker ) , "::" - , stringify ! ( _sbuf ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const _IO_marker ) ) . _pos as * const _ as - usize } , 16usize , concat ! ( - "Alignment of field: " , stringify ! ( _IO_marker ) , "::" - , stringify ! ( _pos ) )); - } - impl Clone for _IO_marker { - fn clone(&self) -> Self { *self } - } #[repr(C)] pub struct nsQueryFrame__bindgen_vtable(::std::os::raw::c_void); #[repr(C)] @@ -13397,6 +13430,11 @@ pub mod root { AutoSetAsyncStackForNewCalls ) , "::" , stringify ! ( oldAsyncCallIsExplicit ) )); } + pub type WarningReporter = + ::std::option::Option<unsafe extern "C" fn(cx: + *mut root::JSContext, + report: + *mut root::JSErrorReport)>; #[repr(C)] #[derive(Debug)] pub struct AutoHideScriptedCaller { @@ -13558,6 +13596,103 @@ pub mod root { pub struct JSCompartment { _unused: [u8; 0], } + /** + * Describes a single error or warning that occurs in the execution of script. + */ + #[repr(C)] + pub struct JSErrorReport { + pub _base: root::JSErrorBase, + pub linebuf_: *const u16, + pub linebufLength_: usize, + pub tokenOffset_: usize, + pub notes: root::mozilla::UniquePtr<root::JSErrorNotes>, + pub flags: ::std::os::raw::c_uint, + pub exnType: i16, + pub _bitfield_1: u8, + pub __bindgen_padding_0: u8, + } + #[test] + fn bindgen_test_layout_JSErrorReport() { + assert_eq!(::std::mem::size_of::<JSErrorReport>() , 72usize , concat ! + ( "Size of: " , stringify ! ( JSErrorReport ) )); + assert_eq! (::std::mem::align_of::<JSErrorReport>() , 8usize , concat + ! ( "Alignment of " , stringify ! ( JSErrorReport ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . linebuf_ as * + const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( linebuf_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . linebufLength_ as + * const _ as usize } , 40usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( linebufLength_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . tokenOffset_ as * + const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( tokenOffset_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . notes as * const + _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( notes ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . flags as * const + _ as usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( flags ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . exnType as * + const _ as usize } , 68usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( exnType ) )); + } + impl JSErrorReport { + #[inline] + pub fn isMuted(&self) -> bool { + let mask = 1usize as u8; + let unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + let val = (unit_field_val & mask) >> 0usize; + unsafe { ::std::mem::transmute(val as u8) } + } + #[inline] + pub fn set_isMuted(&mut self, val: bool) { + let mask = 1usize as u8; + let val = val as u8 as u8; + let mut unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + unit_field_val &= !mask; + unit_field_val |= (val << 0usize) & mask; + self._bitfield_1 = + unsafe { ::std::mem::transmute(unit_field_val) }; + } + #[inline] + pub fn ownsLinebuf_(&self) -> bool { + let mask = 2usize as u8; + let unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + let val = (unit_field_val & mask) >> 1usize; + unsafe { ::std::mem::transmute(val as u8) } + } + #[inline] + pub fn set_ownsLinebuf_(&mut self, val: bool) { + let mask = 2usize as u8; + let val = val as u8 as u8; + let mut unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + unit_field_val &= !mask; + unit_field_val |= (val << 1usize) & mask; + self._bitfield_1 = + unsafe { ::std::mem::transmute(unit_field_val) }; + } + #[inline] + pub fn new_bitfield_1(isMuted: bool, ownsLinebuf_: bool) -> u8 { + ({ ({ 0 } | ((isMuted as u8 as u8) << 0usize) & (1usize as u8)) } + | ((ownsLinebuf_ as u8 as u8) << 1usize) & (2usize as u8)) + } + } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct JSRuntime { @@ -14404,7 +14539,7 @@ pub mod root { #[derive(Debug)] pub struct gfxFontFeatureValueSet_ValueList { pub name: ::nsstring::nsStringRepr, - pub featureSelectors: root::nsTArray<::std::os::raw::c_uint>, + pub featureSelectors: root::nsTArray<u32>, } #[test] fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList() { @@ -14509,7 +14644,7 @@ pub mod root { pub struct gfxFontFeatureValueSet_FeatureValueHashEntry { pub _base: root::PLDHashEntryHdr, pub mKey: root::gfxFontFeatureValueSet_FeatureValueHashKey, - pub mValues: root::nsTArray<::std::os::raw::c_uint>, + pub mValues: root::nsTArray<u32>, } pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType = *const root::gfxFontFeatureValueSet_FeatureValueHashKey; @@ -14619,7 +14754,7 @@ pub mod root { pub alternateValues: root::nsTArray<root::gfxAlternateValue>, pub featureValueLookup: root::RefPtr<root::gfxFontFeatureValueSet>, pub fontFeatureSettings: root::nsTArray<root::gfxFontFeature>, - pub fontVariationSettings: root::nsTArray<root::mozilla::gfx::FontVariation>, + pub fontVariationSettings: root::nsTArray<root::gfxFontVariation>, pub languageOverride: u32, } #[test] @@ -15299,7 +15434,7 @@ pub mod root { * count is 1. */ #[repr(C)] - #[derive(Debug)] + #[derive(Debug, Copy)] pub struct nsStringBuffer { pub mRefCount: u32, pub mStorageSize: u32, @@ -15321,6 +15456,9 @@ pub mod root { "Alignment of field: " , stringify ! ( nsStringBuffer ) , "::" , stringify ! ( mStorageSize ) )); } + impl Clone for nsStringBuffer { + fn clone(&self) -> Self { *self } + } #[repr(C)] #[derive(Debug, Copy)] pub struct nsIAtom { @@ -17065,7 +17203,7 @@ pub mod root { */ pub mFrameRequestCallbackCounter: i32, pub mStaticCloneCount: u32, - pub mBlockedTrackingNodes: root::nsTArray<root::nsCOMPtr<root::nsIWeakReference>>, + pub mBlockedTrackingNodes: root::nsTArray<root::nsWeakPtr>, pub mWindow: *mut root::nsPIDOMWindowInner, pub mCachedEncoder: root::nsCOMPtr<root::nsIDocumentEncoder>, pub mFrameRequestCallbacks: root::nsTArray<root::nsIDocument_FrameRequest>, @@ -21278,7 +21416,7 @@ pub mod root { pub _base_1: root::nsWrapperCache, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, - pub mContent: root::nsCOMPtr<root::mozilla::dom::Element>, + pub mContent: root::nsCOMPtr<root::nsDOMAttributeMap_Element>, /** * Cache of Attrs. */ @@ -22379,57 +22517,57 @@ pub mod root { pub struct nsDOMMutationObserver { _unused: [u8; 0], } - pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_LISTENERMANAGER; - pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_PROPERTIES; - pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_ANONYMOUS_ROOT; - pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; - pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_NATIVE_ANONYMOUS_ROOT; - pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_FORCE_XBL_BINDINGS; - pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_MAY_BE_IN_BINDING_MNGR; - pub const NODE_IS_EDITABLE: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_EDITABLE; - pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_NATIVE_ANONYMOUS; - pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_IN_SHADOW_TREE; - pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_EMPTY_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_SLOW_SELECTOR; - pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_EDGE_CHILD_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; - pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_ALL_SELECTOR_FLAGS; - pub const NODE_NEEDS_FRAME: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_NEEDS_FRAME; - pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_DESCENDANTS_NEED_FRAMES; - pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_ACCESSKEY; - pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_DIRECTION_RTL; - pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_HAS_DIRECTION_LTR; - pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_ALL_DIRECTION_FLAGS; - pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_CHROME_ONLY_ACCESS; - pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; - pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_88 = - _bindgen_ty_88::NODE_TYPE_SPECIFIC_BITS_OFFSET; + pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_LISTENERMANAGER; + pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_PROPERTIES; + pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_ANONYMOUS_ROOT; + pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; + pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_NATIVE_ANONYMOUS_ROOT; + pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_FORCE_XBL_BINDINGS; + pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_MAY_BE_IN_BINDING_MNGR; + pub const NODE_IS_EDITABLE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_EDITABLE; + pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_NATIVE_ANONYMOUS; + pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_IN_SHADOW_TREE; + pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_EMPTY_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_SLOW_SELECTOR; + pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_EDGE_CHILD_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; + pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_ALL_SELECTOR_FLAGS; + pub const NODE_NEEDS_FRAME: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_NEEDS_FRAME; + pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_DESCENDANTS_NEED_FRAMES; + pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_ACCESSKEY; + pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_DIRECTION_RTL; + pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_DIRECTION_LTR; + pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_ALL_DIRECTION_FLAGS; + pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_CHROME_ONLY_ACCESS; + pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; + pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_88 { + pub enum _bindgen_ty_17 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -27601,7 +27739,7 @@ pub mod root { pub mRefCnt: root::nsAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, pub mBehaviour: root::mozilla::UniquePtr<root::ProxyBehaviour>, - pub mURI: root::RefPtr<root::mozilla::image::ImageURL>, + pub mURI: root::RefPtr<root::imgRequestProxy_ImageURL>, pub mListener: *mut root::imgINotificationObserver, pub mLoadGroup: root::nsCOMPtr<root::nsILoadGroup>, pub mLoadFlags: root::nsLoadFlags, @@ -28833,7 +28971,7 @@ pub mod root { pub _mOwningThread: root::nsAutoOwningThread, pub mLoader: *mut root::imgLoader, pub mRequest: root::nsCOMPtr<root::nsIRequest>, - pub mURI: root::RefPtr<root::mozilla::image::ImageURL>, + pub mURI: root::RefPtr<root::imgRequest_ImageURL>, pub mCurrentURI: root::nsCOMPtr<root::nsIURI>, pub mLoadingPrincipal: root::nsCOMPtr<root::nsIPrincipal>, pub mPrincipal: root::nsCOMPtr<root::nsIPrincipal>, @@ -28860,8 +28998,8 @@ pub mod root { pub mImageErrorCode: root::nsresult, pub mBoostCategoriesRequested: u32, pub mMutex: root::mozilla::Mutex, - pub mProgressTracker: root::RefPtr<root::mozilla::image::ProgressTracker>, - pub mImage: root::RefPtr<root::mozilla::image::Image>, + pub mProgressTracker: root::RefPtr<root::imgRequest_ProgressTracker>, + pub mImage: root::RefPtr<root::imgRequest_Image>, pub _bitfield_1: u8, pub __bindgen_padding_0: [u8; 7usize], } @@ -28875,7 +29013,7 @@ pub mod root { pub type imgRequest_HasThreadSafeRefCnt = root::mozilla::TrueType; #[test] fn bindgen_test_layout_imgRequest() { - assert_eq!(::std::mem::size_of::<imgRequest>() , 416usize , concat ! ( + assert_eq!(::std::mem::size_of::<imgRequest>() , 440usize , concat ! ( "Size of: " , stringify ! ( imgRequest ) )); assert_eq! (::std::mem::align_of::<imgRequest>() , 8usize , concat ! ( "Alignment of " , stringify ! ( imgRequest ) )); @@ -30326,7 +30464,7 @@ pub mod root { ) , "::" , stringify ! ( mQuotePairs ) )); } #[test] - fn __bindgen_test_layout_StaticRefPtr_instantiation_91() { + fn __bindgen_test_layout_StaticRefPtr_instantiation_20() { assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -30337,7 +30475,7 @@ pub mod root { root::mozilla::StaticRefPtr<root::nsStyleQuoteValues> ) )); } #[test] - fn __bindgen_test_layout_StaticRefPtr_instantiation_92() { + fn __bindgen_test_layout_StaticRefPtr_instantiation_21() { assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -32503,6 +32641,13 @@ pub mod root { pub struct RawServoAnimationValue { _unused: [u8; 0], } + pub mod nsStyleTransformMatrix { + #[allow(unused_imports)] + use self::super::super::root; + #[repr(u8)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum MatrixTransformOperator { Interpolate = 0, Accumulate = 1, } + } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsCSSPropertyIDSet { @@ -32515,7 +32660,7 @@ pub mod root { pub type RawGeckoURLExtraData = root::mozilla::URLExtraData; pub type RawGeckoKeyframeList = root::nsTArray<root::mozilla::Keyframe>; pub type RawGeckoComputedKeyframeValuesList = - root::nsTArray<root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>>; + root::nsTArray<root::mozilla::ComputedKeyframeValues>; pub type RawGeckoAnimationValueList = root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>; pub type RawGeckoStyleAnimationList = @@ -32529,6 +32674,7 @@ pub mod root { root::nsTArray<*const root::RawServoStyleRule>; pub type RawGeckoCSSPropertyIDList = root::nsTArray<root::nsCSSPropertyID>; + pub type RawGeckoGfxMatrix4x4 = [root::mozilla::gfx::Float; 16usize]; pub type RawServoAnimationValueMapBorrowedMut = *mut root::RawServoAnimationValueMap; pub type RawGeckoNodeBorrowed = *const root::RawGeckoNode; @@ -33273,48 +33419,48 @@ pub mod root { pub struct nsAttrValueOrString { _unused: [u8; 0], } - pub const ELEMENT_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_1; - pub const ELEMENT_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_SHARED_RESTYLE_BIT_3: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_3; - pub const ELEMENT_SHARED_RESTYLE_BIT_4: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_SHARED_RESTYLE_BIT_3: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; + pub const ELEMENT_SHARED_RESTYLE_BIT_4: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; pub const ELEMENT_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO: - root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_HAS_SNAPSHOT: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_3; - pub const ELEMENT_HANDLED_SNAPSHOT: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_HAS_PENDING_RESTYLE: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_1; - pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE: root::_bindgen_ty_90 + root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_HAS_SNAPSHOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; + pub const ELEMENT_HANDLED_SNAPSHOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_HAS_PENDING_RESTYLE: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE: root::_bindgen_ty_19 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_3; + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; pub const ELEMENT_IS_POTENTIAL_ANIMATION_ONLY_RESTYLE_ROOT: - root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR; - pub const ELEMENT_PENDING_RESTYLE_FLAGS: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_PENDING_RESTYLE_FLAGS; - pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS; - pub const ELEMENT_ALL_RESTYLE_FLAGS: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_ALL_RESTYLE_FLAGS; - pub const ELEMENT_HAS_SCROLLGRAB: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_HAS_SCROLLGRAB; - pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_90 = - _bindgen_ty_90::ELEMENT_TYPE_SPECIFIC_BITS_OFFSET; + root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR; + pub const ELEMENT_PENDING_RESTYLE_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_PENDING_RESTYLE_FLAGS; + pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS; + pub const ELEMENT_ALL_RESTYLE_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_ALL_RESTYLE_FLAGS; + pub const ELEMENT_HAS_SCROLLGRAB: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_HAS_SCROLLGRAB; + pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_90 { + pub enum _bindgen_ty_19 { ELEMENT_SHARED_RESTYLE_BIT_1 = 8388608, ELEMENT_SHARED_RESTYLE_BIT_2 = 16777216, ELEMENT_SHARED_RESTYLE_BIT_3 = 33554432, @@ -33967,7 +34113,7 @@ pub mod root { } pub type __builtin_va_list = [root::__va_list_tag; 1usize]; #[test] - fn __bindgen_test_layout_IntegralConstant_instantiation_93() { + fn __bindgen_test_layout_IntegralConstant_instantiation_22() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33976,7 +34122,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_IntegralConstant_instantiation_94() { + fn __bindgen_test_layout_IntegralConstant_instantiation_23() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33985,7 +34131,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_95() { + fn __bindgen_test_layout_nsCharTraits_instantiation_24() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33996,29 +34142,33 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsReadingIterator_instantiation_96() { - assert_eq!(::std::mem::size_of::<root::nsReadingIterator<u16>>() , - 24usize , concat ! ( + fn __bindgen_test_layout_nsReadingIterator_instantiation_25() { + assert_eq!(::std::mem::size_of::<root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsReadingIterator<u16> ) )); - assert_eq!(::std::mem::align_of::<root::nsReadingIterator<u16>>() , - 8usize , concat ! ( + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsReadingIterator<u16> ) )); + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsWritingIterator_instantiation_97() { - assert_eq!(::std::mem::size_of::<root::nsWritingIterator<u16>>() , - 24usize , concat ! ( + fn __bindgen_test_layout_nsWritingIterator_instantiation_26() { + assert_eq!(::std::mem::size_of::<root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsWritingIterator<u16> ) )); - assert_eq!(::std::mem::align_of::<root::nsWritingIterator<u16>>() , - 8usize , concat ! ( + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsWritingIterator<u16> ) )); + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_98() { + fn __bindgen_test_layout_nsCharTraits_instantiation_27() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34029,29 +34179,33 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsReadingIterator_instantiation_99() { - assert_eq!(::std::mem::size_of::<root::nsReadingIterator<::std::os::raw::c_char>>() + fn __bindgen_test_layout_nsReadingIterator_instantiation_28() { + assert_eq!(::std::mem::size_of::<root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsReadingIterator<::std::os::raw::c_char> ) )); - assert_eq!(::std::mem::align_of::<root::nsReadingIterator<::std::os::raw::c_char>>() + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsReadingIterator<::std::os::raw::c_char> ) )); + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsWritingIterator_instantiation_100() { - assert_eq!(::std::mem::size_of::<root::nsWritingIterator<::std::os::raw::c_char>>() + fn __bindgen_test_layout_nsWritingIterator_instantiation_29() { + assert_eq!(::std::mem::size_of::<root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsWritingIterator<::std::os::raw::c_char> ) )); - assert_eq!(::std::mem::align_of::<root::nsWritingIterator<::std::os::raw::c_char>>() + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsWritingIterator<::std::os::raw::c_char> ) )); + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_101() { + fn __bindgen_test_layout_nsCharTraits_instantiation_30() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34062,7 +34216,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_102() { + fn __bindgen_test_layout_nsCharTraits_instantiation_31() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34073,7 +34227,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_214445_instantiation_103() { + fn __bindgen_test_layout__bindgen_ty_id_188236_instantiation_32() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -34082,7 +34236,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_214481_instantiation_104() { + fn __bindgen_test_layout__bindgen_ty_id_188272_instantiation_33() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -34091,7 +34245,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_105() { + fn __bindgen_test_layout_nsTArray_instantiation_34() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34102,7 +34256,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_106() { + fn __bindgen_test_layout_Handle_instantiation_35() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34113,7 +34267,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_107() { + fn __bindgen_test_layout_Handle_instantiation_36() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34124,7 +34278,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_108() { + fn __bindgen_test_layout_MutableHandle_instantiation_37() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34135,7 +34289,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_109() { + fn __bindgen_test_layout_Rooted_instantiation_38() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34146,7 +34300,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_110() { + fn __bindgen_test_layout_DeletePolicy_instantiation_39() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34157,7 +34311,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_111() { + fn __bindgen_test_layout_nsTArray_instantiation_40() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34168,7 +34322,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_112() { + fn __bindgen_test_layout_nsTArray_instantiation_41() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34179,29 +34333,29 @@ pub mod root { root::nsTArray<root::mozilla::FontFamilyName> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_113() { - assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + fn __bindgen_test_layout_nsTArray_instantiation_42() { + assert_eq!(::std::mem::size_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Size of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); - assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + root::nsTArray<u32> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); + root::nsTArray<u32> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_114() { - assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + fn __bindgen_test_layout_nsTArray_instantiation_43() { + assert_eq!(::std::mem::size_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Size of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); - assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + root::nsTArray<u32> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); + root::nsTArray<u32> ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_115() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_44() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34212,7 +34366,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_116() { + fn __bindgen_test_layout_nsTArray_instantiation_45() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34223,7 +34377,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_TErrorResult_instantiation_117() { + fn __bindgen_test_layout_TErrorResult_instantiation_46() { assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34234,7 +34388,7 @@ pub mod root { root::mozilla::binding_danger::TErrorResult ) )); } #[test] - fn __bindgen_test_layout_TErrorResult_instantiation_118() { + fn __bindgen_test_layout_TErrorResult_instantiation_47() { assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34245,7 +34399,7 @@ pub mod root { root::mozilla::binding_danger::TErrorResult ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_119() { + fn __bindgen_test_layout_already_AddRefed_instantiation_48() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34256,7 +34410,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_120() { + fn __bindgen_test_layout_Handle_instantiation_49() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34267,7 +34421,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_121() { + fn __bindgen_test_layout_MutableHandle_instantiation_50() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34278,7 +34432,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_122() { + fn __bindgen_test_layout_Handle_instantiation_51() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34289,7 +34443,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_123() { + fn __bindgen_test_layout_nsTArray_instantiation_52() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34300,7 +34454,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_124() { + fn __bindgen_test_layout_Handle_instantiation_53() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34311,7 +34465,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_125() { + fn __bindgen_test_layout_RefPtr_instantiation_54() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34322,7 +34476,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_126() { + fn __bindgen_test_layout_Handle_instantiation_55() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34333,7 +34487,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_127() { + fn __bindgen_test_layout_Handle_instantiation_56() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34344,7 +34498,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_128() { + fn __bindgen_test_layout_already_AddRefed_instantiation_57() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34355,7 +34509,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_129() { + fn __bindgen_test_layout_already_AddRefed_instantiation_58() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34366,7 +34520,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_130() { + fn __bindgen_test_layout_already_AddRefed_instantiation_59() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34377,7 +34531,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_131() { + fn __bindgen_test_layout_Handle_instantiation_60() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34388,7 +34542,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_132() { + fn __bindgen_test_layout_MutableHandle_instantiation_61() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34399,7 +34553,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_133() { + fn __bindgen_test_layout_MutableHandle_instantiation_62() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34410,7 +34564,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_134() { + fn __bindgen_test_layout_DeletePolicy_instantiation_63() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34421,7 +34575,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_135() { + fn __bindgen_test_layout_UniquePtr_instantiation_64() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34432,7 +34586,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_136() { + fn __bindgen_test_layout_DeletePolicy_instantiation_65() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34443,7 +34597,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_137() { + fn __bindgen_test_layout_UniquePtr_instantiation_66() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34454,7 +34608,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_138() { + fn __bindgen_test_layout_DeletePolicy_instantiation_67() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34465,7 +34619,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_139() { + fn __bindgen_test_layout_UniquePtr_instantiation_68() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34476,7 +34630,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_140() { + fn __bindgen_test_layout_DeletePolicy_instantiation_69() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34487,7 +34641,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_141() { + fn __bindgen_test_layout_UniquePtr_instantiation_70() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34498,7 +34652,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_142() { + fn __bindgen_test_layout_DeletePolicy_instantiation_71() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34509,7 +34663,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_143() { + fn __bindgen_test_layout_UniquePtr_instantiation_72() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34520,7 +34674,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_iterator_instantiation_144() { + fn __bindgen_test_layout_iterator_instantiation_73() { assert_eq!(::std::mem::size_of::<root::std::iterator>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34531,7 +34685,7 @@ pub mod root { root::std::iterator ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_145() { + fn __bindgen_test_layout_DeletePolicy_instantiation_74() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34542,7 +34696,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_146() { + fn __bindgen_test_layout_UniquePtr_instantiation_75() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34553,7 +34707,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_147() { + fn __bindgen_test_layout_DeletePolicy_instantiation_76() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34564,7 +34718,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_148() { + fn __bindgen_test_layout_UniquePtr_instantiation_77() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34575,7 +34729,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_149() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_78() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIPrincipal>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34586,7 +34740,7 @@ pub mod root { root::nsCOMPtr<root::nsIPrincipal> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_150() { + fn __bindgen_test_layout_Handle_instantiation_79() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34597,7 +34751,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_151() { + fn __bindgen_test_layout_MutableHandle_instantiation_80() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34608,7 +34762,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_152() { + fn __bindgen_test_layout_nsTArray_instantiation_81() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34619,7 +34773,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_153() { + fn __bindgen_test_layout_nsTArray_instantiation_82() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34630,7 +34784,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_Heap_instantiation_154() { + fn __bindgen_test_layout_Heap_instantiation_83() { assert_eq!(::std::mem::size_of::<root::JS::Heap<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34641,7 +34795,7 @@ pub mod root { root::JS::Heap<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Heap_instantiation_155() { + fn __bindgen_test_layout_Heap_instantiation_84() { assert_eq!(::std::mem::size_of::<root::JS::Heap<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34652,7 +34806,7 @@ pub mod root { root::JS::Heap<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_TenuredHeap_instantiation_156() { + fn __bindgen_test_layout_TenuredHeap_instantiation_85() { assert_eq!(::std::mem::size_of::<root::JS::TenuredHeap>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34663,7 +34817,7 @@ pub mod root { root::JS::TenuredHeap ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_157() { + fn __bindgen_test_layout_already_AddRefed_instantiation_86() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34674,7 +34828,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_158() { + fn __bindgen_test_layout_nsTArray_instantiation_87() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34687,7 +34841,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_159() { + fn __bindgen_test_layout_RefPtr_instantiation_88() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34698,7 +34852,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_160() { + fn __bindgen_test_layout_nsTArray_instantiation_89() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34711,7 +34865,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_161() { + fn __bindgen_test_layout_RefPtr_instantiation_90() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34722,7 +34876,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_162() { + fn __bindgen_test_layout_nsTArray_instantiation_91() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34735,7 +34889,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_163() { + fn __bindgen_test_layout_RefPtr_instantiation_92() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34746,7 +34900,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_164() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_93() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34757,7 +34911,7 @@ pub mod root { root::nsCOMPtr<root::nsIObserver> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_165() { + fn __bindgen_test_layout_nsTArray_instantiation_94() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIObserver>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34768,7 +34922,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr<root::nsIObserver>> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_166() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_95() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIObserver>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34779,7 +34933,7 @@ pub mod root { root::nsCOMPtr<root::nsIObserver> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_167() { + fn __bindgen_test_layout_already_AddRefed_instantiation_96() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34790,7 +34944,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_168() { + fn __bindgen_test_layout_already_AddRefed_instantiation_97() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34801,7 +34955,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_169() { + fn __bindgen_test_layout_RefPtr_instantiation_98() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34812,7 +34966,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_170() { + fn __bindgen_test_layout_already_AddRefed_instantiation_99() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34823,7 +34977,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_171() { + fn __bindgen_test_layout_MutableHandle_instantiation_100() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34834,7 +34988,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_172() { + fn __bindgen_test_layout_already_AddRefed_instantiation_101() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34845,7 +34999,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_173() { + fn __bindgen_test_layout_already_AddRefed_instantiation_102() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34856,7 +35010,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_174() { + fn __bindgen_test_layout_already_AddRefed_instantiation_103() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34867,7 +35021,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_175() { + fn __bindgen_test_layout_RefPtr_instantiation_104() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34878,7 +35032,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_176() { + fn __bindgen_test_layout_Handle_instantiation_105() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34889,7 +35043,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_177() { + fn __bindgen_test_layout_already_AddRefed_instantiation_106() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34900,7 +35054,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_178() { + fn __bindgen_test_layout_already_AddRefed_instantiation_107() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34911,7 +35065,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_179() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_108() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::mozilla::dom::Link>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34922,18 +35076,7 @@ pub mod root { root::nsCOMPtr<root::mozilla::dom::Link> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_180() { - assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>() - , 8usize , concat ! ( - "Size of template specialization: " , stringify ! ( - root::nsCOMPtr<root::nsIWeakReference> ) )); - assert_eq!(::std::mem::align_of::<root::nsCOMPtr<root::nsIWeakReference>>() - , 8usize , concat ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsCOMPtr<root::nsIWeakReference> ) )); - } - #[test] - fn __bindgen_test_layout_RefPtr_instantiation_181() { + fn __bindgen_test_layout_RefPtr_instantiation_109() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34944,7 +35087,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_182() { + fn __bindgen_test_layout_nsTArray_instantiation_110() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34957,7 +35100,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_183() { + fn __bindgen_test_layout_Handle_instantiation_111() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34968,7 +35111,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_184() { + fn __bindgen_test_layout_DefaultDelete_instantiation_112() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34979,7 +35122,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_185() { + fn __bindgen_test_layout_UniquePtr_instantiation_113() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34990,7 +35133,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsISMILAttr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_186() { + fn __bindgen_test_layout_already_AddRefed_instantiation_114() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35001,7 +35144,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_187() { + fn __bindgen_test_layout_nsTArray_instantiation_115() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35012,7 +35155,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_188() { + fn __bindgen_test_layout_Handle_instantiation_116() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35023,7 +35166,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_189() { + fn __bindgen_test_layout_Handle_instantiation_117() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35034,7 +35177,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_190() { + fn __bindgen_test_layout_Handle_instantiation_118() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35045,7 +35188,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_191() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_119() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35058,7 +35201,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_192() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_120() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35069,7 +35212,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_193() { + fn __bindgen_test_layout_Handle_instantiation_121() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35080,7 +35223,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_194() { + fn __bindgen_test_layout_nsTArray_instantiation_122() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35091,7 +35234,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_195() { + fn __bindgen_test_layout_nsTArray_instantiation_123() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35102,7 +35245,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_196() { + fn __bindgen_test_layout_already_AddRefed_instantiation_124() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35113,7 +35256,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_197() { + fn __bindgen_test_layout_already_AddRefed_instantiation_125() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35124,7 +35267,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_198() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_126() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -35133,7 +35276,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_199() { + fn __bindgen_test_layout_already_AddRefed_instantiation_127() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35144,7 +35287,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_200() { + fn __bindgen_test_layout_nsTArray_instantiation_128() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35155,7 +35298,7 @@ pub mod root { root::nsTArray<root::nsRect> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_201() { + fn __bindgen_test_layout_already_AddRefed_instantiation_129() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsITimer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35166,7 +35309,7 @@ pub mod root { root::already_AddRefed<root::nsITimer> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_202() { + fn __bindgen_test_layout_DefaultDelete_instantiation_130() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35177,7 +35320,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_203() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_131() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35188,7 +35331,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_204() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_132() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35199,7 +35342,7 @@ pub mod root { root::nsCOMPtr<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_205() { + fn __bindgen_test_layout_nsTArray_instantiation_133() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr<root::nsIAtom>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35210,7 +35353,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr<root::nsIAtom>> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_206() { + fn __bindgen_test_layout_already_AddRefed_instantiation_134() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35221,7 +35364,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_207() { + fn __bindgen_test_layout_already_AddRefed_instantiation_135() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35232,7 +35375,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_208() { + fn __bindgen_test_layout_already_AddRefed_instantiation_136() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35243,7 +35386,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_209() { + fn __bindgen_test_layout_already_AddRefed_instantiation_137() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35254,7 +35397,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_210() { + fn __bindgen_test_layout_already_AddRefed_instantiation_138() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35265,7 +35408,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_211() { + fn __bindgen_test_layout_Handle_instantiation_139() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35276,7 +35419,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_212() { + fn __bindgen_test_layout_Handle_instantiation_140() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35287,7 +35430,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_213() { + fn __bindgen_test_layout_Handle_instantiation_141() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35298,7 +35441,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_214() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_142() { assert_eq!(::std::mem::size_of::<[u64; 29usize]>() , 232usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35309,7 +35452,7 @@ pub mod root { [u64; 29usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_215() { + fn __bindgen_test_layout_already_AddRefed_instantiation_143() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35320,7 +35463,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_216() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_144() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35331,7 +35474,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_217() { + fn __bindgen_test_layout_Handle_instantiation_145() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35342,7 +35485,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_218() { + fn __bindgen_test_layout_nsTArray_instantiation_146() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35353,7 +35496,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_219() { + fn __bindgen_test_layout_already_AddRefed_instantiation_147() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35364,7 +35507,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_220() { + fn __bindgen_test_layout_RefPtr_instantiation_148() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35375,7 +35518,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_221() { + fn __bindgen_test_layout_nsTArray_instantiation_149() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35388,7 +35531,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_222() { + fn __bindgen_test_layout_RefPtr_instantiation_150() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35399,7 +35542,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_223() { + fn __bindgen_test_layout_nsTArray_instantiation_151() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35412,7 +35555,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_WeakPtr_instantiation_224() { + fn __bindgen_test_layout_WeakPtr_instantiation_152() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -35421,7 +35564,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_225() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_153() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35432,7 +35575,7 @@ pub mod root { root::nsPtrHashKey<::std::os::raw::c_void> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_226() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_154() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::WeakFrame>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35443,7 +35586,7 @@ pub mod root { root::nsPtrHashKey<root::WeakFrame> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_227() { + fn __bindgen_test_layout_Handle_instantiation_155() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35454,7 +35597,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_228() { + fn __bindgen_test_layout_OwningNonNull_instantiation_156() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35465,7 +35608,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_229() { + fn __bindgen_test_layout_OwningNonNull_instantiation_157() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35476,7 +35619,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_230() { + fn __bindgen_test_layout_OwningNonNull_instantiation_158() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35487,7 +35630,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_231() { + fn __bindgen_test_layout_Handle_instantiation_159() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35498,7 +35641,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_232() { + fn __bindgen_test_layout_Handle_instantiation_160() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35509,7 +35652,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_233() { + fn __bindgen_test_layout_Handle_instantiation_161() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35520,7 +35663,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_234() { + fn __bindgen_test_layout_MutableHandle_instantiation_162() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35531,7 +35674,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_235() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_163() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIWeakReference>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35542,7 +35685,7 @@ pub mod root { root::nsCOMPtr<root::nsIWeakReference> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_236() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_164() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35553,7 +35696,7 @@ pub mod root { root::nsPtrHashKey<::std::os::raw::c_void> ) )); } #[test] - fn __bindgen_test_layout_PointTyped_instantiation_237() { + fn __bindgen_test_layout_PointTyped_instantiation_165() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35564,7 +35707,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntPointTyped_instantiation_238() { + fn __bindgen_test_layout_IntPointTyped_instantiation_166() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35575,7 +35718,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_SizeTyped_instantiation_239() { + fn __bindgen_test_layout_SizeTyped_instantiation_167() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35586,7 +35729,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_RectTyped_instantiation_240() { + fn __bindgen_test_layout_RectTyped_instantiation_168() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35597,7 +35740,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_IntPointTyped_instantiation_241() { + fn __bindgen_test_layout_IntPointTyped_instantiation_169() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35608,7 +35751,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntSizeTyped_instantiation_242() { + fn __bindgen_test_layout_IntSizeTyped_instantiation_170() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35619,7 +35762,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntRectTyped_instantiation_243() { + fn __bindgen_test_layout_IntRectTyped_instantiation_171() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35630,7 +35773,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_MarginTyped_instantiation_244() { + fn __bindgen_test_layout_MarginTyped_instantiation_172() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35641,7 +35784,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_RectTyped_instantiation_245() { + fn __bindgen_test_layout_RectTyped_instantiation_173() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35652,7 +35795,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_IntRectTyped_instantiation_246() { + fn __bindgen_test_layout_IntRectTyped_instantiation_174() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35663,7 +35806,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactor_instantiation_247() { + fn __bindgen_test_layout_ScaleFactor_instantiation_175() { assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! ( "Size of template specialization: " , stringify ! ( u32 ) )); @@ -35672,7 +35815,7 @@ pub mod root { u32 ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_248() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_176() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35683,7 +35826,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_249() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_177() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35694,7 +35837,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_250() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_178() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35705,7 +35848,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_251() { + fn __bindgen_test_layout_already_AddRefed_instantiation_179() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35716,7 +35859,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_252() { + fn __bindgen_test_layout_already_AddRefed_instantiation_180() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35727,7 +35870,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_253() { + fn __bindgen_test_layout_already_AddRefed_instantiation_181() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35738,7 +35881,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_254() { + fn __bindgen_test_layout_already_AddRefed_instantiation_182() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35749,7 +35892,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_255() { + fn __bindgen_test_layout_already_AddRefed_instantiation_183() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35760,7 +35903,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_256() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_184() { assert_eq!(::std::mem::size_of::<[u64; 29usize]>() , 232usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35771,7 +35914,7 @@ pub mod root { [u64; 29usize] ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_257() { + fn __bindgen_test_layout_MutableHandle_instantiation_185() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35782,7 +35925,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_258() { + fn __bindgen_test_layout_MutableHandle_instantiation_186() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35793,7 +35936,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_259() { + fn __bindgen_test_layout_already_AddRefed_instantiation_187() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35804,7 +35947,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_260() { + fn __bindgen_test_layout_DefaultDelete_instantiation_188() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35815,7 +35958,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_261() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_189() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35826,7 +35969,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_262() { + fn __bindgen_test_layout_Rooted_instantiation_190() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35837,7 +35980,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_263() { + fn __bindgen_test_layout_Rooted_instantiation_191() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35848,7 +35991,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_264() { + fn __bindgen_test_layout_already_AddRefed_instantiation_192() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35859,7 +36002,7 @@ pub mod root { root::already_AddRefed<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_265() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_193() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35870,7 +36013,7 @@ pub mod root { root::nsCOMPtr<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_266() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_194() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35881,7 +36024,7 @@ pub mod root { root::nsCOMPtr<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_267() { + fn __bindgen_test_layout_nsTArray_instantiation_195() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35892,7 +36035,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_268() { + fn __bindgen_test_layout_Handle_instantiation_196() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35903,7 +36046,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_269() { + fn __bindgen_test_layout_MutableHandle_instantiation_197() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35914,7 +36057,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_270() { + fn __bindgen_test_layout_Handle_instantiation_198() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35925,7 +36068,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_271() { + fn __bindgen_test_layout_MutableHandle_instantiation_199() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35936,7 +36079,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_272() { + fn __bindgen_test_layout_nsTArray_instantiation_200() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35947,7 +36090,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_273() { + fn __bindgen_test_layout_Handle_instantiation_201() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35958,7 +36101,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_274() { + fn __bindgen_test_layout_RefPtr_instantiation_202() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35969,7 +36112,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_275() { + fn __bindgen_test_layout_RefPtr_instantiation_203() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35980,7 +36123,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_276() { + fn __bindgen_test_layout_RefPtr_instantiation_204() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35991,7 +36134,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_277() { + fn __bindgen_test_layout_nsTArray_instantiation_205() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36004,7 +36147,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_278() { + fn __bindgen_test_layout_RefPtr_instantiation_206() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36015,7 +36158,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_279() { + fn __bindgen_test_layout_already_AddRefed_instantiation_207() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36026,7 +36169,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_280() { + fn __bindgen_test_layout_already_AddRefed_instantiation_208() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36037,7 +36180,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_281() { + fn __bindgen_test_layout_Handle_instantiation_209() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36048,7 +36191,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_282() { + fn __bindgen_test_layout_nsTArray_instantiation_210() { assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36059,7 +36202,7 @@ pub mod root { root::nsTArray<f64> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_283() { + fn __bindgen_test_layout_RefPtr_instantiation_211() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36072,7 +36215,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_284() { + fn __bindgen_test_layout_nsTArray_instantiation_212() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36085,7 +36228,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_285() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_213() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36096,7 +36239,7 @@ pub mod root { root::nsPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_286() { + fn __bindgen_test_layout_RefPtr_instantiation_214() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36109,7 +36252,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_287() { + fn __bindgen_test_layout_UniquePtr_instantiation_215() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36120,7 +36263,7 @@ pub mod root { root::mozilla::UniquePtr<root::ProfilerBacktrace> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_288() { + fn __bindgen_test_layout_nsTArray_instantiation_216() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36131,7 +36274,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_289() { + fn __bindgen_test_layout_Handle_instantiation_217() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36142,7 +36285,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_290() { + fn __bindgen_test_layout_MutableHandle_instantiation_218() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36153,7 +36296,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_291() { + fn __bindgen_test_layout_Handle_instantiation_219() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36164,7 +36307,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_292() { + fn __bindgen_test_layout_MutableHandle_instantiation_220() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36175,7 +36318,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_293() { + fn __bindgen_test_layout_already_AddRefed_instantiation_221() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36186,7 +36329,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_294() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_222() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36197,7 +36340,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_295() { + fn __bindgen_test_layout_OwningNonNull_instantiation_223() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36210,7 +36353,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_296() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_224() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36221,7 +36364,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_297() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_225() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36232,7 +36375,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_298() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_226() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36243,7 +36386,7 @@ pub mod root { root::nsCOMPtr<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_299() { + fn __bindgen_test_layout_DefaultDelete_instantiation_227() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36254,7 +36397,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_300() { + fn __bindgen_test_layout_already_AddRefed_instantiation_228() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36265,7 +36408,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_301() { + fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_229() { assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36276,7 +36419,7 @@ pub mod root { root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_302() { + fn __bindgen_test_layout_already_AddRefed_instantiation_230() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36287,7 +36430,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_303() { + fn __bindgen_test_layout_already_AddRefed_instantiation_231() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36298,7 +36441,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_304() { + fn __bindgen_test_layout_already_AddRefed_instantiation_232() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36309,7 +36452,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_305() { + fn __bindgen_test_layout_already_AddRefed_instantiation_233() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36320,7 +36463,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_306() { + fn __bindgen_test_layout_already_AddRefed_instantiation_234() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36331,7 +36474,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_307() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_235() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIDocument>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36342,7 +36485,7 @@ pub mod root { root::nsPtrHashKey<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_308() { + fn __bindgen_test_layout_already_AddRefed_instantiation_236() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36353,7 +36496,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_309() { + fn __bindgen_test_layout_DefaultDelete_instantiation_237() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36364,7 +36507,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_310() { + fn __bindgen_test_layout_UniquePtr_instantiation_238() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36375,7 +36518,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_311() { + fn __bindgen_test_layout_DefaultDelete_instantiation_239() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36386,7 +36529,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_312() { + fn __bindgen_test_layout_UniquePtr_instantiation_240() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36397,7 +36540,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_313() { + fn __bindgen_test_layout_already_AddRefed_instantiation_241() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36408,7 +36551,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_314() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_242() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -36417,7 +36560,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_315() { + fn __bindgen_test_layout_nsTArray_instantiation_243() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36428,7 +36571,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_316() { + fn __bindgen_test_layout_nsTArray_instantiation_244() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36439,7 +36582,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_317() { + fn __bindgen_test_layout_already_AddRefed_instantiation_245() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36450,7 +36593,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_318() { + fn __bindgen_test_layout_already_AddRefed_instantiation_246() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36461,7 +36604,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_319() { + fn __bindgen_test_layout_Maybe_instantiation_247() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36472,7 +36615,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_320() { + fn __bindgen_test_layout_Maybe_instantiation_248() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36483,7 +36626,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_321() { + fn __bindgen_test_layout_already_AddRefed_instantiation_249() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36494,7 +36637,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_322() { + fn __bindgen_test_layout_already_AddRefed_instantiation_250() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36505,7 +36648,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_323() { + fn __bindgen_test_layout_DefaultDelete_instantiation_251() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36516,7 +36659,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_324() { + fn __bindgen_test_layout_UniquePtr_instantiation_252() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36527,7 +36670,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_325() { + fn __bindgen_test_layout_DefaultDelete_instantiation_253() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36538,7 +36681,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_326() { + fn __bindgen_test_layout_UniquePtr_instantiation_254() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36549,7 +36692,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_327() { + fn __bindgen_test_layout_already_AddRefed_instantiation_255() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36560,7 +36703,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_328() { + fn __bindgen_test_layout_Maybe_instantiation_256() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36571,7 +36714,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_329() { + fn __bindgen_test_layout_DefaultDelete_instantiation_257() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36582,7 +36725,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_330() { + fn __bindgen_test_layout_DefaultDelete_instantiation_258() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36593,7 +36736,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_pair_instantiation_331() { + fn __bindgen_test_layout_pair_instantiation_259() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36604,7 +36747,7 @@ pub mod root { root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_332() { + fn __bindgen_test_layout_nsTArray_instantiation_260() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -36619,7 +36762,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_333() { + fn __bindgen_test_layout_already_AddRefed_instantiation_261() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36630,7 +36773,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_334() { + fn __bindgen_test_layout_nsTArray_instantiation_262() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36641,7 +36784,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_335() { + fn __bindgen_test_layout_nsTArray_instantiation_263() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36652,7 +36795,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_336() { + fn __bindgen_test_layout_nsTArray_instantiation_264() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36663,7 +36806,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_337() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_265() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36674,7 +36817,7 @@ pub mod root { root::nsCOMPtr<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsStyleAutoArray_instantiation_338() { + fn __bindgen_test_layout_nsStyleAutoArray_instantiation_266() { assert_eq!(::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>() , 64usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36685,7 +36828,7 @@ pub mod root { root::nsStyleAutoArray<root::mozilla::StyleAnimation> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_339() { + fn __bindgen_test_layout_DefaultDelete_instantiation_267() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36696,7 +36839,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_340() { + fn __bindgen_test_layout_UniquePtr_instantiation_268() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36707,7 +36850,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_341() { + fn __bindgen_test_layout_DefaultDelete_instantiation_269() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36718,7 +36861,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_342() { + fn __bindgen_test_layout_UniquePtr_instantiation_270() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36729,7 +36872,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_343() { + fn __bindgen_test_layout_RefPtr_instantiation_271() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36740,7 +36883,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_344() { + fn __bindgen_test_layout_RefPtr_instantiation_272() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36751,7 +36894,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_345() { + fn __bindgen_test_layout_NonNull_instantiation_273() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36764,7 +36907,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_346() { + fn __bindgen_test_layout_NonNull_instantiation_274() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::CSSPseudoElement>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36777,7 +36920,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_347() { + fn __bindgen_test_layout_Handle_instantiation_275() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36788,7 +36931,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_348() { + fn __bindgen_test_layout_MutableHandle_instantiation_276() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36799,7 +36942,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_349() { + fn __bindgen_test_layout_Maybe_instantiation_277() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36810,7 +36953,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_350() { + fn __bindgen_test_layout_Maybe_instantiation_278() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36821,7 +36964,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_351() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_279() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36832,7 +36975,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_352() { + fn __bindgen_test_layout_already_AddRefed_instantiation_280() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36843,7 +36986,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_353() { + fn __bindgen_test_layout_already_AddRefed_instantiation_281() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36854,7 +36997,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_354() { + fn __bindgen_test_layout_nsTArray_instantiation_282() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36865,7 +37008,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_355() { + fn __bindgen_test_layout_nsTArray_instantiation_283() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36876,7 +37019,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_356() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_284() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36887,7 +37030,7 @@ pub mod root { root::nsCOMPtr<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_357() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_285() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36900,7 +37043,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_358() { + fn __bindgen_test_layout_already_AddRefed_instantiation_286() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36911,7 +37054,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_359() { + fn __bindgen_test_layout_nsTArray_instantiation_287() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36924,7 +37067,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_360() { + fn __bindgen_test_layout_Handle_instantiation_288() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36935,7 +37078,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_361() { + fn __bindgen_test_layout_Handle_instantiation_289() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36946,7 +37089,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_362() { + fn __bindgen_test_layout_RefPtr_instantiation_290() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36957,7 +37100,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_363() { + fn __bindgen_test_layout_Handle_instantiation_291() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36968,7 +37111,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_364() { + fn __bindgen_test_layout_MutableHandle_instantiation_292() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36979,7 +37122,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_365() { + fn __bindgen_test_layout_Sequence_instantiation_293() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -36988,7 +37131,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_366() { + fn __bindgen_test_layout_Handle_instantiation_294() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36999,7 +37142,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_367() { + fn __bindgen_test_layout_Sequence_instantiation_295() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -37008,7 +37151,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_368() { + fn __bindgen_test_layout_Sequence_instantiation_296() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -37017,7 +37160,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_369() { + fn __bindgen_test_layout_Handle_instantiation_297() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37028,7 +37171,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_370() { + fn __bindgen_test_layout_Handle_instantiation_298() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37039,7 +37182,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_371() { + fn __bindgen_test_layout_MutableHandle_instantiation_299() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37050,7 +37193,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_372() { + fn __bindgen_test_layout_Handle_instantiation_300() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37061,7 +37204,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_373() { + fn __bindgen_test_layout_MutableHandle_instantiation_301() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37072,7 +37215,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_374() { + fn __bindgen_test_layout_Handle_instantiation_302() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37083,7 +37226,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_375() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_303() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37094,7 +37237,7 @@ pub mod root { root::nsRefPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsClassHashtable_instantiation_376() { + fn __bindgen_test_layout_nsClassHashtable_instantiation_304() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37105,7 +37248,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_377() { + fn __bindgen_test_layout_Handle_instantiation_305() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37116,7 +37259,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_378() { + fn __bindgen_test_layout_nsTArray_instantiation_306() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37127,7 +37270,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_379() { + fn __bindgen_test_layout_already_AddRefed_instantiation_307() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37138,7 +37281,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_380() { + fn __bindgen_test_layout_Handle_instantiation_308() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37149,7 +37292,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_381() { + fn __bindgen_test_layout_nsTArray_instantiation_309() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -37160,7 +37303,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsAutoPtr_instantiation_382() { + fn __bindgen_test_layout_nsAutoPtr_instantiation_310() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko/generated/structs_release.rs b/components/style/gecko/generated/structs_release.rs index d197eacc6bd..d1ed685ceae 100644 --- a/components/style/gecko/generated/structs_release.rs +++ b/components/style/gecko/generated/structs_release.rs @@ -975,6 +975,7 @@ pub mod root { pub const NS_STYLE_DISPLAY_MODE_BROWSER: ::std::os::raw::c_uint = 0; pub const NS_STYLE_DISPLAY_MODE_MINIMAL_UI: ::std::os::raw::c_uint = 1; pub const NS_STYLE_DISPLAY_MODE_STANDALONE: ::std::os::raw::c_uint = 2; + pub const NS_STYLE_DISPLAY_MODE_FULLSCREEN: ::std::os::raw::c_uint = 3; pub const CSS_PSEUDO_ELEMENT_IS_CSS2: ::std::os::raw::c_uint = 1; pub const CSS_PSEUDO_ELEMENT_CONTAINS_ELEMENTS: ::std::os::raw::c_uint = 2; @@ -1045,6 +1046,19 @@ pub mod root { } pub type pair_first_type<_T1> = _T1; pub type pair_second_type<_T2> = _T2; + pub type pair__EnableB = u8; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct pair__CheckArgs { + pub _address: u8, + } + pub type pair__CheckArgsDep = u8; + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct pair__CheckTupleLikeConstructor { + pub _address: u8, + } + pub type pair__CheckTLC = u8; #[repr(C)] #[derive(Debug, Copy)] pub struct input_iterator_tag { @@ -1064,47 +1078,98 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct iterator { + #[derive(Debug, Copy)] + pub struct forward_iterator_tag { pub _address: u8, } - pub type iterator_iterator_category<_Category> = _Category; - pub type iterator_value_type<_Tp> = _Tp; - pub type iterator_difference_type<_Distance> = _Distance; - pub type iterator_pointer<_Pointer> = _Pointer; - pub type iterator_reference<_Reference> = _Reference; + #[test] + fn bindgen_test_layout_forward_iterator_tag() { + assert_eq!(::std::mem::size_of::<forward_iterator_tag>() , 1usize + , concat ! ( + "Size of: " , stringify ! ( forward_iterator_tag ) )); + assert_eq! (::std::mem::align_of::<forward_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( forward_iterator_tag ) + )); + } + impl Clone for forward_iterator_tag { + fn clone(&self) -> Self { *self } + } #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct __iterator_traits { + #[derive(Debug, Copy)] + pub struct bidirectional_iterator_tag { pub _address: u8, } + #[test] + fn bindgen_test_layout_bidirectional_iterator_tag() { + assert_eq!(::std::mem::size_of::<bidirectional_iterator_tag>() , + 1usize , concat ! ( + "Size of: " , stringify ! ( bidirectional_iterator_tag + ) )); + assert_eq! (::std::mem::align_of::<bidirectional_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( + bidirectional_iterator_tag ) )); + } + impl Clone for bidirectional_iterator_tag { + fn clone(&self) -> Self { *self } + } + #[repr(C)] + #[derive(Debug, Copy)] + pub struct random_access_iterator_tag { + pub _address: u8, + } + #[test] + fn bindgen_test_layout_random_access_iterator_tag() { + assert_eq!(::std::mem::size_of::<random_access_iterator_tag>() , + 1usize , concat ! ( + "Size of: " , stringify ! ( random_access_iterator_tag + ) )); + assert_eq! (::std::mem::align_of::<random_access_iterator_tag>() , + 1usize , concat ! ( + "Alignment of " , stringify ! ( + random_access_iterator_tag ) )); + } + impl Clone for random_access_iterator_tag { + fn clone(&self) -> Self { *self } + } #[repr(C)] - #[derive(Debug, Copy, Clone)] pub struct iterator_traits { pub _address: u8, } #[repr(C)] #[derive(Debug, Copy, Clone)] - pub struct reverse_iterator<_Iterator> { - pub current: _Iterator, - pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_Iterator>>, + pub struct iterator { + pub _address: u8, + } + pub type iterator_value_type<_Tp> = _Tp; + pub type iterator_difference_type<_Distance> = _Distance; + pub type iterator_pointer<_Pointer> = _Pointer; + pub type iterator_reference<_Reference> = _Reference; + pub type iterator_iterator_category<_Category> = _Category; + #[repr(C)] + pub struct reverse_iterator<_Iter> { + pub __t: _Iter, + pub current: _Iter, + pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_Iter>>, } - pub type reverse_iterator___traits_type = root::std::iterator_traits; - pub type reverse_iterator_iterator_type<_Iterator> = _Iterator; + pub type reverse_iterator_iterator_type<_Iter> = _Iter; pub type reverse_iterator_difference_type = - root::std::reverse_iterator___traits_type; - pub type reverse_iterator_pointer = - root::std::reverse_iterator___traits_type; - pub type reverse_iterator_reference = - root::std::reverse_iterator___traits_type; + root::std::iterator_traits; + pub type reverse_iterator_reference = root::std::iterator_traits; + pub type reverse_iterator_pointer = root::std::iterator_traits; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct atomic { } - } - pub mod __gnu_cxx { - #[allow(unused_imports)] - use self::super::super::root; + pub type atomic___base = u8; + #[repr(C)] + pub struct __bit_const_reference { + pub __seg_: root::std::__bit_const_reference___storage_pointer, + pub __mask_: root::std::__bit_const_reference___storage_type, + } + pub type __bit_const_reference___storage_type = [u8; 0usize]; + pub type __bit_const_reference___storage_pointer = [u8; 0usize]; } pub mod mozilla { #[allow(unused_imports)] @@ -1148,8 +1213,9 @@ pub mod root { root::nsSubstringTuple; pub type nsStringRepr_string_type = ::nsstring::nsStringRepr; pub type nsStringRepr_const_iterator = - root::nsReadingIterator<u16>; - pub type nsStringRepr_iterator = root::nsWritingIterator<u16>; + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>; + pub type nsStringRepr_iterator = + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>; pub type nsStringRepr_comparator_type = root::nsStringComparator; pub type nsStringRepr_char_iterator = *mut root::mozilla::detail::nsStringRepr_char_type; @@ -1239,9 +1305,9 @@ pub mod root { root::nsCSubstringTuple; pub type nsCStringRepr_string_type = root::nsCString; pub type nsCStringRepr_const_iterator = - root::nsReadingIterator<::std::os::raw::c_char>; + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>; pub type nsCStringRepr_iterator = - root::nsWritingIterator<::std::os::raw::c_char>; + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>; pub type nsCStringRepr_comparator_type = root::nsCStringComparator; pub type nsCStringRepr_char_iterator = @@ -1337,7 +1403,7 @@ pub mod root { #[repr(C)] #[derive(Debug)] pub struct MutexImpl { - pub platformData_: [*mut ::std::os::raw::c_void; 5usize], + pub platformData_: [*mut ::std::os::raw::c_void; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1346,7 +1412,7 @@ pub mod root { } #[test] fn bindgen_test_layout_MutexImpl() { - assert_eq!(::std::mem::size_of::<MutexImpl>() , 40usize , + assert_eq!(::std::mem::size_of::<MutexImpl>() , 64usize , concat ! ( "Size of: " , stringify ! ( MutexImpl ) )); assert_eq! (::std::mem::align_of::<MutexImpl>() , 8usize , @@ -2129,7 +2195,7 @@ pub mod root { } } #[repr(C)] - #[derive(Debug)] + #[derive(Debug, Copy)] pub struct ThreadSafeAutoRefCnt { pub mValue: u64, } @@ -2150,6 +2216,9 @@ pub mod root { ThreadSafeAutoRefCnt ) , "::" , stringify ! ( mValue ) )); } + impl Clone for ThreadSafeAutoRefCnt { + fn clone(&self) -> Self { *self } + } #[repr(C)] #[derive(Debug)] pub struct OwningNonNull<T> { @@ -2223,6 +2292,7 @@ pub mod root { #[allow(unused_imports)] use self::super::super::super::root; pub type IntRegion = [u64; 3usize]; + pub type Float = f32; #[repr(C)] #[derive(Debug, Copy)] pub struct Color { @@ -7987,7 +8057,7 @@ pub mod root { } #[test] fn bindgen_test_layout_OffTheBooksMutex() { - assert_eq!(::std::mem::size_of::<OffTheBooksMutex>() , 40usize , + assert_eq!(::std::mem::size_of::<OffTheBooksMutex>() , 64usize , concat ! ( "Size of: " , stringify ! ( OffTheBooksMutex ) )); assert_eq! (::std::mem::align_of::<OffTheBooksMutex>() , 8usize , @@ -8006,7 +8076,7 @@ pub mod root { } #[test] fn bindgen_test_layout_Mutex() { - assert_eq!(::std::mem::size_of::<Mutex>() , 40usize , concat ! ( + assert_eq!(::std::mem::size_of::<Mutex>() , 64usize , concat ! ( "Size of: " , stringify ! ( Mutex ) )); assert_eq! (::std::mem::align_of::<Mutex>() , 8usize , concat ! ( "Alignment of " , stringify ! ( Mutex ) )); @@ -9215,6 +9285,8 @@ pub mod root { PropertyStyleAnimationValuePair ) , "::" , stringify ! ( mValue ) )); } + pub type ComputedKeyframeValues = + root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>; #[test] fn __bindgen_test_layout_DefaultDelete_instantiation_3() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , @@ -12896,6 +12968,11 @@ pub mod root { AutoSetAsyncStackForNewCalls ) , "::" , stringify ! ( oldAsyncCallIsExplicit ) )); } + pub type WarningReporter = + ::std::option::Option<unsafe extern "C" fn(cx: + *mut root::JSContext, + report: + *mut root::JSErrorReport)>; #[repr(C)] #[derive(Debug)] pub struct AutoHideScriptedCaller { @@ -13049,6 +13126,103 @@ pub mod root { pub struct JSCompartment { _unused: [u8; 0], } + /** + * Describes a single error or warning that occurs in the execution of script. + */ + #[repr(C)] + pub struct JSErrorReport { + pub _base: root::JSErrorBase, + pub linebuf_: *const u16, + pub linebufLength_: usize, + pub tokenOffset_: usize, + pub notes: root::mozilla::UniquePtr<root::JSErrorNotes>, + pub flags: ::std::os::raw::c_uint, + pub exnType: i16, + pub _bitfield_1: u8, + pub __bindgen_padding_0: u8, + } + #[test] + fn bindgen_test_layout_JSErrorReport() { + assert_eq!(::std::mem::size_of::<JSErrorReport>() , 72usize , concat ! + ( "Size of: " , stringify ! ( JSErrorReport ) )); + assert_eq! (::std::mem::align_of::<JSErrorReport>() , 8usize , concat + ! ( "Alignment of " , stringify ! ( JSErrorReport ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . linebuf_ as * + const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( linebuf_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . linebufLength_ as + * const _ as usize } , 40usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( linebufLength_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . tokenOffset_ as * + const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( tokenOffset_ ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . notes as * const + _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( notes ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . flags as * const + _ as usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( flags ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const JSErrorReport ) ) . exnType as * + const _ as usize } , 68usize , concat ! ( + "Alignment of field: " , stringify ! ( JSErrorReport ) , + "::" , stringify ! ( exnType ) )); + } + impl JSErrorReport { + #[inline] + pub fn isMuted(&self) -> bool { + let mask = 1usize as u8; + let unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + let val = (unit_field_val & mask) >> 0usize; + unsafe { ::std::mem::transmute(val as u8) } + } + #[inline] + pub fn set_isMuted(&mut self, val: bool) { + let mask = 1usize as u8; + let val = val as u8 as u8; + let mut unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + unit_field_val &= !mask; + unit_field_val |= (val << 0usize) & mask; + self._bitfield_1 = + unsafe { ::std::mem::transmute(unit_field_val) }; + } + #[inline] + pub fn ownsLinebuf_(&self) -> bool { + let mask = 2usize as u8; + let unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + let val = (unit_field_val & mask) >> 1usize; + unsafe { ::std::mem::transmute(val as u8) } + } + #[inline] + pub fn set_ownsLinebuf_(&mut self, val: bool) { + let mask = 2usize as u8; + let val = val as u8 as u8; + let mut unit_field_val: u8 = + unsafe { ::std::mem::transmute(self._bitfield_1) }; + unit_field_val &= !mask; + unit_field_val |= (val << 1usize) & mask; + self._bitfield_1 = + unsafe { ::std::mem::transmute(unit_field_val) }; + } + #[inline] + pub fn new_bitfield_1(isMuted: bool, ownsLinebuf_: bool) -> u8 { + ({ ({ 0 } | ((isMuted as u8 as u8) << 0usize) & (1usize as u8)) } + | ((ownsLinebuf_ as u8 as u8) << 1usize) & (2usize as u8)) + } + } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct JSRuntime { @@ -14047,7 +14221,7 @@ pub mod root { #[derive(Debug)] pub struct gfxFontFeatureValueSet_ValueList { pub name: ::nsstring::nsStringRepr, - pub featureSelectors: root::nsTArray<::std::os::raw::c_uint>, + pub featureSelectors: root::nsTArray<u32>, } #[test] fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList() { @@ -14152,7 +14326,7 @@ pub mod root { pub struct gfxFontFeatureValueSet_FeatureValueHashEntry { pub _base: root::PLDHashEntryHdr, pub mKey: root::gfxFontFeatureValueSet_FeatureValueHashKey, - pub mValues: root::nsTArray<::std::os::raw::c_uint>, + pub mValues: root::nsTArray<u32>, } pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType = *const root::gfxFontFeatureValueSet_FeatureValueHashKey; @@ -14255,7 +14429,7 @@ pub mod root { pub alternateValues: root::nsTArray<root::gfxAlternateValue>, pub featureValueLookup: root::RefPtr<root::gfxFontFeatureValueSet>, pub fontFeatureSettings: root::nsTArray<root::gfxFontFeature>, - pub fontVariationSettings: root::nsTArray<root::mozilla::gfx::FontVariation>, + pub fontVariationSettings: root::nsTArray<root::gfxFontVariation>, pub languageOverride: u32, } #[test] @@ -14935,7 +15109,7 @@ pub mod root { * count is 1. */ #[repr(C)] - #[derive(Debug)] + #[derive(Debug, Copy)] pub struct nsStringBuffer { pub mRefCount: u32, pub mStorageSize: u32, @@ -14957,6 +15131,9 @@ pub mod root { "Alignment of field: " , stringify ! ( nsStringBuffer ) , "::" , stringify ! ( mStorageSize ) )); } + impl Clone for nsStringBuffer { + fn clone(&self) -> Self { *self } + } #[repr(C)] #[derive(Debug, Copy)] pub struct nsIAtom { @@ -16674,7 +16851,7 @@ pub mod root { */ pub mFrameRequestCallbackCounter: i32, pub mStaticCloneCount: u32, - pub mBlockedTrackingNodes: root::nsTArray<root::nsCOMPtr>, + pub mBlockedTrackingNodes: root::nsTArray<root::nsWeakPtr>, pub mWindow: *mut root::nsPIDOMWindowInner, pub mCachedEncoder: root::nsCOMPtr, pub mFrameRequestCallbacks: root::nsTArray<root::nsIDocument_FrameRequest>, @@ -21935,57 +22112,57 @@ pub mod root { pub struct nsDOMMutationObserver { _unused: [u8; 0], } - pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_LISTENERMANAGER; - pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_PROPERTIES; - pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_ANONYMOUS_ROOT; - pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; - pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_NATIVE_ANONYMOUS_ROOT; - pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_FORCE_XBL_BINDINGS; - pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_MAY_BE_IN_BINDING_MNGR; - pub const NODE_IS_EDITABLE: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_EDITABLE; - pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_NATIVE_ANONYMOUS; - pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_IN_SHADOW_TREE; - pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_EMPTY_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_SLOW_SELECTOR; - pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_EDGE_CHILD_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; - pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_ALL_SELECTOR_FLAGS; - pub const NODE_NEEDS_FRAME: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_NEEDS_FRAME; - pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_DESCENDANTS_NEED_FRAMES; - pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_ACCESSKEY; - pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_DIRECTION_RTL; - pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_HAS_DIRECTION_LTR; - pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_ALL_DIRECTION_FLAGS; - pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_CHROME_ONLY_ACCESS; - pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; - pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_83 = - _bindgen_ty_83::NODE_TYPE_SPECIFIC_BITS_OFFSET; + pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_LISTENERMANAGER; + pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_PROPERTIES; + pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_ANONYMOUS_ROOT; + pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; + pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_NATIVE_ANONYMOUS_ROOT; + pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_FORCE_XBL_BINDINGS; + pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_MAY_BE_IN_BINDING_MNGR; + pub const NODE_IS_EDITABLE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_EDITABLE; + pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_NATIVE_ANONYMOUS; + pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_IN_SHADOW_TREE; + pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_EMPTY_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_SLOW_SELECTOR; + pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_EDGE_CHILD_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; + pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_ALL_SELECTOR_FLAGS; + pub const NODE_NEEDS_FRAME: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_NEEDS_FRAME; + pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_DESCENDANTS_NEED_FRAMES; + pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_ACCESSKEY; + pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_DIRECTION_RTL; + pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_HAS_DIRECTION_LTR; + pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_ALL_DIRECTION_FLAGS; + pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_CHROME_ONLY_ACCESS; + pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; + pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_17 = + _bindgen_ty_17::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_83 { + pub enum _bindgen_ty_17 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -27154,7 +27331,7 @@ pub mod root { pub _base_4: root::nsITimedChannel, pub mRefCnt: root::nsAutoRefCnt, pub mBehaviour: root::mozilla::UniquePtr<root::ProxyBehaviour>, - pub mURI: root::RefPtr<root::mozilla::image::ImageURL>, + pub mURI: root::RefPtr<root::imgRequestProxy_ImageURL>, pub mListener: *mut root::imgINotificationObserver, pub mLoadGroup: root::nsCOMPtr, pub mLoadFlags: root::nsLoadFlags, @@ -28294,7 +28471,7 @@ pub mod root { pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt, pub mLoader: *mut root::imgLoader, pub mRequest: root::nsCOMPtr, - pub mURI: root::RefPtr<root::mozilla::image::ImageURL>, + pub mURI: root::RefPtr<root::imgRequest_ImageURL>, pub mCurrentURI: root::nsCOMPtr, pub mLoadingPrincipal: root::nsCOMPtr, pub mPrincipal: root::nsCOMPtr, @@ -28321,8 +28498,8 @@ pub mod root { pub mImageErrorCode: root::nsresult, pub mBoostCategoriesRequested: u32, pub mMutex: root::mozilla::Mutex, - pub mProgressTracker: root::RefPtr<root::mozilla::image::ProgressTracker>, - pub mImage: root::RefPtr<root::mozilla::image::Image>, + pub mProgressTracker: root::RefPtr<root::imgRequest_ProgressTracker>, + pub mImage: root::RefPtr<root::imgRequest_Image>, pub _bitfield_1: u8, pub __bindgen_padding_0: [u8; 7usize], } @@ -28336,7 +28513,7 @@ pub mod root { pub type imgRequest_HasThreadSafeRefCnt = root::mozilla::TrueType; #[test] fn bindgen_test_layout_imgRequest() { - assert_eq!(::std::mem::size_of::<imgRequest>() , 376usize , concat ! ( + assert_eq!(::std::mem::size_of::<imgRequest>() , 400usize , concat ! ( "Size of: " , stringify ! ( imgRequest ) )); assert_eq! (::std::mem::align_of::<imgRequest>() , 8usize , concat ! ( "Alignment of " , stringify ! ( imgRequest ) )); @@ -29787,7 +29964,7 @@ pub mod root { ) , "::" , stringify ! ( mQuotePairs ) )); } #[test] - fn __bindgen_test_layout_StaticRefPtr_instantiation_86() { + fn __bindgen_test_layout_StaticRefPtr_instantiation_20() { assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -29798,7 +29975,7 @@ pub mod root { root::mozilla::StaticRefPtr<root::nsStyleQuoteValues> ) )); } #[test] - fn __bindgen_test_layout_StaticRefPtr_instantiation_87() { + fn __bindgen_test_layout_StaticRefPtr_instantiation_21() { assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::nsStyleQuoteValues>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -31964,6 +32141,13 @@ pub mod root { pub struct RawServoAnimationValue { _unused: [u8; 0], } + pub mod nsStyleTransformMatrix { + #[allow(unused_imports)] + use self::super::super::root; + #[repr(u8)] + #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] + pub enum MatrixTransformOperator { Interpolate = 0, Accumulate = 1, } + } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsCSSPropertyIDSet { @@ -31976,7 +32160,7 @@ pub mod root { pub type RawGeckoURLExtraData = root::mozilla::URLExtraData; pub type RawGeckoKeyframeList = root::nsTArray<root::mozilla::Keyframe>; pub type RawGeckoComputedKeyframeValuesList = - root::nsTArray<root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>>; + root::nsTArray<root::mozilla::ComputedKeyframeValues>; pub type RawGeckoAnimationValueList = root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>; pub type RawGeckoStyleAnimationList = @@ -31990,6 +32174,7 @@ pub mod root { root::nsTArray<*const root::RawServoStyleRule>; pub type RawGeckoCSSPropertyIDList = root::nsTArray<root::nsCSSPropertyID>; + pub type RawGeckoGfxMatrix4x4 = [root::mozilla::gfx::Float; 16usize]; pub type RawServoAnimationValueMapBorrowedMut = *mut root::RawServoAnimationValueMap; pub type RawGeckoNodeBorrowed = *const root::RawGeckoNode; @@ -32734,48 +32919,48 @@ pub mod root { pub struct nsAttrValueOrString { _unused: [u8; 0], } - pub const ELEMENT_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_1; - pub const ELEMENT_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_SHARED_RESTYLE_BIT_3: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_3; - pub const ELEMENT_SHARED_RESTYLE_BIT_4: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_SHARED_RESTYLE_BIT_3: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; + pub const ELEMENT_SHARED_RESTYLE_BIT_4: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; pub const ELEMENT_HAS_ANIMATION_ONLY_DIRTY_DESCENDANTS_FOR_SERVO: - root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_HAS_SNAPSHOT: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_3; - pub const ELEMENT_HANDLED_SNAPSHOT: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_HAS_PENDING_RESTYLE: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_1; - pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_2; - pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE: root::_bindgen_ty_85 + root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_HAS_SNAPSHOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; + pub const ELEMENT_HANDLED_SNAPSHOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_HAS_PENDING_RESTYLE: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_1; + pub const ELEMENT_IS_POTENTIAL_RESTYLE_ROOT: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_2; + pub const ELEMENT_HAS_PENDING_ANIMATION_ONLY_RESTYLE: root::_bindgen_ty_19 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_3; + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_3; pub const ELEMENT_IS_POTENTIAL_ANIMATION_ONLY_RESTYLE_ROOT: - root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_SHARED_RESTYLE_BIT_4; - pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR; - pub const ELEMENT_PENDING_RESTYLE_FLAGS: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_PENDING_RESTYLE_FLAGS; - pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS; - pub const ELEMENT_ALL_RESTYLE_FLAGS: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_ALL_RESTYLE_FLAGS; - pub const ELEMENT_HAS_SCROLLGRAB: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_HAS_SCROLLGRAB; - pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_85 = - _bindgen_ty_85::ELEMENT_TYPE_SPECIFIC_BITS_OFFSET; + root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_SHARED_RESTYLE_BIT_4; + pub const ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_IS_CONDITIONAL_RESTYLE_ANCESTOR; + pub const ELEMENT_PENDING_RESTYLE_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_PENDING_RESTYLE_FLAGS; + pub const ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_POTENTIAL_RESTYLE_ROOT_FLAGS; + pub const ELEMENT_ALL_RESTYLE_FLAGS: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_ALL_RESTYLE_FLAGS; + pub const ELEMENT_HAS_SCROLLGRAB: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_HAS_SCROLLGRAB; + pub const ELEMENT_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_19 = + _bindgen_ty_19::ELEMENT_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_85 { + pub enum _bindgen_ty_19 { ELEMENT_SHARED_RESTYLE_BIT_1 = 8388608, ELEMENT_SHARED_RESTYLE_BIT_2 = 16777216, ELEMENT_SHARED_RESTYLE_BIT_3 = 33554432, @@ -33428,7 +33613,7 @@ pub mod root { } pub type __builtin_va_list = [root::__va_list_tag; 1usize]; #[test] - fn __bindgen_test_layout_IntegralConstant_instantiation_88() { + fn __bindgen_test_layout_IntegralConstant_instantiation_22() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33437,7 +33622,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_IntegralConstant_instantiation_89() { + fn __bindgen_test_layout_IntegralConstant_instantiation_23() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33446,7 +33631,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_90() { + fn __bindgen_test_layout_nsCharTraits_instantiation_24() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33457,29 +33642,33 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsReadingIterator_instantiation_91() { - assert_eq!(::std::mem::size_of::<root::nsReadingIterator<u16>>() , - 24usize , concat ! ( + fn __bindgen_test_layout_nsReadingIterator_instantiation_25() { + assert_eq!(::std::mem::size_of::<root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsReadingIterator<u16> ) )); - assert_eq!(::std::mem::align_of::<root::nsReadingIterator<u16>>() , - 8usize , concat ! ( + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsReadingIterator<u16> ) )); + root::nsReadingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsWritingIterator_instantiation_92() { - assert_eq!(::std::mem::size_of::<root::nsWritingIterator<u16>>() , - 24usize , concat ! ( + fn __bindgen_test_layout_nsWritingIterator_instantiation_26() { + assert_eq!(::std::mem::size_of::<root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsWritingIterator<u16> ) )); - assert_eq!(::std::mem::align_of::<root::nsWritingIterator<u16>>() , - 8usize , concat ! ( + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type>>() + , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsWritingIterator<u16> ) )); + root::nsWritingIterator<root::mozilla::detail::nsStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_93() { + fn __bindgen_test_layout_nsCharTraits_instantiation_27() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33490,29 +33679,33 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsReadingIterator_instantiation_94() { - assert_eq!(::std::mem::size_of::<root::nsReadingIterator<::std::os::raw::c_char>>() + fn __bindgen_test_layout_nsReadingIterator_instantiation_28() { + assert_eq!(::std::mem::size_of::<root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsReadingIterator<::std::os::raw::c_char> ) )); - assert_eq!(::std::mem::align_of::<root::nsReadingIterator<::std::os::raw::c_char>>() + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsReadingIterator<::std::os::raw::c_char> ) )); + root::nsReadingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsWritingIterator_instantiation_95() { - assert_eq!(::std::mem::size_of::<root::nsWritingIterator<::std::os::raw::c_char>>() + fn __bindgen_test_layout_nsWritingIterator_instantiation_29() { + assert_eq!(::std::mem::size_of::<root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( - root::nsWritingIterator<::std::os::raw::c_char> ) )); - assert_eq!(::std::mem::align_of::<root::nsWritingIterator<::std::os::raw::c_char>>() + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); + assert_eq!(::std::mem::align_of::<root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsWritingIterator<::std::os::raw::c_char> ) )); + root::nsWritingIterator<root::mozilla::detail::nsCStringRepr_char_type> + ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_96() { + fn __bindgen_test_layout_nsCharTraits_instantiation_30() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33523,7 +33716,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout_nsCharTraits_instantiation_97() { + fn __bindgen_test_layout_nsCharTraits_instantiation_31() { assert_eq!(::std::mem::size_of::<root::nsCharTraits>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33534,7 +33727,7 @@ pub mod root { root::nsCharTraits ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_210609_instantiation_98() { + fn __bindgen_test_layout__bindgen_ty_id_185927_instantiation_32() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33543,7 +33736,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout__bindgen_ty_id_210645_instantiation_99() { + fn __bindgen_test_layout__bindgen_ty_id_185963_instantiation_33() { assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( u8 ) )); @@ -33552,7 +33745,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_100() { + fn __bindgen_test_layout_nsTArray_instantiation_34() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33563,7 +33756,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_101() { + fn __bindgen_test_layout_Handle_instantiation_35() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33574,7 +33767,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_102() { + fn __bindgen_test_layout_Handle_instantiation_36() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33585,7 +33778,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_103() { + fn __bindgen_test_layout_MutableHandle_instantiation_37() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33596,7 +33789,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_104() { + fn __bindgen_test_layout_Rooted_instantiation_38() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33607,7 +33800,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_105() { + fn __bindgen_test_layout_DeletePolicy_instantiation_39() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33618,7 +33811,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_106() { + fn __bindgen_test_layout_nsTArray_instantiation_40() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33629,7 +33822,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_107() { + fn __bindgen_test_layout_nsTArray_instantiation_41() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FontFamilyName>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33640,29 +33833,29 @@ pub mod root { root::nsTArray<root::mozilla::FontFamilyName> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_108() { - assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + fn __bindgen_test_layout_nsTArray_instantiation_42() { + assert_eq!(::std::mem::size_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Size of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); - assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + root::nsTArray<u32> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); + root::nsTArray<u32> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_109() { - assert_eq!(::std::mem::size_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + fn __bindgen_test_layout_nsTArray_instantiation_43() { + assert_eq!(::std::mem::size_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Size of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); - assert_eq!(::std::mem::align_of::<root::nsTArray<::std::os::raw::c_uint>>() - , 8usize , concat ! ( + root::nsTArray<u32> ) )); + assert_eq!(::std::mem::align_of::<root::nsTArray<u32>>() , 8usize , + concat ! ( "Alignment of template specialization: " , stringify ! ( - root::nsTArray<::std::os::raw::c_uint> ) )); + root::nsTArray<u32> ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_110() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_44() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33673,7 +33866,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_111() { + fn __bindgen_test_layout_nsTArray_instantiation_45() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33684,7 +33877,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_TErrorResult_instantiation_112() { + fn __bindgen_test_layout_TErrorResult_instantiation_46() { assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33695,7 +33888,7 @@ pub mod root { root::mozilla::binding_danger::TErrorResult ) )); } #[test] - fn __bindgen_test_layout_TErrorResult_instantiation_113() { + fn __bindgen_test_layout_TErrorResult_instantiation_47() { assert_eq!(::std::mem::size_of::<root::mozilla::binding_danger::TErrorResult>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33706,7 +33899,7 @@ pub mod root { root::mozilla::binding_danger::TErrorResult ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_114() { + fn __bindgen_test_layout_already_AddRefed_instantiation_48() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33717,7 +33910,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_115() { + fn __bindgen_test_layout_Handle_instantiation_49() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33728,7 +33921,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_116() { + fn __bindgen_test_layout_MutableHandle_instantiation_50() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33739,7 +33932,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_117() { + fn __bindgen_test_layout_Handle_instantiation_51() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33750,7 +33943,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_118() { + fn __bindgen_test_layout_nsTArray_instantiation_52() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33761,7 +33954,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_119() { + fn __bindgen_test_layout_Handle_instantiation_53() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33772,7 +33965,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_120() { + fn __bindgen_test_layout_RefPtr_instantiation_54() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33783,7 +33976,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_121() { + fn __bindgen_test_layout_Handle_instantiation_55() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33794,7 +33987,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_122() { + fn __bindgen_test_layout_Handle_instantiation_56() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33805,7 +33998,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_123() { + fn __bindgen_test_layout_already_AddRefed_instantiation_57() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33816,7 +34009,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_124() { + fn __bindgen_test_layout_already_AddRefed_instantiation_58() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33827,7 +34020,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_125() { + fn __bindgen_test_layout_already_AddRefed_instantiation_59() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33838,7 +34031,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_126() { + fn __bindgen_test_layout_Handle_instantiation_60() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33849,7 +34042,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_127() { + fn __bindgen_test_layout_MutableHandle_instantiation_61() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33860,7 +34053,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_128() { + fn __bindgen_test_layout_MutableHandle_instantiation_62() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33871,7 +34064,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_129() { + fn __bindgen_test_layout_DeletePolicy_instantiation_63() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33882,7 +34075,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_130() { + fn __bindgen_test_layout_UniquePtr_instantiation_64() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33893,7 +34086,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_131() { + fn __bindgen_test_layout_DeletePolicy_instantiation_65() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33904,7 +34097,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_132() { + fn __bindgen_test_layout_UniquePtr_instantiation_66() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33915,7 +34108,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_133() { + fn __bindgen_test_layout_DeletePolicy_instantiation_67() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33926,7 +34119,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_134() { + fn __bindgen_test_layout_UniquePtr_instantiation_68() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33937,7 +34130,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_135() { + fn __bindgen_test_layout_DeletePolicy_instantiation_69() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33948,7 +34141,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_136() { + fn __bindgen_test_layout_UniquePtr_instantiation_70() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33959,7 +34152,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_137() { + fn __bindgen_test_layout_DeletePolicy_instantiation_71() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33970,7 +34163,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_138() { + fn __bindgen_test_layout_UniquePtr_instantiation_72() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33981,7 +34174,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_iterator_instantiation_139() { + fn __bindgen_test_layout_iterator_instantiation_73() { assert_eq!(::std::mem::size_of::<root::std::iterator>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -33992,7 +34185,7 @@ pub mod root { root::std::iterator ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_140() { + fn __bindgen_test_layout_DeletePolicy_instantiation_74() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34003,7 +34196,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_141() { + fn __bindgen_test_layout_UniquePtr_instantiation_75() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34014,7 +34207,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_DeletePolicy_instantiation_142() { + fn __bindgen_test_layout_DeletePolicy_instantiation_76() { assert_eq!(::std::mem::size_of::<root::JS::DeletePolicy>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34025,7 +34218,7 @@ pub mod root { root::JS::DeletePolicy ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_143() { + fn __bindgen_test_layout_UniquePtr_instantiation_77() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::JSErrorNotes_Note>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34036,7 +34229,7 @@ pub mod root { root::mozilla::UniquePtr<root::JSErrorNotes_Note> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_144() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_78() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34047,7 +34240,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_145() { + fn __bindgen_test_layout_Handle_instantiation_79() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34058,7 +34251,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_146() { + fn __bindgen_test_layout_MutableHandle_instantiation_80() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34069,7 +34262,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_147() { + fn __bindgen_test_layout_nsTArray_instantiation_81() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34080,7 +34273,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_148() { + fn __bindgen_test_layout_nsTArray_instantiation_82() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCString>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34091,7 +34284,7 @@ pub mod root { root::nsTArray<root::nsCString> ) )); } #[test] - fn __bindgen_test_layout_Heap_instantiation_149() { + fn __bindgen_test_layout_Heap_instantiation_83() { assert_eq!(::std::mem::size_of::<root::JS::Heap<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34102,7 +34295,7 @@ pub mod root { root::JS::Heap<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Heap_instantiation_150() { + fn __bindgen_test_layout_Heap_instantiation_84() { assert_eq!(::std::mem::size_of::<root::JS::Heap<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34113,7 +34306,7 @@ pub mod root { root::JS::Heap<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_TenuredHeap_instantiation_151() { + fn __bindgen_test_layout_TenuredHeap_instantiation_85() { assert_eq!(::std::mem::size_of::<root::JS::TenuredHeap>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34124,7 +34317,7 @@ pub mod root { root::JS::TenuredHeap ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_152() { + fn __bindgen_test_layout_already_AddRefed_instantiation_86() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34135,7 +34328,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_153() { + fn __bindgen_test_layout_nsTArray_instantiation_87() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::AnonymousContent>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34148,7 +34341,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_154() { + fn __bindgen_test_layout_RefPtr_instantiation_88() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34159,7 +34352,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_155() { + fn __bindgen_test_layout_nsTArray_instantiation_89() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34172,7 +34365,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_156() { + fn __bindgen_test_layout_RefPtr_instantiation_90() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34183,7 +34376,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_157() { + fn __bindgen_test_layout_nsTArray_instantiation_91() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34196,7 +34389,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_158() { + fn __bindgen_test_layout_RefPtr_instantiation_92() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34207,7 +34400,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_159() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_93() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34218,7 +34411,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_160() { + fn __bindgen_test_layout_nsTArray_instantiation_94() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34229,7 +34422,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_161() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_95() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34240,7 +34433,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_162() { + fn __bindgen_test_layout_already_AddRefed_instantiation_96() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34251,7 +34444,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_163() { + fn __bindgen_test_layout_already_AddRefed_instantiation_97() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34262,7 +34455,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_164() { + fn __bindgen_test_layout_RefPtr_instantiation_98() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34273,7 +34466,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_165() { + fn __bindgen_test_layout_already_AddRefed_instantiation_99() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIDocument>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34284,7 +34477,7 @@ pub mod root { root::already_AddRefed<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_166() { + fn __bindgen_test_layout_MutableHandle_instantiation_100() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34295,7 +34488,7 @@ pub mod root { root::JS::MutableHandle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_167() { + fn __bindgen_test_layout_already_AddRefed_instantiation_101() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34306,7 +34499,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_168() { + fn __bindgen_test_layout_already_AddRefed_instantiation_102() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsContentList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34317,7 +34510,7 @@ pub mod root { root::already_AddRefed<root::nsContentList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_169() { + fn __bindgen_test_layout_already_AddRefed_instantiation_103() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34328,7 +34521,7 @@ pub mod root { root::already_AddRefed<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_170() { + fn __bindgen_test_layout_RefPtr_instantiation_104() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34339,7 +34532,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_171() { + fn __bindgen_test_layout_Handle_instantiation_105() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34350,7 +34543,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_172() { + fn __bindgen_test_layout_already_AddRefed_instantiation_106() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34361,7 +34554,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_173() { + fn __bindgen_test_layout_already_AddRefed_instantiation_107() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34372,7 +34565,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_174() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_108() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34383,18 +34576,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_175() { - assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! - ( - "Size of template specialization: " , stringify ! ( - root::nsCOMPtr ) )); - assert_eq!(::std::mem::align_of::<root::nsCOMPtr>() , 8usize , concat - ! ( - "Alignment of template specialization: " , stringify ! ( - root::nsCOMPtr ) )); - } - #[test] - fn __bindgen_test_layout_RefPtr_instantiation_176() { + fn __bindgen_test_layout_RefPtr_instantiation_109() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34405,7 +34587,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_177() { + fn __bindgen_test_layout_nsTArray_instantiation_110() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34418,7 +34600,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_178() { + fn __bindgen_test_layout_Handle_instantiation_111() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34429,7 +34611,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_179() { + fn __bindgen_test_layout_DefaultDelete_instantiation_112() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34440,7 +34622,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_180() { + fn __bindgen_test_layout_UniquePtr_instantiation_113() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsISMILAttr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34451,7 +34633,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsISMILAttr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_181() { + fn __bindgen_test_layout_already_AddRefed_instantiation_114() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34462,7 +34644,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_182() { + fn __bindgen_test_layout_nsTArray_instantiation_115() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34473,7 +34655,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_183() { + fn __bindgen_test_layout_Handle_instantiation_116() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34484,7 +34666,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_184() { + fn __bindgen_test_layout_Handle_instantiation_117() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34495,7 +34677,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_185() { + fn __bindgen_test_layout_Handle_instantiation_118() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34506,7 +34688,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_186() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_119() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34519,7 +34701,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_187() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_120() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34530,7 +34712,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_188() { + fn __bindgen_test_layout_Handle_instantiation_121() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34541,7 +34723,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_189() { + fn __bindgen_test_layout_nsTArray_instantiation_122() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34552,7 +34734,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_190() { + fn __bindgen_test_layout_nsTArray_instantiation_123() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34563,7 +34745,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_191() { + fn __bindgen_test_layout_already_AddRefed_instantiation_124() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34574,7 +34756,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_192() { + fn __bindgen_test_layout_already_AddRefed_instantiation_125() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34585,7 +34767,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_193() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_126() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -34594,7 +34776,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_194() { + fn __bindgen_test_layout_already_AddRefed_instantiation_127() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34605,7 +34787,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_195() { + fn __bindgen_test_layout_nsTArray_instantiation_128() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34616,7 +34798,7 @@ pub mod root { root::nsTArray<root::nsRect> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_196() { + fn __bindgen_test_layout_already_AddRefed_instantiation_129() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsITimer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34627,7 +34809,7 @@ pub mod root { root::already_AddRefed<root::nsITimer> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_197() { + fn __bindgen_test_layout_DefaultDelete_instantiation_130() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34638,7 +34820,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_198() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_131() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34649,7 +34831,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_199() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_132() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34660,7 +34842,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_200() { + fn __bindgen_test_layout_nsTArray_instantiation_133() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsCOMPtr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34671,7 +34853,7 @@ pub mod root { root::nsTArray<root::nsCOMPtr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_201() { + fn __bindgen_test_layout_already_AddRefed_instantiation_134() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34682,7 +34864,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_202() { + fn __bindgen_test_layout_already_AddRefed_instantiation_135() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34693,7 +34875,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_203() { + fn __bindgen_test_layout_already_AddRefed_instantiation_136() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34704,7 +34886,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_204() { + fn __bindgen_test_layout_already_AddRefed_instantiation_137() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34715,7 +34897,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_205() { + fn __bindgen_test_layout_already_AddRefed_instantiation_138() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34726,7 +34908,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_206() { + fn __bindgen_test_layout_Handle_instantiation_139() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34737,7 +34919,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_207() { + fn __bindgen_test_layout_Handle_instantiation_140() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34748,7 +34930,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_208() { + fn __bindgen_test_layout_Handle_instantiation_141() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34759,7 +34941,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_209() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_142() { assert_eq!(::std::mem::size_of::<[u64; 28usize]>() , 224usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34770,7 +34952,7 @@ pub mod root { [u64; 28usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_210() { + fn __bindgen_test_layout_already_AddRefed_instantiation_143() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34781,7 +34963,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_211() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_144() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34792,7 +34974,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_212() { + fn __bindgen_test_layout_Handle_instantiation_145() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34803,7 +34985,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_213() { + fn __bindgen_test_layout_nsTArray_instantiation_146() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34814,7 +34996,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_214() { + fn __bindgen_test_layout_already_AddRefed_instantiation_147() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34825,7 +35007,7 @@ pub mod root { root::already_AddRefed<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_215() { + fn __bindgen_test_layout_RefPtr_instantiation_148() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34836,7 +35018,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_216() { + fn __bindgen_test_layout_nsTArray_instantiation_149() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34849,7 +35031,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_217() { + fn __bindgen_test_layout_RefPtr_instantiation_150() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34860,7 +35042,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_218() { + fn __bindgen_test_layout_nsTArray_instantiation_151() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34873,7 +35055,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_WeakPtr_instantiation_219() { + fn __bindgen_test_layout_WeakPtr_instantiation_152() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -34882,7 +35064,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_220() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_153() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::WeakFrame>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34893,7 +35075,7 @@ pub mod root { root::nsPtrHashKey<root::WeakFrame> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_221() { + fn __bindgen_test_layout_Handle_instantiation_154() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34904,7 +35086,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_222() { + fn __bindgen_test_layout_OwningNonNull_instantiation_155() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34915,7 +35097,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_223() { + fn __bindgen_test_layout_OwningNonNull_instantiation_156() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34926,7 +35108,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_224() { + fn __bindgen_test_layout_OwningNonNull_instantiation_157() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::nsINode>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34937,7 +35119,7 @@ pub mod root { root::mozilla::OwningNonNull<root::nsINode> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_225() { + fn __bindgen_test_layout_Handle_instantiation_158() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34948,7 +35130,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_226() { + fn __bindgen_test_layout_Handle_instantiation_159() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34959,7 +35141,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_227() { + fn __bindgen_test_layout_Handle_instantiation_160() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34970,7 +35152,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_228() { + fn __bindgen_test_layout_MutableHandle_instantiation_161() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34981,7 +35163,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_229() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_162() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -34992,7 +35174,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_230() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_163() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<::std::os::raw::c_void>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35003,7 +35185,7 @@ pub mod root { root::nsPtrHashKey<::std::os::raw::c_void> ) )); } #[test] - fn __bindgen_test_layout_PointTyped_instantiation_231() { + fn __bindgen_test_layout_PointTyped_instantiation_164() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35014,7 +35196,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntPointTyped_instantiation_232() { + fn __bindgen_test_layout_IntPointTyped_instantiation_165() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35025,7 +35207,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_SizeTyped_instantiation_233() { + fn __bindgen_test_layout_SizeTyped_instantiation_166() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35036,7 +35218,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_RectTyped_instantiation_234() { + fn __bindgen_test_layout_RectTyped_instantiation_167() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35047,7 +35229,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_IntPointTyped_instantiation_235() { + fn __bindgen_test_layout_IntPointTyped_instantiation_168() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35058,7 +35240,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntSizeTyped_instantiation_236() { + fn __bindgen_test_layout_IntSizeTyped_instantiation_169() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35069,7 +35251,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_IntRectTyped_instantiation_237() { + fn __bindgen_test_layout_IntRectTyped_instantiation_170() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35080,7 +35262,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_MarginTyped_instantiation_238() { + fn __bindgen_test_layout_MarginTyped_instantiation_171() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35091,7 +35273,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_RectTyped_instantiation_239() { + fn __bindgen_test_layout_RectTyped_instantiation_172() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35102,7 +35284,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_IntRectTyped_instantiation_240() { + fn __bindgen_test_layout_IntRectTyped_instantiation_173() { assert_eq!(::std::mem::size_of::<[u32; 4usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35113,7 +35295,7 @@ pub mod root { [u32; 4usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactor_instantiation_241() { + fn __bindgen_test_layout_ScaleFactor_instantiation_174() { assert_eq!(::std::mem::size_of::<u32>() , 4usize , concat ! ( "Size of template specialization: " , stringify ! ( u32 ) )); @@ -35122,7 +35304,7 @@ pub mod root { u32 ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_242() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_175() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35133,7 +35315,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_243() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_176() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35144,7 +35326,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_ScaleFactors2D_instantiation_244() { + fn __bindgen_test_layout_ScaleFactors2D_instantiation_177() { assert_eq!(::std::mem::size_of::<[u32; 2usize]>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35155,7 +35337,7 @@ pub mod root { [u32; 2usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_245() { + fn __bindgen_test_layout_already_AddRefed_instantiation_178() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35166,7 +35348,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_246() { + fn __bindgen_test_layout_already_AddRefed_instantiation_179() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35177,7 +35359,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_247() { + fn __bindgen_test_layout_already_AddRefed_instantiation_180() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35188,7 +35370,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_248() { + fn __bindgen_test_layout_already_AddRefed_instantiation_181() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35199,7 +35381,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_249() { + fn __bindgen_test_layout_already_AddRefed_instantiation_182() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIRunnable>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35210,7 +35392,7 @@ pub mod root { root::already_AddRefed<root::nsIRunnable> ) )); } #[test] - fn __bindgen_test_layout_nsPIDOMWindow_instantiation_250() { + fn __bindgen_test_layout_nsPIDOMWindow_instantiation_183() { assert_eq!(::std::mem::size_of::<[u64; 28usize]>() , 224usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35221,7 +35403,7 @@ pub mod root { [u64; 28usize] ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_251() { + fn __bindgen_test_layout_MutableHandle_instantiation_184() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35232,7 +35414,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_252() { + fn __bindgen_test_layout_MutableHandle_instantiation_185() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35243,7 +35425,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_253() { + fn __bindgen_test_layout_already_AddRefed_instantiation_186() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35254,7 +35436,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_254() { + fn __bindgen_test_layout_DefaultDelete_instantiation_187() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35265,7 +35447,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_255() { + fn __bindgen_test_layout_nsRefPtrHashtable_instantiation_188() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35276,7 +35458,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_256() { + fn __bindgen_test_layout_Rooted_instantiation_189() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35287,7 +35469,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Rooted_instantiation_257() { + fn __bindgen_test_layout_Rooted_instantiation_190() { assert_eq!(::std::mem::size_of::<[u64; 3usize]>() , 24usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35298,7 +35480,7 @@ pub mod root { [u64; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_258() { + fn __bindgen_test_layout_already_AddRefed_instantiation_191() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsISupports>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35309,7 +35491,7 @@ pub mod root { root::already_AddRefed<root::nsISupports> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_259() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_192() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35320,7 +35502,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_260() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_193() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35331,7 +35513,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_261() { + fn __bindgen_test_layout_nsTArray_instantiation_194() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35342,7 +35524,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_262() { + fn __bindgen_test_layout_Handle_instantiation_195() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35353,7 +35535,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_263() { + fn __bindgen_test_layout_MutableHandle_instantiation_196() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35364,7 +35546,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_264() { + fn __bindgen_test_layout_Handle_instantiation_197() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35375,7 +35557,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_265() { + fn __bindgen_test_layout_MutableHandle_instantiation_198() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35386,7 +35568,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_266() { + fn __bindgen_test_layout_nsTArray_instantiation_199() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35397,7 +35579,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_267() { + fn __bindgen_test_layout_Handle_instantiation_200() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35408,7 +35590,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_268() { + fn __bindgen_test_layout_RefPtr_instantiation_201() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35419,7 +35601,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_269() { + fn __bindgen_test_layout_RefPtr_instantiation_202() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35430,7 +35612,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_270() { + fn __bindgen_test_layout_RefPtr_instantiation_203() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35441,7 +35623,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_271() { + fn __bindgen_test_layout_nsTArray_instantiation_204() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35454,7 +35636,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_272() { + fn __bindgen_test_layout_RefPtr_instantiation_205() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35465,7 +35647,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_273() { + fn __bindgen_test_layout_already_AddRefed_instantiation_206() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35476,7 +35658,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_274() { + fn __bindgen_test_layout_already_AddRefed_instantiation_207() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35487,7 +35669,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_275() { + fn __bindgen_test_layout_Handle_instantiation_208() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35498,7 +35680,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_276() { + fn __bindgen_test_layout_nsTArray_instantiation_209() { assert_eq!(::std::mem::size_of::<root::nsTArray<f64>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35509,7 +35691,7 @@ pub mod root { root::nsTArray<f64> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_277() { + fn __bindgen_test_layout_RefPtr_instantiation_210() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35522,7 +35704,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_278() { + fn __bindgen_test_layout_nsTArray_instantiation_211() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35535,7 +35717,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_279() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_212() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35546,7 +35728,7 @@ pub mod root { root::nsPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_280() { + fn __bindgen_test_layout_RefPtr_instantiation_213() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35559,7 +35741,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_281() { + fn __bindgen_test_layout_UniquePtr_instantiation_214() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::ProfilerBacktrace>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35570,7 +35752,7 @@ pub mod root { root::mozilla::UniquePtr<root::ProfilerBacktrace> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_282() { + fn __bindgen_test_layout_nsTArray_instantiation_215() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35581,7 +35763,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_283() { + fn __bindgen_test_layout_Handle_instantiation_216() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35592,7 +35774,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_284() { + fn __bindgen_test_layout_MutableHandle_instantiation_217() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35603,7 +35785,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_285() { + fn __bindgen_test_layout_Handle_instantiation_218() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35614,7 +35796,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_286() { + fn __bindgen_test_layout_MutableHandle_instantiation_219() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35625,7 +35807,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_287() { + fn __bindgen_test_layout_already_AddRefed_instantiation_220() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35636,7 +35818,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsDataHashtable_instantiation_288() { + fn __bindgen_test_layout_nsDataHashtable_instantiation_221() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35647,7 +35829,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_OwningNonNull_instantiation_289() { + fn __bindgen_test_layout_OwningNonNull_instantiation_222() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35660,7 +35842,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_290() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_223() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIAtom>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35671,7 +35853,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_291() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_224() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::nsIContent>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35682,7 +35864,7 @@ pub mod root { root::nsRefPtrHashKey<root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_292() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_225() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35693,7 +35875,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_293() { + fn __bindgen_test_layout_DefaultDelete_instantiation_226() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35704,7 +35886,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_294() { + fn __bindgen_test_layout_already_AddRefed_instantiation_227() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35715,7 +35897,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_295() { + fn __bindgen_test_layout_nsMainThreadPtrHolder_instantiation_228() { assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35726,7 +35908,7 @@ pub mod root { root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_296() { + fn __bindgen_test_layout_already_AddRefed_instantiation_229() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35737,7 +35919,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_297() { + fn __bindgen_test_layout_already_AddRefed_instantiation_230() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35748,7 +35930,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_298() { + fn __bindgen_test_layout_already_AddRefed_instantiation_231() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35759,7 +35941,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_299() { + fn __bindgen_test_layout_already_AddRefed_instantiation_232() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35770,7 +35952,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_300() { + fn __bindgen_test_layout_already_AddRefed_instantiation_233() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::URLExtraData>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35781,7 +35963,7 @@ pub mod root { root::already_AddRefed<root::mozilla::URLExtraData> ) )); } #[test] - fn __bindgen_test_layout_nsPtrHashKey_instantiation_301() { + fn __bindgen_test_layout_nsPtrHashKey_instantiation_234() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIDocument>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35792,7 +35974,7 @@ pub mod root { root::nsPtrHashKey<root::nsIDocument> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_302() { + fn __bindgen_test_layout_already_AddRefed_instantiation_235() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35803,7 +35985,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_303() { + fn __bindgen_test_layout_DefaultDelete_instantiation_236() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35814,7 +35996,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_304() { + fn __bindgen_test_layout_UniquePtr_instantiation_237() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35825,7 +36007,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_305() { + fn __bindgen_test_layout_DefaultDelete_instantiation_238() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35836,7 +36018,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_306() { + fn __bindgen_test_layout_UniquePtr_instantiation_239() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35847,7 +36029,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_307() { + fn __bindgen_test_layout_already_AddRefed_instantiation_240() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStringBuffer>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35858,7 +36040,7 @@ pub mod root { root::already_AddRefed<root::nsStringBuffer> ) )); } #[test] - fn __bindgen_test_layout_SupportsWeakPtr_instantiation_308() { + fn __bindgen_test_layout_SupportsWeakPtr_instantiation_241() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -35867,7 +36049,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_309() { + fn __bindgen_test_layout_nsTArray_instantiation_242() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35878,7 +36060,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_310() { + fn __bindgen_test_layout_nsTArray_instantiation_243() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35889,7 +36071,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_311() { + fn __bindgen_test_layout_already_AddRefed_instantiation_244() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35900,7 +36082,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_312() { + fn __bindgen_test_layout_already_AddRefed_instantiation_245() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35911,7 +36093,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_313() { + fn __bindgen_test_layout_Maybe_instantiation_246() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35922,7 +36104,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_314() { + fn __bindgen_test_layout_Maybe_instantiation_247() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35933,7 +36115,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_315() { + fn __bindgen_test_layout_already_AddRefed_instantiation_248() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35944,7 +36126,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_316() { + fn __bindgen_test_layout_already_AddRefed_instantiation_249() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIAtom>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35955,7 +36137,7 @@ pub mod root { root::already_AddRefed<root::nsIAtom> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_317() { + fn __bindgen_test_layout_DefaultDelete_instantiation_250() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35966,7 +36148,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_318() { + fn __bindgen_test_layout_UniquePtr_instantiation_251() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35977,7 +36159,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_319() { + fn __bindgen_test_layout_DefaultDelete_instantiation_252() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35988,7 +36170,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_320() { + fn __bindgen_test_layout_UniquePtr_instantiation_253() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -35999,7 +36181,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsStyleSides> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_321() { + fn __bindgen_test_layout_already_AddRefed_instantiation_254() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36010,7 +36192,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_322() { + fn __bindgen_test_layout_Maybe_instantiation_255() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36021,7 +36203,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_323() { + fn __bindgen_test_layout_DefaultDelete_instantiation_256() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36032,7 +36214,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_324() { + fn __bindgen_test_layout_DefaultDelete_instantiation_257() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36043,7 +36225,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_pair_instantiation_325() { + fn __bindgen_test_layout_pair_instantiation_258() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36054,7 +36236,7 @@ pub mod root { root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_326() { + fn __bindgen_test_layout_nsTArray_instantiation_259() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -36069,7 +36251,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_327() { + fn __bindgen_test_layout_already_AddRefed_instantiation_260() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsIURI>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36080,7 +36262,7 @@ pub mod root { root::already_AddRefed<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_328() { + fn __bindgen_test_layout_nsTArray_instantiation_261() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36091,7 +36273,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_329() { + fn __bindgen_test_layout_nsTArray_instantiation_262() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36102,7 +36284,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_330() { + fn __bindgen_test_layout_nsTArray_instantiation_263() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::nsStyleCoord>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36113,7 +36295,7 @@ pub mod root { root::nsTArray<root::nsStyleCoord> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_331() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_264() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36124,7 +36306,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsStyleAutoArray_instantiation_332() { + fn __bindgen_test_layout_nsStyleAutoArray_instantiation_265() { assert_eq!(::std::mem::size_of::<root::nsStyleAutoArray<root::mozilla::StyleAnimation>>() , 64usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36135,7 +36317,7 @@ pub mod root { root::nsStyleAutoArray<root::mozilla::StyleAnimation> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_333() { + fn __bindgen_test_layout_DefaultDelete_instantiation_266() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36146,7 +36328,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_334() { + fn __bindgen_test_layout_UniquePtr_instantiation_267() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36157,7 +36339,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValueList> ) )); } #[test] - fn __bindgen_test_layout_DefaultDelete_instantiation_335() { + fn __bindgen_test_layout_DefaultDelete_instantiation_268() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36168,7 +36350,7 @@ pub mod root { root::mozilla::DefaultDelete ) )); } #[test] - fn __bindgen_test_layout_UniquePtr_instantiation_336() { + fn __bindgen_test_layout_UniquePtr_instantiation_269() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36179,7 +36361,7 @@ pub mod root { root::mozilla::UniquePtr<root::nsCSSValuePairList> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_337() { + fn __bindgen_test_layout_RefPtr_instantiation_270() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36190,7 +36372,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_338() { + fn __bindgen_test_layout_RefPtr_instantiation_271() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::StyleSheet>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36201,7 +36383,7 @@ pub mod root { root::RefPtr<root::mozilla::StyleSheet> ) )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_339() { + fn __bindgen_test_layout_NonNull_instantiation_272() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::Element>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36214,7 +36396,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_NonNull_instantiation_340() { + fn __bindgen_test_layout_NonNull_instantiation_273() { assert_eq!(::std::mem::size_of::<root::mozilla::dom::NonNull<root::mozilla::dom::CSSPseudoElement>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36227,7 +36409,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_341() { + fn __bindgen_test_layout_Handle_instantiation_274() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36238,7 +36420,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_342() { + fn __bindgen_test_layout_MutableHandle_instantiation_275() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36249,7 +36431,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_343() { + fn __bindgen_test_layout_Maybe_instantiation_276() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36260,7 +36442,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_Maybe_instantiation_344() { + fn __bindgen_test_layout_Maybe_instantiation_277() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36271,7 +36453,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_BaseTimeDuration_instantiation_345() { + fn __bindgen_test_layout_BaseTimeDuration_instantiation_278() { assert_eq!(::std::mem::size_of::<root::mozilla::BaseTimeDuration>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36282,7 +36464,7 @@ pub mod root { root::mozilla::BaseTimeDuration ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_346() { + fn __bindgen_test_layout_already_AddRefed_instantiation_279() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36293,7 +36475,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_347() { + fn __bindgen_test_layout_already_AddRefed_instantiation_280() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36304,7 +36486,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_348() { + fn __bindgen_test_layout_nsTArray_instantiation_281() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36315,7 +36497,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_349() { + fn __bindgen_test_layout_nsTArray_instantiation_282() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::nsIContent>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36326,7 +36508,7 @@ pub mod root { root::nsTArray<*mut root::nsIContent> ) )); } #[test] - fn __bindgen_test_layout_nsCOMPtr_instantiation_350() { + fn __bindgen_test_layout_nsCOMPtr_instantiation_283() { assert_eq!(::std::mem::size_of::<root::nsCOMPtr>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36337,7 +36519,7 @@ pub mod root { root::nsCOMPtr ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_351() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_284() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::DOMIntersectionObserver>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36350,7 +36532,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_352() { + fn __bindgen_test_layout_already_AddRefed_instantiation_285() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::NodeInfo>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36361,7 +36543,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::NodeInfo> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_353() { + fn __bindgen_test_layout_nsTArray_instantiation_286() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36374,7 +36556,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_354() { + fn __bindgen_test_layout_Handle_instantiation_287() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36385,7 +36567,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_355() { + fn __bindgen_test_layout_Handle_instantiation_288() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36396,7 +36578,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_RefPtr_instantiation_356() { + fn __bindgen_test_layout_RefPtr_instantiation_289() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36407,7 +36589,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_357() { + fn __bindgen_test_layout_Handle_instantiation_290() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36418,7 +36600,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_358() { + fn __bindgen_test_layout_MutableHandle_instantiation_291() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36429,7 +36611,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_359() { + fn __bindgen_test_layout_Sequence_instantiation_292() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -36438,7 +36620,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_360() { + fn __bindgen_test_layout_Handle_instantiation_293() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36449,7 +36631,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_361() { + fn __bindgen_test_layout_Sequence_instantiation_294() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -36458,7 +36640,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Sequence_instantiation_362() { + fn __bindgen_test_layout_Sequence_instantiation_295() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -36467,7 +36649,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_363() { + fn __bindgen_test_layout_Handle_instantiation_296() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36478,7 +36660,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_364() { + fn __bindgen_test_layout_Handle_instantiation_297() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36489,7 +36671,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_365() { + fn __bindgen_test_layout_MutableHandle_instantiation_298() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36500,7 +36682,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_366() { + fn __bindgen_test_layout_Handle_instantiation_299() { assert_eq!(::std::mem::size_of::<root::JS::Handle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36511,7 +36693,7 @@ pub mod root { root::JS::Handle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_MutableHandle_instantiation_367() { + fn __bindgen_test_layout_MutableHandle_instantiation_300() { assert_eq!(::std::mem::size_of::<root::JS::MutableHandle<root::JS::Value>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36522,7 +36704,7 @@ pub mod root { root::JS::MutableHandle<root::JS::Value> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_368() { + fn __bindgen_test_layout_Handle_instantiation_301() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36533,7 +36715,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_369() { + fn __bindgen_test_layout_nsRefPtrHashKey_instantiation_302() { assert_eq!(::std::mem::size_of::<root::nsRefPtrHashKey<root::mozilla::dom::Element>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36544,7 +36726,7 @@ pub mod root { root::nsRefPtrHashKey<root::mozilla::dom::Element> ) )); } #[test] - fn __bindgen_test_layout_nsClassHashtable_instantiation_370() { + fn __bindgen_test_layout_nsClassHashtable_instantiation_303() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36555,7 +36737,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_371() { + fn __bindgen_test_layout_Handle_instantiation_304() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36566,7 +36748,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_372() { + fn __bindgen_test_layout_nsTArray_instantiation_305() { assert_eq!(::std::mem::size_of::<root::nsTArray<::nsstring::nsStringRepr>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36577,7 +36759,7 @@ pub mod root { root::nsTArray<::nsstring::nsStringRepr> ) )); } #[test] - fn __bindgen_test_layout_already_AddRefed_instantiation_373() { + fn __bindgen_test_layout_already_AddRefed_instantiation_306() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::dom::CSSValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36588,7 +36770,7 @@ pub mod root { root::already_AddRefed<root::mozilla::dom::CSSValue> ) )); } #[test] - fn __bindgen_test_layout_Handle_instantiation_374() { + fn __bindgen_test_layout_Handle_instantiation_307() { assert_eq!(::std::mem::size_of::<root::JS::Handle<*mut root::JSObject>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36599,7 +36781,7 @@ pub mod root { root::JS::Handle<*mut root::JSObject> ) )); } #[test] - fn __bindgen_test_layout_nsTArray_instantiation_375() { + fn __bindgen_test_layout_nsTArray_instantiation_308() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -36610,7 +36792,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_nsAutoPtr_instantiation_376() { + fn __bindgen_test_layout_nsAutoPtr_instantiation_309() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko_bindings/sugar/mod.rs b/components/style/gecko_bindings/sugar/mod.rs index f241c94810b..159beb6a332 100644 --- a/components/style/gecko_bindings/sugar/mod.rs +++ b/components/style/gecko_bindings/sugar/mod.rs @@ -7,6 +7,7 @@ mod ns_com_ptr; mod ns_compatibility; mod ns_css_shadow_array; +mod ns_css_shadow_item; pub mod ns_css_value; mod ns_style_auto_array; pub mod ns_style_coord; diff --git a/components/style/gecko_bindings/sugar/ns_css_shadow_item.rs b/components/style/gecko_bindings/sugar/ns_css_shadow_item.rs new file mode 100644 index 00000000000..003da073b23 --- /dev/null +++ b/components/style/gecko_bindings/sugar/ns_css_shadow_item.rs @@ -0,0 +1,43 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//! Rust helpers for Gecko's `nsCSSShadowItem`. + +use app_units::Au; +use cssparser::Color; +use gecko::values::{convert_rgba_to_nscolor, convert_nscolor_to_rgba}; +use gecko_bindings::structs::nsCSSShadowItem; +use values::computed::Shadow; + +impl nsCSSShadowItem { + /// Set this item to the given shadow value. + pub fn set_from_shadow(&mut self, other: Shadow) { + self.mXOffset = other.offset_x.0; + self.mYOffset = other.offset_y.0; + self.mRadius = other.blur_radius.0; + self.mSpread = other.spread_radius.0; + self.mInset = other.inset; + self.mColor = match other.color { + Color::RGBA(rgba) => { + self.mHasColor = true; + convert_rgba_to_nscolor(&rgba) + }, + // TODO handle currentColor + // https://bugzilla.mozilla.org/show_bug.cgi?id=760345 + Color::CurrentColor => 0, + } + } + + /// Generate shadow value from this shadow item. + pub fn to_shadow(&self) -> Shadow { + Shadow { + offset_x: Au(self.mXOffset), + offset_y: Au(self.mYOffset), + blur_radius: Au(self.mRadius), + spread_radius: Au(self.mSpread), + inset: self.mInset, + color: Color::RGBA(convert_nscolor_to_rgba(self.mColor)), + } + } +} diff --git a/components/style/gecko_bindings/sugar/ns_css_value.rs b/components/style/gecko_bindings/sugar/ns_css_value.rs index 0f91fc4f27a..2c70c6ba020 100644 --- a/components/style/gecko_bindings/sugar/ns_css_value.rs +++ b/components/style/gecko_bindings/sugar/ns_css_value.rs @@ -8,8 +8,9 @@ use app_units::Au; use gecko_bindings::bindings; use gecko_bindings::structs; use gecko_bindings::structs::{nsCSSValue, nsCSSUnit}; -use gecko_bindings::structs::{nsCSSValue_Array, nscolor}; +use gecko_bindings::structs::{nsCSSValue_Array, nsCSSValueList, nscolor}; use gecko_string_cache::Atom; +use std::marker::PhantomData; use std::mem; use std::ops::{Index, IndexMut}; use std::slice; @@ -225,19 +226,17 @@ impl nsCSSValue { /// Set to a list value /// /// This is only supported on the main thread. - pub fn set_list<I>(&mut self, mut values: I) where I: ExactSizeIterator<Item=nsCSSValue> { + pub fn set_list<I>(&mut self, values: I) where I: ExactSizeIterator<Item=nsCSSValue> { debug_assert!(values.len() > 0, "Empty list is not supported"); unsafe { bindings::Gecko_CSSValue_SetList(self, values.len() as u32); } debug_assert_eq!(self.mUnit, nsCSSUnit::eCSSUnit_List); - let mut item_ptr = &mut unsafe { + let list: &mut structs::nsCSSValueList = &mut unsafe { self.mValue.mList.as_ref() // &*nsCSSValueList_heap .as_mut().expect("List pointer should be non-null") - }._base as *mut structs::nsCSSValueList; - while let Some(item) = unsafe { item_ptr.as_mut() } { - item.mValue = values.next().expect("Values shouldn't have been exhausted"); - item_ptr = item.mNext; + }._base; + for (item, new_value) in list.into_iter().zip(values) { + *item = new_value; } - debug_assert!(values.next().is_none(), "Values should have been exhausted"); } /// Set to a pair list value @@ -260,6 +259,21 @@ impl nsCSSValue { } debug_assert!(values.next().is_none(), "Values should have been exhausted"); } + + /// Set a shared list + pub fn set_shared_list<I>(&mut self, values: I) where I: ExactSizeIterator<Item=nsCSSValue> { + debug_assert!(values.len() > 0, "Empty list is not supported"); + unsafe { bindings::Gecko_CSSValue_InitSharedList(self, values.len() as u32) }; + debug_assert_eq!(self.mUnit, nsCSSUnit::eCSSUnit_SharedList); + let list = unsafe { + self.mValue.mSharedList.as_ref() + .as_mut().expect("List pointer should be non-null").mHead.as_mut() + }; + debug_assert!(list.is_some(), "New created shared list shouldn't be null"); + for (item, new_value) in list.unwrap().into_iter().zip(values) { + *item = new_value; + } + } } impl Drop for nsCSSValue { @@ -268,6 +282,64 @@ impl Drop for nsCSSValue { } } +/// Iterator of nsCSSValueList. +#[allow(non_camel_case_types)] +pub struct nsCSSValueListIterator<'a> { + current: Option<&'a nsCSSValueList>, +} + +impl<'a> Iterator for nsCSSValueListIterator<'a> { + type Item = &'a nsCSSValue; + fn next(&mut self) -> Option<Self::Item> { + match self.current { + Some(item) => { + self.current = unsafe { item.mNext.as_ref() }; + Some(&item.mValue) + }, + None => None + } + } +} + +impl<'a> IntoIterator for &'a nsCSSValueList { + type Item = &'a nsCSSValue; + type IntoIter = nsCSSValueListIterator<'a>; + + fn into_iter(self) -> Self::IntoIter { + nsCSSValueListIterator { current: Some(self) } + } +} + +/// Mutable Iterator of nsCSSValueList. +#[allow(non_camel_case_types)] +pub struct nsCSSValueListMutIterator<'a> { + current: *mut nsCSSValueList, + phantom: PhantomData<&'a mut nsCSSValue>, +} + +impl<'a> Iterator for nsCSSValueListMutIterator<'a> { + type Item = &'a mut nsCSSValue; + fn next(&mut self) -> Option<Self::Item> { + match unsafe { self.current.as_mut() } { + Some(item) => { + self.current = item.mNext; + Some(&mut item.mValue) + }, + None => None + } + } +} + +impl<'a> IntoIterator for &'a mut nsCSSValueList { + type Item = &'a mut nsCSSValue; + type IntoIter = nsCSSValueListMutIterator<'a>; + + fn into_iter(self) -> Self::IntoIter { + nsCSSValueListMutIterator { current: self as *mut nsCSSValueList, + phantom: PhantomData } + } +} + impl nsCSSValue_Array { /// Return the length of this `nsCSSValue::Array` #[inline] diff --git a/components/style/gecko_bindings/sugar/ownership.rs b/components/style/gecko_bindings/sugar/ownership.rs index 6c4746013b3..0b5111b3870 100644 --- a/components/style/gecko_bindings/sugar/ownership.rs +++ b/components/style/gecko_bindings/sugar/ownership.rs @@ -11,7 +11,7 @@ use std::ptr; use stylearc::Arc; /// Indicates that a given Servo type has a corresponding Gecko FFI type. -pub unsafe trait HasFFI : Sized { +pub unsafe trait HasFFI : Sized + 'static { /// The corresponding Gecko type that this rust type represents. /// /// See the examples in `components/style/gecko/conversions.rs`. diff --git a/components/style/parallel.rs b/components/style/parallel.rs index 859548d3c8b..fe6bceb4da1 100644 --- a/components/style/parallel.rs +++ b/components/style/parallel.rs @@ -37,9 +37,11 @@ use traversal::{DomTraversal, PerLevelTraversalData, PreTraverseToken}; /// /// Larger values will increase style sharing cache hits and general DOM locality /// at the expense of decreased opportunities for parallelism. The style sharing -/// cache can hold 8 entries, but not all styles are shareable, so we set this -/// value to 16. These values have not been measured and could potentially be -/// tuned. +/// cache can hold 31 entries, but not all styles are shareable, so we set this +/// value to 16. The size of the cache has been measured to provide pretty good +/// sharing on a few pages, but could probably use more measurement and tuning. +/// The work unit size is a bit of a guess at the moment; again could use +/// measurement and tuning. pub const WORK_UNIT_MAX: usize = 16; /// Verify that the style sharing cache size doesn't change. If it does, we should @@ -48,7 +50,7 @@ pub const WORK_UNIT_MAX: usize = 16; /// have surprising effects on the parallelism characteristics of the style system. #[allow(dead_code)] fn static_assert() { - unsafe { mem::transmute::<_, [u32; STYLE_SHARING_CANDIDATE_CACHE_SIZE]>([1; 8]); } + unsafe { mem::transmute::<_, [u32; STYLE_SHARING_CANDIDATE_CACHE_SIZE]>([1; 31]); } } /// A list of node pointers. diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 08afc1674a1..efefebcfe16 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -64,7 +64,7 @@ use std::mem::{forget, transmute, zeroed}; use std::ptr; use stylearc::Arc; use std::cmp; -use values::computed::ToComputedValue; +use values::computed::{Shadow, ToComputedValue}; use values::{Either, Auto, KeyframesName}; use computed_values::border_style; @@ -2286,30 +2286,44 @@ fn static_assert() { single_patterns = ["m%s: %s" % (str(a / 4 + 1) + str(a % 4 + 1), b + str(a + 1)) for (a, b) in enumerate(items)] if name == "Matrix": - pattern = "ComputedMatrix { %s }" % ", ".join(single_patterns) + pattern = "(ComputedMatrix { %s })" % ", ".join(single_patterns) else: - pattern = "ComputedMatrixWithPercents { %s }" % ", ".join(single_patterns) + pattern = "(ComputedMatrixWithPercents { %s })" % ", ".join(single_patterns) + elif keyword == "interpolatematrix": + pattern = " { from_list: ref list1, to_list: ref list2, progress: percentage3 }" + elif keyword == "accumulatematrix": + pattern = " { from_list: ref list1, to_list: ref list2, count: integer_to_percentage3 }" else: # Generate contents of pattern from items - pattern = ", ".join([b + str(a+1) for (a,b) in enumerate(items)]) + pattern = "(%s)" % ", ".join([b + str(a+1) for (a,b) in enumerate(items)]) # First %s substituted with the call to GetArrayItem, the second # %s substituted with the corresponding variable css_value_setters = { "length" : "bindings::Gecko_CSSValue_SetAbsoluteLength(%s, %s.0)", - "percentage" : "bindings::Gecko_CSSValue_SetPercentage(%s, %s)", + "percentage" : "bindings::Gecko_CSSValue_SetPercentage(%s, %s.0)", + # Note: This is an integer type, but we use it as a percentage value in Gecko, so + # need to cast it to f32. + "integer_to_percentage" : "bindings::Gecko_CSSValue_SetPercentage(%s, %s as f32)", "lop" : "%s.set_lop(%s)", "angle" : "%s.set_angle(%s)", "number" : "bindings::Gecko_CSSValue_SetNumber(%s, %s)", + # Note: We use nsCSSValueSharedList here, instead of nsCSSValueList_heap + # because this function is not called on the main thread and + # nsCSSValueList_heap is not thread safe. + "list" : "%s.set_shared_list(%s.0.as_ref().unwrap().into_iter().map(&convert_to_ns_css_value));", } %> - longhands::transform::computed_value::ComputedOperation::${name}(${pattern}) => { + longhands::transform::computed_value::ComputedOperation::${name}${pattern} => { bindings::Gecko_CSSValue_SetFunction(gecko_value, ${len(items) + 1}); bindings::Gecko_CSSValue_SetKeyword( bindings::Gecko_CSSValue_GetArrayItem(gecko_value, 0), - eCSSKeyword_${keyword} + structs::nsCSSKeyword::eCSSKeyword_${keyword} ); % for index, item in enumerate(items): + % if item == "list": + debug_assert!(${item}${index + 1}.0.is_some()); + % endif ${css_value_setters[item] % ( "bindings::Gecko_CSSValue_GetArrayItem(gecko_value, %d)" % (index + 1), item + str(index + 1) @@ -2317,40 +2331,50 @@ fn static_assert() { % endfor } </%def> + fn set_single_transform_function(servo_value: &longhands::transform::computed_value::ComputedOperation, + gecko_value: &mut structs::nsCSSValue /* output */) { + use properties::longhands::transform::computed_value::ComputedMatrix; + use properties::longhands::transform::computed_value::ComputedMatrixWithPercents; + use properties::longhands::transform::computed_value::ComputedOperation; + + let convert_to_ns_css_value = |item: &ComputedOperation| -> structs::nsCSSValue { + let mut value = structs::nsCSSValue::null(); + Self::set_single_transform_function(item, &mut value); + value + }; + + unsafe { + match *servo_value { + ${transform_function_arm("Matrix", "matrix3d", ["number"] * 16)} + ${transform_function_arm("MatrixWithPercents", "matrix3d", ["number"] * 12 + ["lop"] * 2 + + ["length"] + ["number"])} + ${transform_function_arm("Skew", "skew", ["angle"] * 2)} + ${transform_function_arm("Translate", "translate3d", ["lop", "lop", "length"])} + ${transform_function_arm("Scale", "scale3d", ["number"] * 3)} + ${transform_function_arm("Rotate", "rotate3d", ["number"] * 3 + ["angle"])} + ${transform_function_arm("Perspective", "perspective", ["length"])} + ${transform_function_arm("InterpolateMatrix", "interpolatematrix", + ["list"] * 2 + ["percentage"])} + ${transform_function_arm("AccumulateMatrix", "accumulatematrix", + ["list"] * 2 + ["integer_to_percentage"])} + } + } + } pub fn convert_transform(input: &[longhands::transform::computed_value::ComputedOperation], output: &mut structs::root::RefPtr<structs::root::nsCSSValueSharedList>) { - use gecko_bindings::structs::nsCSSKeyword::*; use gecko_bindings::sugar::refptr::RefPtr; - use properties::longhands::transform::computed_value::ComputedMatrix; - use properties::longhands::transform::computed_value::ComputedMatrixWithPercents; unsafe { output.clear() }; let list = unsafe { RefPtr::from_addrefed(bindings::Gecko_NewCSSValueSharedList(input.len() as u32)) }; - - let mut cur = list.mHead; - let mut iter = input.into_iter(); - while !cur.is_null() { - let gecko_value = unsafe { &mut (*cur).mValue }; - let servo = iter.next().expect("Gecko_NewCSSValueSharedList should create a shared \ - value list of the same length as the transform vector"); - unsafe { - match *servo { - ${transform_function_arm("Matrix", "matrix3d", ["number"] * 16)} - ${transform_function_arm("MatrixWithPercents", "matrix3d", ["number"] * 12 + ["lop"] * 2 - + ["length"] + ["number"])} - ${transform_function_arm("Skew", "skew", ["angle"] * 2)} - ${transform_function_arm("Translate", "translate3d", ["lop", "lop", "length"])} - ${transform_function_arm("Scale", "scale3d", ["number"] * 3)} - ${transform_function_arm("Rotate", "rotate3d", ["number"] * 3 + ["angle"])} - ${transform_function_arm("Perspective", "perspective", ["length"])} - } - cur = (*cur).mNext; + let value_list = unsafe { list.mHead.as_mut() }; + if let Some(value_list) = value_list { + for (gecko, servo) in value_list.into_iter().zip(input.into_iter()) { + Self::set_single_transform_function(servo, gecko); } } - debug_assert!(iter.next().is_none()); unsafe { output.set_move(list) }; } @@ -2378,60 +2402,94 @@ fn static_assert() { "lop" : "%s.get_lop()", "angle" : "%s.get_angle()", "number" : "bindings::Gecko_CSSValue_GetNumber(%s)", + "percentage" : "Percentage(bindings::Gecko_CSSValue_GetPercentage(%s))", + "percentage_to_integer" : "bindings::Gecko_CSSValue_GetPercentage(%s) as i32", + "list" : "TransformList(Some(convert_shared_list_to_operations(%s)))", } + pre_symbols = "(" + post_symbols = ")" + if keyword == "interpolatematrix" or keyword == "accumulatematrix": + # We generate this like: "ComputedOperation::InterpolateMatrix {", so the space is + # between "InterpolateMatrix"/"AccumulateMatrix" and '{' + pre_symbols = " {" + post_symbols = "}" + elif keyword == "matrix3d": + pre_symbols = "(ComputedMatrix {" + post_symbols = "})" + field_names = None + if keyword == "interpolatematrix": + field_names = ["from_list", "to_list", "progress"] + elif keyword == "accumulatematrix": + field_names = ["from_list", "to_list", "count"] %> - eCSSKeyword_${keyword} => { - ComputedOperation::${name}( - % if keyword == "matrix3d": - ComputedMatrix { - % endif + structs::nsCSSKeyword::eCSSKeyword_${keyword} => { + ComputedOperation::${name}${pre_symbols} % for index, item in enumerate(items): % if keyword == "matrix3d": m${index / 4 + 1}${index % 4 + 1}: + % elif keyword == "interpolatematrix" or keyword == "accumulatematrix": + ${field_names[index]}: % endif ${css_value_getters[item] % ( "bindings::Gecko_CSSValue_GetArrayItemConst(gecko_value, %d)" % (index + 1) )}, % endfor - % if keyword == "matrix3d": - } - % endif - ) + ${post_symbols} }, </%def> - pub fn clone_transform(&self) -> longhands::transform::computed_value::T { - use app_units::Au; - use gecko_bindings::structs::nsCSSKeyword::*; - use properties::longhands::transform::computed_value; + fn clone_single_transform_function(gecko_value: &structs::nsCSSValue) + -> longhands::transform::computed_value::ComputedOperation { use properties::longhands::transform::computed_value::ComputedMatrix; use properties::longhands::transform::computed_value::ComputedOperation; + use properties::longhands::transform::computed_value::T as TransformList; + use values::computed::Percentage; + + let convert_shared_list_to_operations = |value: &structs::nsCSSValue| + -> Vec<ComputedOperation> { + debug_assert!(value.mUnit == structs::nsCSSUnit::eCSSUnit_SharedList); + let value_list = unsafe { + value.mValue.mSharedList.as_ref() + .as_mut().expect("List pointer should be non-null").mHead.as_ref() + }; + debug_assert!(value_list.is_some(), "An empty shared list is not allowed"); + value_list.unwrap().into_iter() + .map(|item| Self::clone_single_transform_function(item)) + .collect() + }; - if self.gecko.mSpecifiedTransform.mRawPtr.is_null() { - return computed_value::T(None); + let transform_function = unsafe { + bindings::Gecko_CSSValue_GetKeyword(bindings::Gecko_CSSValue_GetArrayItemConst(gecko_value, 0)) + }; + + unsafe { + match transform_function { + ${computed_operation_arm("Matrix", "matrix3d", ["number"] * 16)} + ${computed_operation_arm("Skew", "skew", ["angle"] * 2)} + ${computed_operation_arm("Translate", "translate3d", ["lop", "lop", "length"])} + ${computed_operation_arm("Scale", "scale3d", ["number"] * 3)} + ${computed_operation_arm("Rotate", "rotate3d", ["number"] * 3 + ["angle"])} + ${computed_operation_arm("Perspective", "perspective", ["length"])} + ${computed_operation_arm("InterpolateMatrix", "interpolatematrix", + ["list"] * 2 + ["percentage"])} + ${computed_operation_arm("AccumulateMatrix", "accumulatematrix", + ["list"] * 2 + ["percentage_to_integer"])} + _ => panic!("We shouldn't set any other transform function types"), + } } + } + pub fn clone_transform(&self) -> longhands::transform::computed_value::T { + use properties::longhands::transform::computed_value; - let mut result = vec![]; - let mut cur = unsafe { (*self.gecko.mSpecifiedTransform.to_safe().get()).mHead }; - while !cur.is_null() { - let gecko_value = unsafe { &(*cur).mValue }; - let transform_function = unsafe { - bindings::Gecko_CSSValue_GetKeyword(bindings::Gecko_CSSValue_GetArrayItemConst(gecko_value, 0)) - }; - let servo = unsafe { - match transform_function { - ${computed_operation_arm("Matrix", "matrix3d", ["number"] * 16)} - ${computed_operation_arm("Skew", "skew", ["angle"] * 2)} - ${computed_operation_arm("Translate", "translate3d", ["lop", "lop", "length"])} - ${computed_operation_arm("Scale", "scale3d", ["number"] * 3)} - ${computed_operation_arm("Rotate", "rotate3d", ["number"] * 3 + ["angle"])} - ${computed_operation_arm("Perspective", "perspective", ["length"])} - _ => panic!("We shouldn't set any other transform function types"), - } - }; - result.push(servo); - unsafe { cur = (&*cur).mNext }; + if self.gecko.mSpecifiedTransform.mRawPtr.is_null() { + return computed_value::T(None); } - computed_value::T(Some(result)) + let list = unsafe { (*self.gecko.mSpecifiedTransform.to_safe().get()).mHead.as_ref() }; + let result = list.map(|list| { + list.into_iter() + .map(|value| Self::clone_single_transform_function(value)) + .collect() + }); + computed_value::T(result) } ${impl_transition_time_value('delay', 'Delay')} @@ -3310,31 +3368,13 @@ fn static_assert() { <%self:impl_trait style_struct_name="Effects" skip_longhands="box-shadow clip filter"> pub fn set_box_shadow<I>(&mut self, v: I) - where I: IntoIterator<Item = longhands::box_shadow::computed_value::single_value::T>, + where I: IntoIterator<Item = Shadow>, I::IntoIter: ExactSizeIterator { let v = v.into_iter(); - self.gecko.mBoxShadow.replace_with_new(v.len() as u32); - for (servo, gecko_shadow) in v.zip(self.gecko.mBoxShadow.iter_mut()) { - - gecko_shadow.mXOffset = servo.offset_x.0; - gecko_shadow.mYOffset = servo.offset_y.0; - gecko_shadow.mRadius = servo.blur_radius.0; - gecko_shadow.mSpread = servo.spread_radius.0; - gecko_shadow.mSpread = servo.spread_radius.0; - gecko_shadow.mInset = servo.inset; - gecko_shadow.mColor = match servo.color { - Color::RGBA(rgba) => { - gecko_shadow.mHasColor = true; - convert_rgba_to_nscolor(&rgba) - }, - // TODO handle currentColor - // https://bugzilla.mozilla.org/show_bug.cgi?id=760345 - Color::CurrentColor => 0, - } - + gecko_shadow.set_from_shadow(servo); } } @@ -3343,16 +3383,7 @@ fn static_assert() { } pub fn clone_box_shadow(&self) -> longhands::box_shadow::computed_value::T { - let buf = self.gecko.mBoxShadow.iter().map(|shadow| { - longhands::box_shadow::single_value::computed_value::T { - offset_x: Au(shadow.mXOffset), - offset_y: Au(shadow.mYOffset), - blur_radius: Au(shadow.mRadius), - spread_radius: Au(shadow.mSpread), - inset: shadow.mInset, - color: Color::RGBA(convert_nscolor_to_rgba(shadow.mColor)), - } - }).collect(); + let buf = self.gecko.mBoxShadow.iter().map(|v| v.to_shadow()).collect(); longhands::box_shadow::computed_value::T(buf) } @@ -3524,21 +3555,7 @@ fn static_assert() { } let mut gecko_shadow = init_shadow(gecko_filter); - gecko_shadow.mArray[0].mXOffset = shadow.offset_x.0; - gecko_shadow.mArray[0].mYOffset = shadow.offset_y.0; - gecko_shadow.mArray[0].mRadius = shadow.blur_radius.0; - // mSpread is not supported in the spec, so we leave it as 0 - gecko_shadow.mArray[0].mInset = false; // Not supported in spec level 1 - - gecko_shadow.mArray[0].mColor = match shadow.color { - Color::RGBA(rgba) => { - gecko_shadow.mArray[0].mHasColor = true; - convert_rgba_to_nscolor(&rgba) - }, - // TODO handle currentColor - // https://bugzilla.mozilla.org/show_bug.cgi?id=760345 - Color::CurrentColor => 0, - }; + gecko_shadow.mArray[0].set_from_shadow(shadow); } Url(ref url) => { unsafe { @@ -3617,26 +3634,14 @@ fn static_assert() { ${impl_keyword('text_align', 'mTextAlign', text_align_keyword, need_clone=False)} ${impl_keyword_clone('text_align', 'mTextAlign', text_align_keyword)} - pub fn set_text_shadow(&mut self, v: longhands::text_shadow::computed_value::T) { - self.gecko.mTextShadow.replace_with_new(v.0.len() as u32); - - for (servo, gecko_shadow) in v.0.into_iter() - .zip(self.gecko.mTextShadow.iter_mut()) { - - gecko_shadow.mXOffset = servo.offset_x.0; - gecko_shadow.mYOffset = servo.offset_y.0; - gecko_shadow.mRadius = servo.blur_radius.0; - gecko_shadow.mHasColor = false; - gecko_shadow.mColor = match servo.color { - Color::RGBA(rgba) => { - gecko_shadow.mHasColor = true; - convert_rgba_to_nscolor(&rgba) - }, - // TODO handle currentColor - // https://bugzilla.mozilla.org/show_bug.cgi?id=760345 - Color::CurrentColor => 0, - } - + pub fn set_text_shadow<I>(&mut self, v: I) + where I: IntoIterator<Item = Shadow>, + I::IntoIter: ExactSizeIterator + { + let v = v.into_iter(); + self.gecko.mTextShadow.replace_with_new(v.len() as u32); + for (servo, gecko_shadow) in v.zip(self.gecko.mTextShadow.iter_mut()) { + gecko_shadow.set_from_shadow(servo); } } @@ -3645,16 +3650,7 @@ fn static_assert() { } pub fn clone_text_shadow(&self) -> longhands::text_shadow::computed_value::T { - - let buf = self.gecko.mTextShadow.iter().map(|shadow| { - longhands::text_shadow::computed_value::TextShadow { - offset_x: Au(shadow.mXOffset), - offset_y: Au(shadow.mYOffset), - blur_radius: Au(shadow.mRadius), - color: Color::RGBA(convert_nscolor_to_rgba(shadow.mColor)), - } - - }).collect(); + let buf = self.gecko.mTextShadow.iter().map(|v| v.to_shadow()).collect(); longhands::text_shadow::computed_value::T(buf) } diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs index d98b66b8e29..4ba7e6b505a 100644 --- a/components/style/properties/helpers/animated_properties.mako.rs +++ b/components/style/properties/helpers/animated_properties.mako.rs @@ -10,6 +10,7 @@ use app_units::Au; use cssparser::{Color as CSSParserColor, Parser, RGBA, serialize_identifier}; use euclid::{Point2D, Size2D}; #[cfg(feature = "gecko")] use gecko_bindings::bindings::RawServoAnimationValueMap; +#[cfg(feature = "gecko")] use gecko_bindings::structs::RawGeckoGfxMatrix4x4; #[cfg(feature = "gecko")] use gecko_bindings::structs::nsCSSPropertyID; #[cfg(feature = "gecko")] use gecko_bindings::sugar::ownership::{HasFFI, HasSimpleFFI}; #[cfg(feature = "gecko")] use gecko_string_cache::Atom; @@ -19,9 +20,7 @@ use properties::longhands::background_size::computed_value::T as BackgroundSizeL use properties::longhands::font_weight::computed_value::T as FontWeight; use properties::longhands::font_stretch::computed_value::T as FontStretch; use properties::longhands::text_shadow::computed_value::T as TextShadowList; -use properties::longhands::text_shadow::computed_value::TextShadow; use properties::longhands::box_shadow::computed_value::T as BoxShadowList; -use properties::longhands::box_shadow::single_value::computed_value::T as BoxShadow; use properties::longhands::transform::computed_value::ComputedMatrix; use properties::longhands::transform::computed_value::ComputedOperation as TransformOperation; use properties::longhands::transform::computed_value::T as TransformList; @@ -40,7 +39,7 @@ use values::{Auto, Either}; use values::computed::{Angle, LengthOrPercentageOrAuto, LengthOrPercentageOrNone}; use values::computed::{BorderCornerRadius, ClipRect}; use values::computed::{CalcLengthOrPercentage, Context, ComputedValueAsSpecified}; -use values::computed::{LengthOrPercentage, MaxLength, MozLength, ToComputedValue}; +use values::computed::{LengthOrPercentage, MaxLength, MozLength, Shadow, ToComputedValue}; use values::generics::{SVGPaint, SVGPaintKind}; use values::generics::border::BorderCornerRadius as GenericBorderCornerRadius; use values::generics::position as generic_position; @@ -639,7 +638,31 @@ impl Animatable for AnimationValue { % endif % endfor _ => { - panic!("Expected weighted addition of computed values of the same \ + panic!("Expected addition of computed values of the same \ + property, got: {:?}, {:?}", self, other); + } + } + } + + fn accumulate(&self, other: &Self, count: u64) -> Result<Self, ()> { + match (self, other) { + % for prop in data.longhands: + % if prop.animatable: + % if prop.animation_value_type == "discrete": + (&AnimationValue::${prop.camel_case}(_), + &AnimationValue::${prop.camel_case}(_)) => { + Err(()) + } + % else: + (&AnimationValue::${prop.camel_case}(ref from), + &AnimationValue::${prop.camel_case}(ref to)) => { + from.accumulate(to, count).map(AnimationValue::${prop.camel_case}) + } + % endif + % endif + % endfor + _ => { + panic!("Expected accumulation of computed values of the same \ property, got: {:?}, {:?}", self, other); } } @@ -1457,132 +1480,6 @@ impl Animatable for ClipRect { } } -<%def name="impl_animatable_for_shadow(item, transparent_color)"> - impl Animatable for ${item} { - #[inline] - fn add_weighted(&self, other: &Self, self_portion: f64, other_portion: f64) -> Result<Self, ()> { - % if "Box" in item: - // It can't be interpolated if inset does not match. - if self.inset != other.inset { - return Err(()); - } - % endif - - let x = try!(self.offset_x.add_weighted(&other.offset_x, self_portion, other_portion)); - let y = try!(self.offset_y.add_weighted(&other.offset_y, self_portion, other_portion)); - let color = try!(self.color.add_weighted(&other.color, self_portion, other_portion)); - let blur = try!(self.blur_radius.add_weighted(&other.blur_radius, - self_portion, other_portion)); - % if "Box" in item: - let spread = try!(self.spread_radius.add_weighted(&other.spread_radius, - self_portion, other_portion)); - % endif - - Ok(${item} { - offset_x: x, - offset_y: y, - blur_radius: blur, - color: color, - % if "Box" in item: - spread_radius: spread, - inset: self.inset, - % endif - }) - } - - #[inline] - fn compute_distance(&self, other: &Self) -> Result<f64, ()> { - self.compute_squared_distance(other).map(|sd| sd.sqrt()) - } - - #[inline] - fn compute_squared_distance(&self, other: &Self) -> Result<f64, ()> { - % if "Box" in item: - if self.inset != other.inset { - return Err(()); - } - % endif - let list = [ try!(self.offset_x.compute_distance(&other.offset_x)), - try!(self.offset_y.compute_distance(&other.offset_y)), - try!(self.blur_radius.compute_distance(&other.blur_radius)), - try!(self.color.compute_distance(&other.color)), - % if "Box" in item: - try!(self.spread_radius.compute_distance(&other.spread_radius)), - % endif - ]; - Ok(list.iter().fold(0.0f64, |sum, diff| sum + diff * diff)) - } - } - - /// https://drafts.csswg.org/css-transitions/#animtype-shadow-list - impl Animatable for ${item}List { - #[inline] - fn add_weighted(&self, other: &Self, self_portion: f64, other_portion: f64) -> Result<Self, ()> { - // The inset value must change - % if "Box" in item: - let mut zero = ${item} { - % else: - let zero = ${item} { - % endif - offset_x: Au(0), - offset_y: Au(0), - blur_radius: Au(0), - color: ${transparent_color}, - % if "Box" in item: - spread_radius: Au(0), - inset: false, - % endif - }; - - let max_len = cmp::max(self.0.len(), other.0.len()); - - let mut result = if max_len > 1 { - SmallVec::from_vec(Vec::with_capacity(max_len)) - } else { - SmallVec::new() - }; - - for i in 0..max_len { - let shadow = match (self.0.get(i), other.0.get(i)) { - (Some(shadow), Some(other)) - => try!(shadow.add_weighted(other, self_portion, other_portion)), - (Some(shadow), None) => { - % if "Box" in item: - zero.inset = shadow.inset; - % endif - shadow.add_weighted(&zero, self_portion, other_portion).unwrap() - } - (None, Some(shadow)) => { - % if "Box" in item: - zero.inset = shadow.inset; - % endif - zero.add_weighted(&shadow, self_portion, other_portion).unwrap() - } - (None, None) => unreachable!(), - }; - result.push(shadow); - } - - Ok(${item}List(result)) - } - - fn add(&self, other: &Self) -> Result<Self, ()> { - let len = self.0.len() + other.0.len(); - - let mut result = if len > 1 { - SmallVec::from_vec(Vec::with_capacity(len)) - } else { - SmallVec::new() - }; - - result.extend(self.0.iter().cloned()); - result.extend(other.0.iter().cloned()); - - Ok(${item}List(result)) - } - } -</%def> - /// Check if it's possible to do a direct numerical interpolation /// between these two transform lists. /// http://dev.w3.org/csswg/css-transforms/#transform-transform-animation @@ -1638,11 +1535,21 @@ fn build_identity_transform_list(list: &[TransformOperation]) -> Vec<TransformOp TransformOperation::Rotate(..) => { result.push(TransformOperation::Rotate(0.0, 0.0, 1.0, Angle::zero())); } - TransformOperation::Perspective(..) => { + TransformOperation::Perspective(..) | + TransformOperation::AccumulateMatrix { .. } => { + // Perspective: We convert a perspective function into an equivalent + // ComputedMatrix, and then decompose/interpolate/recompose these matrices. + // AccumulateMatrix: We do interpolation on AccumulateMatrix by reading it as a + // ComputedMatrix (with layout information), and then do matrix interpolation. + // + // Therefore, we use an identity matrix to represent the identity transform list. // http://dev.w3.org/csswg/css-transforms/#identity-transform-function let identity = ComputedMatrix::identity(); result.push(TransformOperation::Matrix(identity)); } + TransformOperation::InterpolateMatrix { .. } => { + panic!("Building the identity matrix for InterpolateMatrix is not supported"); + } } } @@ -1744,8 +1651,13 @@ fn add_weighted_transform_lists(from_list: &[TransformOperation], } } } else { - // TODO(gw): Implement matrix decomposition and interpolation - result.extend_from_slice(from_list); + use values::specified::Percentage; + let from_transform_list = TransformList(Some(from_list.to_vec())); + let to_transform_list = TransformList(Some(to_list.to_vec())); + result.push( + TransformOperation::InterpolateMatrix { from_list: from_transform_list, + to_list: to_transform_list, + progress: Percentage(other_portion as f32) }); } TransformList(Some(result)) @@ -2017,6 +1929,28 @@ impl From<MatrixDecomposed2D> for ComputedMatrix { } } +#[cfg(feature = "gecko")] +impl<'a> From< &'a RawGeckoGfxMatrix4x4> for ComputedMatrix { + fn from(m: &'a RawGeckoGfxMatrix4x4) -> ComputedMatrix { + ComputedMatrix { + m11: m[0], m12: m[1], m13: m[2], m14: m[3], + m21: m[4], m22: m[5], m23: m[6], m24: m[7], + m31: m[8], m32: m[9], m33: m[10], m34: m[11], + m41: m[12], m42: m[13], m43: m[14], m44: m[15], + } + } +} + +#[cfg(feature = "gecko")] +impl From<ComputedMatrix> for RawGeckoGfxMatrix4x4 { + fn from(matrix: ComputedMatrix) -> RawGeckoGfxMatrix4x4 { + [ matrix.m11, matrix.m12, matrix.m13, matrix.m14, + matrix.m21, matrix.m22, matrix.m23, matrix.m24, + matrix.m31, matrix.m32, matrix.m33, matrix.m34, + matrix.m41, matrix.m42, matrix.m43, matrix.m44 ] + } +} + /// A 3d translation. #[derive(Clone, Copy, Debug)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] @@ -2591,6 +2525,41 @@ impl Animatable for TransformList { } #[inline] + fn accumulate(&self, other: &Self, count: u64) -> Result<Self, ()> { + match (&self.0, &other.0) { + (&Some(ref from_list), &Some(ref to_list)) => { + if can_interpolate_list(from_list, to_list) { + Ok(add_weighted_transform_lists(from_list, &to_list, count as f64, 1.0)) + } else { + use std::i32; + let result = vec![TransformOperation::AccumulateMatrix { + from_list: self.clone(), + to_list: other.clone(), + count: cmp::min(count, i32::MAX as u64) as i32 + }]; + Ok(TransformList(Some(result))) + } + } + (&Some(ref from_list), &None) => { + Ok(add_weighted_transform_lists(from_list, from_list, count as f64, 0.0)) + } + (&None, &Some(_)) => { + // If |self| is 'none' then we are calculating: + // + // none * |count| + |other| + // = none + |other| + // = |other| + // + // Hence the result is just |other|. + Ok(other.clone()) + } + _ => { + Ok(TransformList(None)) + } + } + } + + #[inline] fn get_zero_value(&self) -> Option<Self> { Some(TransformList(None)) } } @@ -2922,74 +2891,183 @@ impl Animatable for IntermediateSVGPaintKind { } } -<%def name="impl_intermediate_type_for_shadow(type)"> - #[derive(Copy, Clone, Debug, PartialEq)] - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - #[allow(missing_docs)] - /// Intermediate type for box-shadow and text-shadow. - /// The difference between normal shadow type is that this type uses - /// IntermediateColor instead of ParserColor. - pub struct Intermediate${type}Shadow { - pub offset_x: Au, - pub offset_y: Au, - pub blur_radius: Au, - pub color: IntermediateColor, - % if type == "Box": - pub spread_radius: Au, - pub inset: bool, - % endif +#[derive(Copy, Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] +#[allow(missing_docs)] +/// Intermediate type for box-shadow and text-shadow. +/// The difference between normal shadow type is that this type uses +/// IntermediateColor instead of ParserColor. +pub struct IntermediateShadow { + pub offset_x: Au, + pub offset_y: Au, + pub blur_radius: Au, + pub spread_radius: Au, + pub color: IntermediateColor, + pub inset: bool, +} + +#[derive(Clone, Debug, PartialEq)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] +#[allow(missing_docs)] +/// Intermediate type for box-shadow list and text-shadow list. +pub struct IntermediateShadowList(pub SmallVec<[IntermediateShadow; 1]>); + +type ShadowList = SmallVec<[Shadow; 1]>; + +impl From<IntermediateShadowList> for ShadowList { + fn from(shadow_list: IntermediateShadowList) -> Self { + shadow_list.0.into_iter().map(|s| s.into()).collect() + } +} + +impl From<ShadowList> for IntermediateShadowList { + fn from(shadow_list: ShadowList) -> IntermediateShadowList { + IntermediateShadowList(shadow_list.into_iter().map(|s| s.into()).collect()) + } +} + +% for ty in "Box Text".split(): +impl From<IntermediateShadowList> for ${ty}ShadowList { + #[inline] + fn from(shadow_list: IntermediateShadowList) -> Self { + ${ty}ShadowList(shadow_list.into()) } +} - #[derive(Clone, Debug, PartialEq)] - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - #[allow(missing_docs)] - /// Intermediate type for box-shadow list and text-shadow list. - pub struct Intermediate${type}ShadowList(pub SmallVec<[Intermediate${type}Shadow; 1]>); +impl From<${ty}ShadowList> for IntermediateShadowList { + #[inline] + fn from(shadow_list: ${ty}ShadowList) -> IntermediateShadowList { + shadow_list.0.into() + } +} +% endfor - impl From<Intermediate${type}ShadowList> for ${type}ShadowList { - fn from(shadow_list: Intermediate${type}ShadowList) -> ${type}ShadowList { - ${type}ShadowList(shadow_list.0.into_iter().map(|s| s.into()).collect()) +impl From<IntermediateShadow> for Shadow { + fn from(shadow: IntermediateShadow) -> Shadow { + Shadow { + offset_x: shadow.offset_x, + offset_y: shadow.offset_y, + blur_radius: shadow.blur_radius, + spread_radius: shadow.spread_radius, + color: shadow.color.into(), + inset: shadow.inset, } } +} - impl From<${type}ShadowList> for Intermediate${type}ShadowList { - fn from(shadow_list: ${type}ShadowList) -> Intermediate${type}ShadowList { - Intermediate${type}ShadowList(shadow_list.0.into_iter().map(|s| s.into()).collect()) +impl From<Shadow> for IntermediateShadow { + fn from(shadow: Shadow) -> IntermediateShadow { + IntermediateShadow { + offset_x: shadow.offset_x, + offset_y: shadow.offset_y, + blur_radius: shadow.blur_radius, + spread_radius: shadow.spread_radius, + color: shadow.color.into(), + inset: shadow.inset, } } +} - impl From<Intermediate${type}Shadow> for ${type}Shadow { - fn from(shadow: Intermediate${type}Shadow) -> ${type}Shadow { - ${type}Shadow { - offset_x: shadow.offset_x, - offset_y: shadow.offset_y, - blur_radius: shadow.blur_radius, - color: shadow.color.into(), - % if type == "Box": - spread_radius: shadow.spread_radius, - inset: shadow.inset, - % endif - } +impl Animatable for IntermediateShadow { + #[inline] + fn add_weighted(&self, other: &Self, self_portion: f64, other_portion: f64) -> Result<Self, ()> { + // It can't be interpolated if inset does not match. + if self.inset != other.inset { + return Err(()); } + + let x = try!(self.offset_x.add_weighted(&other.offset_x, self_portion, other_portion)); + let y = try!(self.offset_y.add_weighted(&other.offset_y, self_portion, other_portion)); + let color = try!(self.color.add_weighted(&other.color, self_portion, other_portion)); + let blur = try!(self.blur_radius.add_weighted(&other.blur_radius, + self_portion, other_portion)); + let spread = try!(self.spread_radius.add_weighted(&other.spread_radius, + self_portion, other_portion)); + + Ok(IntermediateShadow { + offset_x: x, + offset_y: y, + blur_radius: blur, + spread_radius: spread, + color: color, + inset: self.inset, + }) } - impl From<${type}Shadow> for Intermediate${type}Shadow { - fn from(shadow: ${type}Shadow) -> Intermediate${type}Shadow { - Intermediate${type}Shadow { - offset_x: shadow.offset_x, - offset_y: shadow.offset_y, - blur_radius: shadow.blur_radius, - color: shadow.color.into(), - % if type == "Box": - spread_radius: shadow.spread_radius, - inset: shadow.inset, - % endif - } + #[inline] + fn compute_distance(&self, other: &Self) -> Result<f64, ()> { + self.compute_squared_distance(other).map(|sd| sd.sqrt()) + } + + #[inline] + fn compute_squared_distance(&self, other: &Self) -> Result<f64, ()> { + if self.inset != other.inset { + return Err(()); + } + let list = [ try!(self.offset_x.compute_distance(&other.offset_x)), + try!(self.offset_y.compute_distance(&other.offset_y)), + try!(self.blur_radius.compute_distance(&other.blur_radius)), + try!(self.color.compute_distance(&other.color)), + try!(self.spread_radius.compute_distance(&other.spread_radius)), + ]; + Ok(list.iter().fold(0.0f64, |sum, diff| sum + diff * diff)) + } +} + +/// https://drafts.csswg.org/css-transitions/#animtype-shadow-list +impl Animatable for IntermediateShadowList { + #[inline] + fn add_weighted(&self, other: &Self, self_portion: f64, other_portion: f64) -> Result<Self, ()> { + // The inset value must change + let mut zero = IntermediateShadow { + offset_x: Au(0), + offset_y: Au(0), + blur_radius: Au(0), + spread_radius: Au(0), + color: IntermediateColor::IntermediateRGBA(IntermediateRGBA::transparent()), + inset: false, + }; + + let max_len = cmp::max(self.0.len(), other.0.len()); + + let mut result = if max_len > 1 { + SmallVec::from_vec(Vec::with_capacity(max_len)) + } else { + SmallVec::new() + }; + + for i in 0..max_len { + let shadow = match (self.0.get(i), other.0.get(i)) { + (Some(shadow), Some(other)) => + try!(shadow.add_weighted(other, self_portion, other_portion)), + (Some(shadow), None) => { + zero.inset = shadow.inset; + shadow.add_weighted(&zero, self_portion, other_portion).unwrap() + } + (None, Some(shadow)) => { + zero.inset = shadow.inset; + zero.add_weighted(&shadow, self_portion, other_portion).unwrap() + } + (None, None) => unreachable!(), + }; + result.push(shadow); } + + Ok(IntermediateShadowList(result)) } - ${impl_animatable_for_shadow('Intermediate%sShadow' % type, - 'IntermediateColor::IntermediateRGBA(IntermediateRGBA::transparent())')} -</%def> -${impl_intermediate_type_for_shadow('Box')} -${impl_intermediate_type_for_shadow('Text')} + fn add(&self, other: &Self) -> Result<Self, ()> { + let len = self.0.len() + other.0.len(); + + let mut result = if len > 1 { + SmallVec::from_vec(Vec::with_capacity(len)) + } else { + SmallVec::new() + }; + + result.extend(self.0.iter().cloned()); + result.extend(other.0.iter().cloned()); + + Ok(IntermediateShadowList(result)) + } +} diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index 59c1e669aea..0b358609ab7 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -677,7 +677,7 @@ ${helpers.predefined_type("scroll-snap-coordinate", use app_units::Au; use values::computed::{LengthOrPercentageOrNumber as ComputedLoPoNumber, LengthOrNumber as ComputedLoN}; use values::computed::{LengthOrPercentage as ComputedLoP, Length as ComputedLength}; - use values::specified::{Angle, Length, LengthOrPercentage}; + use values::specified::{Angle, Integer, Length, LengthOrPercentage, Percentage}; use values::specified::{LengthOrNumber, LengthOrPercentageOrNumber as LoPoNumber, Number}; use style_traits::ToCss; use style_traits::values::Css; @@ -688,7 +688,7 @@ ${helpers.predefined_type("scroll-snap-coordinate", use app_units::Au; use values::CSSFloat; use values::computed; - use values::computed::{Length, LengthOrPercentage}; + use values::computed::{Length, LengthOrPercentage, Percentage}; #[derive(Clone, Copy, Debug, PartialEq)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] @@ -745,6 +745,24 @@ ${helpers.predefined_type("scroll-snap-coordinate", Scale(CSSFloat, CSSFloat, CSSFloat), Rotate(CSSFloat, CSSFloat, CSSFloat, computed::Angle), Perspective(computed::Length), + // For mismatched transform lists. + // A vector of |ComputedOperation| could contain an |InterpolateMatrix| and other + // |ComputedOperation|s, and multiple nested |InterpolateMatrix|s is acceptable. + // e.g. + // [ InterpolateMatrix { from_list: [ InterpolateMatrix { ... }, + // Scale(...) ], + // to_list: [ AccumulateMatrix { from_list: ..., + // to_list: [ InterpolateMatrix, + // ... ], + // count: ... } ], + // progress: ... } ] + InterpolateMatrix { from_list: T, + to_list: T, + progress: Percentage }, + // For accumulate operation of mismatched transform lists. + AccumulateMatrix { from_list: T, + to_list: T, + count: computed::Integer }, } #[derive(Clone, Debug, PartialEq)] @@ -824,6 +842,14 @@ ${helpers.predefined_type("scroll-snap-coordinate", /// /// The value must be greater than or equal to zero. Perspective(specified::Length), + /// A intermediate type for interpolation of mismatched transform lists. + InterpolateMatrix { from_list: SpecifiedValue, + to_list: SpecifiedValue, + progress: Percentage }, + /// A intermediate type for accumulation of mismatched transform lists. + AccumulateMatrix { from_list: SpecifiedValue, + to_list: SpecifiedValue, + count: Integer }, } impl ToCss for computed_value::T { @@ -888,6 +914,7 @@ ${helpers.predefined_type("scroll-snap-coordinate", dest, "rotate3d({}, {}, {}, {})", Css(x), Css(y), Css(z), Css(theta)), Perspective(ref length) => write!(dest, "perspective({})", Css(length)), + _ => unreachable!(), } } } @@ -1429,6 +1456,20 @@ ${helpers.predefined_type("scroll-snap-coordinate", Perspective(ref d) => { result.push(computed_value::ComputedOperation::Perspective(d.to_computed_value(context))); } + InterpolateMatrix { ref from_list, ref to_list, progress } => { + result.push(computed_value::ComputedOperation::InterpolateMatrix { + from_list: from_list.to_computed_value(context), + to_list: to_list.to_computed_value(context), + progress: progress + }); + } + AccumulateMatrix { ref from_list, ref to_list, count } => { + result.push(computed_value::ComputedOperation::AccumulateMatrix { + from_list: from_list.to_computed_value(context), + to_list: to_list.to_computed_value(context), + count: count.value() + }); + } }; } @@ -1512,6 +1553,24 @@ ${helpers.predefined_type("scroll-snap-coordinate", ToComputedValue::from_computed_value(d) )); } + computed_value::ComputedOperation::InterpolateMatrix { ref from_list, + ref to_list, + progress } => { + result.push(SpecifiedOperation::InterpolateMatrix { + from_list: SpecifiedValue::from_computed_value(from_list), + to_list: SpecifiedValue::from_computed_value(to_list), + progress: progress + }); + } + computed_value::ComputedOperation::AccumulateMatrix { ref from_list, + ref to_list, + count } => { + result.push(SpecifiedOperation::AccumulateMatrix { + from_list: SpecifiedValue::from_computed_value(from_list), + to_list: SpecifiedValue::from_computed_value(to_list), + count: Integer::new(count) + }); + } }; } result diff --git a/components/style/properties/longhand/effects.mako.rs b/components/style/properties/longhand/effects.mako.rs index 5ebf602262a..ecb6fe0720f 100644 --- a/components/style/properties/longhand/effects.mako.rs +++ b/components/style/properties/longhand/effects.mako.rs @@ -15,60 +15,18 @@ ${helpers.predefined_type("opacity", spec="https://drafts.csswg.org/css-color/#opacity")} <%helpers:vector_longhand name="box-shadow" allow_empty="True" - animation_value_type="IntermediateBoxShadowList" + animation_value_type="IntermediateShadowList" extra_prefixes="webkit" ignored_when_colors_disabled="True" spec="https://drafts.csswg.org/css-backgrounds/#box-shadow"> - use std::fmt; - use style_traits::ToCss; - pub type SpecifiedValue = specified::Shadow; - impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - if self.inset { - try!(dest.write_str("inset ")); - } - try!(self.offset_x.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.offset_y.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.blur_radius.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.spread_radius.to_css(dest)); - - if let Some(ref color) = self.color { - try!(dest.write_str(" ")); - try!(color.to_css(dest)); - } - Ok(()) - } - } - pub mod computed_value { use values::computed::Shadow; pub type T = Shadow; } - impl ToCss for computed_value::T { - fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - if self.inset { - try!(dest.write_str("inset ")); - } - try!(self.blur_radius.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.spread_radius.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.offset_x.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.offset_y.to_css(dest)); - try!(dest.write_str(" ")); - try!(self.color.to_css(dest)); - Ok(()) - } - } - pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<specified::Shadow, ()> { specified::Shadow::parse(context, input, false) } @@ -252,15 +210,9 @@ ${helpers.predefined_type("clip", computed_value::Filter::Sepia(value) => try!(write!(dest, "sepia({})", value)), % if product == "gecko": computed_value::Filter::DropShadow(shadow) => { - try!(dest.write_str("drop-shadow(")); - try!(shadow.offset_x.to_css(dest)); - try!(dest.write_str(" ")); - try!(shadow.offset_y.to_css(dest)); - try!(dest.write_str(" ")); - try!(shadow.blur_radius.to_css(dest)); - try!(dest.write_str(" ")); - try!(shadow.color.to_css(dest)); - try!(dest.write_str(")")); + dest.write_str("drop-shadow(")?; + shadow.to_css(dest)?; + dest.write_str(")")?; } computed_value::Filter::Url(ref url) => { url.to_css(dest)?; @@ -293,17 +245,9 @@ ${helpers.predefined_type("clip", SpecifiedFilter::Sepia(value) => try!(write!(dest, "sepia({})", value)), % if product == "gecko": SpecifiedFilter::DropShadow(ref shadow) => { - try!(dest.write_str("drop-shadow(")); - try!(shadow.offset_x.to_css(dest)); - try!(dest.write_str(" ")); - try!(shadow.offset_y.to_css(dest)); - try!(dest.write_str(" ")); - try!(shadow.blur_radius.to_css(dest)); - if let Some(ref color) = shadow.color { - try!(dest.write_str(" ")); - try!(color.to_css(dest)); - } - try!(dest.write_str(")")); + dest.write_str("drop-shadow(")?; + shadow.to_css(dest)?; + dest.write_str(")")?; } SpecifiedFilter::Url(ref url) => { url.to_css(dest)?; diff --git a/components/style/properties/longhand/inherited_text.mako.rs b/components/style/properties/longhand/inherited_text.mako.rs index 690d50d7908..9b4004712ec 100644 --- a/components/style/properties/longhand/inherited_text.mako.rs +++ b/components/style/properties/longhand/inherited_text.mako.rs @@ -401,149 +401,20 @@ ${helpers.predefined_type("word-spacing", % endif </%helpers:single_keyword_computed> -<%helpers:longhand name="text-shadow" - animation_value_type="IntermediateTextShadowList", - ignored_when_colors_disabled="True", - spec="https://drafts.csswg.org/css-text-decor/#propdef-text-shadow"> - use cssparser; - use std::fmt; - use style_traits::ToCss; - use values::specified::Shadow; - - #[derive(Clone, Debug, HasViewportPercentage, PartialEq)] - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - pub struct SpecifiedValue(Vec<SpecifiedTextShadow>); - - #[derive(Clone, Debug, HasViewportPercentage, PartialEq)] - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - pub struct SpecifiedTextShadow { - pub offset_x: specified::Length, - pub offset_y: specified::Length, - pub blur_radius: specified::Length, - pub color: Option<specified::CSSColor>, - } - - impl From<Shadow> for SpecifiedTextShadow { - fn from(shadow: Shadow) -> SpecifiedTextShadow { - SpecifiedTextShadow { - offset_x: shadow.offset_x, - offset_y: shadow.offset_y, - blur_radius: shadow.blur_radius, - color: shadow.color, - } - } - } - +<%helpers:vector_longhand name="text-shadow" allow_empty="True" + animation_value_type="IntermediateShadowList" + ignored_when_colors_disabled="True" + spec="https://drafts.csswg.org/css-backgrounds/#box-shadow"> + pub type SpecifiedValue = specified::Shadow; pub mod computed_value { - use app_units::Au; - use cssparser::Color; - use smallvec::SmallVec; - - #[derive(Clone, PartialEq, Debug)] - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - pub struct T(pub SmallVec<[TextShadow; 1]>); - - #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - #[derive(Clone, PartialEq, Debug, ToCss)] - pub struct TextShadow { - pub offset_x: Au, - pub offset_y: Au, - pub blur_radius: Au, - pub color: Color, - } + use values::computed::Shadow; + pub type T = Shadow; } - impl ToCss for computed_value::T { - fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - let mut iter = self.0.iter(); - match iter.next() { - Some(shadow) => shadow.to_css(dest)?, - None => return dest.write_str("none"), - } - for shadow in iter { - dest.write_str(", ")?; - shadow.to_css(dest)?; - } - Ok(()) - } + pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<specified::Shadow, ()> { + specified::Shadow::parse(context, input, true) } - - impl ToCss for SpecifiedValue { - fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - let mut iter = self.0.iter(); - match iter.next() { - Some(shadow) => shadow.to_css(dest)?, - None => return dest.write_str("none"), - } - for shadow in iter { - dest.write_str(", ")?; - shadow.to_css(dest)?; - } - Ok(()) - } - } - - impl ToCss for SpecifiedTextShadow { - fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { - self.offset_x.to_css(dest)?; - dest.write_str(" ")?; - self.offset_y.to_css(dest)?; - dest.write_str(" ")?; - self.blur_radius.to_css(dest)?; - - if let Some(ref color) = self.color { - dest.write_str(" ")?; - color.to_css(dest)?; - } - Ok(()) - } - } - - #[inline] - pub fn get_initial_value() -> computed_value::T { - use smallvec::SmallVec; - computed_value::T(SmallVec::new()) - } - - pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue,()> { - if input.try(|input| input.expect_ident_matching("none")).is_ok() { - Ok(SpecifiedValue(Vec::new())) - } else { - input.parse_comma_separated(|i| { - Ok(SpecifiedTextShadow::from(Shadow::parse(context, i, true)?)) - }).map(SpecifiedValue) - } - } - - impl ToComputedValue for SpecifiedValue { - type ComputedValue = computed_value::T; - - fn to_computed_value(&self, context: &Context) -> computed_value::T { - computed_value::T(self.0.iter().map(|value| { - computed_value::TextShadow { - offset_x: value.offset_x.to_computed_value(context), - offset_y: value.offset_y.to_computed_value(context), - blur_radius: value.blur_radius.to_computed_value(context), - color: value.color - .as_ref() - .map(|color| color.to_computed_value(context)) - .unwrap_or(cssparser::Color::CurrentColor), - } - }).collect()) - } - - fn from_computed_value(computed: &computed_value::T) -> Self { - SpecifiedValue(computed.0.iter().map(|value| { - SpecifiedTextShadow { - offset_x: ToComputedValue::from_computed_value(&value.offset_x), - offset_y: ToComputedValue::from_computed_value(&value.offset_y), - blur_radius: ToComputedValue::from_computed_value(&value.blur_radius), - color: Some(ToComputedValue::from_computed_value(&value.color)), - } - }).collect()) - } - } -</%helpers:longhand> +</%helpers:vector_longhand> <%helpers:longhand name="text-emphasis-style" products="gecko" need_clone="True" boxed="True" animation_value_type="none" diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index 7c0ea1e9abb..1a4af56d9cc 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -2179,7 +2179,7 @@ pub fn get_writing_mode(inheritedbox_style: &style_structs::InheritedBox) -> Wri } /// A reference to a style struct of the parent, or our own style struct. -pub enum StyleStructRef<'a, T: 'a> { +pub enum StyleStructRef<'a, T: 'static> { /// A borrowed struct from the parent, for example, for inheriting style. Borrowed(&'a Arc<T>), /// An owned struct, that we've already mutated. diff --git a/components/style/rule_tree/mod.rs b/components/style/rule_tree/mod.rs index 2557b4c77e5..37e7334b9db 100644 --- a/components/style/rule_tree/mod.rs +++ b/components/style/rule_tree/mod.rs @@ -14,7 +14,7 @@ use smallvec::SmallVec; use std::io::{self, Write}; use std::ptr; use std::sync::atomic::{AtomicPtr, AtomicUsize, Ordering}; -use stylearc::Arc; +use stylearc::{Arc, NonZeroPtrMut}; use stylesheets::StyleRule; use stylist::ApplicableDeclarationList; use thread_state; @@ -637,7 +637,7 @@ impl RuleNode { current: if first_child.is_null() { None } else { - Some(WeakRuleNode { ptr: first_child }) + Some(WeakRuleNode::from_ptr(first_child)) } } } @@ -645,15 +645,13 @@ impl RuleNode { #[derive(Clone)] struct WeakRuleNode { - ptr: *mut RuleNode, + p: NonZeroPtrMut<RuleNode>, } /// A strong reference to a rule node. #[derive(Debug, PartialEq)] pub struct StrongRuleNode { - // TODO: Mark this as NonZero once stable to save space inside Option. - // https://github.com/rust-lang/rust/issues/27730 - ptr: *mut RuleNode, + p: NonZeroPtrMut<RuleNode>, } #[cfg(feature = "servo")] @@ -670,15 +668,17 @@ impl StrongRuleNode { debug!("Creating rule node: {:p}", ptr); + StrongRuleNode::from_ptr(ptr) + } + + fn from_ptr(ptr: *mut RuleNode) -> Self { StrongRuleNode { - ptr: ptr, + p: NonZeroPtrMut::new(ptr) } } fn downgrade(&self) -> WeakRuleNode { - WeakRuleNode { - ptr: self.ptr, - } + WeakRuleNode::from_ptr(self.ptr()) } fn next_sibling(&self) -> Option<WeakRuleNode> { @@ -688,9 +688,7 @@ impl StrongRuleNode { if ptr.is_null() { None } else { - Some(WeakRuleNode { - ptr: ptr - }) + Some(WeakRuleNode::from_ptr(ptr)) } } @@ -748,7 +746,7 @@ impl StrongRuleNode { // Existing is not null: some thread inserted a child node since // we accessed `last`. - strong = WeakRuleNode { ptr: existing }.upgrade(); + strong = WeakRuleNode::from_ptr(existing).upgrade(); if strong.get().source.as_ref().unwrap().ptr_equals(&source) { // That node happens to be for the same style source, use @@ -764,15 +762,15 @@ impl StrongRuleNode { /// Raw pointer to the RuleNode pub fn ptr(&self) -> *mut RuleNode { - self.ptr + self.p.ptr() } fn get(&self) -> &RuleNode { if cfg!(debug_assertions) { - let node = unsafe { &*self.ptr }; + let node = unsafe { &*self.ptr() }; assert!(node.refcount.load(Ordering::Relaxed) > 0); } - unsafe { &*self.ptr } + unsafe { &*self.ptr() } } /// Get the style source corresponding to this rule node. May return `None` @@ -808,7 +806,7 @@ impl StrongRuleNode { unsafe fn pop_from_free_list(&self) -> Option<WeakRuleNode> { // NB: This can run from the root node destructor, so we can't use // `get()`, since it asserts the refcount is bigger than zero. - let me = &*self.ptr; + let me = &*self.ptr(); debug_assert!(me.is_root()); @@ -831,7 +829,7 @@ impl StrongRuleNode { debug_assert!(!current.is_null(), "Multiple threads are operating on the free list at the \ same time?"); - debug_assert!(current != self.ptr, + debug_assert!(current != self.ptr(), "How did the root end up in the free list?"); let next = (*current).next_free.swap(ptr::null_mut(), Ordering::Relaxed); @@ -843,17 +841,17 @@ impl StrongRuleNode { debug!("Popping from free list: cur: {:?}, next: {:?}", current, next); - Some(WeakRuleNode { ptr: current }) + Some(WeakRuleNode::from_ptr(current)) } unsafe fn assert_free_list_has_no_duplicates_or_null(&self) { assert!(cfg!(debug_assertions), "This is an expensive check!"); use std::collections::HashSet; - let me = &*self.ptr; + let me = &*self.ptr(); assert!(me.is_root()); - let mut current = self.ptr; + let mut current = self.ptr(); let mut seen = HashSet::new(); while current != FREE_LIST_SENTINEL { let next = (*current).next_free.load(Ordering::Relaxed); @@ -872,7 +870,7 @@ impl StrongRuleNode { // NB: This can run from the root node destructor, so we can't use // `get()`, since it asserts the refcount is bigger than zero. - let me = &*self.ptr; + let me = &*self.ptr(); debug_assert!(me.is_root(), "Can't call GC on a non-root node!"); @@ -1237,19 +1235,17 @@ impl Clone for StrongRuleNode { debug!("{:?}: {:?}+", self.ptr(), self.get().refcount.load(Ordering::Relaxed)); debug_assert!(self.get().refcount.load(Ordering::Relaxed) > 0); self.get().refcount.fetch_add(1, Ordering::Relaxed); - StrongRuleNode { - ptr: self.ptr, - } + StrongRuleNode::from_ptr(self.ptr()) } } impl Drop for StrongRuleNode { fn drop(&mut self) { - let node = unsafe { &*self.ptr }; + let node = unsafe { &*self.ptr() }; debug!("{:?}: {:?}-", self.ptr(), node.refcount.load(Ordering::Relaxed)); debug!("Dropping node: {:?}, root: {:?}, parent: {:?}", - self.ptr, + self.ptr(), node.root.as_ref().map(|r| r.ptr()), node.parent.as_ref().map(|p| p.ptr())); let should_drop = { @@ -1330,9 +1326,7 @@ impl Drop for StrongRuleNode { impl<'a> From<&'a StrongRuleNode> for WeakRuleNode { fn from(node: &'a StrongRuleNode) -> Self { - WeakRuleNode { - ptr: node.ptr(), - } + WeakRuleNode::from_ptr(node.ptr()) } } @@ -1340,15 +1334,19 @@ impl WeakRuleNode { fn upgrade(&self) -> StrongRuleNode { debug!("Upgrading weak node: {:p}", self.ptr()); - let node = unsafe { &*self.ptr }; + let node = unsafe { &*self.ptr() }; node.refcount.fetch_add(1, Ordering::Relaxed); - StrongRuleNode { - ptr: self.ptr, + StrongRuleNode::from_ptr(self.ptr()) + } + + fn from_ptr(ptr: *mut RuleNode) -> Self { + WeakRuleNode { + p: NonZeroPtrMut::new(ptr) } } fn ptr(&self) -> *mut RuleNode { - self.ptr + self.p.ptr() } } diff --git a/components/style/sharing/mod.rs b/components/style/sharing/mod.rs index f996538fb6b..7f9b2bc32d6 100644 --- a/components/style/sharing/mod.rs +++ b/components/style/sharing/mod.rs @@ -84,8 +84,10 @@ use stylist::{ApplicableDeclarationBlock, Stylist}; mod checks; /// The amount of nodes that the style sharing candidate cache should hold at -/// most. -pub const STYLE_SHARING_CANDIDATE_CACHE_SIZE: usize = 8; +/// most. We'd somewhat like 32, but ArrayDeque only implements certain backing +/// store sizes. A cache size of 32 would mean a backing store of 33, but +/// that's not an implemented size: we can do 32 or 40. +pub const STYLE_SHARING_CANDIDATE_CACHE_SIZE: usize = 31; /// Controls whether the style sharing cache is used. #[derive(Clone, Copy, PartialEq)] diff --git a/components/style/traversal.rs b/components/style/traversal.rs index 536ddf69f87..484bce5faad 100644 --- a/components/style/traversal.rs +++ b/components/style/traversal.rs @@ -690,6 +690,12 @@ pub fn recalc_style_at<E, D>(traversal: &D, ChildCascadeRequirement::CanSkipCascade => {} }; + // We must always cascade native anonymous subtrees, since they inherit styles + // from their first non-NAC ancestor. + if element.is_native_anonymous() { + cascade_hint |= RECASCADE_SELF; + } + // If we're restyling this element to display:none, throw away all style // data in the subtree, notify the caller to early-return. if data.styles().is_display_none() { diff --git a/components/style/values/computed/mod.rs b/components/style/values/computed/mod.rs index 632a4c87751..1547cf29424 100644 --- a/components/style/values/computed/mod.rs +++ b/components/style/values/computed/mod.rs @@ -9,6 +9,7 @@ use context::QuirksMode; use euclid::size::Size2D; use font_metrics::FontMetricsProvider; use media_queries::Device; +use num_traits::Zero; #[cfg(feature = "gecko")] use properties; use properties::{ComputedValues, StyleBuilder}; @@ -483,6 +484,26 @@ pub struct Shadow { pub inset: bool, } +impl ToCss for Shadow { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + if self.inset { + dest.write_str("inset ")?; + } + self.offset_x.to_css(dest)?; + dest.write_str(" ")?; + self.offset_y.to_css(dest)?; + dest.write_str(" ")?; + self.blur_radius.to_css(dest)?; + dest.write_str(" ")?; + if self.spread_radius != Au::zero() { + self.spread_radius.to_css(dest)?; + dest.write_str(" ")?; + } + self.color.to_css(dest)?; + Ok(()) + } +} + /// A `<number>` value. pub type Number = CSSFloat; diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index db2aa538c0e..59ff135c303 100644 --- a/components/style/values/specified/mod.rs +++ b/components/style/values/specified/mod.rs @@ -878,6 +878,28 @@ impl ToComputedValue for Shadow { } } +impl ToCss for Shadow { + fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + if self.inset { + dest.write_str("inset ")?; + } + self.offset_x.to_css(dest)?; + dest.write_str(" ")?; + self.offset_y.to_css(dest)?; + dest.write_str(" ")?; + self.blur_radius.to_css(dest)?; + if self.spread_radius != Length::zero() { + dest.write_str(" ")?; + self.spread_radius.to_css(dest)?; + } + if let Some(ref color) = self.color { + dest.write_str(" ")?; + color.to_css(dest)?; + } + Ok(()) + } +} + impl Shadow { // disable_spread_and_inset is for filter: drop-shadow(...) #[allow(missing_docs)] diff --git a/ports/cef/window.rs b/ports/cef/window.rs index c1eea816e14..2bffd3b9cb9 100644 --- a/ports/cef/window.rs +++ b/ports/cef/window.rs @@ -17,7 +17,7 @@ use render_handler::CefRenderHandlerExtensions; use types::{cef_cursor_handle_t, cef_cursor_type_t, cef_rect_t}; use wrappers::CefWrap; -use compositing::compositor_thread::{self, CompositorProxy, CompositorReceiver}; +use compositing::compositor_thread::EventLoopWaker; use compositing::windowing::{WindowEvent, WindowMethods}; use euclid::point::{Point2D, TypedPoint2D}; use euclid::rect::TypedRect; @@ -295,13 +295,17 @@ impl WindowMethods for Window { } } - fn create_compositor_channel(&self) - -> (Box<CompositorProxy+Send>, Box<CompositorReceiver>) { - let (sender, receiver) = channel(); - (box CefCompositorProxy { - sender: sender, - } as Box<CompositorProxy+Send>, - box receiver as Box<CompositorReceiver>) + fn create_event_loop_waker(&self) -> Box<EventLoopWaker> { + struct CefEventLoopWaker; + impl EventLoopWaker for CefEventLoopWaker { + fn wake(&self) { + app_wakeup(); + } + fn clone(&self) -> Box<EventLoopWaker + Send> { + box CefEventLoopWaker + } + } + box CefEventLoopWaker } fn prepare_for_composite(&self, width: usize, height: usize) -> bool { @@ -500,23 +504,6 @@ impl WindowMethods for Window { } } -struct CefCompositorProxy { - sender: Sender<compositor_thread::Msg>, -} - -impl CompositorProxy for CefCompositorProxy { - fn send(&self, msg: compositor_thread::Msg) { - self.sender.send(msg).unwrap(); - app_wakeup(); - } - - fn clone_compositor_proxy(&self) -> Box<CompositorProxy+Send> { - box CefCompositorProxy { - sender: self.sender.clone(), - } as Box<CompositorProxy+Send> - } -} - #[cfg(target_os="macos")] pub fn app_wakeup() { use cocoa::appkit::{NSApp, NSApplication, NSApplicationDefined}; diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 9c32761a9fe..07ae5a8c2b9 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -72,12 +72,14 @@ use style::gecko_bindings::structs::{nsCSSFontFaceRule, nsCSSCounterStyleRule}; use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint, PropertyValuePair}; use style::gecko_bindings::structs::IterationCompositeOperation; use style::gecko_bindings::structs::MallocSizeOf; +use style::gecko_bindings::structs::RawGeckoGfxMatrix4x4; use style::gecko_bindings::structs::RawGeckoPresContextOwned; use style::gecko_bindings::structs::ServoElementSnapshotTable; use style::gecko_bindings::structs::StyleRuleInclusion; use style::gecko_bindings::structs::URLExtraData; use style::gecko_bindings::structs::nsCSSValueSharedList; use style::gecko_bindings::structs::nsCompatibility; +use style::gecko_bindings::structs::nsStyleTransformMatrix::MatrixTransformOperator; use style::gecko_bindings::structs::nsresult; use style::gecko_bindings::sugar::ownership::{FFIArcHelpers, HasFFI, HasArcFFI, HasBoxFFI}; use style::gecko_bindings::sugar::ownership::{HasSimpleFFI, Strong}; @@ -1595,6 +1597,28 @@ pub extern "C" fn Servo_GetProperties_Overriding_Animation(element: RawGeckoElem } #[no_mangle] +pub extern "C" fn Servo_MatrixTransform_Operate(matrix_operator: MatrixTransformOperator, + from: *const RawGeckoGfxMatrix4x4, + to: *const RawGeckoGfxMatrix4x4, + progress: f64, + output: *mut RawGeckoGfxMatrix4x4) { + use self::MatrixTransformOperator::{Accumulate, Interpolate}; + use style::properties::longhands::transform::computed_value::ComputedMatrix; + + let from = ComputedMatrix::from(unsafe { from.as_ref() }.expect("not a valid 'from' matrix")); + let to = ComputedMatrix::from(unsafe { to.as_ref() }.expect("not a valid 'to' matrix")); + let result = match matrix_operator { + Interpolate => from.interpolate(&to, progress), + Accumulate => from.accumulate(&to, progress as u64), + }; + + let output = unsafe { output.as_mut() }.expect("not a valid 'output' matrix"); + if let Ok(result) = result { + *output = result.into(); + }; +} + +#[no_mangle] pub extern "C" fn Servo_ParseStyleAttribute(data: *const nsACString, raw_extra_data: *mut URLExtraData, quirks_mode: nsCompatibility) diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs index 95895f40a27..c735654bd95 100644 --- a/ports/glutin/window.rs +++ b/ports/glutin/window.rs @@ -5,7 +5,7 @@ //! A windowing implementation using glutin. use NestedEventLoopListener; -use compositing::compositor_thread::{self, CompositorProxy, CompositorReceiver}; +use compositing::compositor_thread::EventLoopWaker; use compositing::windowing::{MouseWindowEvent, WindowNavigateMsg}; use compositing::windowing::{WindowEvent, WindowMethods}; use euclid::{Point2D, Size2D, TypedPoint2D}; @@ -41,7 +41,6 @@ use std::mem; use std::os::raw::c_void; use std::ptr; use std::rc::Rc; -use std::sync::mpsc::{Sender, channel}; use style_traits::cursor::Cursor; #[cfg(target_os = "windows")] use user32; @@ -1047,17 +1046,27 @@ impl WindowMethods for Window { } } - fn create_compositor_channel(&self) - -> (Box<CompositorProxy + Send>, Box<CompositorReceiver>) { - let (sender, receiver) = channel(); - + fn create_event_loop_waker(&self) -> Box<EventLoopWaker> { + struct GlutinEventLoopWaker { + window_proxy: Option<glutin::WindowProxy>, + } + impl EventLoopWaker for GlutinEventLoopWaker { + fn wake(&self) { + // kick the OS event loop awake. + if let Some(ref window_proxy) = self.window_proxy { + window_proxy.wakeup_event_loop() + } + } + fn clone(&self) -> Box<EventLoopWaker + Send> { + box GlutinEventLoopWaker { + window_proxy: self.window_proxy.clone(), + } + } + } let window_proxy = create_window_proxy(self); - - (box GlutinCompositorProxy { - sender: sender, - window_proxy: window_proxy, - } as Box<CompositorProxy + Send>, - box receiver as Box<CompositorReceiver>) + box GlutinEventLoopWaker { + window_proxy: window_proxy, + } } #[cfg(not(target_os = "windows"))] @@ -1289,29 +1298,6 @@ impl WindowMethods for Window { } } -struct GlutinCompositorProxy { - sender: Sender<compositor_thread::Msg>, - window_proxy: Option<glutin::WindowProxy>, -} - -impl CompositorProxy for GlutinCompositorProxy { - fn send(&self, msg: compositor_thread::Msg) { - // Send a message and kick the OS event loop awake. - if let Err(err) = self.sender.send(msg) { - warn!("Failed to send response ({}).", err); - } - if let Some(ref window_proxy) = self.window_proxy { - window_proxy.wakeup_event_loop() - } - } - fn clone_compositor_proxy(&self) -> Box<CompositorProxy + Send> { - box GlutinCompositorProxy { - sender: self.sender.clone(), - window_proxy: self.window_proxy.clone(), - } as Box<CompositorProxy + Send> - } -} - fn glutin_phase_to_touch_event_type(phase: TouchPhase) -> TouchEventType { match phase { TouchPhase::Started => TouchEventType::Down, diff --git a/resources/prefs.json b/resources/prefs.json index 32406257d61..3c8203a0972 100644 --- a/resources/prefs.json +++ b/resources/prefs.json @@ -66,5 +66,6 @@ "shell.homepage": "https://servo.org", "shell.keep_screen_on.enabled": false, "shell.native-orientation": "both", - "shell.native-titlebar.enabled": true + "shell.native-titlebar.enabled": true, + "webgl.testing.context_creation_error": false } diff --git a/tests/unit/script/size_of.rs b/tests/unit/script/size_of.rs index 3368271d8e1..c7c04b4aac1 100644 --- a/tests/unit/script/size_of.rs +++ b/tests/unit/script/size_of.rs @@ -31,10 +31,10 @@ macro_rules! sizeof_checker ( // Update the sizes here sizeof_checker!(size_event_target, EventTarget, 40); sizeof_checker!(size_node, Node, 184); -sizeof_checker!(size_element, Element, 352); -sizeof_checker!(size_htmlelement, HTMLElement, 368); -sizeof_checker!(size_div, HTMLDivElement, 368); -sizeof_checker!(size_span, HTMLSpanElement, 368); +sizeof_checker!(size_element, Element, 344); +sizeof_checker!(size_htmlelement, HTMLElement, 360); +sizeof_checker!(size_div, HTMLDivElement, 360); +sizeof_checker!(size_span, HTMLSpanElement, 360); sizeof_checker!(size_text, Text, 216); sizeof_checker!(size_characterdata, CharacterData, 216); sizeof_checker!(size_servothreadsafelayoutnode, ServoThreadSafeLayoutNode, 16); diff --git a/tests/unit/style/animated_properties.rs b/tests/unit/style/animated_properties.rs index 7b69d42a227..dd74dc150fb 100644 --- a/tests/unit/style/animated_properties.rs +++ b/tests/unit/style/animated_properties.rs @@ -2,8 +2,11 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +use app_units::Au; use cssparser::RGBA; use style::properties::animated_properties::{Animatable, IntermediateRGBA}; +use style::properties::longhands::transform::computed_value::ComputedOperation as TransformOperation; +use style::properties::longhands::transform::computed_value::T as TransformList; fn interpolate_rgba(from: RGBA, to: RGBA, progress: f64) -> RGBA { let from: IntermediateRGBA = from.into(); @@ -11,6 +14,7 @@ fn interpolate_rgba(from: RGBA, to: RGBA, progress: f64) -> RGBA { from.interpolate(&to, progress).unwrap().into() } +// Color #[test] fn test_rgba_color_interepolation_preserves_transparent() { assert_eq!(interpolate_rgba(RGBA::transparent(), @@ -54,3 +58,95 @@ fn test_rgba_color_interepolation_out_of_range_clamped_2() { RGBA::from_floats(0.0, 1.0, 0.0, 0.2), 1.5), RGBA::from_floats(0.0, 0.0, 0.0, 0.0)); } + +// Transform +#[test] +fn test_transform_interpolation_on_translate() { + use style::values::computed::{CalcLengthOrPercentage, LengthOrPercentage}; + + let from = TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Length(Au(0)), + LengthOrPercentage::Length(Au(100)), + Au(25))])); + let to = TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Length(Au(100)), + LengthOrPercentage::Length(Au(0)), + Au(75))])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Length(Au(50)), + LengthOrPercentage::Length(Au(50)), + Au(50))]))); + + let from = TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Percentage(0.5), + LengthOrPercentage::Percentage(1.0), + Au(25))])); + let to = TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Length(Au(100)), + LengthOrPercentage::Length(Au(50)), + Au(75))])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Calc( + // calc(50px + 25%) + CalcLengthOrPercentage::new(Au(50), + Some(0.25))), + LengthOrPercentage::Calc( + // calc(25px + 50%) + CalcLengthOrPercentage::new(Au(25), + Some(0.5))), + Au(50))]))); +} + +#[test] +fn test_transform_interpolation_on_scale() { + let from = TransformList(Some(vec![TransformOperation::Scale(1.0, 2.0, 1.0)])); + let to = TransformList(Some(vec![TransformOperation::Scale(2.0, 4.0, 2.0)])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![TransformOperation::Scale(1.5, 3.0, 1.5)]))); +} + +#[test] +fn test_transform_interpolation_on_rotate() { + use style::values::computed::Angle; + + let from = TransformList(Some(vec![TransformOperation::Rotate(0.0, 0.0, 1.0, + Angle::from_radians(0.0))])); + let to = TransformList(Some(vec![TransformOperation::Rotate(0.0, 0.0, 1.0, + Angle::from_radians(100.0))])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![TransformOperation::Rotate(0.0, 0.0, 1.0, + Angle::from_radians(50.0))]))); +} + +#[test] +fn test_transform_interpolation_on_skew() { + use style::values::computed::Angle; + + let from = TransformList(Some(vec![TransformOperation::Skew(Angle::from_radians(0.0), + Angle::from_radians(100.0))])); + let to = TransformList(Some(vec![TransformOperation::Skew(Angle::from_radians(100.0), + Angle::from_radians(0.0))])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![TransformOperation::Skew(Angle::from_radians(50.0), + Angle::from_radians(50.0))]))); +} + +#[test] +fn test_transform_interpolation_on_mismatched_lists() { + use style::values::computed::{Angle, LengthOrPercentage, Percentage}; + + let from = TransformList(Some(vec![TransformOperation::Rotate(0.0, 0.0, 1.0, + Angle::from_radians(100.0))])); + let to = TransformList(Some(vec![ + TransformOperation::Translate(LengthOrPercentage::Length(Au(100)), + LengthOrPercentage::Length(Au(0)), + Au(0))])); + assert_eq!(from.interpolate(&to, 0.5).unwrap(), + TransformList(Some(vec![TransformOperation::InterpolateMatrix { + from_list: from.clone(), + to_list: to.clone(), + progress: Percentage(0.5) + }]))); +} diff --git a/tests/unit/stylo/size_of.rs b/tests/unit/stylo/size_of.rs index 3344a65c075..31b6d70b32f 100644 --- a/tests/unit/stylo/size_of.rs +++ b/tests/unit/stylo/size_of.rs @@ -3,9 +3,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use selectors::gecko_like_types as dummies; +use servo_arc::Arc; use std::mem::{size_of, align_of}; use style; +use style::data::{ComputedStyle, ElementData, ElementStyles}; use style::gecko::selector_parser as real; +use style::properties::ComputedValues; +use style::rule_tree::StrongRuleNode; #[test] fn size_of_selectors_dummy_types() { @@ -24,6 +28,12 @@ fn size_of_selectors_dummy_types() { // selectors (with the inline hashes) with as few cache misses as possible. size_of_test!(test_size_of_rule, style::stylist::Rule, 40); +size_of_test!(test_size_of_option_arc_cv, Option<Arc<ComputedValues>>, 8); +size_of_test!(test_size_of_option_rule_node, Option<StrongRuleNode>, 8); +size_of_test!(test_size_of_computed_style, ComputedStyle, 32); +size_of_test!(test_size_of_element_styles, ElementStyles, 48); +size_of_test!(test_size_of_element_data, ElementData, 56); + size_of_test!(test_size_of_property_declaration, style::properties::PropertyDeclaration, 32); // This is huge, but we allocate it on the stack and then never move it, diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 06dc122bd79..66f4ca615c8 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -31668,7 +31668,7 @@ "support" ], "mozilla/webgl/context_creation_error.html": [ - "d6ffc0c4ea5671399d3c9b6440608b47c80699cf", + "583df4d3fb090862383338a50548b4afb333dd52", "testharness" ], "mozilla/webgl/draw_arrays_simple.html": [ diff --git a/tests/wpt/mozilla/meta/mozilla/webgl/context_creation_error.html.ini b/tests/wpt/mozilla/meta/mozilla/webgl/context_creation_error.html.ini index bb16d57a91d..e7d26a40344 100644 --- a/tests/wpt/mozilla/meta/mozilla/webgl/context_creation_error.html.ini +++ b/tests/wpt/mozilla/meta/mozilla/webgl/context_creation_error.html.ini @@ -1,5 +1,3 @@ [context_creation_error.html] type: reftest - [WebGLContextEvent "webglcontextcreationerror" event] - expected: FAIL - + prefs: ["webgl.testing.context_creation_error:true"] diff --git a/tests/wpt/mozilla/tests/mozilla/webgl/context_creation_error.html b/tests/wpt/mozilla/tests/mozilla/webgl/context_creation_error.html index bc16a868ed0..296bc918032 100644 --- a/tests/wpt/mozilla/tests/mozilla/webgl/context_creation_error.html +++ b/tests/wpt/mozilla/tests/mozilla/webgl/context_creation_error.html @@ -14,9 +14,7 @@ async_test(function() { "'statusMessage' should be a string, " + typeof(e.statusMessage) + " found"); }), false); - // TODO: Create a dummy function to fail the webgl context forcefully from js tests. - // Now that antialias doesn't throw an error, there isn't a way to force context creation errors. - var gl = canvas.getContext('webgl', { antialiasing: true }); + var gl = canvas.getContext('webgl'); assert_false(!!gl, "WebGLContext creation succeeded, please update this test!"); }); |