diff options
231 files changed, 25614 insertions, 7822 deletions
diff --git a/.travis.yml b/.travis.yml index d1f71944887..186d479af02 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,10 +12,10 @@ matrix: dist: trusty script: - ./mach build -d --verbose + - ./mach test-compiletest + - ./mach test-unit - ./mach build-geckolib - ./mach test-geckolib - - ./mach test-unit - - ./mach test-compiletest - bash etc/ci/check_no_unwrap.sh - bash etc/ci/lockfile_changed.sh - bash etc/ci/manifest_changed.sh diff --git a/appveyor.yml b/appveyor.yml index f75c29e6ed3..a313b572d5b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,7 +2,6 @@ version: 1.0.{build} environment: RUST_BACKTRACE: 1 - HOME: '%APPVEYOR_BUILD_FOLDER%' # The appveyor image we use has a pretty huge set of things installed... we make the # initial PATH something sane so we know what to expect PATH: "C:\\windows\\system32;\ @@ -69,6 +68,6 @@ install: build_script: - if %BUILD_ENV%==msvc mach build -d -v && mach test-unit - - if %BUILD_ENV%==gnu bash -lc "./mach build -d -v && ./mach test-unit" + - if %BUILD_ENV%==gnu bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./mach build -d -v && ./mach test-unit" test: off diff --git a/cargo-nightly-build b/cargo-nightly-build index d8db53481c0..73b492ece35 100644 --- a/cargo-nightly-build +++ b/cargo-nightly-build @@ -1 +1 @@ -2016-08-27 +2016-09-20 diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs index 0c2cd16b001..27ed5d6ace5 100644 --- a/components/gfx/display_list/mod.rs +++ b/components/gfx/display_list/mod.rs @@ -1148,6 +1148,10 @@ pub struct ImageDisplayItem { /// direction to tile the entire bounds. pub stretch_size: Size2D<Au>, + /// The amount of space to add to the right and bottom part of each tile, when the image + /// is tiled. + pub tile_spacing: Size2D<Au>, + /// The algorithm we should use to stretch the image. See `image_rendering` in CSS-IMAGES-3 § /// 5.3. pub image_rendering: image_rendering::T, @@ -1360,6 +1364,7 @@ impl DisplayItem { paint_context.draw_image( &image_item.base.bounds, &image_item.stretch_size, + &image_item.tile_spacing, &image_item.webrender_image, &image_item.image_data .as_ref() diff --git a/components/gfx/paint_context.rs b/components/gfx/paint_context.rs index 54a85c00376..e671a12344e 100644 --- a/components/gfx/paint_context.rs +++ b/components/gfx/paint_context.rs @@ -189,6 +189,7 @@ impl<'a> PaintContext<'a> { pub fn draw_image(&self, bounds: &Rect<Au>, stretch_size: &Size2D<Au>, + tile_spacing: &Size2D<Au>, image_info: &WebRenderImageInfo, image_data: &[u8], image_rendering: image_rendering::T) { @@ -229,7 +230,7 @@ impl<'a> PaintContext<'a> { let draw_options = DrawOptions::new(1.0, CompositionOp::Over, AntialiasMode::None); // Fast path: No need to create a pattern. - if bounds.size == *stretch_size { + if bounds.size == *stretch_size && *tile_spacing == Size2D::zero() { draw_target_ref.draw_surface(azure_surface, dest_rect, source_rect, @@ -243,8 +244,8 @@ impl<'a> PaintContext<'a> { // Annoyingly, surface patterns in Azure/Skia are relative to the top left of the *canvas*, // not the rectangle we're drawing to. So we need to translate it explicitly. let matrix = Matrix2D::identity().pre_translated(dest_rect.origin.x, dest_rect.origin.y); - let stretch_size = stretch_size.to_nearest_azure_size(scale); - if source_rect.size == stretch_size { + let azure_stretch_size = stretch_size.to_nearest_azure_size(scale); + if source_rect.size == azure_stretch_size && *tile_spacing == Size2D::zero() { let pattern = SurfacePattern::new(azure_surface.azure_source_surface, true, true, @@ -258,10 +259,11 @@ impl<'a> PaintContext<'a> { // Slow path: Both stretch and a pattern are needed. let draw_surface_options = DrawSurfaceOptions::new(draw_surface_filter, true); let draw_options = DrawOptions::new(1.0, CompositionOp::Over, AntialiasMode::None); + let temporary_target_size = (*stretch_size + *tile_spacing).to_nearest_azure_size(scale); let temporary_draw_target = - self.draw_target.create_similar_draw_target(&stretch_size.to_azure_int_size(), + self.draw_target.create_similar_draw_target(&temporary_target_size.to_azure_int_size(), self.draw_target.get_format()); - let temporary_dest_rect = Rect::new(Point2D::new(0.0, 0.0), stretch_size); + let temporary_dest_rect = Rect::new(Point2D::new(0.0, 0.0), azure_stretch_size); temporary_draw_target.draw_surface(azure_surface, temporary_dest_rect, source_rect, diff --git a/components/layout/construct.rs b/components/layout/construct.rs index c89d45c966c..d5a788778f2 100644 --- a/components/layout/construct.rs +++ b/components/layout/construct.rs @@ -48,6 +48,7 @@ use style::computed_values::content::ContentItem; use style::computed_values::position; use style::context::SharedStyleContext; use style::properties::{self, ServoComputedValues}; +use style::servo_selector_impl::PseudoElement; use table::TableFlow; use table_caption::TableCaptionFlow; use table_cell::TableCellFlow; @@ -693,7 +694,8 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode> let mut style = node.style(self.style_context()).clone(); if node_is_input_or_text_area { - properties::modify_style_for_input_text(&mut style); + style = self.style_context().stylist. + precomputed_values_for_pseudo(&PseudoElement::ServoInputText, Some(&style)).unwrap(); } self.create_fragments_for_node_text_content(&mut initial_fragments, node, &style) diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index 5c500b1fd48..97d2c7c4b43 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -547,46 +547,74 @@ impl FragmentDisplayListBuilding for Fragment { let position = *get_cyclic(&background.background_position.0, index); // Use `background-position` to get the offset. let horizontal_position = model::specified(position.horizontal, - bounds.size.width - image_size.width); + bounds.size.width - image_size.width); let vertical_position = model::specified(position.vertical, - bounds.size.height - image_size.height); + bounds.size.height - image_size.height); - let abs_x = border.left + virtual_origin_x + horizontal_position + origin_x; - let abs_y = border.top + virtual_origin_y + vertical_position + origin_y; + // The anchor position for this background, based on both the background-attachment + // and background-position properties. + let anchor_origin_x = border.left + virtual_origin_x + origin_x + horizontal_position; + let anchor_origin_y = border.top + virtual_origin_y + origin_y + vertical_position; + + let mut tile_spacing = Size2D::zero(); + let mut stretch_size = image_size; // Adjust origin and size based on background-repeat match *get_cyclic(&background.background_repeat.0, index) { background_repeat::single_value::T::no_repeat => { - bounds.origin.x = abs_x; - bounds.origin.y = abs_y; + bounds.origin.x = anchor_origin_x; + bounds.origin.y = anchor_origin_y; bounds.size.width = image_size.width; bounds.size.height = image_size.height; } background_repeat::single_value::T::repeat_x => { - bounds.origin.y = abs_y; + bounds.origin.y = anchor_origin_y; bounds.size.height = image_size.height; ImageFragmentInfo::tile_image(&mut bounds.origin.x, &mut bounds.size.width, - abs_x, - image_size.width.to_nearest_px() as u32); + anchor_origin_x, + image_size.width); } background_repeat::single_value::T::repeat_y => { - bounds.origin.x = abs_x; + bounds.origin.x = anchor_origin_x; bounds.size.width = image_size.width; ImageFragmentInfo::tile_image(&mut bounds.origin.y, &mut bounds.size.height, - abs_y, - image_size.height.to_nearest_px() as u32); + anchor_origin_y, + image_size.height); } background_repeat::single_value::T::repeat => { ImageFragmentInfo::tile_image(&mut bounds.origin.x, - &mut bounds.size.width, - abs_x, - image_size.width.to_nearest_px() as u32); + &mut bounds.size.width, + anchor_origin_x, + image_size.width); ImageFragmentInfo::tile_image(&mut bounds.origin.y, - &mut bounds.size.height, - abs_y, - image_size.height.to_nearest_px() as u32); + &mut bounds.size.height, + anchor_origin_y, + image_size.height); + } + background_repeat::single_value::T::space => { + ImageFragmentInfo::tile_image_spaced(&mut bounds.origin.x, + &mut bounds.size.width, + &mut tile_spacing.width, + anchor_origin_x, + image_size.width); + ImageFragmentInfo::tile_image_spaced(&mut bounds.origin.y, + &mut bounds.size.height, + &mut tile_spacing.height, + anchor_origin_y, + image_size.height); + + } + background_repeat::single_value::T::round => { + ImageFragmentInfo::tile_image_round(&mut bounds.origin.x, + &mut bounds.size.width, + anchor_origin_x, + &mut stretch_size.width); + ImageFragmentInfo::tile_image_round(&mut bounds.origin.y, + &mut bounds.size.height, + anchor_origin_y, + &mut stretch_size.height); } }; @@ -600,7 +628,8 @@ impl FragmentDisplayListBuilding for Fragment { base: base, webrender_image: webrender_image, image_data: image_data.map(Arc::new), - stretch_size: Size2D::new(image_size.width, image_size.height), + stretch_size: stretch_size, + tile_spacing: tile_spacing, image_rendering: style.get_inheritedbox().image_rendering.clone(), })); @@ -1257,6 +1286,7 @@ impl FragmentDisplayListBuilding for Fragment { webrender_image: WebRenderImageInfo::from_image(image), image_data: Some(Arc::new(image.bytes.clone())), stretch_size: stacking_relative_content_box.size, + tile_spacing: Size2D::zero(), image_rendering: self.style.get_inheritedbox().image_rendering.clone(), })); } @@ -1300,6 +1330,7 @@ impl FragmentDisplayListBuilding for Fragment { key: canvas_data.image_key, }, stretch_size: stacking_relative_content_box.size, + tile_spacing: Size2D::zero(), image_rendering: image_rendering::T::Auto, }) } diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 0dcdd2930d7..5245e821711 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -425,18 +425,73 @@ impl ImageFragmentInfo { } } + pub fn tile_image_round(position: &mut Au, + size: &mut Au, + absolute_anchor_origin: Au, + image_size: &mut Au) { + if *size == Au(0) || *image_size == Au(0) { + *position = Au(0); + *size =Au(0); + return; + } + + let number_of_tiles = (size.to_f32_px() / image_size.to_f32_px()).round().max(1.0); + *image_size = *size / (number_of_tiles as i32); + ImageFragmentInfo::tile_image(position, size, absolute_anchor_origin, *image_size); + } + + pub fn tile_image_spaced(position: &mut Au, + size: &mut Au, + tile_spacing: &mut Au, + absolute_anchor_origin: Au, + image_size: Au) { + if *size == Au(0) || image_size == Au(0) { + *position = Au(0); + *size = Au(0); + *tile_spacing = Au(0); + return; + } + + // Per the spec, if the space available is not enough for two images, just tile as + // normal but only display a single tile. + if image_size * 2 >= *size { + ImageFragmentInfo::tile_image(position, + size, + absolute_anchor_origin, + image_size); + *tile_spacing = Au(0); + *size = image_size;; + return; + } + + // Take the box size, remove room for two tiles on the edges, and then calculate how many + // other tiles fit in between them. + let size_remaining = *size - (image_size * 2); + let num_middle_tiles = (size_remaining.to_f32_px() / image_size.to_f32_px()).floor() as i32; + + // Allocate the remaining space as padding between tiles. background-position is ignored + // as per the spec, so the position is just the box origin. We are also ignoring + // background-attachment here, which seems unspecced when combined with + // background-repeat: space. + let space_for_middle_tiles = image_size * num_middle_tiles; + *tile_spacing = (size_remaining - space_for_middle_tiles) / (num_middle_tiles + 1); + } + /// Tile an image - pub fn tile_image(position: &mut Au, size: &mut Au, virtual_position: Au, image_size: u32) { + pub fn tile_image(position: &mut Au, + size: &mut Au, + absolute_anchor_origin: Au, + image_size: Au) { // Avoid division by zero below! - let image_size = image_size as i32; - if image_size == 0 { + if image_size == Au(0) { return } - let delta_pixels = (virtual_position - *position).to_px(); - let tile_count = (delta_pixels + image_size - 1) / image_size; - let offset = Au::from_px(image_size * tile_count); - let new_position = virtual_position - offset; + let delta_pixels = absolute_anchor_origin - *position; + let image_size_px = image_size.to_f32_px(); + let tile_count = ((delta_pixels.to_f32_px() + image_size_px - 1.0) / image_size_px).floor(); + let offset = image_size * (tile_count as i32); + let new_position = absolute_anchor_origin - offset; *size = *position - new_position + *size; *position = new_position; } diff --git a/components/layout/webrender_helpers.rs b/components/layout/webrender_helpers.rs index dacc8278306..e18eeeb5fb9 100644 --- a/components/layout/webrender_helpers.rs +++ b/components/layout/webrender_helpers.rs @@ -427,12 +427,10 @@ impl WebRenderDisplayItemConverter for DisplayItem { if let Some(id) = item.webrender_image.key { if item.stretch_size.width > Au(0) && item.stretch_size.height > Au(0) { - // TODO(gw): Pass through the tile spacing once the other - // changes related to this land (parsing etc). builder.push_image(item.base.bounds.to_rectf(), item.base.clip.to_clip_region(frame_builder), item.stretch_size.to_sizef(), - Size2D::zero(), + item.tile_spacing.to_sizef(), item.image_rendering.to_image_rendering(), id); } diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index dd35ce06656..1f3eb0e5a24 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -22,7 +22,7 @@ use hyper::status::StatusCode; use hyper_serde::Serde; use mime_guess::guess_mime_type; use msg::constellation_msg::ReferrerPolicy; -use net_traits::FetchTaskTarget; +use net_traits::{FetchTaskTarget, FetchMetadata}; use net_traits::request::{CacheMode, CredentialsMode, Destination}; use net_traits::request::{RedirectMode, Referrer, Request, RequestMode, ResponseTainting}; use net_traits::request::{Type, Origin, Window}; @@ -361,13 +361,14 @@ fn main_fetch(request: Rc<Request>, cache: &mut CORSCache, cors_flag: bool, } } } else if let Some(ref mut target) = *target { - if let ResponseBody::Done(ref vec) = *response.body.lock().unwrap() { + let body = response.body.lock().unwrap(); + if let ResponseBody::Done(ref vec) = *body { // in case there was no channel to wait for, the body was // obtained synchronously via basic_fetch for data/file/about/etc // We should still send the body across as a chunk target.process_response_chunk(vec.clone()); } else { - assert!(*response.body.lock().unwrap() == ResponseBody::Empty) + assert!(*body == ResponseBody::Empty) } } @@ -981,7 +982,10 @@ fn http_network_fetch(request: Rc<Request>, // We're about to spawn a thread to be waited on here *done_chan = Some(channel()); - let meta = response.metadata().expect("Response metadata should exist at this stage"); + let meta = match response.metadata().expect("Response metadata should exist at this stage") { + FetchMetadata::Unfiltered(m) => m, + FetchMetadata::Filtered { unsafe_, .. } => unsafe_ + }; let done_sender = done_chan.as_ref().map(|ch| ch.0.clone()); let devtools_sender = devtools_chan.clone(); let meta_status = meta.status.clone(); diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs index 036fb54d940..2cbc198e0f7 100644 --- a/components/net_traits/lib.rs +++ b/components/net_traits/lib.rs @@ -170,7 +170,7 @@ pub enum FetchResponseMsg { ProcessRequestBody, ProcessRequestEOF, // todo: send more info about the response (or perhaps the entire Response) - ProcessResponse(Result<Metadata, NetworkError>), + ProcessResponse(Result<FetchMetadata, NetworkError>), ProcessResponseChunk(Vec<u8>), ProcessResponseEOF(Result<(), NetworkError>), } @@ -200,10 +200,25 @@ pub trait FetchTaskTarget { fn process_response_eof(&mut self, response: &Response); } +#[derive(Serialize, Deserialize)] +pub enum FilteredMetadata { + Opaque, + Transparent(Metadata) +} + +#[derive(Serialize, Deserialize)] +pub enum FetchMetadata { + Unfiltered(Metadata), + Filtered { + filtered: FilteredMetadata, + unsafe_: Metadata + } +} + pub trait FetchResponseListener { fn process_request_body(&mut self); fn process_request_eof(&mut self); - fn process_response(&mut self, metadata: Result<Metadata, NetworkError>); + fn process_response(&mut self, metadata: Result<FetchMetadata, NetworkError>); fn process_response_chunk(&mut self, chunk: Vec<u8>); fn process_response_eof(&mut self, response: Result<(), NetworkError>); } @@ -520,6 +535,13 @@ impl PendingAsyncLoad { let consumer = LoadConsumer::Listener(listener); self.core_resource_thread.send(CoreResourceMsg::Load(load_data, consumer, None)).unwrap(); } + + /// Initiate the fetch associated with this pending load. + pub fn fetch_async(mut self, request: RequestInit, fetch_target: IpcSender<FetchResponseMsg>) { + self.guard.neuter(); + + self.core_resource_thread.send(CoreResourceMsg::Fetch(request, fetch_target)).unwrap(); + } } /// Message sent in response to `Load`. Contains metadata, and a port diff --git a/components/net_traits/request.rs b/components/net_traits/request.rs index 1ed8950bf2d..c31f821680d 100644 --- a/components/net_traits/request.rs +++ b/components/net_traits/request.rs @@ -6,6 +6,7 @@ use hyper::header::Headers; use hyper::method::Method; use msg::constellation_msg::{PipelineId, ReferrerPolicy}; use std::cell::{Cell, RefCell}; +use std::default::Default; use std::mem::swap; use url::{Origin as UrlOrigin, Url}; @@ -20,7 +21,7 @@ pub enum Initiator { } /// A request [type](https://fetch.spec.whatwg.org/#concept-request-type) -#[derive(Copy, Clone, PartialEq, HeapSizeOf)] +#[derive(Copy, Clone, PartialEq, Serialize, Deserialize, HeapSizeOf)] pub enum Type { None, Audio, Font, Image, Script, Style, Track, Video @@ -103,7 +104,7 @@ pub enum Window { } /// [CORS settings attribute](https://html.spec.whatwg.org/multipage/#attr-crossorigin-anonymous) -#[derive(Copy, Clone, PartialEq)] +#[derive(Copy, Clone, PartialEq, Serialize, Deserialize)] pub enum CORSSettings { Anonymous, UseCredentials @@ -122,6 +123,7 @@ pub struct RequestInit { pub same_origin_data: bool, pub body: Option<Vec<u8>>, // TODO: client object + pub type_: Type, pub destination: Destination, pub synchronous: bool, pub mode: RequestMode, @@ -137,6 +139,30 @@ pub struct RequestInit { pub pipeline_id: Option<PipelineId>, } +impl Default for RequestInit { + fn default() -> RequestInit { + RequestInit { + method: Method::Get, + url: Url::parse("about:blank").unwrap(), + headers: Headers::new(), + unsafe_request: false, + same_origin_data: false, + body: None, + type_: Type::None, + destination: Destination::None, + synchronous: false, + mode: RequestMode::NoCORS, + use_cors_preflight: false, + credentials_mode: CredentialsMode::Omit, + use_url_credentials: false, + origin: Url::parse("about:blank").unwrap(), + referrer_url: None, + referrer_policy: None, + pipeline_id: None, + } + } +} + /// A [Request](https://fetch.spec.whatwg.org/#requests) as defined by the Fetch spec #[derive(Clone, HeapSizeOf)] pub struct Request { @@ -232,6 +258,7 @@ impl Request { req.unsafe_request = init.unsafe_request; req.same_origin_data.set(init.same_origin_data); *req.body.borrow_mut() = init.body; + req.type_ = init.type_; req.destination = init.destination; req.synchronous = init.synchronous; req.mode = init.mode; @@ -248,56 +275,6 @@ impl Request { req } - /// https://html.spec.whatwg.org/multipage/#create-a-potential-cors-request - pub fn potential_cors_request(url: Url, - cors_attribute_state: Option<CORSSettings>, - is_service_worker_global_scope: bool, - same_origin_fallback: bool, - pipeline_id: Option<PipelineId>) -> Request { - Request { - method: RefCell::new(Method::Get), - local_urls_only: false, - sandboxed_storage_area_urls: false, - headers: RefCell::new(Headers::new()), - unsafe_request: false, - body: RefCell::new(None), - is_service_worker_global_scope: is_service_worker_global_scope, - window: Cell::new(Window::Client), - keep_alive: Cell::new(false), - skip_service_worker: Cell::new(false), - initiator: Initiator::None, - type_: Type::None, - destination: Destination::None, - origin: RefCell::new(Origin::Client), - omit_origin_header: Cell::new(false), - same_origin_data: Cell::new(false), - referrer: RefCell::new(Referrer::Client), - referrer_policy: Cell::new(None), - synchronous: false, - // Step 1-2 - mode: match cors_attribute_state { - Some(_) => RequestMode::CORSMode, - None if same_origin_fallback => RequestMode::SameOrigin, - None => RequestMode::NoCORS - }, - use_cors_preflight: false, - // Step 3-4 - credentials_mode: match cors_attribute_state { - Some(CORSSettings::Anonymous) => CredentialsMode::CredentialsSameOrigin, - _ => CredentialsMode::Include, - }, - use_url_credentials: true, - cache_mode: Cell::new(CacheMode::Default), - redirect_mode: Cell::new(RedirectMode::Follow), - integrity_metadata: RefCell::new(String::new()), - url_list: RefCell::new(vec![url]), - redirect_count: Cell::new(0), - response_tainting: Cell::new(ResponseTainting::Basic), - pipeline_id: Cell::new(pipeline_id), - done: Cell::new(false) - } - } - pub fn url(&self) -> Url { self.url_list.borrow().first().unwrap().clone() } diff --git a/components/net_traits/response.rs b/components/net_traits/response.rs index 823c56c7002..c4b4a3fe8e3 100644 --- a/components/net_traits/response.rs +++ b/components/net_traits/response.rs @@ -4,7 +4,7 @@ //! The [Response](https://fetch.spec.whatwg.org/#responses) object //! resulting from a [fetch operation](https://fetch.spec.whatwg.org/#concept-fetch) -use {Metadata, NetworkError}; +use {FetchMetadata, FilteredMetadata, Metadata, NetworkError}; use hyper::header::{AccessControlExposeHeaders, ContentType, Headers}; use hyper::status::StatusCode; use hyper_serde::Serde; @@ -225,24 +225,42 @@ impl Response { response } - pub fn metadata(&self) -> Result<Metadata, NetworkError> { - let mut metadata = if let Some(ref url) = self.url { - Metadata::default(url.clone()) - } else { - return Err(NetworkError::Internal("No url found in response".to_string())); + pub fn metadata(&self) -> Result<FetchMetadata, NetworkError> { + fn init_metadata(response: &Response, url: &Url) -> Metadata { + let mut metadata = Metadata::default(url.clone()); + metadata.set_content_type(match response.headers.get() { + Some(&ContentType(ref mime)) => Some(mime), + None => None + }); + metadata.headers = Some(Serde(response.headers.clone())); + metadata.status = response.raw_status.clone(); + metadata.https_state = response.https_state; + metadata }; if self.is_network_error() { - return Err(NetworkError::Internal("Cannot extract metadata from network error".to_string())); + return Err(NetworkError::Internal("Cannot extract metadata from network error".to_owned())); } - metadata.set_content_type(match self.headers.get() { - Some(&ContentType(ref mime)) => Some(mime), - None => None - }); - metadata.headers = Some(Serde(self.headers.clone())); - metadata.status = self.raw_status.clone(); - metadata.https_state = self.https_state; - return Ok(metadata); + let metadata = self.url.as_ref().map(|url| init_metadata(self, url)); + + if let Some(ref response) = self.internal_response { + match response.url { + Some(ref url) => { + let unsafe_metadata = init_metadata(response, url); + + Ok(FetchMetadata::Filtered { + filtered: match metadata { + Some(m) => FilteredMetadata::Transparent(m), + None => FilteredMetadata::Opaque + }, + unsafe_: unsafe_metadata + }) + } + None => Err(NetworkError::Internal("No url found in unsafe response".to_owned())) + } + } else { + Ok(FetchMetadata::Unfiltered(metadata.unwrap())) + } } } diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index ee380e92854..626eb4e2288 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -41,7 +41,7 @@ hyper = "0.9.9" hyper_serde = "0.1.4" image = "0.10" ipc-channel = "0.5" -js = {git = "https://github.com/servo/rust-mozjs"} +js = {git = "https://github.com/servo/rust-mozjs", features = ["promises"]} libc = "0.2" log = "0.3.5" mime = "0.2.1" diff --git a/components/script/document_loader.rs b/components/script/document_loader.rs index 0fc1e5e06c5..5209b68b9ac 100644 --- a/components/script/document_loader.rs +++ b/components/script/document_loader.rs @@ -7,9 +7,11 @@ use dom::bindings::js::JS; use dom::document::Document; +use ipc_channel::ipc::IpcSender; use msg::constellation_msg::{PipelineId, ReferrerPolicy}; -use net_traits::{PendingAsyncLoad, AsyncResponseTarget, LoadContext}; -use net_traits::{ResourceThreads, IpcSend}; +use net_traits::{AsyncResponseTarget, PendingAsyncLoad, LoadContext}; +use net_traits::{FetchResponseMsg, ResourceThreads, IpcSend}; +use net_traits::request::RequestInit; use std::thread; use url::Url; @@ -148,6 +150,17 @@ impl DocumentLoader { pending.load_async(listener) } + /// Initiate a new fetch. + pub fn fetch_async(&mut self, + load: LoadType, + request: RequestInit, + fetch_target: IpcSender<FetchResponseMsg>, + referrer: &Document, + referrer_policy: Option<ReferrerPolicy>) { + let pending = self.prepare_async_load(load, referrer, referrer_policy); + pending.fetch_async(request, fetch_target); + } + /// Mark an in-progress network request complete. pub fn finish_load(&mut self, load: &LoadType) { let idx = self.blocking_loads.iter().position(|unfinished| *unfinished == *load); diff --git a/components/script/dom/bindings/codegen/Bindings.conf b/components/script/dom/bindings/codegen/Bindings.conf index 44d835589c4..434450d2bcc 100644 --- a/components/script/dom/bindings/codegen/Bindings.conf +++ b/components/script/dom/bindings/codegen/Bindings.conf @@ -14,6 +14,10 @@ DOMInterfaces = { +'Promise': { + 'spiderMonkeyInterface': True, +}, + 'Range': { 'weakReferenceable': True, }, diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index ca7901a56e3..cc6e1660fba 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -658,7 +658,7 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, # failureCode will prevent pending exceptions from being set in cases when # they really should be! if exceptionCode is None: - exceptionCode = "return false;" + exceptionCode = "return false;\n" if failureCode is None: failOrPropagate = "throw_type_error(cx, &error);\n%s" % exceptionCode @@ -797,25 +797,69 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, descriptorType = descriptor.argumentType templateBody = "" - if descriptor.interface.isConsequential(): - raise TypeError("Consequential interface %s being used as an " - "argument" % descriptor.interface.identifier.name) - - if failureCode is None: - substitutions = { - "sourceDescription": sourceDescription, - "interface": descriptor.interface.identifier.name, - "exceptionCode": exceptionCode, - } - unwrapFailureCode = string.Template( - 'throw_type_error(cx, "${sourceDescription} does not ' - 'implement interface ${interface}.");\n' - '${exceptionCode}').substitute(substitutions) + isPromise = descriptor.interface.identifier.name == "Promise" + if isPromise: + # Per spec, what we're supposed to do is take the original + # Promise.resolve and call it with the original Promise as this + # value to make a Promise out of whatever value we actually have + # here. The question is which global we should use. There are + # a couple cases to consider: + # + # 1) Normal call to API with a Promise argument. This is a case the + # spec covers, and we should be using the current Realm's + # Promise. That means the current compartment. + # 2) Promise return value from a callback or callback interface. + # This is in theory a case the spec covers but in practice it + # really doesn't define behavior here because it doesn't define + # what Realm we're in after the callback returns, which is when + # the argument conversion happens. We will use the current + # compartment, which is the compartment of the callable (which + # may itself be a cross-compartment wrapper itself), which makes + # as much sense as anything else. In practice, such an API would + # once again be providing a Promise to signal completion of an + # operation, which would then not be exposed to anyone other than + # our own implementation code. + templateBody = fill( + """ + { // Scope for our JSAutoCompartment. + + rooted!(in(cx) let globalObj = CurrentGlobalOrNull(cx)); + let promiseGlobal = global_root_from_object_maybe_wrapped(globalObj.handle().get()); + + rooted!(in(cx) let mut valueToResolve = $${val}.get()); + if !JS_WrapValue(cx, valueToResolve.handle_mut()) { + $*{exceptionCode} + } + match Promise::Resolve(promiseGlobal.r(), cx, valueToResolve.handle()) { + Ok(value) => value, + Err(error) => { + throw_dom_exception(cx, promiseGlobal.r(), error); + $*{exceptionCode} + } + } + } + """, + exceptionCode=exceptionCode) else: - unwrapFailureCode = failureCode + if descriptor.interface.isConsequential(): + raise TypeError("Consequential interface %s being used as an " + "argument" % descriptor.interface.identifier.name) + + if failureCode is None: + substitutions = { + "sourceDescription": sourceDescription, + "interface": descriptor.interface.identifier.name, + "exceptionCode": exceptionCode, + } + unwrapFailureCode = string.Template( + 'throw_type_error(cx, "${sourceDescription} does not ' + 'implement interface ${interface}.");\n' + '${exceptionCode}').substitute(substitutions) + else: + unwrapFailureCode = failureCode - templateBody = unwrapCastableObject( - descriptor, "${val}", unwrapFailureCode, conversionFunction) + templateBody = unwrapCastableObject( + descriptor, "${val}", unwrapFailureCode, conversionFunction) declType = CGGeneric(descriptorType) if type.nullable(): @@ -4842,13 +4886,12 @@ class CGDOMJSProxyHandler_defineProperty(CGAbstractExternMethod): " let this = UnwrapProxy(proxy);\n" + " let this = &*this;\n" + CGIndenter(CGProxyIndexedSetter(self.descriptor)).define() + - " return true;\n" + + " return (*opresult).succeed();\n" + "}\n") elif self.descriptor.operations['IndexedGetter']: set += ("if get_array_index_from_id(cx, id).is_some() {\n" + - " return false;\n" + - " //return ThrowErrorMessage(cx, MSG_NO_PROPERTY_SETTER, \"%s\");\n" + - "}\n") % self.descriptor.name + " return (*opresult).failNoIndexedSetter();\n" + + "}\n") namedSetter = self.descriptor.operations['NamedSetter'] if namedSetter: @@ -4864,15 +4907,10 @@ class CGDOMJSProxyHandler_defineProperty(CGAbstractExternMethod): else: set += ("if RUST_JSID_IS_STRING(id) {\n" + CGIndenter(CGProxyNamedGetter(self.descriptor)).define() + - " if (found) {\n" - # TODO(Issue 5876) - " //return js::IsInNonStrictPropertySet(cx)\n" + - " // ? opresult.succeed()\n" + - " // : ThrowErrorMessage(cx, MSG_NO_NAMED_SETTER, \"${name}\");\n" + - " return (*opresult).succeed();\n" + - " }\n" + - " return (*opresult).succeed();\n" - "}\n") % (self.descriptor.name, self.descriptor.name) + " if result.is_some() {\n" + " return (*opresult).failNoNamedSetter();\n" + " }\n" + "}\n") set += "return proxyhandler::define_property(%s);" % ", ".join(a.name for a in self.args) return set @@ -5378,6 +5416,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'js::jsapi::AutoIdVector', 'js::jsapi::Call', 'js::jsapi::CallArgs', + 'js::jsapi::CurrentGlobalOrNull', 'js::jsapi::FreeOp', 'js::jsapi::GetPropertyKeys', 'js::jsapi::GetWellKnownSymbol', @@ -5443,12 +5482,15 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'js::jsapi::JS_SetProperty', 'js::jsapi::JS_SetReservedSlot', 'js::jsapi::JS_SplicePrototype', + 'js::jsapi::JS_WrapValue', 'js::jsapi::MutableHandle', 'js::jsapi::MutableHandleObject', 'js::jsapi::MutableHandleValue', 'js::jsapi::ObjectOpResult', 'js::jsapi::PropertyDescriptor', + 'js::jsapi::RootedId', 'js::jsapi::RootedObject', + 'js::jsapi::RootedString', 'js::jsapi::SymbolCode', 'js::jsapi::jsid', 'js::jsval::JSVal', @@ -5478,6 +5520,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'dom::bindings::constant::ConstantVal', 'dom::bindings::global::GlobalRef', 'dom::bindings::global::global_root_from_object', + 'dom::bindings::global::global_root_from_object_maybe_wrapped', 'dom::bindings::global::global_root_from_reflector', 'dom::bindings::interface::ConstructorClassHook', 'dom::bindings::interface::InterfaceConstructorBehavior', @@ -5496,6 +5539,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'dom::bindings::js::JS', 'dom::bindings::js::OptionalRootedReference', 'dom::bindings::js::Root', + 'dom::bindings::js::RootedRcReference', 'dom::bindings::js::RootedReference', 'dom::bindings::namespace::NamespaceObjectClass', 'dom::bindings::namespace::create_namespace_object', diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 6e71bd4bd00..9a1120769c8 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -194,9 +194,17 @@ class Descriptor(DescriptorProvider): typeName = desc.get('nativeType', nativeTypeDefault) - # Callback types do not use JS smart pointers, so we should not use the + spiderMonkeyInterface = desc.get('spiderMonkeyInterface', False) + + # Callback and SpiderMonkey types do not use JS smart pointers, so we should not use the # built-in rooting mechanisms for them. - if self.interface.isCallback(): + if spiderMonkeyInterface: + self.needsRooting = False + self.returnType = 'Rc<%s>' % typeName + self.argumentType = '&%s' % typeName + self.nativeType = typeName + pathDefault = 'dom::types::%s' % typeName + elif self.interface.isCallback(): self.needsRooting = False ty = 'dom::bindings::codegen::Bindings::%sBinding::%s' % (ifaceName, ifaceName) pathDefault = ty @@ -225,7 +233,8 @@ class Descriptor(DescriptorProvider): # them as having a concrete descendant. self.concrete = (not self.interface.isCallback() and not self.interface.isNamespace() and - not self.interface.getExtendedAttribute("Abstract")) + not self.interface.getExtendedAttribute("Abstract") and + not spiderMonkeyInterface) self.hasUnforgeableMembers = (self.concrete and any(MemberIsUnforgeable(m, self) for m in self.interface.members)) diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index c9cbeb09f21..1c0d49c4976 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -19,6 +19,7 @@ use js::jsapi::JS_ErrorFromException; use js::jsapi::JS_GetPendingException; use js::jsapi::JS_IsExceptionPending; use js::jsapi::JS_SetPendingException; +use js::jsapi::MutableHandleValue; use js::jsval::UndefinedValue; use libc::c_uint; use std::slice::from_raw_parts; @@ -266,3 +267,14 @@ pub unsafe fn throw_invalid_this(cx: *mut JSContext, proto_id: u16) { proto_id_to_name(proto_id)); throw_type_error(cx, &error); } + +impl Error { + /// Convert this error value to a JS value, consuming it in the process. + pub unsafe fn to_jsval(self, cx: *mut JSContext, global: GlobalRef, rval: MutableHandleValue) { + assert!(!JS_IsExceptionPending(cx)); + throw_dom_exception(cx, global, self); + assert!(JS_IsExceptionPending(cx)); + assert!(JS_GetPendingException(cx, rval)); + JS_ClearPendingException(cx); + } +} diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs index 9452972f774..9b4125bdc6a 100644 --- a/components/script/dom/bindings/global.rs +++ b/components/script/dom/bindings/global.rs @@ -18,13 +18,14 @@ use dom::window::{self, ScriptHelpers}; use dom::workerglobalscope::WorkerGlobalScope; use ipc_channel::ipc::IpcSender; use js::{JSCLASS_IS_DOMJSCLASS, JSCLASS_IS_GLOBAL}; +use js::glue::{IsWrapper, UnwrapObject}; use js::jsapi::{CurrentGlobalOrNull, GetGlobalForObjectCrossCompartment}; use js::jsapi::{JSContext, JSObject, JS_GetClass, MutableHandleValue}; use js::jsapi::HandleValue; use msg::constellation_msg::PipelineId; use net_traits::{CoreResourceThread, IpcSend, ResourceThreads}; use profile_traits::{mem, time}; -use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort}; +use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort, EnqueuedPromiseCallback}; use script_thread::{MainThreadScriptChan, RunnableWrapper, ScriptThread}; use script_traits::{MsDuration, ScriptMsg as ConstellationMsg, TimerEventRequest}; use task_source::dom_manipulation::DOMManipulationTaskSource; @@ -289,6 +290,23 @@ impl<'a> GlobalRef<'a> { } } + /// Enqueue a promise callback for subsequent execution. + pub fn enqueue_promise_job(&self, job: EnqueuedPromiseCallback) { + match *self { + GlobalRef::Window(_) => ScriptThread::enqueue_promise_job(job, *self), + GlobalRef::Worker(ref worker) => worker.enqueue_promise_job(job), + } + } + + /// Start the process of executing the pending promise callbacks. They will be invoked + /// in FIFO order, synchronously, at some point in the future. + pub fn flush_promise_jobs(&self) { + match *self { + GlobalRef::Window(_) => ScriptThread::flush_promise_jobs(*self), + GlobalRef::Worker(ref worker) => worker.flush_promise_jobs(), + } + } + /// https://html.spec.whatwg.org/multipage/#report-the-error pub fn report_an_error(&self, error_info: ErrorInfo, value: HandleValue) { match *self { @@ -356,3 +374,13 @@ pub unsafe fn global_root_from_context(cx: *mut JSContext) -> GlobalRoot { let global = CurrentGlobalOrNull(cx); global_root_from_global(global) } + +/// Returns the global object of the realm that the given JS object was created in, +/// after unwrapping any wrappers. +pub unsafe fn global_root_from_object_maybe_wrapped(mut obj: *mut JSObject) -> GlobalRoot { + if IsWrapper(obj) { + obj = UnwrapObject(obj, /* stopAtWindowProxy = */ 0); + assert!(!obj.is_null()); + } + global_root_from_object(obj) +} diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index a7ecc975129..1fd127b3b28 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -43,6 +43,7 @@ use std::intrinsics::type_name; use std::mem; use std::ops::Deref; use std::ptr; +use std::rc::Rc; use style::thread_state; /// A traced reference to a DOM object @@ -269,6 +270,12 @@ impl MutHeapJSVal { debug_assert!(thread_state::get().is_script()); unsafe { (*self.val.get()).get() } } + + /// Get the underlying unsafe pointer to the contained value. + pub unsafe fn get_unsafe(&self) -> *mut JSVal { + debug_assert!(thread_state::get().is_script()); + (*self.val.get()).get_unsafe() + } } @@ -439,6 +446,18 @@ impl<T: Reflectable> LayoutJS<T> { } } +/// Get an `&T` out of a `Rc<T>` +pub trait RootedRcReference<T> { + /// Obtain a safe reference to the wrapped non-JS owned value. + fn r(&self) -> &T; +} + +impl<T: Reflectable> RootedRcReference<T> for Rc<T> { + fn r(&self) -> &T { + &*self + } +} + /// Get an `Option<&T>` out of an `Option<Root<T>>` pub trait RootedReference<T> { /// Obtain a safe optional reference to the wrapped JS owned-value that @@ -446,6 +465,12 @@ pub trait RootedReference<T> { fn r(&self) -> Option<&T>; } +impl<T: Reflectable> RootedReference<T> for Option<Rc<T>> { + fn r(&self) -> Option<&T> { + self.as_ref().map(|root| &**root) + } +} + impl<T: Reflectable> RootedReference<T> for Option<Root<T>> { fn r(&self) -> Option<&T> { self.as_ref().map(|root| root.r()) diff --git a/components/script/dom/bindings/mozmap.rs b/components/script/dom/bindings/mozmap.rs index 557ba0662a0..d44114cd057 100644 --- a/components/script/dom/bindings/mozmap.rs +++ b/components/script/dom/bindings/mozmap.rs @@ -23,6 +23,7 @@ use std::collections::HashMap; use std::ops::Deref; /// The `MozMap` (open-ended dictionary) type. +#[derive(Clone)] pub struct MozMap<T> { map: HashMap<DOMString, T>, } diff --git a/components/script/dom/bindings/refcounted.rs b/components/script/dom/bindings/refcounted.rs index ea4c47b1148..41cc60b0210 100644 --- a/components/script/dom/bindings/refcounted.rs +++ b/components/script/dom/bindings/refcounted.rs @@ -26,6 +26,7 @@ use core::nonzero::NonZero; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflectable, Reflector}; use dom::bindings::trace::trace_reflector; +use dom::promise::Promise; use js::jsapi::JSTracer; use libc; use std::cell::RefCell; @@ -34,6 +35,7 @@ use std::collections::hash_map::HashMap; use std::hash::Hash; use std::marker::PhantomData; use std::os; +use std::rc::Rc; use std::sync::{Arc, Weak}; @@ -58,6 +60,63 @@ impl TrustedReference { } } +/// A safe wrapper around a DOM Promise object that can be shared among threads for use +/// in asynchronous operations. The underlying DOM object is guaranteed to live at least +/// as long as the last outstanding `TrustedPromise` instance. These values cannot be cloned, +/// only created from existing Rc<Promise> values. +pub struct TrustedPromise { + dom_object: *const Promise, + owner_thread: *const libc::c_void, +} + +unsafe impl Send for TrustedPromise {} + +impl TrustedPromise { + /// Create a new `TrustedPromise` instance from an existing DOM object. The object will + /// be prevented from being GCed for the duration of the resulting `TrustedPromise` object's + /// lifetime. + #[allow(unrooted_must_root)] + pub fn new(promise: Rc<Promise>) -> TrustedPromise { + LIVE_REFERENCES.with(|ref r| { + let r = r.borrow(); + let live_references = r.as_ref().unwrap(); + let ptr = &*promise as *const Promise; + live_references.addref_promise(promise); + TrustedPromise { + dom_object: ptr, + owner_thread: (&*live_references) as *const _ as *const libc::c_void, + } + }) + } + + /// Obtain a usable DOM Promise from a pinned `TrustedPromise` value. Fails if used on + /// a different thread than the original value from which this `TrustedPromise` was + /// obtained. + #[allow(unrooted_must_root)] + pub fn root(self) -> Rc<Promise> { + LIVE_REFERENCES.with(|ref r| { + let r = r.borrow(); + let live_references = r.as_ref().unwrap(); + assert!(self.owner_thread == (&*live_references) as *const _ as *const libc::c_void); + // Borrow-check error requires the redundant `let promise = ...; promise` here. + let promise = match live_references.promise_table.borrow_mut().entry(self.dom_object) { + Occupied(mut entry) => { + let promise = { + let promises = entry.get_mut(); + promises.pop().expect("rooted promise list unexpectedly empty") + }; + if entry.get().is_empty() { + entry.remove(); + } + promise + } + Vacant(_) => unreachable!(), + }; + promise + }) + } +} + /// A safe wrapper around a raw pointer to a DOM object that can be /// shared among threads for use in asynchronous operations. The underlying /// DOM object is guaranteed to live at least as long as the last outstanding @@ -117,9 +176,11 @@ impl<T: Reflectable> Clone for Trusted<T> { /// The set of live, pinned DOM objects that are currently prevented /// from being garbage collected due to outstanding references. +#[allow(unrooted_must_root)] pub struct LiveDOMReferences { // keyed on pointer to Rust DOM object - table: RefCell<HashMap<*const libc::c_void, Weak<TrustedReference>>>, + reflectable_table: RefCell<HashMap<*const libc::c_void, Weak<TrustedReference>>>, + promise_table: RefCell<HashMap<*const Promise, Vec<Rc<Promise>>>>, } impl LiveDOMReferences { @@ -127,13 +188,20 @@ impl LiveDOMReferences { pub fn initialize() { LIVE_REFERENCES.with(|ref r| { *r.borrow_mut() = Some(LiveDOMReferences { - table: RefCell::new(HashMap::new()), + reflectable_table: RefCell::new(HashMap::new()), + promise_table: RefCell::new(HashMap::new()), }) }); } + #[allow(unrooted_must_root)] + fn addref_promise(&self, promise: Rc<Promise>) { + let mut table = self.promise_table.borrow_mut(); + table.entry(&*promise).or_insert(vec![]).push(promise) + } + fn addref<T: Reflectable>(&self, ptr: *const T) -> Arc<TrustedReference> { - let mut table = self.table.borrow_mut(); + let mut table = self.reflectable_table.borrow_mut(); let capacity = table.capacity(); let len = table.len(); if (0 < capacity) && (capacity <= len) { @@ -173,17 +241,27 @@ fn remove_nulls<K: Eq + Hash + Clone, V> (table: &mut HashMap<K, Weak<V>>) { } /// A JSTraceDataOp for tracing reflectors held in LIVE_REFERENCES +#[allow(unrooted_must_root)] pub unsafe extern "C" fn trace_refcounted_objects(tracer: *mut JSTracer, _data: *mut os::raw::c_void) { info!("tracing live refcounted references"); LIVE_REFERENCES.with(|ref r| { let r = r.borrow(); let live_references = r.as_ref().unwrap(); - let mut table = live_references.table.borrow_mut(); - remove_nulls(&mut table); - for obj in table.keys() { - let reflectable = &*(*obj as *const Reflector); - trace_reflector(tracer, "refcounted", reflectable); + { + let mut table = live_references.reflectable_table.borrow_mut(); + remove_nulls(&mut table); + for obj in table.keys() { + let reflectable = &*(*obj as *const Reflector); + trace_reflector(tracer, "refcounted", reflectable); + } + } + + { + let table = live_references.promise_table.borrow_mut(); + for promise in table.keys() { + trace_reflector(tracer, "refcounted", (**promise).reflector()); + } } }); } diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 67b8832efed..53d141d114c 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -36,7 +36,7 @@ use devtools_traits::CSSError; use devtools_traits::WorkerId; use dom::abstractworker::SharedRt; use dom::bindings::js::{JS, Root}; -use dom::bindings::refcounted::Trusted; +use dom::bindings::refcounted::{Trusted, TrustedPromise}; use dom::bindings::reflector::{Reflectable, Reflector}; use dom::bindings::str::{DOMString, USVString}; use dom::bindings::utils::WindowProxyHandler; @@ -156,7 +156,7 @@ impl<T: JSTraceable> JSTraceable for Rc<T> { } } -impl<T: JSTraceable> JSTraceable for Box<T> { +impl<T: JSTraceable + ?Sized> JSTraceable for Box<T> { fn trace(&self, trc: *mut JSTracer) { (**self).trace(trc) } @@ -303,6 +303,7 @@ no_jsmanaged_fields!(Metadata); no_jsmanaged_fields!(NetworkError); no_jsmanaged_fields!(Atom, Namespace, QualName); no_jsmanaged_fields!(Trusted<T: Reflectable>); +no_jsmanaged_fields!(TrustedPromise); no_jsmanaged_fields!(PropertyDeclarationBlock); no_jsmanaged_fields!(HashSet<T>); // These three are interdependent, if you plan to put jsmanaged data diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 15cb50aa466..2cca84a625a 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -95,9 +95,10 @@ use js::jsapi::JS_GetRuntime; use msg::constellation_msg::{ALT, CONTROL, SHIFT, SUPER}; use msg::constellation_msg::{Key, KeyModifiers, KeyState}; use msg::constellation_msg::{PipelineId, ReferrerPolicy}; -use net_traits::{AsyncResponseTarget, IpcSend, PendingAsyncLoad}; +use net_traits::{AsyncResponseTarget, FetchResponseMsg, IpcSend, PendingAsyncLoad}; use net_traits::CookieSource::NonHTTP; use net_traits::CoreResourceMsg::{GetCookiesForUrl, SetCookiesForUrl}; +use net_traits::request::RequestInit; use net_traits::response::HttpsState; use num_traits::ToPrimitive; use origin::Origin; @@ -1433,6 +1434,14 @@ impl Document { loader.load_async(load, listener, self, referrer_policy); } + pub fn fetch_async(&self, load: LoadType, + request: RequestInit, + fetch_target: IpcSender<FetchResponseMsg>, + referrer_policy: Option<ReferrerPolicy>) { + let mut loader = self.loader.borrow_mut(); + loader.fetch_async(load, request, fetch_target, self, referrer_policy); + } + pub fn finish_load(&self, load: LoadType) { debug!("Document got finish_load: {:?}", load); // The parser might need the loader, so restrict the lifetime of the borrow. @@ -1520,7 +1529,7 @@ impl Document { } /// https://html.spec.whatwg.org/multipage/#the-end step 5 and the latter parts of - /// https://html.spec.whatwg.org/multipage/#prepare-a-script 15.d and 15.e. + /// https://html.spec.whatwg.org/multipage/#prepare-a-script 20.d and 20.e. pub fn process_asap_scripts(&self) { // Execute the first in-order asap-executed script if it's ready, repeat as required. // Re-borrowing the list for each step because it can also be borrowed under execute. diff --git a/components/script/dom/extendableevent.rs b/components/script/dom/extendableevent.rs index 76756b40c71..ffb6c3baad2 100644 --- a/components/script/dom/extendableevent.rs +++ b/components/script/dom/extendableevent.rs @@ -51,7 +51,7 @@ impl ExtendableEvent { } // https://w3c.github.io/ServiceWorker/#wait-until-method - pub fn WaitUntil(&self, _cx: *mut JSContext, val: HandleValue) -> ErrorResult { + pub fn WaitUntil(&self, _cx: *mut JSContext, _val: HandleValue) -> ErrorResult { // Step 1 if !self.extensions_allowed { return Err(Error::InvalidState); diff --git a/components/script/dom/headers.rs b/components/script/dom/headers.rs index b977110955c..4b832121654 100644 --- a/components/script/dom/headers.rs +++ b/components/script/dom/headers.rs @@ -3,10 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::cell::DOMRefCell; -use dom::bindings::codegen::Bindings::HeadersBinding; -use dom::bindings::codegen::Bindings::HeadersBinding::HeadersMethods; -use dom::bindings::codegen::Bindings::HeadersBinding::HeadersWrap; -use dom::bindings::codegen::UnionTypes::HeadersOrByteStringSequenceSequence; +use dom::bindings::codegen::Bindings::HeadersBinding::{HeadersInit, HeadersMethods, HeadersWrap}; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; use dom::bindings::iterable::Iterable; @@ -51,7 +48,7 @@ impl Headers { } // https://fetch.spec.whatwg.org/#dom-headers - pub fn Constructor(global: GlobalRef, init: Option<HeadersBinding::HeadersInit>) + pub fn Constructor(global: GlobalRef, init: Option<HeadersInit>) -> Fallible<Root<Headers>> { let dom_headers_new = Headers::new(global); try!(dom_headers_new.fill(init)); @@ -169,10 +166,10 @@ impl HeadersMethods for Headers { impl Headers { // https://fetch.spec.whatwg.org/#concept-headers-fill - pub fn fill(&self, filler: Option<HeadersBinding::HeadersInit>) -> ErrorResult { + pub fn fill(&self, filler: Option<HeadersInit>) -> ErrorResult { match filler { // Step 1 - Some(HeadersOrByteStringSequenceSequence::Headers(h)) => { + Some(HeadersInit::Headers(h)) => { for header in h.header_list.borrow().iter() { try!(self.Append( ByteString::new(Vec::from(header.name())), @@ -182,7 +179,7 @@ impl Headers { Ok(()) }, // Step 2 - Some(HeadersOrByteStringSequenceSequence::ByteStringSequenceSequence(v)) => { + Some(HeadersInit::ByteStringSequenceSequence(v)) => { for mut seq in v { if seq.len() == 2 { let val = seq.pop().unwrap(); @@ -196,7 +193,14 @@ impl Headers { } Ok(()) }, - // Step 3 TODO constructor for when init is an open-ended dictionary + Some(HeadersInit::ByteStringMozMap(m)) => { + for (key, value) in m.iter() { + let key_vec = key.as_ref().to_string().into(); + let headers_key = ByteString::new(key_vec); + try!(self.Append(headers_key, value.clone())); + } + Ok(()) + }, None => Ok(()), } } diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index bbffecaaf6a..1c84fbba784 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -368,7 +368,9 @@ impl HTMLLinkElementMethods for HTMLLinkElement { make_getter!(Rel, "rel"); // https://html.spec.whatwg.org/multipage/#dom-link-rel - make_setter!(SetRel, "rel"); + fn SetRel(&self, rel: DOMString) { + self.upcast::<Element>().set_tokenlist_attribute(&atom!("rel"), rel); + } // https://html.spec.whatwg.org/multipage/#dom-link-media make_getter!(Media, "media"); diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 11f4451ad50..566b69967d4 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -5,6 +5,7 @@ use document_loader::LoadType; use dom::attr::Attr; use dom::bindings::cell::DOMRefCell; +use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods; use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use dom::bindings::codegen::Bindings::HTMLScriptElementBinding; use dom::bindings::codegen::Bindings::HTMLScriptElementBinding::HTMLScriptElementMethods; @@ -14,6 +15,7 @@ use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, Root}; use dom::bindings::js::RootedReference; use dom::bindings::refcounted::Trusted; +use dom::bindings::reflector::Reflectable; use dom::bindings::str::DOMString; use dom::document::Document; use dom::element::{AttributeMutation, Element, ElementCreator}; @@ -29,7 +31,8 @@ use html5ever::tree_builder::NextParserState; use ipc_channel::ipc; use ipc_channel::router::ROUTER; use js::jsval::UndefinedValue; -use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata, NetworkError}; +use net_traits::{FetchMetadata, FetchResponseListener, Metadata, NetworkError}; +use net_traits::request::{CORSSettings, CredentialsMode, Destination, RequestInit, RequestMode, Type as RequestType}; use network_listener::{NetworkListener, PreInvoke}; use std::ascii::AsciiExt; use std::cell::Cell; @@ -151,9 +154,17 @@ struct ScriptContext { status: Result<(), NetworkError> } -impl AsyncResponseListener for ScriptContext { - fn headers_available(&mut self, metadata: Result<Metadata, NetworkError>) { - self.metadata = metadata.ok(); +impl FetchResponseListener for ScriptContext { + fn process_request_body(&mut self) {} // TODO(KiChjang): Perhaps add custom steps to perform fetch here? + + fn process_request_eof(&mut self) {} // TODO(KiChjang): Perhaps add custom steps to perform fetch here? + + fn process_response(&mut self, + metadata: Result<FetchMetadata, NetworkError>) { + self.metadata = metadata.ok().map(|meta| match meta { + FetchMetadata::Unfiltered(m) => m, + FetchMetadata::Filtered { unsafe_, .. } => unsafe_ + }); let status_code = self.metadata.as_ref().and_then(|m| { match m.status { @@ -169,18 +180,17 @@ impl AsyncResponseListener for ScriptContext { }; } - fn data_available(&mut self, payload: Vec<u8>) { + fn process_response_chunk(&mut self, mut chunk: Vec<u8>) { if self.status.is_ok() { - let mut payload = payload; - self.data.append(&mut payload); + self.data.append(&mut chunk); } } /// https://html.spec.whatwg.org/multipage/#fetch-a-classic-script /// step 4-9 - fn response_complete(&mut self, status: Result<(), NetworkError>) { + fn process_response_eof(&mut self, response: Result<(), NetworkError>) { // Step 5. - let load = status.and(self.status.clone()).map(|_| { + let load = response.and(self.status.clone()).map(|_| { let metadata = self.metadata.take().unwrap(); // Step 6. @@ -210,8 +220,38 @@ impl PreInvoke for ScriptContext {} /// https://html.spec.whatwg.org/multipage/#fetch-a-classic-script fn fetch_a_classic_script(script: &HTMLScriptElement, url: Url, + cors_setting: Option<CORSSettings>, character_encoding: EncodingRef) { - // TODO(#9186): use the fetch infrastructure. + let doc = document_from_node(script); + + // Step 1, 2. + let request = RequestInit { + url: url.clone(), + type_: RequestType::Script, + destination: Destination::Script, + // https://html.spec.whatwg.org/multipage/#create-a-potential-cors-request + // Step 1 + mode: match cors_setting { + Some(_) => RequestMode::CORSMode, + None => RequestMode::NoCORS, + }, + // https://html.spec.whatwg.org/multipage/#create-a-potential-cors-request + // Step 3-4 + credentials_mode: match cors_setting { + Some(CORSSettings::Anonymous) => CredentialsMode::CredentialsSameOrigin, + _ => CredentialsMode::Include, + }, + origin: doc.url().clone(), + pipeline_id: Some(script.global().r().pipeline_id()), + // FIXME: Set to true for now, discussion in https://github.com/whatwg/fetch/issues/381 + same_origin_data: true, + referrer_url: Some(doc.url().clone()), + referrer_policy: doc.get_referrer_policy(), + .. RequestInit::default() + }; + + // TODO: Step 3, Add custom steps to perform fetch + let context = Arc::new(Mutex::new(ScriptContext { elem: Trusted::new(script), character_encoding: character_encoding, @@ -229,14 +269,11 @@ fn fetch_a_classic_script(script: &HTMLScriptElement, script_chan: doc.window().networking_task_source(), wrapper: Some(doc.window().get_runnable_wrapper()), }; - let response_target = AsyncResponseTarget { - sender: action_sender, - }; + ROUTER.add_route(action_receiver.to_opaque(), box move |message| { - listener.notify_action(message.to().unwrap()); + listener.notify_fetch(message.to().unwrap()); }); - - doc.load_async(LoadType::Script(url), response_target, None); + doc.fetch_async(LoadType::Script(url), request, action_sender, None); } impl HTMLScriptElement { @@ -322,7 +359,13 @@ impl HTMLScriptElement { .and_then(|charset| encoding_from_whatwg_label(&charset.value())) .unwrap_or_else(|| doc.encoding()); - // TODO: Step 14: CORS. + // Step 14. + let cors_setting = match self.GetCrossOrigin() { + Some(ref s) if *s == "anonymous" => Some(CORSSettings::Anonymous), + Some(ref s) if *s == "use-credentials" => Some(CORSSettings::UseCredentials), + None => None, + _ => unreachable!() + }; // TODO: Step 15: Nonce. @@ -354,10 +397,11 @@ impl HTMLScriptElement { }; // Step 18.6. - fetch_a_classic_script(self, url, encoding); + fetch_a_classic_script(self, url, cors_setting, encoding); true }, + // TODO: Step 19. None => false, }; @@ -652,6 +696,32 @@ impl HTMLScriptElementMethods for HTMLScriptElement { // https://html.spec.whatwg.org/multipage/#dom-script-htmlfor make_setter!(SetHtmlFor, "for"); + // https://html.spec.whatwg.org/multipage/#dom-script-crossorigin + fn GetCrossOrigin(&self) -> Option<DOMString> { + let element = self.upcast::<Element>(); + let attr = element.get_attribute(&ns!(), &atom!("crossorigin")); + + if let Some(mut val) = attr.map(|v| v.Value()) { + val.make_ascii_lowercase(); + if val == "anonymous" || val == "use-credentials" { + return Some(val); + } + return Some(DOMString::from("anonymous")); + } + None + } + + // https://html.spec.whatwg.org/multipage/#dom-script-crossorigin + fn SetCrossOrigin(&self, value: Option<DOMString>) { + let element = self.upcast::<Element>(); + match value { + Some(val) => element.set_string_attribute(&atom!("crossorigin"), val), + None => { + element.remove_attribute(&ns!(), &atom!("crossorigin")); + } + } + } + // https://html.spec.whatwg.org/multipage/#dom-script-text fn Text(&self) -> DOMString { Node::collect_text_contents(self.upcast::<Node>().children()) diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 222dff3e52c..6cf63c7e630 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -6,6 +6,7 @@ use dom::attr::Attr; use dom::bindings::codegen::Bindings::HTMLOptionElementBinding::HTMLOptionElementMethods; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding; use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods; +use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::UnionTypes::HTMLElementOrLong; use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement; use dom::bindings::inheritance::Castable; @@ -17,7 +18,7 @@ use dom::htmlelement::HTMLElement; use dom::htmlfieldsetelement::HTMLFieldSetElement; use dom::htmlformelement::{FormDatumValue, FormControl, FormDatum, HTMLFormElement}; use dom::htmloptionelement::HTMLOptionElement; -use dom::node::{Node, UnbindContext, window_from_node}; +use dom::node::{document_from_node, Node, UnbindContext, window_from_node}; use dom::nodelist::NodeList; use dom::validation::Validatable; use dom::validitystate::ValidityState; @@ -183,6 +184,50 @@ impl HTMLSelectElementMethods for HTMLSelectElement { fn Labels(&self) -> Root<NodeList> { self.upcast::<HTMLElement>().labels() } + + // https://html.spec.whatwg.org/multipage/#dom-select-length + fn SetLength(&self, value: u32) { + let length = self.Length(); + let node = self.upcast::<Node>(); + if value < length { // truncate the number of option elements + let mut iter = node.rev_children().take((length - value) as usize); + while let Some(child) = iter.next() { + if let Err(e) = node.RemoveChild(&child) { + warn!("Error removing child of HTMLSelectElement: {:?}", e); + } + } + } else if value > length { // add new blank option elements + let document = document_from_node(self); + for _ in 0..(value - length) { + let element = HTMLOptionElement::new(atom!("option"), None, &document.upcast()); + if let Err(e) = node.AppendChild(element.upcast()) { + warn!("error appending child of HTMLSelectElement: {:?}", e); + } + } + } + } + + // https://html.spec.whatwg.org/multipage/#dom-select-length + fn Length(&self) -> u32 { + self.upcast::<Node>() + .traverse_preorder() + .filter_map(Root::downcast::<HTMLOptionElement>) + .count() as u32 + } + + // https://html.spec.whatwg.org/multipage/#dom-select-item + fn Item(&self, index: u32) -> Option<Root<Element>> { + self.upcast::<Node>() + .traverse_preorder() + .filter_map(Root::downcast::<HTMLOptionElement>) + .nth(index as usize) + .map(|item| Root::from_ref(item.upcast())) + } + + // https://html.spec.whatwg.org/multipage/#dom-select-item + fn IndexedGetter(&self, index: u32) -> Option<Root<Element>> { + self.Item(index) + } } impl VirtualMethods for HTMLSelectElement { diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index 5f6b4fffbdc..24951c0c075 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -373,6 +373,8 @@ pub mod pluginarray; pub mod popstateevent; pub mod processinginstruction; pub mod progressevent; +pub mod promise; +pub mod promisenativehandler; pub mod radionodelist; pub mod range; pub mod request; diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs new file mode 100644 index 00000000000..5fd1ef6f85e --- /dev/null +++ b/components/script/dom/promise.rs @@ -0,0 +1,288 @@ +/* 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/. */ + +//! Native representation of JS Promise values. +//! +//! This implementation differs from the traditional Rust DOM object, because the reflector +//! is provided by SpiderMonkey and has no knowledge of an associated native representation +//! (ie. dom::Promise). This means that native instances use native reference counting (Rc) +//! to ensure that no memory is leaked, which means that there can be multiple instances of +//! native Promise values that refer to the same JS value yet are distinct native objects +//! (ie. address equality for the native objects is meaningless). + +use dom::bindings::callback::CallbackContainer; +use dom::bindings::codegen::Bindings::PromiseBinding::AnyCallback; +use dom::bindings::conversions::root_from_object; +use dom::bindings::error::{Error, Fallible}; +use dom::bindings::global::GlobalRef; +use dom::bindings::js::MutHeapJSVal; +use dom::bindings::reflector::{Reflectable, MutReflectable, Reflector}; +use dom::promisenativehandler::PromiseNativeHandler; +use js::conversions::ToJSValConvertible; +use js::jsapi::{CallOriginalPromiseResolve, CallOriginalPromiseReject, CallOriginalPromiseThen}; +use js::jsapi::{JSAutoCompartment, CallArgs, JS_GetFunctionObject, JS_NewFunction}; +use js::jsapi::{JSContext, HandleValue, HandleObject, IsPromiseObject, GetFunctionNativeReserved}; +use js::jsapi::{JS_ClearPendingException, JSObject, AddRawValueRoot, RemoveRawValueRoot}; +use js::jsapi::{MutableHandleObject, NewPromiseObject, ResolvePromise, RejectPromise}; +use js::jsapi::{SetFunctionNativeReserved, NewFunctionWithReserved, AddPromiseReactions}; +use js::jsval::{JSVal, UndefinedValue, ObjectValue, Int32Value}; +use std::ptr; +use std::rc::Rc; + +#[dom_struct] +pub struct Promise { + reflector: Reflector, + /// Since Promise values are natively reference counted without the knowledge of + /// the SpiderMonkey GC, an explicit root for the reflector is stored while any + /// native instance exists. This ensures that the reflector will never be GCed + /// while native code could still interact with its native representation. + #[ignore_heap_size_of = "SM handles JS values"] + permanent_js_root: MutHeapJSVal, +} + +/// Private helper to enable adding new methods to Rc<Promise>. +trait PromiseHelper { + #[allow(unsafe_code)] + unsafe fn initialize(&self, cx: *mut JSContext); +} + +impl PromiseHelper for Rc<Promise> { + #[allow(unsafe_code)] + unsafe fn initialize(&self, cx: *mut JSContext) { + let obj = self.reflector().get_jsobject(); + self.permanent_js_root.set(ObjectValue(&**obj)); + assert!(AddRawValueRoot(cx, + self.permanent_js_root.get_unsafe(), + b"Promise::root\0" as *const _ as *const _)); + } +} + +impl Drop for Promise { + #[allow(unsafe_code)] + fn drop(&mut self) { + let cx = self.global().r().get_cx(); + unsafe { + RemoveRawValueRoot(cx, self.permanent_js_root.get_unsafe()); + } + } +} + +impl Promise { + #[allow(unsafe_code)] + pub fn new(global: GlobalRef) -> Rc<Promise> { + let cx = global.get_cx(); + rooted!(in(cx) let mut obj = ptr::null_mut()); + unsafe { + Promise::create_js_promise(cx, HandleObject::null(), obj.handle_mut()); + Promise::new_with_js_promise(obj.handle(), cx) + } + } + + #[allow(unsafe_code, unrooted_must_root)] + pub fn duplicate(&self) -> Rc<Promise> { + let cx = self.global().r().get_cx(); + unsafe { + Promise::new_with_js_promise(self.reflector().get_jsobject(), cx) + } + } + + #[allow(unsafe_code, unrooted_must_root)] + unsafe fn new_with_js_promise(obj: HandleObject, cx: *mut JSContext) -> Rc<Promise> { + assert!(IsPromiseObject(obj)); + let mut promise = Promise { + reflector: Reflector::new(), + permanent_js_root: MutHeapJSVal::new(), + }; + promise.init_reflector(obj.get()); + let promise = Rc::new(promise); + promise.initialize(cx); + promise + } + + #[allow(unsafe_code)] + unsafe fn create_js_promise(cx: *mut JSContext, proto: HandleObject, obj: MutableHandleObject) { + let do_nothing_func = JS_NewFunction(cx, Some(do_nothing_promise_executor), /* nargs = */ 2, + /* flags = */ 0, ptr::null()); + assert!(!do_nothing_func.is_null()); + rooted!(in(cx) let do_nothing_obj = JS_GetFunctionObject(do_nothing_func)); + assert!(!do_nothing_obj.is_null()); + obj.set(NewPromiseObject(cx, do_nothing_obj.handle(), proto)); + assert!(!obj.is_null()); + } + + #[allow(unrooted_must_root, unsafe_code)] + pub fn Resolve(global: GlobalRef, + cx: *mut JSContext, + value: HandleValue) -> Fallible<Rc<Promise>> { + let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get()); + rooted!(in(cx) let p = unsafe { CallOriginalPromiseResolve(cx, value) }); + assert!(!p.handle().is_null()); + unsafe { + Ok(Promise::new_with_js_promise(p.handle(), cx)) + } + } + + #[allow(unrooted_must_root, unsafe_code)] + pub fn Reject(global: GlobalRef, + cx: *mut JSContext, + value: HandleValue) -> Fallible<Rc<Promise>> { + let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get()); + rooted!(in(cx) let p = unsafe { CallOriginalPromiseReject(cx, value) }); + assert!(!p.handle().is_null()); + unsafe { + Ok(Promise::new_with_js_promise(p.handle(), cx)) + } + } + + #[allow(unsafe_code)] + pub fn resolve_native<T>(&self, cx: *mut JSContext, val: &T) where T: ToJSValConvertible { + rooted!(in(cx) let mut v = UndefinedValue()); + unsafe { + val.to_jsval(cx, v.handle_mut()); + } + self.resolve(cx, v.handle()); + } + + #[allow(unrooted_must_root, unsafe_code)] + pub fn resolve(&self, cx: *mut JSContext, value: HandleValue) { + unsafe { + if !ResolvePromise(cx, self.promise_obj(), value) { + JS_ClearPendingException(cx); + } + } + } + + #[allow(unsafe_code)] + pub fn reject_native<T>(&self, cx: *mut JSContext, val: &T) where T: ToJSValConvertible { + rooted!(in(cx) let mut v = UndefinedValue()); + unsafe { + val.to_jsval(cx, v.handle_mut()); + } + self.reject(cx, v.handle()); + } + + #[allow(unsafe_code)] + pub fn reject_error(&self, cx: *mut JSContext, error: Error) { + rooted!(in(cx) let mut v = UndefinedValue()); + unsafe { + error.to_jsval(cx, self.global().r(), v.handle_mut()); + } + self.reject(cx, v.handle()); + } + + #[allow(unrooted_must_root, unsafe_code)] + pub fn reject(&self, + cx: *mut JSContext, + value: HandleValue) { + unsafe { + if !RejectPromise(cx, self.promise_obj(), value) { + JS_ClearPendingException(cx); + } + } + } + + #[allow(unrooted_must_root, unsafe_code)] + pub fn then(&self, + cx: *mut JSContext, + _callee: HandleObject, + cb_resolve: AnyCallback, + cb_reject: AnyCallback, + result: MutableHandleObject) { + let promise = self.promise_obj(); + rooted!(in(cx) let resolve = cb_resolve.callback()); + rooted!(in(cx) let reject = cb_reject.callback()); + unsafe { + rooted!(in(cx) let res = + CallOriginalPromiseThen(cx, promise, resolve.handle(), reject.handle())); + result.set(*res); + } + } + + #[allow(unsafe_code)] + fn promise_obj(&self) -> HandleObject { + let obj = self.reflector().get_jsobject(); + unsafe { + assert!(IsPromiseObject(obj)); + } + obj + } + + #[allow(unsafe_code)] + pub fn append_native_handler(&self, handler: &PromiseNativeHandler) { + let global = self.global(); + let cx = global.r().get_cx(); + rooted!(in(cx) let resolve_func = + create_native_handler_function(cx, + handler.reflector().get_jsobject(), + NativeHandlerTask::Resolve)); + + rooted!(in(cx) let reject_func = + create_native_handler_function(cx, + handler.reflector().get_jsobject(), + NativeHandlerTask::Reject)); + + unsafe { + let ok = AddPromiseReactions(cx, + self.promise_obj(), + resolve_func.handle(), + reject_func.handle()); + assert!(ok); + } + } +} + +#[allow(unsafe_code)] +unsafe extern fn do_nothing_promise_executor(_cx: *mut JSContext, argc: u32, vp: *mut JSVal) -> bool { + let args = CallArgs::from_vp(vp, argc); + *args.rval() = UndefinedValue(); + true +} + +const SLOT_NATIVEHANDLER: usize = 0; +const SLOT_NATIVEHANDLER_TASK: usize = 1; + +#[derive(PartialEq)] +enum NativeHandlerTask { + Resolve = 0, + Reject = 1, +} + +#[allow(unsafe_code)] +unsafe extern fn native_handler_callback(cx: *mut JSContext, argc: u32, vp: *mut JSVal) -> bool { + let args = CallArgs::from_vp(vp, argc); + rooted!(in(cx) let v = *GetFunctionNativeReserved(args.callee(), SLOT_NATIVEHANDLER)); + assert!(v.get().is_object()); + + let handler = root_from_object::<PromiseNativeHandler>(v.to_object()) + .ok().expect("unexpected value for native handler in promise native handler callback"); + + rooted!(in(cx) let v = *GetFunctionNativeReserved(args.callee(), SLOT_NATIVEHANDLER_TASK)); + match v.to_int32() { + v if v == NativeHandlerTask::Resolve as i32 => handler.resolved_callback(cx, args.get(0)), + v if v == NativeHandlerTask::Reject as i32 => handler.rejected_callback(cx, args.get(0)), + _ => panic!("unexpected native handler task value"), + }; + + true +} + +#[allow(unsafe_code)] +fn create_native_handler_function(cx: *mut JSContext, + holder: HandleObject, + task: NativeHandlerTask) -> *mut JSObject { + unsafe { + let func = NewFunctionWithReserved(cx, Some(native_handler_callback), 1, 0, ptr::null()); + assert!(!func.is_null()); + + rooted!(in(cx) let obj = JS_GetFunctionObject(func)); + assert!(!obj.is_null()); + SetFunctionNativeReserved(obj.get(), + SLOT_NATIVEHANDLER, + &ObjectValue(&**holder)); + SetFunctionNativeReserved(obj.get(), + SLOT_NATIVEHANDLER_TASK, + &Int32Value(task as i32)); + obj.get() + } +} diff --git a/components/script/dom/promisenativehandler.rs b/components/script/dom/promisenativehandler.rs new file mode 100644 index 00000000000..603122556ef --- /dev/null +++ b/components/script/dom/promisenativehandler.rs @@ -0,0 +1,49 @@ +/* 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/. */ + +use dom::bindings::codegen::Bindings::PromiseNativeHandlerBinding; +use dom::bindings::global::GlobalRef; +use dom::bindings::js::Root; +use dom::bindings::reflector::{Reflector, reflect_dom_object}; +use dom::bindings::trace::JSTraceable; +use heapsize::HeapSizeOf; +use js::jsapi::{JSContext, HandleValue}; + +pub trait Callback: JSTraceable + HeapSizeOf { + fn callback(&self, cx: *mut JSContext, v: HandleValue); +} + +#[dom_struct] +pub struct PromiseNativeHandler { + reflector: Reflector, + resolve: Option<Box<Callback>>, + reject: Option<Box<Callback>>, +} + +impl PromiseNativeHandler { + pub fn new(global: GlobalRef, + resolve: Option<Box<Callback>>, + reject: Option<Box<Callback>>) + -> Root<PromiseNativeHandler> { + reflect_dom_object(box PromiseNativeHandler { + reflector: Reflector::new(), + resolve: resolve, + reject: reject, + }, global, PromiseNativeHandlerBinding::Wrap) + } + + fn callback(callback: &Option<Box<Callback>>, cx: *mut JSContext, v: HandleValue) { + if let Some(ref callback) = *callback { + callback.callback(cx, v) + } + } + + pub fn resolved_callback(&self, cx: *mut JSContext, v: HandleValue) { + PromiseNativeHandler::callback(&self.resolve, cx, v) + } + + pub fn rejected_callback(&self, cx: *mut JSContext, v: HandleValue) { + PromiseNativeHandler::callback(&self.reject, cx, v) + } +} diff --git a/components/script/dom/request.rs b/components/script/dom/request.rs index e8eb62c3f05..149c61c96ee 100644 --- a/components/script/dom/request.rs +++ b/components/script/dom/request.rs @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::cell::DOMRefCell; +use dom::bindings::codegen::Bindings::HeadersBinding::HeadersInit; use dom::bindings::codegen::Bindings::RequestBinding; use dom::bindings::codegen::Bindings::RequestBinding::ReferrerPolicy; use dom::bindings::codegen::Bindings::RequestBinding::RequestCache; @@ -14,7 +15,6 @@ use dom::bindings::codegen::Bindings::RequestBinding::RequestMethods; use dom::bindings::codegen::Bindings::RequestBinding::RequestMode; use dom::bindings::codegen::Bindings::RequestBinding::RequestRedirect; use dom::bindings::codegen::Bindings::RequestBinding::RequestType; -use dom::bindings::codegen::UnionTypes::HeadersOrByteStringSequenceSequence; use dom::bindings::error::{Error, Fallible}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, MutNullableHeap, Root}; @@ -312,7 +312,7 @@ impl Request { // Step 28 if let Some(possible_header) = init.headers.as_ref() { - if let &HeadersOrByteStringSequenceSequence::Headers(ref init_headers) = possible_header { + if let &HeadersInit::Headers(ref init_headers) = possible_header { headers_copy = init_headers.clone(); } } @@ -337,7 +337,7 @@ impl Request { } // Step 31 - try!(r.Headers().fill(Some(HeadersOrByteStringSequenceSequence::Headers(headers_copy)))); + try!(r.Headers().fill(Some(HeadersInit::Headers(headers_copy)))); // Step 32 let input_body = if let RequestInfo::Request(ref input_request) = input { @@ -796,13 +796,15 @@ impl Into<RequestRedirect> for NetTraitsRequestRedirect { } } -impl Clone for HeadersOrByteStringSequenceSequence { - fn clone(&self) -> HeadersOrByteStringSequenceSequence { +impl Clone for HeadersInit { + fn clone(&self) -> HeadersInit { match self { - &HeadersOrByteStringSequenceSequence::Headers(ref h) => - HeadersOrByteStringSequenceSequence::Headers(h.clone()), - &HeadersOrByteStringSequenceSequence::ByteStringSequenceSequence(ref b) => - HeadersOrByteStringSequenceSequence::ByteStringSequenceSequence(b.clone()), + &HeadersInit::Headers(ref h) => + HeadersInit::Headers(h.clone()), + &HeadersInit::ByteStringSequenceSequence(ref b) => + HeadersInit::ByteStringSequenceSequence(b.clone()), + &HeadersInit::ByteStringMozMap(ref m) => + HeadersInit::ByteStringMozMap(m.clone()), } } } diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs index 566ff2d9375..6f7d7baf770 100644 --- a/components/script/dom/testbinding.rs +++ b/components/script/dom/testbinding.rs @@ -5,9 +5,10 @@ // check-tidy: no specs after this line use core::nonzero::NonZero; +use dom::bindings::callback::ExceptionHandling; use dom::bindings::codegen::Bindings::EventListenerBinding::EventListener; use dom::bindings::codegen::Bindings::FunctionBinding::Function; -use dom::bindings::codegen::Bindings::TestBindingBinding; +use dom::bindings::codegen::Bindings::TestBindingBinding::{self, SimpleCallback}; use dom::bindings::codegen::Bindings::TestBindingBinding::{TestBindingMethods, TestDictionary}; use dom::bindings::codegen::Bindings::TestBindingBinding::{TestDictionaryDefaults, TestEnum}; use dom::bindings::codegen::UnionTypes; @@ -19,22 +20,27 @@ use dom::bindings::codegen::UnionTypes::{EventOrUSVString, HTMLElementOrLong, Lo use dom::bindings::codegen::UnionTypes::{HTMLElementOrUnsignedLongOrStringOrBoolean, LongSequenceOrBoolean}; use dom::bindings::codegen::UnionTypes::{StringOrLongSequence, StringOrStringSequence, StringSequenceOrUnsignedLong}; use dom::bindings::codegen::UnionTypes::{StringOrUnsignedLong, StringOrBoolean, UnsignedLongOrBoolean}; -use dom::bindings::error::Fallible; -use dom::bindings::global::GlobalRef; +use dom::bindings::error::{Error, Fallible}; +use dom::bindings::global::{GlobalRef, global_root_from_context}; use dom::bindings::js::Root; use dom::bindings::mozmap::MozMap; use dom::bindings::num::Finite; +use dom::bindings::refcounted::TrustedPromise; use dom::bindings::reflector::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::str::{ByteString, DOMString, USVString}; use dom::bindings::weakref::MutableWeakRef; use dom::blob::{Blob, BlobImpl}; +use dom::promise::Promise; +use dom::promisenativehandler::{PromiseNativeHandler, Callback}; use dom::url::URL; -use js::jsapi::{HandleObject, HandleValue, JSContext, JSObject}; +use js::jsapi::{HandleObject, HandleValue, JSContext, JSObject, JSAutoCompartment}; use js::jsapi::{JS_NewPlainObject, JS_NewUint8ClampedArray}; use js::jsval::{JSVal, NullValue}; +use script_traits::MsDuration; use std::borrow::ToOwned; use std::ptr; use std::rc::Rc; +use timers::OneshotTimerCallback; use util::prefs::PREFS; #[dom_struct] @@ -647,6 +653,81 @@ impl TestBindingMethods for TestBinding { fn ReceiveMozMapOfMozMaps(&self) -> MozMap<MozMap<i32>> { MozMap::new() } fn ReceiveAnyMozMap(&self) -> MozMap<JSVal> { MozMap::new() } + #[allow(unrooted_must_root)] + fn ReturnResolvedPromise(&self, cx: *mut JSContext, v: HandleValue) -> Fallible<Rc<Promise>> { + Promise::Resolve(self.global().r(), cx, v) + } + + #[allow(unrooted_must_root)] + fn ReturnRejectedPromise(&self, cx: *mut JSContext, v: HandleValue) -> Fallible<Rc<Promise>> { + Promise::Reject(self.global().r(), cx, v) + } + + fn PromiseResolveNative(&self, cx: *mut JSContext, p: &Promise, v: HandleValue) { + p.resolve(cx, v); + } + + fn PromiseRejectNative(&self, cx: *mut JSContext, p: &Promise, v: HandleValue) { + p.reject(cx, v); + } + + fn PromiseRejectWithTypeError(&self, p: &Promise, s: USVString) { + p.reject_error(self.global().r().get_cx(), Error::Type(s.0)); + } + + #[allow(unrooted_must_root)] + fn ResolvePromiseDelayed(&self, p: &Promise, value: DOMString, delay: u64) { + let promise = p.duplicate(); + let cb = TestBindingCallback { + promise: TrustedPromise::new(promise), + value: value, + }; + let _ = self.global().r().schedule_callback(OneshotTimerCallback::TestBindingCallback(cb), + MsDuration::new(delay)); + } + + #[allow(unrooted_must_root)] + fn PromiseNativeHandler(&self, + resolve: Option<Rc<SimpleCallback>>, + reject: Option<Rc<SimpleCallback>>) -> Rc<Promise> { + let global = self.global(); + let handler = PromiseNativeHandler::new(global.r(), + resolve.map(SimpleHandler::new), + reject.map(SimpleHandler::new)); + let p = Promise::new(global.r()); + p.append_native_handler(&handler); + return p; + + #[derive(JSTraceable, HeapSizeOf)] + struct SimpleHandler { + #[ignore_heap_size_of = "Rc has unclear ownership semantics"] + handler: Rc<SimpleCallback>, + } + impl SimpleHandler { + fn new(callback: Rc<SimpleCallback>) -> Box<Callback> { + box SimpleHandler { handler: callback } + } + } + impl Callback for SimpleHandler { + #[allow(unsafe_code)] + fn callback(&self, cx: *mut JSContext, v: HandleValue) { + let global = unsafe { global_root_from_context(cx) }; + let _ = self.handler.Call_(&global.r(), v, ExceptionHandling::Report); + } + } + } + + #[allow(unrooted_must_root)] + fn PromiseAttribute(&self) -> Rc<Promise> { + Promise::new(self.global().r()) + } + + fn AcceptPromise(&self, _promise: &Promise) { + } + + fn AcceptNullablePromise(&self, _promise: Option<&Promise>) { + } + fn PassSequenceSequence(&self, _seq: Vec<Vec<i32>>) {} fn ReturnSequenceSequence(&self) -> Vec<Vec<i32>> { vec![] } fn PassUnionSequenceSequence(&self, seq: LongOrLongSequenceSequence) { @@ -693,3 +774,20 @@ impl TestBinding { pub unsafe fn condition_satisfied(_: *mut JSContext, _: HandleObject) -> bool { true } pub unsafe fn condition_unsatisfied(_: *mut JSContext, _: HandleObject) -> bool { false } } + +#[derive(JSTraceable, HeapSizeOf)] +pub struct TestBindingCallback { + #[ignore_heap_size_of = "unclear ownership semantics"] + promise: TrustedPromise, + value: DOMString, +} + +impl TestBindingCallback { + #[allow(unrooted_must_root)] + pub fn invoke(self) { + let p = self.promise.root(); + let cx = p.global().r().get_cx(); + let _ac = JSAutoCompartment::new(cx, p.reflector().get_jsobject().get()); + p.resolve_native(cx, &self.value); + } +} diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index f42eeab4dbf..d1342190f73 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -511,6 +511,19 @@ impl WebGLRenderingContext { .send(CanvasMsg::WebGL(msg)) .unwrap() } + + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14 + fn validate_feature_enum(&self, cap: u32) -> bool { + match cap { + constants::BLEND | constants::CULL_FACE | constants::DEPTH_TEST | constants::DITHER | + constants::POLYGON_OFFSET_FILL | constants::SAMPLE_ALPHA_TO_COVERAGE | constants::SAMPLE_COVERAGE | + constants::SAMPLE_COVERAGE_INVERT | constants::SCISSOR_TEST => true, + _ => { + self.webgl_error(InvalidEnum); + false + }, + } + } } impl Drop for WebGLRenderingContext { @@ -1114,27 +1127,19 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn Enable(&self, cap: u32) { - match cap { - constants::BLEND | constants::CULL_FACE | constants::DEPTH_TEST | constants::DITHER | - constants::POLYGON_OFFSET_FILL | constants::SAMPLE_ALPHA_TO_COVERAGE | constants::SAMPLE_COVERAGE | - constants::SAMPLE_COVERAGE_INVERT | constants::SCISSOR_TEST => - self.ipc_renderer - .send(CanvasMsg::WebGL(WebGLCommand::Enable(cap))) - .unwrap(), - _ => self.webgl_error(InvalidEnum), + if self.validate_feature_enum(cap) { + self.ipc_renderer + .send(CanvasMsg::WebGL(WebGLCommand::Enable(cap))) + .unwrap(); } } // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 fn Disable(&self, cap: u32) { - match cap { - constants::BLEND | constants::CULL_FACE | constants::DEPTH_TEST | constants::DITHER | - constants::POLYGON_OFFSET_FILL | constants::SAMPLE_ALPHA_TO_COVERAGE | constants::SAMPLE_COVERAGE | - constants::SAMPLE_COVERAGE_INVERT | constants::SCISSOR_TEST => - self.ipc_renderer - .send(CanvasMsg::WebGL(WebGLCommand::Disable(cap))) - .unwrap(), - _ => self.webgl_error(InvalidEnum), + if self.validate_feature_enum(cap) { + self.ipc_renderer + .send(CanvasMsg::WebGL(WebGLCommand::Disable(cap))) + .unwrap() } } @@ -1455,6 +1460,20 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { buffer.map_or(false, |buf| buf.target().is_some() && !buf.is_deleted()) } + // TODO: We could write this without IPC, recording the calls to `enable` and `disable`. + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 + fn IsEnabled(&self, cap: u32) -> bool { + if self.validate_feature_enum(cap) { + let (sender, receiver) = ipc::channel().unwrap(); + self.ipc_renderer + .send(CanvasMsg::WebGL(WebGLCommand::IsEnabled(cap, sender))) + .unwrap(); + return receiver.recv().unwrap(); + } + + false + } + // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6 fn IsFramebuffer(&self, frame_buffer: Option<&WebGLFramebuffer>) -> bool { frame_buffer.map_or(false, |buf| buf.target().is_some() && !buf.is_deleted()) diff --git a/components/script/dom/webidls/HTMLScriptElement.webidl b/components/script/dom/webidls/HTMLScriptElement.webidl index 17df2e7e08b..1636df7a12b 100644 --- a/components/script/dom/webidls/HTMLScriptElement.webidl +++ b/components/script/dom/webidls/HTMLScriptElement.webidl @@ -10,7 +10,7 @@ interface HTMLScriptElement : HTMLElement { attribute DOMString charset; // attribute boolean async; attribute boolean defer; - // attribute DOMString crossOrigin; + attribute DOMString? crossOrigin; [Pure] attribute DOMString text; diff --git a/components/script/dom/webidls/HTMLSelectElement.webidl b/components/script/dom/webidls/HTMLSelectElement.webidl index ba84d183a72..b513806f965 100644 --- a/components/script/dom/webidls/HTMLSelectElement.webidl +++ b/components/script/dom/webidls/HTMLSelectElement.webidl @@ -15,8 +15,8 @@ interface HTMLSelectElement : HTMLElement { readonly attribute DOMString type; //readonly attribute HTMLOptionsCollection options; - // attribute unsigned long length; - //getter Element? item(unsigned long index); + attribute unsigned long length; + getter Element? item(unsigned long index); //HTMLOptionElement? namedItem(DOMString name); // Note: this function currently only exists for union.html. void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); diff --git a/components/script/dom/webidls/Headers.webidl b/components/script/dom/webidls/Headers.webidl index ee3d4b2fe94..5ae08ad2bd7 100644 --- a/components/script/dom/webidls/Headers.webidl +++ b/components/script/dom/webidls/Headers.webidl @@ -4,8 +4,7 @@ // https://fetch.spec.whatwg.org/#headers-class -// TODO support OpenEndedDictionary<ByteString> -typedef (Headers or sequence<sequence<ByteString>>) HeadersInit; +typedef (Headers or sequence<sequence<ByteString>> or MozMap<ByteString>) HeadersInit; [Constructor(optional HeadersInit init), Exposed=(Window,Worker)] diff --git a/components/script/dom/webidls/Promise.webidl b/components/script/dom/webidls/Promise.webidl new file mode 100644 index 00000000000..5897ff422f9 --- /dev/null +++ b/components/script/dom/webidls/Promise.webidl @@ -0,0 +1,16 @@ +/* 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/. */ + +// This interface is entirely internal to Servo, and should not be accessible to +// web pages. + +callback PromiseJobCallback = void(); + +[TreatNonCallableAsNull] +callback AnyCallback = any (any value); + +[NoInterfaceObject, Exposed=(Window,Worker)] +// Need to escape "Promise" so it's treated as an identifier. +interface _Promise { +}; diff --git a/components/script/dom/webidls/PromiseNativeHandler.webidl b/components/script/dom/webidls/PromiseNativeHandler.webidl new file mode 100644 index 00000000000..caa1692dfd3 --- /dev/null +++ b/components/script/dom/webidls/PromiseNativeHandler.webidl @@ -0,0 +1,13 @@ +/* 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/. */ + +// This interface is entirely internal to Servo, and should not be accessible to +// web pages. + +// Hack to allow us to have JS owning and properly tracing/CCing/etc a +// PromiseNativeHandler. +[NoInterfaceObject, + Exposed=(Window,Worker)] +interface PromiseNativeHandler { +}; diff --git a/components/script/dom/webidls/TestBinding.webidl b/components/script/dom/webidls/TestBinding.webidl index e35b914d08e..c3274057a40 100644 --- a/components/script/dom/webidls/TestBinding.webidl +++ b/components/script/dom/webidls/TestBinding.webidl @@ -508,9 +508,24 @@ interface TestBinding { [Func="TestBinding::condition_satisfied"] const unsigned short funcControlledConstEnabled = 0; + [Throws] + Promise<any> returnResolvedPromise(any value); + [Throws] + Promise<any> returnRejectedPromise(any value); + readonly attribute Promise<boolean> promiseAttribute; + void acceptPromise(Promise<DOMString> string); + void acceptNullablePromise(Promise<DOMString>? string); + Promise<any> promiseNativeHandler(SimpleCallback? resolve, SimpleCallback? reject); + void promiseResolveNative(Promise<any> p, any value); + void promiseRejectNative(Promise<any> p, any value); + void promiseRejectWithTypeError(Promise<any> p, USVString message); + void resolvePromiseDelayed(Promise<any> p, DOMString value, unsigned long long ms); + void panic(); }; +callback SimpleCallback = void(any value); + partial interface TestBinding { [Pref="dom.testable_crash.enabled"] void crashHard(); diff --git a/components/script/dom/webidls/WebGLRenderingContext.webidl b/components/script/dom/webidls/WebGLRenderingContext.webidl index e95ce00e5e5..06727b3a536 100644 --- a/components/script/dom/webidls/WebGLRenderingContext.webidl +++ b/components/script/dom/webidls/WebGLRenderingContext.webidl @@ -603,7 +603,7 @@ interface WebGLRenderingContextBase void hint(GLenum target, GLenum mode); [WebGLHandlesContextLoss] GLboolean isBuffer(WebGLBuffer? buffer); - //[WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap); + [WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap); [WebGLHandlesContextLoss] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer); [WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program); [WebGLHandlesContextLoss] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer); diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index bb9a9c3f4ab..2520f57dbac 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -7,9 +7,10 @@ use dom::bindings::codegen::Bindings::EventHandlerBinding::OnErrorEventHandlerNo use dom::bindings::codegen::Bindings::FunctionBinding::Function; use dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods; use dom::bindings::error::{Error, ErrorResult, Fallible, report_pending_exception, ErrorInfo}; -use dom::bindings::global::GlobalRef; +use dom::bindings::global::{GlobalRef, GlobalRoot}; use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, MutNullableHeap, Root}; +use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::Reflectable; use dom::bindings::str::DOMString; use dom::console::TimerSet; @@ -29,7 +30,8 @@ use net_traits::{IpcSend, LoadOrigin}; use net_traits::{LoadContext, ResourceThreads, load_whole_resource}; use profile_traits::{mem, time}; use script_runtime::{CommonScriptMsg, ScriptChan, ScriptPort, maybe_take_panic_result}; -use script_thread::RunnableWrapper; +use script_runtime::{ScriptThreadEventCategory, PromiseJobQueue, EnqueuedPromiseCallback}; +use script_thread::{Runnable, RunnableWrapper}; use script_traits::{MsDuration, TimerEvent, TimerEventId, TimerEventRequest, TimerSource}; use script_traits::ScriptMsg as ConstellationMsg; use script_traits::WorkerGlobalScopeInit; @@ -112,6 +114,8 @@ pub struct WorkerGlobalScope { /// Timers used by the Console API. console_timers: TimerSet, + + promise_job_queue: PromiseJobQueue, } impl WorkerGlobalScope { @@ -143,6 +147,7 @@ impl WorkerGlobalScope { constellation_chan: init.constellation_chan, scheduler_chan: init.scheduler_chan, console_timers: TimerSet::new(), + promise_job_queue: PromiseJobQueue::new(), } } @@ -228,6 +233,25 @@ impl WorkerGlobalScope { cancelled: self.closing.clone().unwrap(), } } + + pub fn enqueue_promise_job(&self, job: EnqueuedPromiseCallback) { + self.promise_job_queue.enqueue(job, GlobalRef::Worker(self)); + } + + pub fn flush_promise_jobs(&self) { + self.script_chan().send(CommonScriptMsg::RunnableMsg( + ScriptThreadEventCategory::WorkerEvent, + box FlushPromiseJobs { + global: Trusted::new(self), + })).unwrap(); + } + + fn do_flush_promise_jobs(&self) { + self.promise_job_queue.flush_promise_jobs(|id| { + assert_eq!(self.pipeline_id(), id); + Some(GlobalRoot::Worker(Root::from_ref(self))) + }); + } } impl LoadOrigin for WorkerGlobalScope { @@ -466,3 +490,14 @@ impl WorkerGlobalScope { .report_an_error(error_info, value); } } + +struct FlushPromiseJobs { + global: Trusted<WorkerGlobalScope>, +} + +impl Runnable for FlushPromiseJobs { + fn handler(self: Box<FlushPromiseJobs>) { + let global = self.global.root(); + global.do_flush_promise_jobs(); + } +} diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index d034b60aebd..24ee2c28d36 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -45,8 +45,8 @@ use js::jsapi::{JSContext, JS_ParseJSON}; use js::jsapi::JS_ClearPendingException; use js::jsval::{JSVal, NullValue, UndefinedValue}; use msg::constellation_msg::{PipelineId, ReferrerPolicy}; -use net_traits::{CoreResourceThread, LoadOrigin}; -use net_traits::{FetchResponseListener, Metadata, NetworkError}; +use net_traits::{CoreResourceThread, FetchMetadata, FilteredMetadata}; +use net_traits::{FetchResponseListener, LoadOrigin, NetworkError}; use net_traits::CoreResourceMsg::Fetch; use net_traits::request::{CredentialsMode, Destination, RequestInit, RequestMode}; use net_traits::trim_http_whitespace; @@ -219,35 +219,39 @@ impl XMLHttpRequest { core_resource_thread: CoreResourceThread, init: RequestInit) { impl FetchResponseListener for XHRContext { - fn process_request_body(&mut self) { - // todo - } - fn process_request_eof(&mut self) { - // todo - } - fn process_response(&mut self, metadata: Result<Metadata, NetworkError>) { - let xhr = self.xhr.root(); - let rv = xhr.process_headers_available(self.gen_id, - metadata); - if rv.is_err() { - *self.sync_status.borrow_mut() = Some(rv); - } - } - fn process_response_chunk(&mut self, mut chunk: Vec<u8>) { - self.buf.borrow_mut().append(&mut chunk); - self.xhr.root().process_data_available(self.gen_id, self.buf.borrow().clone()); - } - fn process_response_eof(&mut self, response: Result<(), NetworkError>) { - let rv = match response { - Ok(()) => { - self.xhr.root().process_response_complete(self.gen_id, Ok(())) - } - Err(e) => { - self.xhr.root().process_response_complete(self.gen_id, Err(e)) - } - }; + fn process_request_body(&mut self) { + // todo + } + + fn process_request_eof(&mut self) { + // todo + } + + fn process_response(&mut self, + metadata: Result<FetchMetadata, NetworkError>) { + let xhr = self.xhr.root(); + let rv = xhr.process_headers_available(self.gen_id, metadata); + if rv.is_err() { *self.sync_status.borrow_mut() = Some(rv); } + } + + fn process_response_chunk(&mut self, mut chunk: Vec<u8>) { + self.buf.borrow_mut().append(&mut chunk); + self.xhr.root().process_data_available(self.gen_id, self.buf.borrow().clone()); + } + + fn process_response_eof(&mut self, response: Result<(), NetworkError>) { + let rv = match response { + Ok(()) => { + self.xhr.root().process_response_complete(self.gen_id, Ok(())) + } + Err(e) => { + self.xhr.root().process_response_complete(self.gen_id, Err(e)) + } + }; + *self.sync_status.borrow_mut() = Some(rv); + } } impl PreInvoke for XHRContext { @@ -273,9 +277,11 @@ impl LoadOrigin for XMLHttpRequest { fn referrer_url(&self) -> Option<Url> { return self.referrer_url.clone(); } + fn referrer_policy(&self) -> Option<ReferrerPolicy> { return self.referrer_policy; } + fn pipeline_id(&self) -> Option<PipelineId> { let global = self.global(); Some(global.r().pipeline_id()) @@ -596,6 +602,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { referrer_url: self.referrer_url.clone(), referrer_policy: self.referrer_policy.clone(), pipeline_id: self.pipeline_id(), + .. RequestInit::default() }; if bypass_cross_origin_check { @@ -862,10 +869,16 @@ impl XMLHttpRequest { } fn process_headers_available(&self, - gen_id: GenerationId, metadata: Result<Metadata, NetworkError>) + gen_id: GenerationId, metadata: Result<FetchMetadata, NetworkError>) -> Result<(), Error> { let metadata = match metadata { - Ok(meta) => meta, + Ok(meta) => match meta { + FetchMetadata::Unfiltered(m) => m, + FetchMetadata::Filtered { filtered, .. } => match filtered { + FilteredMetadata::Opaque => return Err(Error::Network), + FilteredMetadata::Transparent(m) => m + } + }, Err(_) => { self.process_partial_response(XHRProgress::Errored(gen_id, Error::Network)); return Err(Error::Network); diff --git a/components/script/layout_wrapper.rs b/components/script/layout_wrapper.rs index 5411deb91a8..19e6c7c4e79 100644 --- a/components/script/layout_wrapper.rs +++ b/components/script/layout_wrapper.rs @@ -58,7 +58,8 @@ use style::attr::AttrValue; use style::computed_values::display; use style::context::SharedStyleContext; use style::data::PrivateStyleData; -use style::dom::{OpaqueNode, PresentationalHintsSynthetizer, TDocument, TElement, TNode, UnsafeNode}; +use style::dom::{LayoutIterator, NodeInfo, OpaqueNode, PresentationalHintsSynthetizer, TDocument, TElement, TNode}; +use style::dom::UnsafeNode; use style::element_state::*; use style::properties::{ComputedValues, PropertyDeclarationBlock}; use style::refcell::{Ref, RefCell, RefMut}; @@ -111,6 +112,18 @@ impl<'ln> ServoLayoutNode<'ln> { } } +impl<'ln> NodeInfo for ServoLayoutNode<'ln> { + fn is_element(&self) -> bool { + unsafe { + self.node.is_element_for_layout() + } + } + + fn is_text_node(&self) -> bool { + self.script_type_id() == NodeTypeId::CharacterData(CharacterDataTypeId::Text) + } +} + impl<'ln> TNode for ServoLayoutNode<'ln> { type ConcreteElement = ServoLayoutElement<'ln>; type ConcreteDocument = ServoLayoutDocument<'ln>; @@ -128,16 +141,6 @@ impl<'ln> TNode for ServoLayoutNode<'ln> { transmute(node) } - fn is_text_node(&self) -> bool { - self.script_type_id() == NodeTypeId::CharacterData(CharacterDataTypeId::Text) - } - - fn is_element(&self) -> bool { - unsafe { - self.node.is_element_for_layout() - } - } - fn dump(self) { self.dump_indent(0); } @@ -147,10 +150,10 @@ impl<'ln> TNode for ServoLayoutNode<'ln> { self.dump_style_indent(0); } - fn children(self) -> ServoChildrenIterator<'ln> { - ServoChildrenIterator { + fn children(self) -> LayoutIterator<ServoChildrenIterator<'ln>> { + LayoutIterator(ServoChildrenIterator { current: self.first_child(), - } + }) } fn opaque(&self) -> OpaqueNode { @@ -727,6 +730,20 @@ impl<'ln> ServoThreadSafeLayoutNode<'ln> { } } +impl<'ln> NodeInfo for ServoThreadSafeLayoutNode<'ln> { + fn is_element(&self) -> bool { + if let Some(LayoutNodeType::Element(_)) = self.type_id() { true } else { false } + } + + fn is_text_node(&self) -> bool { + if let Some(LayoutNodeType::Text) = self.type_id() { true } else { false } + } + + fn needs_layout(&self) -> bool { + self.pseudo != PseudoElementType::Normal || self.is_element() || self.is_text_node() + } +} + impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> { type ConcreteThreadSafeLayoutElement = ServoThreadSafeLayoutElement<'ln>; type ChildrenIterator = ThreadSafeLayoutNodeChildrenIterator<Self>; @@ -760,8 +777,8 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> { self.node.debug_id() } - fn children(&self) -> Self::ChildrenIterator { - ThreadSafeLayoutNodeChildrenIterator::new(*self) + fn children(&self) -> LayoutIterator<Self::ChildrenIterator> { + LayoutIterator(ThreadSafeLayoutNodeChildrenIterator::new(*self)) } fn as_element(&self) -> ServoThreadSafeLayoutElement<'ln> { diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs index 0287d0e9c10..658ace4c46a 100644 --- a/components/script/script_runtime.rs +++ b/components/script/script_runtime.rs @@ -5,18 +5,23 @@ //! The script runtime contains common traits and structs commonly used by the //! script thread, the dom, and the worker threads. +use dom::bindings::callback::ExceptionHandling; +use dom::bindings::cell::DOMRefCell; +use dom::bindings::codegen::Bindings::PromiseBinding::PromiseJobCallback; +use dom::bindings::global::{global_root_from_object, GlobalRoot, GlobalRef}; use dom::bindings::js::{RootCollection, RootCollectionPtr, trace_roots}; use dom::bindings::refcounted::{LiveDOMReferences, trace_refcounted_objects}; use dom::bindings::trace::trace_traceables; use dom::bindings::utils::DOM_CALLBACKS; use js::glue::CollectServoSizes; -use js::jsapi::{DisableIncrementalGC, GCDescription, GCProgress}; +use js::jsapi::{DisableIncrementalGC, GCDescription, GCProgress, HandleObject}; use js::jsapi::{JSContext, JS_GetRuntime, JSRuntime, JSTracer, SetDOMCallbacks, SetGCSliceCallback}; use js::jsapi::{JSGCInvocationKind, JSGCStatus, JS_AddExtraGCRootsTracer, JS_SetGCCallback}; use js::jsapi::{JSGCMode, JSGCParamKey, JS_SetGCParameter, JS_SetGlobalJitCompilerOption}; use js::jsapi::{JSJitCompilerOption, JS_SetOffthreadIonCompilationEnabled, JS_SetParallelParsingEnabled}; -use js::jsapi::{JSObject, RuntimeOptionsRef, SetPreserveWrapperCallback}; +use js::jsapi::{JSObject, RuntimeOptionsRef, SetPreserveWrapperCallback, SetEnqueuePromiseJobCallback}; use js::rust::Runtime; +use msg::constellation_msg::PipelineId; use profile_traits::mem::{Report, ReportKind, ReportsChan}; use script_thread::{Runnable, STACK_ROOTS, trace_thread}; use std::any::Any; @@ -24,7 +29,10 @@ use std::cell::{RefCell, Cell}; use std::io::{Write, stdout}; use std::marker::PhantomData; use std::os; +use std::os::raw::c_void; +use std::panic::{self, AssertUnwindSafe}; use std::ptr; +use std::rc::Rc; use style::thread_state; use time::{Tm, now}; use util::opts; @@ -95,6 +103,97 @@ impl<'a> Drop for StackRootTLS<'a> { } } +/// A promise callback scheduled to run during the next microtask checkpoint (#4283). +#[derive(JSTraceable, HeapSizeOf)] +pub struct EnqueuedPromiseCallback { + #[ignore_heap_size_of = "Rc has unclear ownership"] + callback: Rc<PromiseJobCallback>, + pipeline: PipelineId, +} + +/// A collection of promise callbacks in FIFO order. +#[derive(JSTraceable, HeapSizeOf)] +pub struct PromiseJobQueue { + /// A snapshot of `promise_job_queue` that was taken at the start of the microtask checkpoint. + /// Used to work around mutability errors when appending new promise jobs while performing + /// a microtask checkpoint. + flushing_job_queue: DOMRefCell<Vec<EnqueuedPromiseCallback>>, + /// The list of enqueued promise callbacks that will be invoked at the next microtask checkpoint. + promise_job_queue: DOMRefCell<Vec<EnqueuedPromiseCallback>>, + /// True if there is an outstanding runnable responsible for evaluating the promise job queue. + /// This prevents runnables flooding the event queue needlessly, since the first one will + /// execute all pending runnables. + pending_promise_job_runnable: Cell<bool>, +} + +impl PromiseJobQueue { + /// Create a new PromiseJobQueue instance. + pub fn new() -> PromiseJobQueue { + PromiseJobQueue { + promise_job_queue: DOMRefCell::new(vec![]), + flushing_job_queue: DOMRefCell::new(vec![]), + pending_promise_job_runnable: Cell::new(false), + } + } + + /// Add a new promise job callback to this queue. It will be invoked as part of the next + /// microtask checkpoint. + pub fn enqueue(&self, job: EnqueuedPromiseCallback, global: GlobalRef) { + self.promise_job_queue.borrow_mut().push(job); + if !self.pending_promise_job_runnable.get() { + self.pending_promise_job_runnable.set(true); + global.flush_promise_jobs(); + } + } + + /// Perform a microtask checkpoint, by invoking all of the pending promise job callbacks in + /// FIFO order (#4283). + pub fn flush_promise_jobs<F>(&self, target_provider: F) + where F: Fn(PipelineId) -> Option<GlobalRoot> + { + self.pending_promise_job_runnable.set(false); + { + let mut pending_queue = self.promise_job_queue.borrow_mut(); + *self.flushing_job_queue.borrow_mut() = pending_queue.drain(..).collect(); + } + // N.B. borrowing this vector is safe w.r.t. mutability, since any promise job that + // is enqueued while invoking these callbacks will be placed in `pending_queue`; + // `flushing_queue` is a static snapshot during this checkpoint. + for job in &*self.flushing_job_queue.borrow() { + if let Some(target) = target_provider(job.pipeline) { + let _ = job.callback.Call_(&target.r(), ExceptionHandling::Report); + } + } + self.flushing_job_queue.borrow_mut().clear(); + } +} + +/// SM callback for promise job resolution. Adds a promise callback to the current global's +/// promise job queue, and enqueues a runnable to perform a microtask checkpoint if one +/// is not already pending. +#[allow(unsafe_code)] +unsafe extern "C" fn enqueue_job(_cx: *mut JSContext, + job: HandleObject, + _allocation_site: HandleObject, + _data: *mut c_void) -> bool { + let result = panic::catch_unwind(AssertUnwindSafe(|| { + let global = global_root_from_object(job.get()); + let pipeline = global.r().pipeline_id(); + global.r().enqueue_promise_job(EnqueuedPromiseCallback { + callback: PromiseJobCallback::new(job.get()), + pipeline: pipeline, + }); + true + })); + match result { + Ok(result) => result, + Err(error) => { + store_panic_result(error); + return false; + } + } +} + #[allow(unsafe_code)] pub unsafe fn new_rt_and_cx() -> Runtime { LiveDOMReferences::initialize(); @@ -118,6 +217,8 @@ pub unsafe fn new_rt_and_cx() -> Runtime { // Pre barriers aren't working correctly at the moment DisableIncrementalGC(runtime.rt()); + SetEnqueuePromiseJobCallback(runtime.rt(), Some(enqueue_job), ptr::null_mut()); + set_gc_zeal_options(runtime.rt()); // Enable or disable the JITs. diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 298323929c1..f1878501500 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -27,7 +27,7 @@ use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, Documen use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::conversions::{ConversionResult, FromJSValConvertible, StringificationBehavior}; -use dom::bindings::global::GlobalRef; +use dom::bindings::global::{GlobalRef, GlobalRoot}; use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, MutNullableHeap, Root, RootCollection}; use dom::bindings::js::{RootCollectionPtr, RootedReference}; @@ -77,8 +77,8 @@ use parse::xml::{self, parse_xml}; use profile_traits::mem::{self, OpaqueSender, Report, ReportKind, ReportsChan}; use profile_traits::time::{self, ProfilerCategory, profile}; use script_layout_interface::message::{self, NewLayoutThreadInfo, ReflowQueryType}; -use script_runtime::{CommonScriptMsg, ScriptChan, ScriptThreadEventCategory}; -use script_runtime::{ScriptPort, StackRootTLS, get_reports, new_rt_and_cx}; +use script_runtime::{CommonScriptMsg, ScriptChan, ScriptThreadEventCategory, EnqueuedPromiseCallback}; +use script_runtime::{ScriptPort, StackRootTLS, get_reports, new_rt_and_cx, PromiseJobQueue}; use script_traits::{CompositorEvent, ConstellationControlMsg, EventResult}; use script_traits::{InitialScriptState, MouseButton, MouseEventType, MozBrowserEvent}; use script_traits::{NewLayoutInfo, ScriptMsg as ConstellationMsg}; @@ -394,6 +394,8 @@ pub struct ScriptThread { timer_event_port: Receiver<TimerEvent>, content_process_shutdown_chan: IpcSender<()>, + + promise_job_queue: PromiseJobQueue, } /// In the event of thread panic, all data on the stack runs its destructor. However, there @@ -599,6 +601,8 @@ impl ScriptThread { timer_event_port: timer_event_port, content_process_shutdown_chan: state.content_process_shutdown_chan, + + promise_job_queue: PromiseJobQueue::new(), } } @@ -2174,6 +2178,33 @@ impl ScriptThread { location.Reload(); } } + + pub fn enqueue_promise_job(job: EnqueuedPromiseCallback, global: GlobalRef) { + SCRIPT_THREAD_ROOT.with(|root| { + let script_thread = unsafe { &*root.get().unwrap() }; + script_thread.promise_job_queue.enqueue(job, global); + }); + } + + pub fn flush_promise_jobs(global: GlobalRef) { + SCRIPT_THREAD_ROOT.with(|root| { + let script_thread = unsafe { &*root.get().unwrap() }; + let _ = script_thread.dom_manipulation_task_source.queue(box FlushPromiseJobs, global); + }) + } + + fn do_flush_promise_jobs(&self) { + self.promise_job_queue.flush_promise_jobs(|id| { + self.find_child_context(id).map(|context| GlobalRoot::Window(context.active_window())) + }); + } +} + +struct FlushPromiseJobs; +impl Runnable for FlushPromiseJobs { + fn main_thread_handler(self: Box<FlushPromiseJobs>, script_thread: &ScriptThread) { + script_thread.do_flush_promise_jobs(); + } } impl Drop for ScriptThread { diff --git a/components/script/timers.rs b/components/script/timers.rs index 8c2d2d9cac4..f75ebf907d5 100644 --- a/components/script/timers.rs +++ b/components/script/timers.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::FunctionBinding::Function; use dom::bindings::global::GlobalRef; use dom::bindings::reflector::Reflectable; use dom::bindings::str::DOMString; +use dom::testbinding::TestBindingCallback; use dom::window::ScriptHelpers; use dom::xmlhttprequest::XHRTimeoutCallback; use euclid::length::Length; @@ -68,6 +69,7 @@ struct OneshotTimer { pub enum OneshotTimerCallback { XhrTimeout(XHRTimeoutCallback), JsTimer(JsTimerTask), + TestBindingCallback(TestBindingCallback), } impl OneshotTimerCallback { @@ -75,6 +77,7 @@ impl OneshotTimerCallback { match self { OneshotTimerCallback::XhrTimeout(callback) => callback.invoke(), OneshotTimerCallback::JsTimer(task) => task.invoke(this, js_timers), + OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(), } } } diff --git a/components/script_layout_interface/wrapper_traits.rs b/components/script_layout_interface/wrapper_traits.rs index 20ddca94cf4..dcb1f68cfb4 100644 --- a/components/script_layout_interface/wrapper_traits.rs +++ b/components/script_layout_interface/wrapper_traits.rs @@ -15,7 +15,7 @@ use std::sync::Arc; use string_cache::{Atom, Namespace}; use style::computed_values::display; use style::context::SharedStyleContext; -use style::dom::{PresentationalHintsSynthetizer, TNode}; +use style::dom::{LayoutIterator, NodeInfo, PresentationalHintsSynthetizer, TNode}; use style::dom::OpaqueNode; use style::properties::ServoComputedValues; use style::refcell::{Ref, RefCell}; @@ -81,10 +81,10 @@ pub trait LayoutNode: TNode { fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData); fn get_style_and_layout_data(&self) -> Option<OpaqueStyleAndLayoutData>; - fn rev_children(self) -> ReverseChildrenIterator<Self> { - ReverseChildrenIterator { + fn rev_children(self) -> LayoutIterator<ReverseChildrenIterator<Self>> { + LayoutIterator(ReverseChildrenIterator { current: self.last_child(), - } + }) } fn traverse_preorder(self) -> TreeIterator<Self> { @@ -137,7 +137,7 @@ impl<ConcreteNode> Iterator for TreeIterator<ConcreteNode> /// A thread-safe version of `LayoutNode`, used during flow construction. This type of layout /// node does not allow any parents or siblings of nodes to be accessed, to avoid races. -pub trait ThreadSafeLayoutNode: Clone + Copy + Sized + PartialEq { +pub trait ThreadSafeLayoutNode: Clone + Copy + NodeInfo + PartialEq + Sized { type ConcreteThreadSafeLayoutElement: ThreadSafeLayoutElement<ConcreteThreadSafeLayoutNode = Self> + ::selectors::Element<Impl=ServoSelectorImpl>; @@ -169,10 +169,7 @@ pub trait ThreadSafeLayoutNode: Clone + Copy + Sized + PartialEq { fn debug_id(self) -> usize; /// Returns an iterator over this node's children. - fn children(&self) -> Self::ChildrenIterator; - - #[inline] - fn is_element(&self) -> bool { if let Some(LayoutNodeType::Element(_)) = self.type_id() { true } else { false } } + fn children(&self) -> LayoutIterator<Self::ChildrenIterator>; /// If this is an element, accesses the element data. Fails if this is not an element node. #[inline] diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 3b91d9771c7..e524e5d23e1 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -14,7 +14,7 @@ dependencies = [ "devtools 0.0.1", "devtools_traits 0.0.1", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", "gfx_tests 0.0.1", @@ -71,7 +71,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "angle" version = "0.1.1" -source = "git+https://github.com/servo/angle?branch=servo#832ffd74ac892682dfcaea27dc518130a72e280c" +source = "git+https://github.com/servo/angle?branch=servo#f19aefbf3db45952480e7255cdf844db827c0bcb" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -99,7 +99,7 @@ dependencies = [ [[package]] name = "aster" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -121,16 +121,16 @@ dependencies = [ "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -229,7 +229,7 @@ version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", "canvas_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -247,14 +247,14 @@ version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", ] @@ -328,7 +328,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -341,7 +341,7 @@ dependencies = [ "profile_traits 0.0.1", "script_traits 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -359,7 +359,7 @@ dependencies = [ "canvas_traits 0.0.1", "compositing 0.0.1", "devtools_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -375,7 +375,7 @@ dependencies = [ "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -521,7 +521,7 @@ dependencies = [ "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -538,7 +538,7 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "euclid" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -718,7 +718,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "fontsan" version = "0.3.2" -source = "git+https://github.com/servo/fontsan#08bfa604bf0cc882d9b4385c57db65e200975b72" +source = "git+https://github.com/servo/fontsan#5519a0599d7f80f0f4781e562a37878b45f72e04" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -792,12 +792,12 @@ dependencies = [ "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "fontsan 0.3.2 (git+https://github.com/servo/fontsan)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "gfx_traits 0.0.1", - "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -815,7 +815,7 @@ dependencies = [ "range 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "simd 0.1.1 (git+https://github.com/huonw/simd)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -844,7 +844,7 @@ name = "gfx_traits" version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "layers 0.5.3 (git+https://github.com/servo/rust-layers)", @@ -854,7 +854,7 @@ dependencies = [ "range 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -895,7 +895,7 @@ version = "0.0.1" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "compositing 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "layers 0.5.3 (git+https://github.com/servo/rust-layers)", @@ -925,7 +925,7 @@ dependencies = [ [[package]] name = "harfbuzz-sys" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1149,7 +1149,7 @@ source = "git+https://github.com/servo/rust-layers#b064de859b2cf3f4e07b29ee11a34 dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1158,7 +1158,7 @@ dependencies = [ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1171,7 +1171,7 @@ dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -1190,7 +1190,7 @@ dependencies = [ "script_layout_interface 0.0.1", "script_traits 0.0.1", "selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", @@ -1215,7 +1215,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -1234,7 +1234,7 @@ dependencies = [ "script_layout_interface 0.0.1", "script_traits 0.0.1", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -1392,7 +1392,7 @@ dependencies = [ [[package]] name = "mozjs_sys" version = "0.0.0" -source = "git+https://github.com/servo/mozjs#cdf21f7c5596cb6e02eb9afdfc51841deea84a1f" +source = "git+https://github.com/servo/mozjs#34c3e075138bb7eff2ed8b5924ccb9067dcd017e" dependencies = [ "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1424,7 +1424,7 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", ] @@ -1518,7 +1518,7 @@ dependencies = [ "msg 0.0.1", "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1622,7 +1622,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1805,7 +1805,7 @@ dependencies = [ "regex 0.1.76 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "task_info 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -1829,29 +1829,29 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quasi" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quasi_codegen" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quasi_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quasi_codegen 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi_codegen 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1880,7 +1880,7 @@ dependencies = [ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1953,7 +1953,7 @@ dependencies = [ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2007,7 +2007,7 @@ dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2045,7 +2045,7 @@ dependencies = [ "canvas_traits 0.0.1", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2060,7 +2060,7 @@ dependencies = [ "profile_traits 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2093,18 +2093,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_codegen" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi_macros 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen_internals 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi_macros 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen_internals 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_codegen_internals" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2120,10 +2120,10 @@ dependencies = [ [[package]] name = "serde_macros" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_codegen 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2193,12 +2193,12 @@ dependencies = [ [[package]] name = "servo-skia" -version = "0.20130412.23" +version = "0.20130412.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2275,7 +2275,7 @@ dependencies = [ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2293,7 +2293,7 @@ dependencies = [ "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", @@ -2309,7 +2309,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2325,12 +2325,12 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2457,7 +2457,7 @@ name = "unicode-script" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2509,7 +2509,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2519,7 +2519,7 @@ dependencies = [ "plugins 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2624,7 +2624,7 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2651,7 +2651,7 @@ dependencies = [ "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2673,13 +2673,13 @@ dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2776,7 +2776,7 @@ dependencies = [ "checksum angle 0.1.1 (git+https://github.com/servo/angle?branch=servo)" = "<none>" "checksum app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "636ee56f12e31dbc11dc0a1ac6004f08b04e6e6595963716fc8130e90d4e04cf" "checksum arrayvec 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "80a137392e2e92ce7387c063d98a11f0d47115426c5f8759657af3c7b385c860" -"checksum aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)" = "baa18cafee9499ac766e76117577b84efa98f43b81964cf167cd800b29176db3" +"checksum aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "258989846dd255a1e0eeef92d425d345477c9999433cecc9f0879f4549d5e5c9" "checksum audio-video-metadata 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "03da2550cb89fe3faf218c179261c26cf7891c4234707c15f5d09ebb32ae2400" "checksum azure 0.8.0 (git+https://github.com/servo/rust-azure)" = "<none>" "checksum backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "346d7644f0b5f9bc73082d3b2236b69a05fd35cce0cfa3724e184e6a5c9e2a2f" @@ -2828,7 +2828,7 @@ dependencies = [ "checksum energymon-sys 0.2.0 (git+https://github.com/energymon/energymon-sys.git)" = "<none>" "checksum enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79eff5be92a4d7d5bddf7daa7d650717ea71628634efe6ca7bcda85b2183c23" "checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb" -"checksum euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cce91503add3d0a1787b9bc8a9a59ee66ea5de1c3aaa6faf67b62997843160d3" +"checksum euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "44ef2a3e4a621518e488db36820a12b49a9d5004764b8daf1458bbe5d7c9b626" "checksum expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cef36cd1a8a02d28b91d97347c63247b9e4cb8a8e36df36f8201dc87a1c0859c" "checksum flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "3eeb481e957304178d2e782f2da1257f1434dfecbae883bafb61ada2a9fea3bb" "checksum fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8e8af7b5408ab0c4910cad114c8f9eb454bf75df7afe8964307eeafb68a13a5e" @@ -2845,7 +2845,7 @@ dependencies = [ "checksum gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)" = "e299fc6b34e698955c6e7cbe7afef2b89774124c82d3636ab85c540edd9ad567" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72" -"checksum harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "16f772015f526a0cb0c642676cf696bcd2de35e4b91d016a8105755fec2bb373" +"checksum harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6b76113246f5c089dcf272cf89c3f61168a4d77b50ec5b2c1fab8c628c9ea762" "checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c" "checksum heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c9a70a1ef0122b54e0553f1d960b686c40d33a7953bc63029509a7649c8ee2c4" "checksum heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78c0810722eacd0bdd3f1f691524bd9900bf8fed1947f6b883c10ddecd2560b1" @@ -2918,9 +2918,9 @@ dependencies = [ "checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa" "checksum pnacl-build-helper 1.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "61c9231d31aea845007443d62fcbb58bb6949ab9c18081ee1e09920e0cf1118b" "checksum png 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "06208e2ee243e3118a55dda9318f821f206d8563fb8d4df258767f8e62bb0997" -"checksum quasi 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f9b160391362abca7c0e30cead65872b01b03f8371dee7441e130601c9b4d173" -"checksum quasi_codegen 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc10982c4b09697fb79d7725ea5e33ef2b1ff934fdddefa3e83d4f8c50b8d34" -"checksum quasi_macros 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4debfba7bd3bfb3d93439a758e0fd9a6ba8c9b8fc0296bf989fe8f8e30de765" +"checksum quasi 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50d83f9f141f12a586aae8eefa4fdb39a273fc1a1f4cfb252a4cb566a9ca8985" +"checksum quasi_codegen 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb4a9a5410fdbdacbeda8063ddb8add9838dfd4cf50ac486db98abb762d8bd6" +"checksum quasi_macros 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "adc2b36285ea5e54e4e267f83896267ff8c5aba4f66b2e7d186ed6d968f3715f" "checksum quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e952ea7699262481636004bc4ab8afaccf2bc13f91b79d1aee6617bd8fc39651" "checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5" "checksum rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e501871917624668fe601ad12a730450414f9b0b64722a898b040ce3ae1b0fa" @@ -2934,16 +2934,16 @@ dependencies = [ "checksum selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f844a32e73a0d8e59a76036751fcb5581ca1ded4f2f2f3dc21720a80ba908af" "checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" "checksum serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8523fd515099dac5b5abd25b0b9f9709d40eedf03f72ca519903bf138a6577be" -"checksum serde_codegen 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1b749326ac14ace12e5117d3e14a4509853ba0bea54c335d27dad66bd9fdfa" -"checksum serde_codegen_internals 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8488640b7caaa438eb05c74466f9fa91a61bb4e4e7520f3c1cfcf77fb10bdb61" +"checksum serde_codegen 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "da68810d845f8e33a80243c28794650397056cbe7aea4c9c7516f55d1061c94e" +"checksum serde_codegen_internals 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0115c5c602e81c61b787fb0f0fa76a614f8dbe9100b2b59b7d590155672c80" "checksum serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e10f8a9d94b06cf5d3bef66475f04c8ff90950f1be7004c357ff9472ccbaebc" -"checksum serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9cda78202a0f6d28fdbac9565789ae8e90025ed10f324284271a02265975271e" +"checksum serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c3cf1c01933271e1e72bb788e0499d1bca8af2c09efcc3ddc0b04ff22d080b83" "checksum servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21069a884c33fe6ee596975e1f3849ed88c4ec857fbaf11d33672d8ebe051217" "checksum servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "93f799b649b4a2bf362398910eca35240704c7e765e780349b2bb1070d892262" "checksum servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8e597efa2e1e0883fcb5317e0062d2ffdfed9b926ce8a6f90082be774f39e416" "checksum servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5daf749c5a8fe5e7f93fc5a355a2ea0b36502832c6feff79a67d9359baddde78" "checksum servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4507713583641d2a11d7fb2a2ff0ba059537ff8a611e5e8ddd94ca82730962e3" -"checksum servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)" = "76c3f8ceb079e39d98346841cd9d83b8b7c46dbf4645723919627745d4addd34" +"checksum servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)" = "bb975cdf292243956e6b6acfac336ac8be0aa567e32bb89901be161e4003d0b3" "checksum shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb04126b6fcfd2710fb5b6d18f4207b6c535f2850a7e1a43bcd526d44f30a79a" "checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d" "checksum sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6649e43c1a1e68d29ed56d0dc3b5b6cf3b901da77cf107c4066b9e3da036df5" diff --git a/components/style/dom.rs b/components/style/dom.rs index 797675388fb..ec18ae65db6 100644 --- a/components/style/dom.rs +++ b/components/style/dom.rs @@ -64,7 +64,33 @@ pub trait TRestyleDamage : Debug + PartialEq + BitOr<Output=Self> + Copy { fn rebuild_and_reflow() -> Self; } -pub trait TNode : Sized + Copy + Clone { +/// Simple trait to provide basic information about the type of an element. +/// +/// We avoid exposing the full type id, since computing it in the general case +/// would be difficult for Gecko nodes. +pub trait NodeInfo { + fn is_element(&self) -> bool; + fn is_text_node(&self) -> bool; + + // Comments, doctypes, etc are ignored by layout algorithms. + fn needs_layout(&self) -> bool { self.is_element() || self.is_text_node() } +} + +pub struct LayoutIterator<T>(pub T); +impl<T, I> Iterator for LayoutIterator<T> where T: Iterator<Item=I>, I: NodeInfo { + type Item = I; + fn next(&mut self) -> Option<I> { + loop { + // Filter out nodes that layout should ignore. + let n = self.0.next(); + if n.is_none() || n.as_ref().unwrap().needs_layout() { + return n + } + } + } +} + +pub trait TNode : Sized + Copy + Clone + NodeInfo { type ConcreteElement: TElement<ConcreteNode = Self, ConcreteDocument = Self::ConcreteDocument>; type ConcreteDocument: TDocument<ConcreteNode = Self, ConcreteElement = Self::ConcreteElement>; type ConcreteRestyleDamage: TRestyleDamage; @@ -73,19 +99,12 @@ pub trait TNode : Sized + Copy + Clone { fn to_unsafe(&self) -> UnsafeNode; unsafe fn from_unsafe(n: &UnsafeNode) -> Self; - /// Returns whether this is a text node. It turns out that this is all the style system cares - /// about, and thus obviates the need to compute the full type id, which would be expensive in - /// Gecko. - fn is_text_node(&self) -> bool; - - fn is_element(&self) -> bool; - fn dump(self); fn dump_style(self); /// Returns an iterator over this node's children. - fn children(self) -> Self::ConcreteChildrenIterator; + fn children(self) -> LayoutIterator<Self::ConcreteChildrenIterator>; /// Converts self into an `OpaqueNode`. fn opaque(&self) -> OpaqueNode; diff --git a/components/style/matching.rs b/components/style/matching.rs index 4edf85d1d3c..8a9a12eaa72 100644 --- a/components/style/matching.rs +++ b/components/style/matching.rs @@ -12,7 +12,7 @@ use cache::{LRUCache, SimpleHashCache}; use cascade_info::CascadeInfo; use context::{SharedStyleContext, StyleContext}; use data::PrivateStyleData; -use dom::{TElement, TNode, TRestyleDamage, UnsafeNode}; +use dom::{NodeInfo, TElement, TNode, TRestyleDamage, UnsafeNode}; use properties::{ComputedValues, PropertyDeclarationBlock, cascade}; use properties::longhands::display::computed_value as display; use selector_impl::{PseudoElement, TheSelectorImpl}; @@ -708,6 +708,7 @@ pub trait ElementMatchMethods : TElement { _ => return StyleSharingResult::CannotShare, }; + let mut should_clear_cache = false; for (i, &mut (ref mut candidate, ())) in style_sharing_candidate_cache.iter_mut().enumerate() { let sharing_result = self.share_style_with_candidate_if_possible(parent, shared_context, @@ -750,6 +751,11 @@ pub trait ElementMatchMethods : TElement { // Cache miss, let's see what kind of failure to decide // whether we keep trying or not. match miss { + // Cache miss because of parent, clear the candidate cache. + CacheMiss::Parent => { + should_clear_cache = true; + break; + }, // Too expensive failure, give up, we don't want another // one of these. CacheMiss::CommonStyleAffectingAttributes | @@ -761,6 +767,9 @@ pub trait ElementMatchMethods : TElement { } } } + if should_clear_cache { + style_sharing_candidate_cache.clear(); + } StyleSharingResult::CannotShare } diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index 1f75fdb5737..8dbbeec72af 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -1011,14 +1011,20 @@ fn static_assert() { use gecko_bindings::structs::nsStyleImageLayers_Repeat; use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_REPEAT; use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT; + use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_SPACE; + use gecko_bindings::structs::NS_STYLE_IMAGELAYER_REPEAT_ROUND; let (repeat_x, repeat_y) = match servo { T::repeat_x => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT, NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT), T::repeat_y => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT, NS_STYLE_IMAGELAYER_REPEAT_REPEAT), - T::repeat => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT, - NS_STYLE_IMAGELAYER_REPEAT_REPEAT), + T::repeat => (NS_STYLE_IMAGELAYER_REPEAT_REPEAT, + NS_STYLE_IMAGELAYER_REPEAT_REPEAT), + T::space => (NS_STYLE_IMAGELAYER_REPEAT_SPACE, + NS_STYLE_IMAGELAYER_REPEAT_SPACE), + T::round => (NS_STYLE_IMAGELAYER_REPEAT_ROUND, + NS_STYLE_IMAGELAYER_REPEAT_ROUND), T::no_repeat => (NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT, NS_STYLE_IMAGELAYER_REPEAT_NO_REPEAT), }; @@ -1640,7 +1646,7 @@ clip-path fn init_shape(clip_path: &mut StyleClipPath, ty: StyleBasicShapeType) -> &mut StyleBasicShape { unsafe { // We have to be very careful to avoid a copy here! - let ref mut union = clip_path.StyleShapeSource_nsStyleStruct_h_unnamed_26; + let ref mut union = clip_path.__bindgen_anon_1; let mut shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut(); *shape = Gecko_NewBasicShape(ty); &mut **shape @@ -1738,7 +1744,7 @@ clip-path } else { Some(clip_path.mReferenceBox.into()) }; - let union = clip_path.StyleShapeSource_nsStyleStruct_h_unnamed_26; + let union = clip_path.__bindgen_anon_1; let shape = unsafe { &**union.mBasicShape.as_ref() }; ShapeSource::Shape(shape.into(), reference) } diff --git a/components/style/properties/helpers.mako.rs b/components/style/properties/helpers.mako.rs index 43b3d7bda17..4a49673dbc0 100644 --- a/components/style/properties/helpers.mako.rs +++ b/components/style/properties/helpers.mako.rs @@ -147,6 +147,12 @@ fn to_computed_value(&self, context: &Context) -> computed_value::T { computed_value::T(self.0.iter().map(|x| x.to_computed_value(context)).collect()) } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(computed.0.iter() + .map(|x| ToComputedValue::from_computed_value(x)) + .collect()) + } } % else: ${caller.body()} diff --git a/components/style/properties/longhand/background.mako.rs b/components/style/properties/longhand/background.mako.rs index c2c6212a60f..e30040fe8fd 100644 --- a/components/style/properties/longhand/background.mako.rs +++ b/components/style/properties/longhand/background.mako.rs @@ -74,6 +74,15 @@ ${helpers.predefined_type("background-color", "CSSColor", computed_value::T(Some(image.to_computed_value(context))), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T(None) => SpecifiedValue(None), + computed_value::T(Some(ref image)) => + SpecifiedValue(Some(ToComputedValue::from_computed_value(image))), + } + } } </%helpers:vector_longhand> @@ -119,7 +128,7 @@ ${helpers.predefined_type("background-color", "CSSColor", </%helpers:vector_longhand> ${helpers.single_keyword("background-repeat", - "repeat repeat-x repeat-y no-repeat", + "repeat repeat-x repeat-y space round no-repeat", vector=True, animatable=False)} @@ -191,7 +200,7 @@ ${helpers.single_keyword("background-origin", } } - impl HasViewportPercentage for SpecifiedExplicitSize { + impl HasViewportPercentage for ExplicitSize { fn has_viewport_percentage(&self) -> bool { return self.width.has_viewport_percentage() || self.height.has_viewport_percentage(); } @@ -199,12 +208,12 @@ ${helpers.single_keyword("background-origin", #[derive(Clone, PartialEq, Debug)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] - pub struct SpecifiedExplicitSize { + pub struct ExplicitSize { pub width: specified::LengthOrPercentageOrAuto, pub height: specified::LengthOrPercentageOrAuto, } - impl ToCss for SpecifiedExplicitSize { + impl ToCss for ExplicitSize { fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { try!(self.width.to_css(dest)); try!(dest.write_str(" ")); @@ -232,7 +241,7 @@ ${helpers.single_keyword("background-origin", #[derive(Clone, PartialEq, Debug)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub enum SpecifiedValue { - Explicit(SpecifiedExplicitSize), + Explicit(ExplicitSize), Cover, Contain, } @@ -263,6 +272,19 @@ ${helpers.single_keyword("background-origin", SpecifiedValue::Contain => computed_value::T::Contain, } } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T::Explicit(ref size) => { + SpecifiedValue::Explicit(ExplicitSize { + width: ToComputedValue::from_computed_value(&size.width), + height: ToComputedValue::from_computed_value(&size.height), + }) + } + computed_value::T::Cover => SpecifiedValue::Cover, + computed_value::T::Contain => SpecifiedValue::Contain, + } + } } #[inline] @@ -274,7 +296,7 @@ ${helpers.single_keyword("background-origin", } #[inline] pub fn get_initial_specified_value() -> SpecifiedValue { - SpecifiedValue::Explicit(SpecifiedExplicitSize { + SpecifiedValue::Explicit(ExplicitSize { width: specified::LengthOrPercentageOrAuto::Auto, height: specified::LengthOrPercentageOrAuto::Auto, }) @@ -311,7 +333,7 @@ ${helpers.single_keyword("background-origin", height = try!(specified::LengthOrPercentageOrAuto::parse(input)); } - Ok(SpecifiedValue::Explicit(SpecifiedExplicitSize { + Ok(SpecifiedValue::Explicit(ExplicitSize { width: width, height: height, })) diff --git a/components/style/properties/longhand/border.mako.rs b/components/style/properties/longhand/border.mako.rs index 1e5176791d2..52819633091 100644 --- a/components/style/properties/longhand/border.mako.rs +++ b/components/style/properties/longhand/border.mako.rs @@ -65,6 +65,11 @@ fn to_computed_value(&self, context: &Context) -> computed_value::T { self.0.to_computed_value(context) } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(ToComputedValue::from_computed_value(computed)) + } } </%helpers:longhand> % endfor diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index 7330dbff480..3c3f5e9ae9f 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -115,6 +115,10 @@ ${helpers.single_keyword("position", "static absolute relative fixed", *self } } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> SpecifiedValue { + *computed + } } </%helpers:single_keyword_computed> @@ -240,6 +244,20 @@ ${helpers.single_keyword("clear", "none left right both", computed_value::T::LengthOrPercentage(value.to_computed_value(context)), } } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + % for keyword in vertical_align_keywords: + computed_value::T::${to_rust_ident(keyword)} => { + SpecifiedValue::${to_rust_ident(keyword)} + } + % endfor + computed_value::T::LengthOrPercentage(value) => + SpecifiedValue::LengthOrPercentage( + ToComputedValue::from_computed_value(&value) + ), + } + } } </%helpers:longhand> @@ -266,6 +284,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", use cssparser::ToCss; use std::fmt; + use values::computed::ComputedValueAsSpecified; pub use self::computed_value::T as SpecifiedValue; @@ -284,14 +303,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", pub struct T(pub super::super::overflow_x::computed_value::T); } - impl ToComputedValue for SpecifiedValue { - type ComputedValue = computed_value::T; - - #[inline] - fn to_computed_value(&self, context: &Context) -> computed_value::T { - computed_value::T(self.0.to_computed_value(context)) - } - } + impl ComputedValueAsSpecified for SpecifiedValue {} pub fn get_initial_value() -> computed_value::T { computed_value::T(overflow_x::get_initial_value()) @@ -372,6 +384,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", use euclid::point::{Point2D, TypedPoint2D}; use std::marker::PhantomData; + use values::computed::ComputedValueAsSpecified; pub use self::computed_value::SingleComputedValue as SingleSpecifiedValue; pub use self::computed_value::T as SpecifiedValue; @@ -416,6 +429,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", use cssparser::ToCss; use euclid::point::Point2D; use std::fmt; + use values::computed::ComputedValueAsSpecified; pub use self::TransitionTimingFunction as SingleComputedValue; @@ -490,14 +504,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", use values::NoViewportPercentage; impl NoViewportPercentage for SpecifiedValue {} - impl ToComputedValue for SpecifiedValue { - type ComputedValue = computed_value::T; - - #[inline] - fn to_computed_value(&self, _: &Context) -> computed_value::T { - (*self).clone() - } - } + impl ComputedValueAsSpecified for SpecifiedValue {} #[inline] pub fn get_initial_value() -> computed_value::T { @@ -567,6 +574,9 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", <%helpers:longhand name="transition-property" need_index="True" animatable="False"> + + use values::computed::ComputedValueAsSpecified; + pub use self::computed_value::SingleComputedValue as SingleSpecifiedValue; pub use self::computed_value::T as SpecifiedValue; @@ -616,14 +626,7 @@ ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", use values::NoViewportPercentage; impl NoViewportPercentage for SpecifiedValue {} - impl ToComputedValue for SpecifiedValue { - type ComputedValue = computed_value::T; - - #[inline] - fn to_computed_value(&self, _: &Context) -> computed_value::T { - (*self).clone() - } - } + impl ComputedValueAsSpecified for SpecifiedValue { } </%helpers:longhand> <%helpers:longhand name="transition-delay" diff --git a/components/style/properties/longhand/color.mako.rs b/components/style/properties/longhand/color.mako.rs index 6074250105a..a3bde89e188 100644 --- a/components/style/properties/longhand/color.mako.rs +++ b/components/style/properties/longhand/color.mako.rs @@ -18,6 +18,14 @@ fn to_computed_value(&self, _context: &Context) -> computed_value::T { self.parsed } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + CSSRGBA { + parsed: *computed, + authored: None, + } + } } pub type SpecifiedValue = CSSRGBA; diff --git a/components/style/properties/longhand/column.mako.rs b/components/style/properties/longhand/column.mako.rs index 8d31a6fafc5..575438325a7 100644 --- a/components/style/properties/longhand/column.mako.rs +++ b/components/style/properties/longhand/column.mako.rs @@ -70,6 +70,14 @@ computed_value::T(Some(l.to_computed_value(context))) } } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T(None) => SpecifiedValue::Auto, + computed_value::T(Some(l)) => + SpecifiedValue::Specified(ToComputedValue::from_computed_value(&l)) + } + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -136,6 +144,15 @@ computed_value::T(Some(count)) } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T(None) => SpecifiedValue::Auto, + computed_value::T(Some(count)) => + SpecifiedValue::Specified(count) + } + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -216,6 +233,14 @@ computed_value::T(Some(l.to_computed_value(context))) } } + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T(None) => SpecifiedValue::Normal, + computed_value::T(Some(l)) => + SpecifiedValue::Specified(ToComputedValue::from_computed_value(&l)) + } + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { diff --git a/components/style/properties/longhand/effects.mako.rs b/components/style/properties/longhand/effects.mako.rs index c7865e53ba0..723875fbc99 100644 --- a/components/style/properties/longhand/effects.mako.rs +++ b/components/style/properties/longhand/effects.mako.rs @@ -111,6 +111,18 @@ ${helpers.predefined_type("opacity", inset: self.inset, } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue { + offset_x: ToComputedValue::from_computed_value(&computed.offset_x), + offset_y: ToComputedValue::from_computed_value(&computed.offset_y), + blur_radius: ToComputedValue::from_computed_value(&computed.blur_radius), + spread_radius: ToComputedValue::from_computed_value(&computed.spread_radius), + color: Some(ToComputedValue::from_computed_value(&computed.color)), + inset: computed.inset, + } + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -329,6 +341,16 @@ ${helpers.predefined_type("opacity", left: value.left.to_computed_value(context), })) } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(computed.0.map(|value| SpecifiedClipRect { + top: ToComputedValue::from_computed_value(&value.top), + right: value.right.map(|right| ToComputedValue::from_computed_value(&right)), + bottom: value.bottom.map(|bottom| ToComputedValue::from_computed_value(&bottom)), + left: ToComputedValue::from_computed_value(&value.left), + })) + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -629,6 +651,23 @@ ${helpers.predefined_type("opacity", } }).collect() } } + + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(computed.filters.iter().map(|value| { + match *value { + computed_value::Filter::Blur(factor) => + SpecifiedFilter::Blur(ToComputedValue::from_computed_value(&factor)), + computed_value::Filter::Brightness(factor) => SpecifiedFilter::Brightness(factor), + computed_value::Filter::Contrast(factor) => SpecifiedFilter::Contrast(factor), + computed_value::Filter::Grayscale(factor) => SpecifiedFilter::Grayscale(factor), + computed_value::Filter::HueRotate(factor) => SpecifiedFilter::HueRotate(factor), + computed_value::Filter::Invert(factor) => SpecifiedFilter::Invert(factor), + computed_value::Filter::Opacity(factor) => SpecifiedFilter::Opacity(factor), + computed_value::Filter::Saturate(factor) => SpecifiedFilter::Saturate(factor), + computed_value::Filter::Sepia(factor) => SpecifiedFilter::Sepia(factor), + } + }).collect()) + } } </%helpers:longhand> @@ -1113,6 +1152,43 @@ ${helpers.predefined_type("opacity", computed_value::T(Some(result)) } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(computed.0.as_ref().map(|computed| { + let mut result = vec!(); + for operation in computed { + match *operation { + computed_value::ComputedOperation::Matrix(ref matrix) => { + result.push(SpecifiedOperation::Matrix(*matrix)); + } + computed_value::ComputedOperation::Translate(ref tx, ref ty, ref tz) => { + // XXXManishearth we lose information here; perhaps we should try to + // recover the original function? Not sure if this can be observed. + result.push(SpecifiedOperation::Translate(TranslateKind::Translate, + ToComputedValue::from_computed_value(tx), + ToComputedValue::from_computed_value(ty), + ToComputedValue::from_computed_value(tz))); + } + computed_value::ComputedOperation::Scale(sx, sy, sz) => { + result.push(SpecifiedOperation::Scale(sx, sy, sz)); + } + computed_value::ComputedOperation::Rotate(ax, ay, az, theta) => { + result.push(SpecifiedOperation::Rotate(ax, ay, az, theta)); + } + computed_value::ComputedOperation::Skew(theta_x, theta_y) => { + result.push(SpecifiedOperation::Skew(theta_x, theta_y)); + } + computed_value::ComputedOperation::Perspective(ref d) => { + result.push(SpecifiedOperation::Perspective( + ToComputedValue::from_computed_value(d) + )); + } + }; + } + result + }).unwrap_or(Vec::new())) + } } </%helpers:longhand> @@ -1309,6 +1385,15 @@ ${helpers.single_keyword("transform-style", depth: self.depth.to_computed_value(context), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue { + horizontal: ToComputedValue::from_computed_value(&computed.horizontal), + vertical: ToComputedValue::from_computed_value(&computed.vertical), + depth: ToComputedValue::from_computed_value(&computed.depth), + } + } } </%helpers:longhand> @@ -1395,6 +1480,14 @@ ${helpers.predefined_type("perspective", vertical: self.vertical.to_computed_value(context), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue { + horizontal: ToComputedValue::from_computed_value(&computed.horizontal), + vertical: ToComputedValue::from_computed_value(&computed.vertical), + } + } } </%helpers:longhand> diff --git a/components/style/properties/longhand/font.mako.rs b/components/style/properties/longhand/font.mako.rs index 69cd9e369a7..b53a1d02a6a 100644 --- a/components/style/properties/longhand/font.mako.rs +++ b/components/style/properties/longhand/font.mako.rs @@ -249,6 +249,15 @@ ${helpers.single_keyword("font-variant", }, } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + % for weight in range(100, 901, 100): + computed_value::T::Weight${weight} => SpecifiedValue::Weight${weight}, + % endfor + } + } } </%helpers:longhand> @@ -310,6 +319,13 @@ ${helpers.single_keyword("font-variant", } } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(LengthOrPercentage::Length( + ToComputedValue::from_computed_value(computed) + )) + } } /// <length> | <percentage> | <absolute-size> | <relative-size> pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { diff --git a/components/style/properties/longhand/inherited_box.mako.rs b/components/style/properties/longhand/inherited_box.mako.rs index 1ef4b0e7d21..26abe0bb5d8 100644 --- a/components/style/properties/longhand/inherited_box.mako.rs +++ b/components/style/properties/longhand/inherited_box.mako.rs @@ -88,14 +88,8 @@ ${helpers.single_keyword("color-adjust", } } - impl ToComputedValue for SpecifiedValue { - type ComputedValue = computed_value::T; - - #[inline] - fn to_computed_value(&self, _: &Context) -> computed_value::T { - *self - } - } + use values::computed::ComputedValueAsSpecified; + impl ComputedValueAsSpecified for SpecifiedValue { } </%helpers:longhand> // Used in the bottom-up flow construction traversal to avoid constructing flows for diff --git a/components/style/properties/longhand/inherited_table.mako.rs b/components/style/properties/longhand/inherited_table.mako.rs index f0bf63577ff..e72533bb7b3 100644 --- a/components/style/properties/longhand/inherited_table.mako.rs +++ b/components/style/properties/longhand/inherited_table.mako.rs @@ -94,6 +94,14 @@ ${helpers.single_keyword("caption-side", "top bottom", vertical: self.vertical.to_computed_value(context), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue { + horizontal: ToComputedValue::from_computed_value(&computed.horizontal), + vertical: ToComputedValue::from_computed_value(&computed.vertical), + } + } } pub fn parse(_: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue,()> { diff --git a/components/style/properties/longhand/inherited_text.mako.rs b/components/style/properties/longhand/inherited_text.mako.rs index 8b8d0bfd059..b2f856059bb 100644 --- a/components/style/properties/longhand/inherited_text.mako.rs +++ b/components/style/properties/longhand/inherited_text.mako.rs @@ -127,6 +127,22 @@ } } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T::Normal => SpecifiedValue::Normal, + % if product == "gecko": + computed_value::T::MozBlockHeight => SpecifiedValue::MozBlockHeight, + % endif + computed_value::T::Number(value) => SpecifiedValue::Number(value), + computed_value::T::Length(au) => { + SpecifiedValue::LengthOrPercentage(specified::LengthOrPercentage::Length( + ToComputedValue::from_computed_value(&au) + )) + } + } + } } </%helpers:longhand> @@ -255,6 +271,13 @@ computed_value::T(Some(l.to_computed_value(context))) } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + computed.0.map(|ref au| { + SpecifiedValue::Specified(ToComputedValue::from_computed_value(au)) + }).unwrap_or(SpecifiedValue::Normal) + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -329,6 +352,13 @@ computed_value::T(Some(l.to_computed_value(context))), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + computed.0.map(|ref lop| { + SpecifiedValue::Specified(ToComputedValue::from_computed_value(lop)) + }).unwrap_or(SpecifiedValue::Normal) + } } pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { @@ -688,6 +718,17 @@ ${helpers.single_keyword("text-justify", } }).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> diff --git a/components/style/properties/longhand/list.mako.rs b/components/style/properties/longhand/list.mako.rs index 4ae74f386b0..62eed32f53b 100644 --- a/components/style/properties/longhand/list.mako.rs +++ b/components/style/properties/longhand/list.mako.rs @@ -81,6 +81,14 @@ ${helpers.single_keyword("list-style-type", """ SpecifiedValue::Url(ref url) => computed_value::T(Some(url.clone())), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T(None) => SpecifiedValue::None, + computed_value::T(Some(ref url)) => SpecifiedValue::Url(url.clone()), + } + } } pub fn parse(context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> { diff --git a/components/style/properties/longhand/outline.mako.rs b/components/style/properties/longhand/outline.mako.rs index bd916fa7b33..ada1ffc7bfa 100644 --- a/components/style/properties/longhand/outline.mako.rs +++ b/components/style/properties/longhand/outline.mako.rs @@ -66,6 +66,11 @@ ${helpers.predefined_type("outline-color", "CSSColor", "::cssparser::Color::Curr fn to_computed_value(&self, context: &Context) -> computed_value::T { self.0.to_computed_value(context) } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + SpecifiedValue(ToComputedValue::from_computed_value(computed)) + } } </%helpers:longhand> diff --git a/components/style/properties/longhand/svg.mako.rs b/components/style/properties/longhand/svg.mako.rs index b7f78cd0ebd..2d0321ad7e0 100644 --- a/components/style/properties/longhand/svg.mako.rs +++ b/components/style/properties/longhand/svg.mako.rs @@ -87,7 +87,7 @@ ${helpers.single_keyword("mask-mode", // TODO implement all of repeat-style for background and mask // https://drafts.csswg.org/css-backgrounds-3/#repeat-style ${helpers.single_keyword("mask-repeat", - "repeat repeat-x repeat-y no-repeat", + "repeat repeat-x repeat-y space round no-repeat", vector=True, products="gecko", animatable=False)} @@ -238,5 +238,16 @@ ${helpers.single_keyword("mask-composite", computed_value::T::Url(url.clone(), data.clone()), } } + + #[inline] + fn from_computed_value(computed: &computed_value::T) -> Self { + match *computed { + computed_value::T::None => SpecifiedValue::None, + computed_value::T::Image(ref image) => + SpecifiedValue::Image(ToComputedValue::from_computed_value(image)), + computed_value::T::Url(ref url, ref data) => + SpecifiedValue::Url(url.clone(), data.clone()), + } + } } </%helpers:vector_longhand> diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index f2f8fbd2b66..e891b051ee3 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -2278,20 +2278,6 @@ pub fn modify_style_for_text(style: &mut Arc<ComputedValues>) { } } -/// Adjusts the `margin` property as necessary to account for the text of an `input` element. -/// -/// Margins apply to the `input` element itself, so including them in the text will cause them to -/// be double-counted. -#[cfg(feature = "servo")] -pub fn modify_style_for_input_text(style: &mut Arc<ComputedValues>) { - let mut style = Arc::make_mut(style); - let margin_style = Arc::make_mut(&mut style.margin); - margin_style.margin_top = computed::LengthOrPercentageOrAuto::Length(Au(0)); - margin_style.margin_right = computed::LengthOrPercentageOrAuto::Length(Au(0)); - margin_style.margin_bottom = computed::LengthOrPercentageOrAuto::Length(Au(0)); - margin_style.margin_left = computed::LengthOrPercentageOrAuto::Length(Au(0)); -} - /// Adjusts the `clip` property so that an inline absolute hypothetical fragment doesn't clip its /// children. #[cfg(feature = "servo")] diff --git a/components/style/servo_selector_impl.rs b/components/style/servo_selector_impl.rs index f54ef9f3870..70288c655f0 100644 --- a/components/style/servo_selector_impl.rs +++ b/components/style/servo_selector_impl.rs @@ -21,6 +21,7 @@ pub enum PseudoElement { Selection, DetailsSummary, DetailsContent, + ServoInputText, } impl ToCss for PseudoElement { @@ -32,6 +33,7 @@ impl ToCss for PseudoElement { Selection => "::selection", DetailsSummary => "::-servo-details-summary", DetailsContent => "::-servo-details-content", + ServoInputText => "::-servo-input-text", }) } } @@ -54,7 +56,8 @@ impl PseudoElement { PseudoElement::After | PseudoElement::Selection => PseudoElementCascadeType::Eager, PseudoElement::DetailsSummary => PseudoElementCascadeType::Lazy, - PseudoElement::DetailsContent => PseudoElementCascadeType::Precomputed, + PseudoElement::DetailsContent | + PseudoElement::ServoInputText => PseudoElementCascadeType::Precomputed, } } } @@ -201,6 +204,12 @@ impl SelectorImpl for ServoSelectorImpl { } DetailsContent }, + "-servo-input-text" => { + if !context.in_user_agent_stylesheet { + return Err(()) + } + ServoInputText + }, _ => return Err(()) }; @@ -222,6 +231,7 @@ impl ServoSelectorImpl { fun(PseudoElement::DetailsContent); fun(PseudoElement::DetailsSummary); fun(PseudoElement::Selection); + fun(PseudoElement::ServoInputText); } #[inline] diff --git a/components/style/values/computed/mod.rs b/components/style/values/computed/mod.rs index ddaa0c66ee8..1f51fa6212b 100644 --- a/components/style/values/computed/mod.rs +++ b/components/style/values/computed/mod.rs @@ -41,6 +41,13 @@ pub trait ToComputedValue { #[inline] fn to_computed_value(&self, _context: &Context) -> Self::ComputedValue; + + #[inline] + /// Convert a computed value to specified value form. + /// + /// This will be used for recascading during animation. + /// Such from_computed_valued values should recompute to the same value. + fn from_computed_value(computed: &Self::ComputedValue) -> Self; } pub trait ComputedValueAsSpecified {} @@ -52,6 +59,11 @@ impl<T> ToComputedValue for T where T: ComputedValueAsSpecified + Clone { fn to_computed_value(&self, _context: &Context) -> T { self.clone() } + + #[inline] + fn from_computed_value(computed: &T) -> Self { + computed.clone() + } } impl ToComputedValue for specified::CSSColor { @@ -61,6 +73,14 @@ impl ToComputedValue for specified::CSSColor { fn to_computed_value(&self, _context: &Context) -> CSSColor { self.parsed } + + #[inline] + fn from_computed_value(computed: &CSSColor) -> Self { + specified::CSSColor { + parsed: *computed, + authored: None, + } + } } impl ComputedValueAsSpecified for specified::BorderStyle {} @@ -82,6 +102,11 @@ impl ToComputedValue for specified::Length { length.to_computed_value(context.style().get_font().clone_font_size()) } } + + #[inline] + fn from_computed_value(computed: &Au) -> Self { + specified::Length::Absolute(*computed) + } } #[derive(Clone, PartialEq, Copy, Debug)] @@ -170,6 +195,15 @@ impl ToComputedValue for specified::CalcLengthOrPercentage { context.style().root_font_size()) } + + #[inline] + fn from_computed_value(computed: &CalcLengthOrPercentage) -> Self { + specified::CalcLengthOrPercentage { + absolute: computed.length, + percentage: computed.percentage.map(specified::Percentage), + ..Default::default() + } + } } @@ -192,6 +226,13 @@ impl ToComputedValue for specified::BorderRadiusSize { let h = self.0.height.to_computed_value(context); BorderRadiusSize(Size2D::new(w, h)) } + + #[inline] + fn from_computed_value(computed: &BorderRadiusSize) -> Self { + let w = ToComputedValue::from_computed_value(&computed.0.width); + let h = ToComputedValue::from_computed_value(&computed.0.height); + specified::BorderRadiusSize(Size2D::new(w, h)) + } } impl ::cssparser::ToCss for BorderRadiusSize { @@ -264,6 +305,24 @@ impl ToComputedValue for specified::LengthOrPercentage { } } } + + fn from_computed_value(computed: &LengthOrPercentage) -> Self { + match *computed { + LengthOrPercentage::Length(value) => { + specified::LengthOrPercentage::Length( + ToComputedValue::from_computed_value(&value) + ) + } + LengthOrPercentage::Percentage(value) => { + specified::LengthOrPercentage::Percentage(specified::Percentage(value)) + } + LengthOrPercentage::Calc(calc) => { + specified::LengthOrPercentage::Calc( + ToComputedValue::from_computed_value(&calc) + ) + } + } + } } impl ::cssparser::ToCss for LengthOrPercentage { @@ -331,6 +390,26 @@ impl ToComputedValue for specified::LengthOrPercentageOrAuto { } } } + + #[inline] + fn from_computed_value(computed: &LengthOrPercentageOrAuto) -> Self { + match *computed { + LengthOrPercentageOrAuto::Auto => specified::LengthOrPercentageOrAuto::Auto, + LengthOrPercentageOrAuto::Length(value) => { + specified::LengthOrPercentageOrAuto::Length( + ToComputedValue::from_computed_value(&value) + ) + } + LengthOrPercentageOrAuto::Percentage(value) => { + specified::LengthOrPercentageOrAuto::Percentage(specified::Percentage(value)) + } + LengthOrPercentageOrAuto::Calc(calc) => { + specified::LengthOrPercentageOrAuto::Calc( + ToComputedValue::from_computed_value(&calc) + ) + } + } + } } impl ::cssparser::ToCss for LengthOrPercentageOrAuto { @@ -390,6 +469,32 @@ impl ToComputedValue for specified::LengthOrPercentageOrAutoOrContent { } } } + + + #[inline] + fn from_computed_value(computed: &LengthOrPercentageOrAutoOrContent) -> Self { + match *computed { + LengthOrPercentageOrAutoOrContent::Auto => { + specified::LengthOrPercentageOrAutoOrContent::Auto + } + LengthOrPercentageOrAutoOrContent::Content => { + specified::LengthOrPercentageOrAutoOrContent::Content + } + LengthOrPercentageOrAutoOrContent::Length(value) => { + specified::LengthOrPercentageOrAutoOrContent::Length( + ToComputedValue::from_computed_value(&value) + ) + } + LengthOrPercentageOrAutoOrContent::Percentage(value) => { + specified::LengthOrPercentageOrAutoOrContent::Percentage(specified::Percentage(value)) + } + LengthOrPercentageOrAutoOrContent::Calc(calc) => { + specified::LengthOrPercentageOrAutoOrContent::Calc( + ToComputedValue::from_computed_value(&calc) + ) + } + } + } } impl ::cssparser::ToCss for LengthOrPercentageOrAutoOrContent { @@ -445,6 +550,26 @@ impl ToComputedValue for specified::LengthOrPercentageOrNone { } } } + + #[inline] + fn from_computed_value(computed: &LengthOrPercentageOrNone) -> Self { + match *computed { + LengthOrPercentageOrNone::None => specified::LengthOrPercentageOrNone::None, + LengthOrPercentageOrNone::Length(value) => { + specified::LengthOrPercentageOrNone::Length( + ToComputedValue::from_computed_value(&value) + ) + } + LengthOrPercentageOrNone::Percentage(value) => { + specified::LengthOrPercentageOrNone::Percentage(specified::Percentage(value)) + } + LengthOrPercentageOrNone::Calc(calc) => { + specified::LengthOrPercentageOrNone::Calc( + ToComputedValue::from_computed_value(&calc) + ) + } + } + } } impl ::cssparser::ToCss for LengthOrPercentageOrNone { @@ -492,6 +617,18 @@ impl ToComputedValue for specified::LengthOrNone { } } } + + #[inline] + fn from_computed_value(computed: &LengthOrNone) -> Self { + match *computed { + LengthOrNone::Length(au) => { + specified::LengthOrNone::Length(ToComputedValue::from_computed_value(&au)) + } + LengthOrNone::None => { + specified::LengthOrNone::None + } + } + } } impl ::cssparser::ToCss for LengthOrNone { @@ -517,6 +654,20 @@ impl ToComputedValue for specified::Image { } } } + + #[inline] + fn from_computed_value(computed: &Image) -> Self { + match *computed { + Image::Url(ref url, ref extra_data) => { + specified::Image::Url(url.clone(), extra_data.clone()) + }, + Image::LinearGradient(ref linear_gradient) => { + specified::Image::LinearGradient( + ToComputedValue::from_computed_value(linear_gradient) + ) + } + } + } } @@ -638,6 +789,25 @@ impl ToComputedValue for specified::LinearGradient { }).collect() } } + #[inline] + fn from_computed_value(computed: &LinearGradient) -> Self { + let LinearGradient { + angle_or_corner, + ref stops + } = *computed; + specified::LinearGradient { + angle_or_corner: angle_or_corner, + stops: stops.iter().map(|stop| { + specified::ColorStop { + color: ToComputedValue::from_computed_value(&stop.color), + position: match stop.position { + None => None, + Some(value) => Some(ToComputedValue::from_computed_value(&value)), + }, + } + }).collect() + } + } } pub type Length = Au; pub type Number = CSSFloat; diff --git a/components/style/values/specified/basic_shape.rs b/components/style/values/specified/basic_shape.rs index 2ff53a5c08f..ad100a33b6a 100644 --- a/components/style/values/specified/basic_shape.rs +++ b/components/style/values/specified/basic_shape.rs @@ -94,6 +94,7 @@ impl<T: Parse + PartialEq + Copy> ShapeSource<T> { impl<T: ToComputedValue> ToComputedValue for ShapeSource<T> { type ComputedValue = computed_basic_shape::ShapeSource<T::ComputedValue>; + #[inline] fn to_computed_value(&self, cx: &Context) -> Self::ComputedValue { match *self { @@ -111,6 +112,24 @@ impl<T: ToComputedValue> ToComputedValue for ShapeSource<T> { ShapeSource::None => computed_basic_shape::ShapeSource::None, } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + match *computed { + computed_basic_shape::ShapeSource::Url(ref url, ref data) => { + ShapeSource::Url(url.clone(), data.clone()) + } + computed_basic_shape::ShapeSource::Shape(ref shape, ref reference) => { + ShapeSource::Shape( + ToComputedValue::from_computed_value(shape), + reference.as_ref().map(|r| ToComputedValue::from_computed_value(r))) + } + computed_basic_shape::ShapeSource::Box(ref reference) => { + ShapeSource::Box(ToComputedValue::from_computed_value(reference)) + } + computed_basic_shape::ShapeSource::None => ShapeSource::None, + } + } } #[derive(Clone, PartialEq, Debug)] @@ -169,6 +188,23 @@ impl ToComputedValue for BasicShape { BasicShape::Polygon(ref poly) => computed_basic_shape::BasicShape::Polygon(poly.to_computed_value(cx)), } } + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + match *computed { + computed_basic_shape::BasicShape::Inset(ref rect) => { + BasicShape::Inset(ToComputedValue::from_computed_value(rect)) + } + computed_basic_shape::BasicShape::Circle(ref circle) => { + BasicShape::Circle(ToComputedValue::from_computed_value(circle)) + } + computed_basic_shape::BasicShape::Ellipse(ref e) => { + BasicShape::Ellipse(ToComputedValue::from_computed_value(e)) + } + computed_basic_shape::BasicShape::Polygon(ref poly) => { + BasicShape::Polygon(ToComputedValue::from_computed_value(poly)) + } + } + } } #[derive(Clone, PartialEq, Copy, Debug)] @@ -239,6 +275,17 @@ impl ToComputedValue for InsetRect { round: self.round.map(|r| r.to_computed_value(cx)), } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + InsetRect { + top: ToComputedValue::from_computed_value(&computed.top), + right: ToComputedValue::from_computed_value(&computed.right), + bottom: ToComputedValue::from_computed_value(&computed.bottom), + left: ToComputedValue::from_computed_value(&computed.left), + round: computed.round.map(|ref r| ToComputedValue::from_computed_value(r)), + } + } } /// https://drafts.csswg.org/css-shapes/#basic-shape-serialization @@ -384,6 +431,14 @@ impl ToComputedValue for Circle { position: self.position.to_computed_value(cx), } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + Circle { + radius: ToComputedValue::from_computed_value(&computed.radius), + position: ToComputedValue::from_computed_value(&computed.position), + } + } } #[derive(Clone, PartialEq, Copy, Debug)] @@ -454,6 +509,15 @@ impl ToComputedValue for Ellipse { position: self.position.to_computed_value(cx), } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + Ellipse { + semiaxis_x: ToComputedValue::from_computed_value(&computed.semiaxis_x), + semiaxis_y: ToComputedValue::from_computed_value(&computed.semiaxis_y), + position: ToComputedValue::from_computed_value(&computed.position), + } + } } @@ -528,6 +592,19 @@ impl ToComputedValue for Polygon { .collect(), } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + Polygon { + fill: ToComputedValue::from_computed_value(&computed.fill), + coordinates: computed.coordinates.iter() + .map(|c| { + (ToComputedValue::from_computed_value(&c.0), + ToComputedValue::from_computed_value(&c.1)) + }) + .collect(), + } + } } /// https://drafts.csswg.org/css-shapes/#typedef-shape-radius @@ -582,6 +659,17 @@ impl ToComputedValue for ShapeRadius { ShapeRadius::FarthestSide => computed_basic_shape::ShapeRadius::FarthestSide, } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + match *computed { + computed_basic_shape::ShapeRadius::Length(ref lop) => { + ShapeRadius::Length(ToComputedValue::from_computed_value(lop)) + } + computed_basic_shape::ShapeRadius::ClosestSide => ShapeRadius::ClosestSide, + computed_basic_shape::ShapeRadius::FarthestSide => ShapeRadius::FarthestSide, + } + } } /// https://drafts.csswg.org/css-backgrounds-3/#border-radius @@ -674,6 +762,16 @@ impl ToComputedValue for BorderRadius { bottom_left: self.bottom_left.to_computed_value(cx), } } + + #[inline] + fn from_computed_value(computed: &Self::ComputedValue) -> Self { + BorderRadius { + top_left: ToComputedValue::from_computed_value(&computed.top_left), + top_right: ToComputedValue::from_computed_value(&computed.top_right), + bottom_right: ToComputedValue::from_computed_value(&computed.bottom_right), + bottom_left: ToComputedValue::from_computed_value(&computed.bottom_left), + } + } } /// https://drafts.csswg.org/css-shapes/#typedef-fill-rule diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index 14cd7cccd0e..64c66ccc729 100644 --- a/components/style/values/specified/mod.rs +++ b/components/style/values/specified/mod.rs @@ -17,7 +17,7 @@ use std::fmt; use std::ops::Mul; use style_traits::values::specified::AllowedNumericType; use super::{CSSFloat, FONT_MEDIUM_PX, HasViewportPercentage, LocalToCss, NoViewportPercentage}; -use super::computed::{self, Context, ToComputedValue}; +use super::computed::{self, ComputedValueAsSpecified, Context, ToComputedValue}; use url::Url; pub mod basic_shape; @@ -456,7 +456,7 @@ enum CalcUnit { Time, } -#[derive(Clone, PartialEq, Copy, Debug)] +#[derive(Clone, PartialEq, Copy, Debug, Default)] #[cfg_attr(feature = "servo", derive(HeapSizeOf))] pub struct CalcLengthOrPercentage { pub absolute: Option<Au>, @@ -1525,14 +1525,7 @@ impl Time { } } -impl ToComputedValue for Time { - type ComputedValue = Time; - - #[inline] - fn to_computed_value(&self, _: &Context) -> Time { - *self - } -} +impl ComputedValueAsSpecified for Time {} impl ToCss for Time { fn to_css<W>(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { @@ -1572,6 +1565,11 @@ impl ToComputedValue for Number { #[inline] fn to_computed_value(&self, _: &Context) -> CSSFloat { self.0 } + + #[inline] + fn from_computed_value(computed: &CSSFloat) -> Self { + Number(*computed) + } } impl ToCss for Number { @@ -1605,6 +1603,11 @@ impl ToComputedValue for Opacity { self.0 } } + + #[inline] + fn from_computed_value(computed: &CSSFloat) -> Self { + Opacity(*computed) + } } impl ToCss for Opacity { diff --git a/components/style/values/specified/position.rs b/components/style/values/specified/position.rs index 7ade88663b5..1de237a6b5e 100644 --- a/components/style/values/specified/position.rs +++ b/components/style/values/specified/position.rs @@ -329,6 +329,16 @@ impl ToComputedValue for Position { vertical: vertical, } } + + #[inline] + fn from_computed_value(computed: &computed_position::Position) -> Position { + Position { + horiz_keyword: None, + horiz_position: Some(ToComputedValue::from_computed_value(&computed.horizontal)), + vert_keyword: None, + vert_position: Some(ToComputedValue::from_computed_value(&computed.vertical)), + } + } } impl HasViewportPercentage for PositionComponent { diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index ac0e479c726..123e9437962 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -5,7 +5,7 @@ dependencies = [ "cocoa 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "compositing 0.0.1", "devtools 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "glutin_app 0.0.1", "layers 0.5.3 (git+https://github.com/servo/rust-layers)", @@ -44,7 +44,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "angle" version = "0.1.1" -source = "git+https://github.com/servo/angle?branch=servo#832ffd74ac892682dfcaea27dc518130a72e280c" +source = "git+https://github.com/servo/angle?branch=servo#f19aefbf3db45952480e7255cdf844db827c0bcb" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -72,7 +72,7 @@ dependencies = [ [[package]] name = "aster" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -94,16 +94,16 @@ dependencies = [ "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -202,7 +202,7 @@ version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", "canvas_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -220,14 +220,14 @@ version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", ] @@ -285,7 +285,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -298,7 +298,7 @@ dependencies = [ "profile_traits 0.0.1", "script_traits 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -316,7 +316,7 @@ dependencies = [ "canvas_traits 0.0.1", "compositing 0.0.1", "devtools_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -332,7 +332,7 @@ dependencies = [ "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -478,7 +478,7 @@ dependencies = [ "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", ] @@ -495,7 +495,7 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -598,7 +598,7 @@ dependencies = [ [[package]] name = "euclid" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -634,7 +634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "fontsan" version = "0.3.2" -source = "git+https://github.com/servo/fontsan#08bfa604bf0cc882d9b4385c57db65e200975b72" +source = "git+https://github.com/servo/fontsan#5519a0599d7f80f0f4781e562a37878b45f72e04" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", @@ -708,12 +708,12 @@ dependencies = [ "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "fontsan 0.3.2 (git+https://github.com/servo/fontsan)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "gfx_traits 0.0.1", - "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -731,7 +731,7 @@ dependencies = [ "range 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "simd 0.1.1 (git+https://github.com/huonw/simd)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -751,7 +751,7 @@ name = "gfx_traits" version = "0.0.1" dependencies = [ "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "layers 0.5.3 (git+https://github.com/servo/rust-layers)", @@ -761,7 +761,7 @@ dependencies = [ "range 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -802,7 +802,7 @@ version = "0.0.1" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "compositing 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "layers 0.5.3 (git+https://github.com/servo/rust-layers)", @@ -832,7 +832,7 @@ dependencies = [ [[package]] name = "harfbuzz-sys" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1056,7 +1056,7 @@ source = "git+https://github.com/servo/rust-layers#b064de859b2cf3f4e07b29ee11a34 dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1065,7 +1065,7 @@ dependencies = [ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)", + "servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1078,7 +1078,7 @@ dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -1097,7 +1097,7 @@ dependencies = [ "script_layout_interface 0.0.1", "script_traits 0.0.1", "selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", @@ -1115,7 +1115,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.8.0 (git+https://github.com/servo/rust-azure)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx 0.0.1", "gfx_traits 0.0.1", @@ -1134,7 +1134,7 @@ dependencies = [ "script_layout_interface 0.0.1", "script_traits 0.0.1", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -1292,7 +1292,7 @@ dependencies = [ [[package]] name = "mozjs_sys" version = "0.0.0" -source = "git+https://github.com/servo/mozjs#cdf21f7c5596cb6e02eb9afdfc51841deea84a1f" +source = "git+https://github.com/servo/mozjs#34c3e075138bb7eff2ed8b5924ccb9067dcd017e" dependencies = [ "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1324,7 +1324,7 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", ] @@ -1396,7 +1396,7 @@ dependencies = [ "msg 0.0.1", "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1493,7 +1493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1667,7 +1667,7 @@ dependencies = [ "regex 0.1.76 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "task_info 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", @@ -1680,29 +1680,29 @@ dependencies = [ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "plugins 0.0.1", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quasi" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quasi_codegen" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quasi_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quasi_codegen 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi_codegen 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1731,7 +1731,7 @@ dependencies = [ "num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1804,7 +1804,7 @@ dependencies = [ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1858,7 +1858,7 @@ dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "canvas_traits 0.0.1", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1886,7 +1886,7 @@ dependencies = [ "canvas_traits 0.0.1", "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "devtools_traits 0.0.1", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1901,7 +1901,7 @@ dependencies = [ "profile_traits 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1934,18 +1934,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_codegen" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi_macros 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen_internals 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "quasi_macros 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen_internals 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_codegen_internals" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1961,10 +1961,10 @@ dependencies = [ [[package]] name = "serde_macros" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde_codegen 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_codegen 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1982,7 +1982,7 @@ dependencies = [ "devtools 0.0.1", "devtools_traits 0.0.1", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2076,12 +2076,12 @@ dependencies = [ [[package]] name = "servo-skia" -version = "0.20130412.23" +version = "0.20130412.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2158,7 +2158,7 @@ dependencies = [ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2176,7 +2176,7 @@ dependencies = [ "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", @@ -2192,12 +2192,12 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2324,7 +2324,7 @@ name = "unicode-script" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2376,7 +2376,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2386,7 +2386,7 @@ dependencies = [ "plugins 0.0.1", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2484,7 +2484,7 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "cookie 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2511,7 +2511,7 @@ dependencies = [ "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.1.0 (git+https://github.com/servo/rust-freetype)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2533,13 +2533,13 @@ dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2636,7 +2636,7 @@ dependencies = [ "checksum angle 0.1.1 (git+https://github.com/servo/angle?branch=servo)" = "<none>" "checksum app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "636ee56f12e31dbc11dc0a1ac6004f08b04e6e6595963716fc8130e90d4e04cf" "checksum arrayvec 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "80a137392e2e92ce7387c063d98a11f0d47115426c5f8759657af3c7b385c860" -"checksum aster 0.26.1 (registry+https://github.com/rust-lang/crates.io-index)" = "baa18cafee9499ac766e76117577b84efa98f43b81964cf167cd800b29176db3" +"checksum aster 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "258989846dd255a1e0eeef92d425d345477c9999433cecc9f0879f4549d5e5c9" "checksum audio-video-metadata 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "03da2550cb89fe3faf218c179261c26cf7891c4234707c15f5d09ebb32ae2400" "checksum azure 0.8.0 (git+https://github.com/servo/rust-azure)" = "<none>" "checksum backtrace 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "346d7644f0b5f9bc73082d3b2236b69a05fd35cce0cfa3724e184e6a5c9e2a2f" @@ -2682,7 +2682,7 @@ dependencies = [ "checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" "checksum enum_primitive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79eff5be92a4d7d5bddf7daa7d650717ea71628634efe6ca7bcda85b2183c23" "checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb" -"checksum euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cce91503add3d0a1787b9bc8a9a59ee66ea5de1c3aaa6faf67b62997843160d3" +"checksum euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "44ef2a3e4a621518e488db36820a12b49a9d5004764b8daf1458bbe5d7c9b626" "checksum expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cef36cd1a8a02d28b91d97347c63247b9e4cb8a8e36df36f8201dc87a1c0859c" "checksum flate2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "3eeb481e957304178d2e782f2da1257f1434dfecbae883bafb61ada2a9fea3bb" "checksum fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8e8af7b5408ab0c4910cad114c8f9eb454bf75df7afe8964307eeafb68a13a5e" @@ -2699,7 +2699,7 @@ dependencies = [ "checksum gleam 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)" = "e299fc6b34e698955c6e7cbe7afef2b89774124c82d3636ab85c540edd9ad567" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72" -"checksum harfbuzz-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "16f772015f526a0cb0c642676cf696bcd2de35e4b91d016a8105755fec2bb373" +"checksum harfbuzz-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6b76113246f5c089dcf272cf89c3f61168a4d77b50ec5b2c1fab8c628c9ea762" "checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c" "checksum heapsize_plugin 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c9a70a1ef0122b54e0553f1d960b686c40d33a7953bc63029509a7649c8ee2c4" "checksum heartbeats-simple 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78c0810722eacd0bdd3f1f691524bd9900bf8fed1947f6b883c10ddecd2560b1" @@ -2772,9 +2772,9 @@ dependencies = [ "checksum pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8cee804ecc7eaf201a4a207241472cc870e825206f6c031e3ee2a72fa425f2fa" "checksum pnacl-build-helper 1.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "61c9231d31aea845007443d62fcbb58bb6949ab9c18081ee1e09920e0cf1118b" "checksum png 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "06208e2ee243e3118a55dda9318f821f206d8563fb8d4df258767f8e62bb0997" -"checksum quasi 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f9b160391362abca7c0e30cead65872b01b03f8371dee7441e130601c9b4d173" -"checksum quasi_codegen 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc10982c4b09697fb79d7725ea5e33ef2b1ff934fdddefa3e83d4f8c50b8d34" -"checksum quasi_macros 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4debfba7bd3bfb3d93439a758e0fd9a6ba8c9b8fc0296bf989fe8f8e30de765" +"checksum quasi 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50d83f9f141f12a586aae8eefa4fdb39a273fc1a1f4cfb252a4cb566a9ca8985" +"checksum quasi_codegen 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb4a9a5410fdbdacbeda8063ddb8add9838dfd4cf50ac486db98abb762d8bd6" +"checksum quasi_macros 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "adc2b36285ea5e54e4e267f83896267ff8c5aba4f66b2e7d186ed6d968f3715f" "checksum quickersort 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e952ea7699262481636004bc4ab8afaccf2bc13f91b79d1aee6617bd8fc39651" "checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5" "checksum rayon 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e501871917624668fe601ad12a730450414f9b0b64722a898b040ce3ae1b0fa" @@ -2788,16 +2788,16 @@ dependencies = [ "checksum selectors 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f844a32e73a0d8e59a76036751fcb5581ca1ded4f2f2f3dc21720a80ba908af" "checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" "checksum serde 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8523fd515099dac5b5abd25b0b9f9709d40eedf03f72ca519903bf138a6577be" -"checksum serde_codegen 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1b749326ac14ace12e5117d3e14a4509853ba0bea54c335d27dad66bd9fdfa" -"checksum serde_codegen_internals 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8488640b7caaa438eb05c74466f9fa91a61bb4e4e7520f3c1cfcf77fb10bdb61" +"checksum serde_codegen 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "da68810d845f8e33a80243c28794650397056cbe7aea4c9c7516f55d1061c94e" +"checksum serde_codegen_internals 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0115c5c602e81c61b787fb0f0fa76a614f8dbe9100b2b59b7d590155672c80" "checksum serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e10f8a9d94b06cf5d3bef66475f04c8ff90950f1be7004c357ff9472ccbaebc" -"checksum serde_macros 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9cda78202a0f6d28fdbac9565789ae8e90025ed10f324284271a02265975271e" +"checksum serde_macros 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c3cf1c01933271e1e72bb788e0499d1bca8af2c09efcc3ddc0b04ff22d080b83" "checksum servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21069a884c33fe6ee596975e1f3849ed88c4ec857fbaf11d33672d8ebe051217" "checksum servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "93f799b649b4a2bf362398910eca35240704c7e765e780349b2bb1070d892262" "checksum servo-fontconfig-sys 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8e597efa2e1e0883fcb5317e0062d2ffdfed9b926ce8a6f90082be774f39e416" "checksum servo-freetype-sys 4.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5daf749c5a8fe5e7f93fc5a355a2ea0b36502832c6feff79a67d9359baddde78" "checksum servo-glutin 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4507713583641d2a11d7fb2a2ff0ba059537ff8a611e5e8ddd94ca82730962e3" -"checksum servo-skia 0.20130412.23 (registry+https://github.com/rust-lang/crates.io-index)" = "76c3f8ceb079e39d98346841cd9d83b8b7c46dbf4645723919627745d4addd34" +"checksum servo-skia 0.20130412.24 (registry+https://github.com/rust-lang/crates.io-index)" = "bb975cdf292243956e6b6acfac336ac8be0aa567e32bb89901be161e4003d0b3" "checksum shared_library 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb04126b6fcfd2710fb5b6d18f4207b6c535f2850a7e1a43bcd526d44f30a79a" "checksum shell32-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f20b8f3c060374edb8046591ba28f62448c369ccbdc7b02075103fb3a9e38d" "checksum sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6649e43c1a1e68d29ed56d0dc3b5b6cf3b901da77cf107c4066b9e3da036df5" diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock index 8581961e329..985ffe2b4fa 100644 --- a/ports/geckolib/Cargo.lock +++ b/ports/geckolib/Cargo.lock @@ -4,7 +4,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "gecko_bindings 0.0.1", "gecko_string_cache 0.2.20", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -141,7 +141,7 @@ dependencies = [ [[package]] name = "euclid" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -361,7 +361,7 @@ dependencies = [ "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "gecko_bindings 0.0.1", "gecko_string_cache 0.2.20", @@ -391,7 +391,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -474,7 +474,7 @@ version = "0.0.1" dependencies = [ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -530,7 +530,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" "checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" "checksum env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "82dcb9ceed3868a03b335657b85a159736c961900f7e7747d3b0b97b9ccb5ccb" -"checksum euclid 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cce91503add3d0a1787b9bc8a9a59ee66ea5de1c3aaa6faf67b62997843160d3" +"checksum euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "44ef2a3e4a621518e488db36820a12b49a9d5004764b8daf1458bbe5d7c9b626" "checksum fnv 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8e8af7b5408ab0c4910cad114c8f9eb454bf75df7afe8964307eeafb68a13a5e" "checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" "checksum heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "abb306abb8d398e053cfb1b3e7b72c2f580be048b85745c52652954f8ad1439c" diff --git a/ports/geckolib/binding_tools/regen.py b/ports/geckolib/binding_tools/regen.py index 0ff54c16031..836b1dcc641 100755 --- a/ports/geckolib/binding_tools/regen.py +++ b/ports/geckolib/binding_tools/regen.py @@ -23,13 +23,12 @@ COMPILATION_TARGETS = { # Flags common for all the targets. COMMON_BUILD_KEY: { "flags": [ - "--allow-unknown-types", "--no-unstable-rust", - "--no-type-renaming", "--no-namespaced-constants", + "--no-unstable-rust", "--no-type-renaming", ], "clang_flags": [ "-x", "c++", "-std=c++14", "-DTRACING=1", "-DIMPL_LIBXUL", "-DMOZ_STYLO_BINDINGS=1", - "-DMOZILLA_INTERNAL_API", "-DRUST_BINDGEN", + "-DMOZILLA_INTERNAL_API", "-DRUST_BINDGEN", "-DMOZ_STYLO" ], "search_dirs": [ "{}/dist/include", @@ -52,6 +51,7 @@ COMPILATION_TARGETS = { "{}/dist/include/nsThemeConstants.h", "{}/dist/include/mozilla/dom/AnimationEffectReadOnlyBinding.h", "{}/dist/include/mozilla/ServoElementSnapshot.h", + "{}/dist/include/mozilla/dom/Element.h", ], "files": [ "{}/dist/include/nsStyleStruct.h", @@ -66,48 +66,107 @@ COMPILATION_TARGETS = { "release": { } }, - "match_headers": [ - "RefCountType.h", "nscore.h", "nsError.h", "nsID.h", "nsString", - "nsAString", "nsSubstring", "nsTSubstring", "nsTString", - "nsISupportsBase.h", "nsCOMPtr.h", "nsIAtom.h", "nsIURI.h", - "nsAutoPtr.h", "nsColor.h", "nsCoord.h", "nsPoint.h", "nsRect.h", - "nsMargin.h", "nsThemeConstants.h", "nsCSSProperty.h", "nsCSSPropertyID.h", - "CSSVariableValues.h", "nsFont.h", "nsTHashtable.h", - "PLDHashTable.h", "nsColor.h", "nsStyleStruct.h", "nsStyleCoord.h", - "RefPtr.h", "nsISupportsImpl.h", "gfxFontConstants.h", - "gfxFontFamilyList.h", "gfxFontFeatures.h", "imgRequestProxy.h", - "nsIRequest.h", "imgIRequest.h", "CounterStyleManager.h", - "nsStyleConsts.h", "nsCSSValue.h", "SheetType.h", "nsIPrincipal.h", - "nsDataHashtable.h", "nsCSSScanner.h", "nsTArray", - "pair", "SheetParsingMode.h", "StaticPtr.h", "nsProxyRelease.h", - "mozilla/dom/AnimationEffectReadOnlyBinding.h", - "nsChangeHint.h", "ServoElementSnapshot.h", - "EventStates.h", "nsAttrValue.h", "nsAttrName.h", - "/Types.h", # <- Disallow UnionTypes.h - "/utility", # <- Disallow xutility - "nsINode.h", # <- For `NodeFlags`. - "UniquePtr.h" + "whitelist_vars": [ + "NS_THEME_.*", + "NODE_.*", + "NS_FONT_STYLE_.*", + "NS_STYLE_.*", + "NS_CORNER_.*", + "NS_RADIUS_.*", + "BORDER_COLOR_.*", + "BORDER_STYLE_.*" ], - "blacklist": [ - "IsDestructibleFallbackImpl", "IsDestructibleFallback", - "ProxyReleaseEvent", "FallibleTArray", "nsTArray_Impl", - "__is_tuple_like_impl", "tuple_size", "tuple", - "__make_pair_return_impl", "__make_pair_return", "tuple_element", - "_Itup_cat", "AnimationEffectTimingProperties", - "FastAnimationEffectTimingProperties", "ComputedTimingProperties", - "FastComputedTimingProperties", - "nsINode", - "HasPointerType" + "whitelist": [ + "Element", + "Side", + "nsTArrayHeader", + "nsCSSValueGradient", + "nsCSSValueList_heap", + "FrameRequestCallback", + "nsCSSValueTriplet_heap", + "nsCSSRect_heap", + "AnonymousContent", + "nsCSSValuePairList", + "nsCSSValuePairList_heap", + "nsCSSValuePair_heap", + "CapturingContentInfo", + "Runnable", + "AudioContext", + "FontFamilyListRefCnt", + "ImageURL", + "Image", + "nsCSSValueFloatColor", + "ServoAttrSnapshot", + "GridNamedArea", + "nsAttrName", + "nsAttrValue", + "nsCSSRect", + "gfxFontFeature", + "gfxAlternateValue", + "nsCSSValueTokenStream", + "nsSize", + "pair", + "StyleClipPathGeometryBox", + "FontFamilyName", + "nsCSSPropertyID", + "StyleAnimation", + "StyleTransition", + "nsresult", + "nsCSSValueGradientStop", + "nsBorderColors", + "Position", + "nsCSSValueList", + "nsCSSValue", + "UniquePtr", "DefaultDelete", + "StyleBasicShape", + "nsMargin", + "nsStyleContentData", + "nsStyleFilter", "nsRect", "FragmentOrURL", "nsStyleCoord", + "nsStyleCounterData", "StaticRefPtr", "nsTArray", "nsStyleFont", + "nsStyleColor", "nsStyleList", "nsStyleText", "nsStyleVisibility", + "nsStyleUserInterface", "nsStyleTableBorder", "nsStyleSVG", + "nsStyleVariables", "nsStyleBackground", "nsStylePosition", + "nsStyleTextReset", "nsStyleDisplay", "nsStyleContent", + "nsStyleUIReset", "nsStyleTable", "nsStyleMargin", + "nsStylePadding", "nsStyleBorder", "nsStyleOutline", "nsStyleXUL", + "nsStyleSVGReset", "nsStyleColumn", "nsStyleEffects", + "nsStyleImage", "nsStyleGradient", "nsStyleCoord", + "nsStyleGradientStop", "nsStyleImageLayers", + "nsStyleImageLayers_Layer", "nsStyleImageLayers_LayerType", + "nsStyleUnit", "nsStyleUnion", "nsStyleCoord", "nsRestyleHint", + "ServoElementSnapshot", "nsChangeHint", "SheetParsingMode", + "nsMainThreadPtrHandle", "nsMainThreadPtrHolder", "nscolor", + "nsFont", "FontFamilyList", "FontFamilyType", "nsIAtom", + "nsStyleContext", "StyleClipPath", "StyleBasicShapeType", + "StyleBasicShape", "nsCSSShadowArray", ], "opaque_types": [ - "nsIntMargin", "nsIntPoint", "nsIntRect", "nsCOMArray", - "nsDependentString", "EntryStore", "gfxFontFeatureValueSet", - "imgRequestProxy", "imgRequestProxyStatic", "CounterStyleManager", - "ImageValue", "URLValue", "URLValueData", "nsIPrincipal", - "nsDataHashtable", "imgIRequest", + "atomic___base", + "nsAString_internal_char_traits", + "nsAString_internal_incompatible_char_type", + "nsACString_internal_char_traits", + "nsACString_internal_incompatible_char_type", + "RefPtr_Proxy", "nsAutoPtr_Proxy", "Pair_Base", + "RefPtr_Proxy_member_function", "nsAutoPtr_Proxy_member_function", + "nsWritingIterator_reference", "nsReadingIterator_reference", + "Heap", "TenuredHeap", "Rooted", "WeakPtr", # <- More template magic than what + # we support. + "nsTObserverArray", # <- Inherits from nsAutoTObserverArray<T, 0> + "PLArenaPool", # <- Bindgen bug + "nsTHashtable", # <- Inheriting from inner typedefs that clang + # doesn't expose properly. + "nsRefPtrHashtable", "nsDataHashtable", "nsClassHashtable", # <- Ditto + "nsIDocument_SelectorCache", # <- Inherits from nsExpirationTracker<.., 4> + "nsIPresShell_ScrollAxis", # <- For some reason the alignment of this is 4 + # for clang. + "nsPIDOMWindow", # <- Takes the vtable from a template parameter, and we can't + # generate it conditionally. + "SupportsWeakPtr", "Maybe", # <- AlignedStorage, which means templated union, which - # means impossible to represent in stable rust as of - # right now. + # means impossible to represent in stable rust as of + # right now. + "gfxSize", # <- Same, union { struct { T width; T height; }; T components[2] }; + "gfxSize_Super", # Ditto. ], }, # Generation of the ffi bindings. @@ -139,15 +198,13 @@ COMPILATION_TARGETS = { "nsStyleOutline", "nsStyleXUL", "nsStyleSVGReset", "nsStyleColumn", "nsStyleEffects", "nsStyleImage", "nsStyleGradient", "nsStyleCoord", "nsStyleGradientStop", "nsStyleImageLayers", - "nsStyleImageLayers::Layer", "nsStyleImageLayers::LayerType", - "nsStyleUnit", "nsStyleUnion", "nsStyleCoord::CalcValue", - "nsStyleCoord::Calc", "nsRestyleHint", "ServoElementSnapshot", + "nsStyleImageLayers_Layer", "nsStyleImageLayers_LayerType", + "nsStyleUnit", "nsStyleUnion", "nsStyleCoord_CalcValue", + "nsStyleCoord_Calc", "nsRestyleHint", "ServoElementSnapshot", "nsChangeHint", "SheetParsingMode", "nsMainThreadPtrHandle", "nsMainThreadPtrHolder", "nscolor", "nsFont", "FontFamilyList", "FontFamilyType", "nsIAtom", "nsStyleContext", "StyleClipPath", "StyleBasicShapeType", "StyleBasicShape", "nsCSSShadowArray", - ], - "void_types": [ "nsINode", "nsIDocument", "nsIPrincipal", "nsIURI", ], "servo_nullable_arc_types": [ @@ -164,6 +221,10 @@ COMPILATION_TARGETS = { "RawGeckoElement", "RawGeckoDocument", ], + "whitelist_functions": [ + "Servo_.*", + "Gecko_.*" + ] }, "atoms": { @@ -323,24 +384,26 @@ def build(objdir, target_name, debug, debugger, kind_name=None, clang_flags.append("-include") clang_flags.append(file_name.format(objdir)) - if "match_headers" in current_target: - for header in current_target["match_headers"]: - flags.append("--match") - flags.append(header.format(objdir)) + if "whitelist" in current_target: + for header in current_target["whitelist"]: + flags.append("--whitelist-type") + flags.append(header) - if "blacklist" in current_target: - for ty in current_target["blacklist"]: - flags.append("--blacklist-type") - flags.append(ty) + if "whitelist_functions" in current_target: + for header in current_target["whitelist_functions"]: + flags.append("--whitelist-function") + flags.append(header) + + if "whitelist_vars" in current_target: + for header in current_target["whitelist_vars"]: + flags.append("--whitelist-var") + flags.append(header) if "opaque_types" in current_target: for ty in current_target["opaque_types"]: flags.append("--opaque-type") flags.append(ty) - if "void_types" in current_target: - for ty in current_target["void_types"]: - flags.append("--raw-line") - flags.append("pub enum {} {{}}".format(ty)) + if "servo_nullable_arc_types" in current_target: for ty in current_target["servo_nullable_arc_types"]: flags.append("--blacklist-type") @@ -356,6 +419,7 @@ def build(objdir, target_name, debug, debugger, kind_name=None, flags.append("--raw-line") flags.append("pub type {0}Borrowed<'a> = &'a {0};".format(ty)) zero_size_type(ty, flags) + if "servo_immutable_borrow_types" in current_target: for ty in current_target["servo_immutable_borrow_types"]: flags.append("--blacklist-type") @@ -367,6 +431,7 @@ def build(objdir, target_name, debug, debugger, kind_name=None, flags.append("--raw-line") flags.append("pub type {0}BorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, {0}>;".format(ty)) zero_size_type(ty, flags) + if "servo_owned_types" in current_target: for ty in current_target["servo_owned_types"]: flags.append("--blacklist-type") @@ -396,39 +461,35 @@ def build(objdir, target_name, debug, debugger, kind_name=None, flags.append("--raw-line") flags.append("pub type {0}OwnedOrNull = ::sugar::ownership::OwnedOrNull<{0}>;".format(ty)) zero_size_type(ty, flags) + if "structs_types" in current_target: for ty in current_target["structs_types"]: - ty_fragments = ty.split("::") - mangled_name = ty.replace("::", "_") flags.append("--blacklist-type") - flags.append(ty_fragments[-1]) + flags.append(ty) flags.append("--raw-line") - if len(ty_fragments) > 1: - flags.append("use structs::{} as {};".format(mangled_name, ty_fragments[-1])) - else: - flags.append("use structs::{};".format(mangled_name)) + flags.append("use structs::{};".format(ty)) + # TODO: this is hacky, figure out a better way to do it without # hardcoding everything... - if ty_fragments[-1].startswith("nsStyle"): + if ty.startswith("nsStyle"): flags.extend([ "--raw-line", - "unsafe impl Send for {} {{}}".format(ty_fragments[-1]), - "--raw-line", - "unsafe impl Sync for {} {{}}".format(ty_fragments[-1]), + "unsafe impl Send for {} {{}}".format(ty), "--raw-line", - "impl HeapSizeOf for {} {{ fn heap_size_of_children(&self) -> usize {{ 0 }} }}" - .format(ty_fragments[-1]) + "unsafe impl Sync for {} {{}}".format(ty), ]) flags.append("-o") flags.append(output_filename) - # TODO: support more files, that's the whole point of this. assert len(current_target["files"]) == 1 flags.append(current_target["files"][0].format(objdir)) flags = bindgen + flags + ["--"] + clang_flags + if verbose: + print(flags) + output = "" try: if debug: diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs index d9a863b7e89..886c5d1b7ca 100644 --- a/ports/geckolib/gecko_bindings/bindings.rs +++ b/ports/geckolib/gecko_bindings/bindings.rs @@ -1,10 +1,6 @@ /* automatically generated by rust-bindgen */ use heapsize::HeapSizeOf; -pub enum nsINode {} -pub enum nsIDocument {} -pub enum nsIPrincipal {} -pub enum nsIURI {} pub type ServoComputedValuesStrong = ::sugar::ownership::Strong<ServoComputedValues>; pub type ServoComputedValuesBorrowedOrNull<'a> = ::sugar::ownership::Borrowed<'a, ServoComputedValues>; pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues; @@ -59,131 +55,108 @@ pub struct StyleChildrenIterator(StyleChildrenIteratorVoid); use structs::nsStyleFont; unsafe impl Send for nsStyleFont {} unsafe impl Sync for nsStyleFont {} -impl HeapSizeOf for nsStyleFont { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleColor; unsafe impl Send for nsStyleColor {} unsafe impl Sync for nsStyleColor {} -impl HeapSizeOf for nsStyleColor { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleList; unsafe impl Send for nsStyleList {} unsafe impl Sync for nsStyleList {} -impl HeapSizeOf for nsStyleList { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleText; unsafe impl Send for nsStyleText {} unsafe impl Sync for nsStyleText {} -impl HeapSizeOf for nsStyleText { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleVisibility; unsafe impl Send for nsStyleVisibility {} unsafe impl Sync for nsStyleVisibility {} -impl HeapSizeOf for nsStyleVisibility { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleUserInterface; unsafe impl Send for nsStyleUserInterface {} unsafe impl Sync for nsStyleUserInterface {} -impl HeapSizeOf for nsStyleUserInterface { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleTableBorder; unsafe impl Send for nsStyleTableBorder {} unsafe impl Sync for nsStyleTableBorder {} -impl HeapSizeOf for nsStyleTableBorder { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleSVG; unsafe impl Send for nsStyleSVG {} unsafe impl Sync for nsStyleSVG {} -impl HeapSizeOf for nsStyleSVG { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleVariables; unsafe impl Send for nsStyleVariables {} unsafe impl Sync for nsStyleVariables {} -impl HeapSizeOf for nsStyleVariables { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleBackground; unsafe impl Send for nsStyleBackground {} unsafe impl Sync for nsStyleBackground {} -impl HeapSizeOf for nsStyleBackground { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStylePosition; unsafe impl Send for nsStylePosition {} unsafe impl Sync for nsStylePosition {} -impl HeapSizeOf for nsStylePosition { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleTextReset; unsafe impl Send for nsStyleTextReset {} unsafe impl Sync for nsStyleTextReset {} -impl HeapSizeOf for nsStyleTextReset { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleDisplay; unsafe impl Send for nsStyleDisplay {} unsafe impl Sync for nsStyleDisplay {} -impl HeapSizeOf for nsStyleDisplay { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleContent; unsafe impl Send for nsStyleContent {} unsafe impl Sync for nsStyleContent {} -impl HeapSizeOf for nsStyleContent { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleUIReset; unsafe impl Send for nsStyleUIReset {} unsafe impl Sync for nsStyleUIReset {} -impl HeapSizeOf for nsStyleUIReset { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleTable; unsafe impl Send for nsStyleTable {} unsafe impl Sync for nsStyleTable {} -impl HeapSizeOf for nsStyleTable { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleMargin; unsafe impl Send for nsStyleMargin {} unsafe impl Sync for nsStyleMargin {} -impl HeapSizeOf for nsStyleMargin { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStylePadding; unsafe impl Send for nsStylePadding {} unsafe impl Sync for nsStylePadding {} -impl HeapSizeOf for nsStylePadding { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleBorder; unsafe impl Send for nsStyleBorder {} unsafe impl Sync for nsStyleBorder {} -impl HeapSizeOf for nsStyleBorder { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleOutline; unsafe impl Send for nsStyleOutline {} unsafe impl Sync for nsStyleOutline {} -impl HeapSizeOf for nsStyleOutline { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleXUL; unsafe impl Send for nsStyleXUL {} unsafe impl Sync for nsStyleXUL {} -impl HeapSizeOf for nsStyleXUL { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleSVGReset; unsafe impl Send for nsStyleSVGReset {} unsafe impl Sync for nsStyleSVGReset {} -impl HeapSizeOf for nsStyleSVGReset { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleColumn; unsafe impl Send for nsStyleColumn {} unsafe impl Sync for nsStyleColumn {} -impl HeapSizeOf for nsStyleColumn { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleEffects; unsafe impl Send for nsStyleEffects {} unsafe impl Sync for nsStyleEffects {} -impl HeapSizeOf for nsStyleEffects { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleImage; unsafe impl Send for nsStyleImage {} unsafe impl Sync for nsStyleImage {} -impl HeapSizeOf for nsStyleImage { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleGradient; unsafe impl Send for nsStyleGradient {} unsafe impl Sync for nsStyleGradient {} -impl HeapSizeOf for nsStyleGradient { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleCoord; unsafe impl Send for nsStyleCoord {} unsafe impl Sync for nsStyleCoord {} -impl HeapSizeOf for nsStyleCoord { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleGradientStop; unsafe impl Send for nsStyleGradientStop {} unsafe impl Sync for nsStyleGradientStop {} -impl HeapSizeOf for nsStyleGradientStop { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleImageLayers; unsafe impl Send for nsStyleImageLayers {} unsafe impl Sync for nsStyleImageLayers {} -impl HeapSizeOf for nsStyleImageLayers { fn heap_size_of_children(&self) -> usize { 0 } } -use structs::nsStyleImageLayers_Layer as Layer; -use structs::nsStyleImageLayers_LayerType as LayerType; +use structs::nsStyleImageLayers_Layer; +unsafe impl Send for nsStyleImageLayers_Layer {} +unsafe impl Sync for nsStyleImageLayers_Layer {} +use structs::nsStyleImageLayers_LayerType; +unsafe impl Send for nsStyleImageLayers_LayerType {} +unsafe impl Sync for nsStyleImageLayers_LayerType {} use structs::nsStyleUnit; unsafe impl Send for nsStyleUnit {} unsafe impl Sync for nsStyleUnit {} -impl HeapSizeOf for nsStyleUnit { fn heap_size_of_children(&self) -> usize { 0 } } use structs::nsStyleUnion; unsafe impl Send for nsStyleUnion {} unsafe impl Sync for nsStyleUnion {} -impl HeapSizeOf for nsStyleUnion { fn heap_size_of_children(&self) -> usize { 0 } } -use structs::nsStyleCoord_CalcValue as CalcValue; -use structs::nsStyleCoord_Calc as Calc; +use structs::nsStyleCoord_CalcValue; +unsafe impl Send for nsStyleCoord_CalcValue {} +unsafe impl Sync for nsStyleCoord_CalcValue {} +use structs::nsStyleCoord_Calc; +unsafe impl Send for nsStyleCoord_Calc {} +unsafe impl Sync for nsStyleCoord_Calc {} use structs::nsRestyleHint; use structs::ServoElementSnapshot; use structs::nsChangeHint; @@ -198,311 +171,653 @@ use structs::nsIAtom; use structs::nsStyleContext; unsafe impl Send for nsStyleContext {} unsafe impl Sync for nsStyleContext {} -impl HeapSizeOf for nsStyleContext { fn heap_size_of_children(&self) -> usize { 0 } } use structs::StyleClipPath; use structs::StyleBasicShapeType; use structs::StyleBasicShape; use structs::nsCSSShadowArray; +use structs::nsINode; +use structs::nsIDocument; +use structs::nsIPrincipal; +use structs::nsIURI; -pub enum Element { } -pub enum nsHTMLCSSStyleSheet { } -pub type ThreadSafePrincipalHolder = nsMainThreadPtrHolder<nsIPrincipal>; -pub type ThreadSafeURIHolder = nsMainThreadPtrHolder<nsIURI>; +extern "C" { + pub fn Gecko_EnsureTArrayCapacity(aArray: *mut ::std::os::raw::c_void, + aCapacity: usize, aElementSize: usize); +} +extern "C" { + pub fn Gecko_ClearPODTArray(aArray: *mut ::std::os::raw::c_void, + aElementSize: usize, aElementAlign: usize); +} +extern "C" { + pub fn Servo_NodeData_Drop(arg1: *mut ServoNodeData); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsHTMLCSSStyleSheet { + pub _address: u8, +} +impl Clone for nsHTMLCSSStyleSheet { + fn clone(&self) -> Self { *self } +} extern "C" { pub fn Gecko_ChildrenCount(node: RawGeckoNodeBorrowed) -> u32; +} +extern "C" { pub fn Gecko_NodeIsElement(node: RawGeckoNodeBorrowed) -> bool; +} +extern "C" { pub fn Gecko_GetParentNode(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetFirstChild(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetLastChild(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetPrevSibling(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetNextSibling(node: RawGeckoNodeBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetParentElement(element: RawGeckoElementBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetFirstChildElement(element: RawGeckoElementBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetLastChildElement(element: RawGeckoElementBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetPrevSiblingElement(element: RawGeckoElementBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetNextSiblingElement(element: RawGeckoElementBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetDocumentElement(document: RawGeckoDocumentBorrowed) -> RawGeckoElementBorrowedOrNull; +} +extern "C" { pub fn Gecko_MaybeCreateStyleChildrenIterator(node: RawGeckoNodeBorrowed) -> StyleChildrenIteratorOwnedOrNull; +} +extern "C" { pub fn Gecko_DropStyleChildrenIterator(it: StyleChildrenIteratorOwned); +} +extern "C" { pub fn Gecko_GetNextStyleChild(it: StyleChildrenIteratorBorrowed) -> RawGeckoNodeBorrowedOrNull; +} +extern "C" { pub fn Gecko_ElementState(element: RawGeckoElementBorrowed) -> u8; +} +extern "C" { pub fn Gecko_IsHTMLElementInHTMLDocument(element: RawGeckoElementBorrowed) -> bool; +} +extern "C" { pub fn Gecko_IsLink(element: RawGeckoElementBorrowed) -> bool; +} +extern "C" { pub fn Gecko_IsTextNode(node: RawGeckoNodeBorrowed) -> bool; +} +extern "C" { pub fn Gecko_IsVisitedLink(element: RawGeckoElementBorrowed) -> bool; +} +extern "C" { pub fn Gecko_IsUnvisitedLink(element: RawGeckoElementBorrowed) -> bool; +} +extern "C" { pub fn Gecko_IsRootElement(element: RawGeckoElementBorrowed) -> bool; +} +extern "C" { pub fn Gecko_LocalName(element: RawGeckoElementBorrowed) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_Namespace(element: RawGeckoElementBorrowed) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_GetElementId(element: RawGeckoElementBorrowed) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_AtomAttrValue(element: RawGeckoElementBorrowed, attribute: *mut nsIAtom) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_HasAttr(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_AttrEquals(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom, ignoreCase: bool) -> bool; +} +extern "C" { pub fn Gecko_AttrDashEquals(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_AttrIncludes(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_AttrHasSubstring(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_AttrHasPrefix(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_AttrHasSuffix(element: RawGeckoElementBorrowed, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_ClassOrClassList(element: RawGeckoElementBorrowed, class_: *mut *mut nsIAtom, classList: *mut *mut *mut nsIAtom) -> u32; +} +extern "C" { pub fn Gecko_SnapshotAtomAttrValue(element: *mut ServoElementSnapshot, attribute: *mut nsIAtom) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_SnapshotHasAttr(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrEquals(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom, ignoreCase: bool) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrDashEquals(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrIncludes(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrHasSubstring(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrHasPrefix(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotAttrHasSuffix(element: *mut ServoElementSnapshot, ns: *mut nsIAtom, name: *mut nsIAtom, str: *mut nsIAtom) -> bool; +} +extern "C" { pub fn Gecko_SnapshotClassOrClassList(element: *mut ServoElementSnapshot, class_: *mut *mut nsIAtom, classList: *mut *mut *mut nsIAtom) -> u32; +} +extern "C" { pub fn Gecko_GetServoDeclarationBlock(element: RawGeckoElementBorrowed) -> ServoDeclarationBlockBorrowedOrNull; +} +extern "C" { pub fn Gecko_GetNodeData(node: RawGeckoNodeBorrowed) -> ServoNodeDataBorrowedOrNull; +} +extern "C" { pub fn Gecko_SetNodeData(node: RawGeckoNodeBorrowed, data: ServoNodeDataOwned); +} +extern "C" { pub fn Gecko_Atomize(aString: *const ::std::os::raw::c_char, aLength: u32) -> *mut nsIAtom; +} +extern "C" { pub fn Gecko_AddRefAtom(aAtom: *mut nsIAtom); +} +extern "C" { pub fn Gecko_ReleaseAtom(aAtom: *mut nsIAtom); +} +extern "C" { pub fn Gecko_GetAtomAsUTF16(aAtom: *mut nsIAtom, aLength: *mut u32) -> *const u16; +} +extern "C" { pub fn Gecko_AtomEqualsUTF8(aAtom: *mut nsIAtom, aString: *const ::std::os::raw::c_char, aLength: u32) -> bool; +} +extern "C" { pub fn Gecko_AtomEqualsUTF8IgnoreCase(aAtom: *mut nsIAtom, aString: *const ::std::os::raw::c_char, aLength: u32) -> bool; +} +extern "C" { pub fn Gecko_FontFamilyList_Clear(aList: *mut FontFamilyList); +} +extern "C" { pub fn Gecko_FontFamilyList_AppendNamed(aList: *mut FontFamilyList, aName: *mut nsIAtom); +} +extern "C" { pub fn Gecko_FontFamilyList_AppendGeneric(list: *mut FontFamilyList, familyType: FontFamilyType); +} +extern "C" { pub fn Gecko_CopyFontFamilyFrom(dst: *mut nsFont, src: *const nsFont); +} +extern "C" { pub fn Gecko_SetListStyleType(style_struct: *mut nsStyleList, type_: u32); +} +extern "C" { pub fn Gecko_CopyListStyleTypeFrom(dst: *mut nsStyleList, src: *const nsStyleList); +} +extern "C" { pub fn Gecko_SetNullImageValue(image: *mut nsStyleImage); +} +extern "C" { pub fn Gecko_SetGradientImageValue(image: *mut nsStyleImage, gradient: *mut nsStyleGradient); +} +extern "C" { pub fn Gecko_CopyImageValueFrom(image: *mut nsStyleImage, other: *const nsStyleImage); +} +extern "C" { pub fn Gecko_CreateGradient(shape: u8, size: u8, repeating: bool, legacy_syntax: bool, stops: u32) -> *mut nsStyleGradient; +} +pub type ThreadSafePrincipalHolder = nsMainThreadPtrHolder<nsIPrincipal>; +extern "C" { pub fn Gecko_AddRefPrincipalArbitraryThread(aPtr: *mut ThreadSafePrincipalHolder); +} +extern "C" { pub fn Gecko_ReleasePrincipalArbitraryThread(aPtr: *mut ThreadSafePrincipalHolder); +} +pub type ThreadSafeURIHolder = nsMainThreadPtrHolder<nsIURI>; +extern "C" { pub fn Gecko_AddRefURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder); +} +extern "C" { pub fn Gecko_ReleaseURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder); +} +extern "C" { pub fn Gecko_SetMozBinding(style_struct: *mut nsStyleDisplay, string_bytes: *const u8, string_length: u32, base_uri: *mut ThreadSafeURIHolder, referrer: *mut ThreadSafeURIHolder, principal: *mut ThreadSafePrincipalHolder); +} +extern "C" { pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay, src: *const nsStyleDisplay); +} +extern "C" { pub fn Gecko_GetNodeFlags(node: RawGeckoNodeBorrowed) -> u32; +} +extern "C" { pub fn Gecko_SetNodeFlags(node: RawGeckoNodeBorrowed, flags: u32); +} +extern "C" { pub fn Gecko_UnsetNodeFlags(node: RawGeckoNodeBorrowed, flags: u32); +} +extern "C" { pub fn Gecko_GetStyleContext(node: RawGeckoNodeBorrowed, aPseudoTagOrNull: *mut nsIAtom) -> *mut nsStyleContext; +} +extern "C" { pub fn Gecko_CalcStyleDifference(oldstyle: *mut nsStyleContext, newstyle: ServoComputedValuesBorrowed) -> nsChangeHint; +} +extern "C" { pub fn Gecko_StoreStyleDifference(node: RawGeckoNodeBorrowed, change: nsChangeHint); - pub fn Gecko_EnsureTArrayCapacity(array: *mut ::std::os::raw::c_void, - capacity: usize, elem_size: usize); - pub fn Gecko_ClearPODTArray(array: *mut ::std::os::raw::c_void, - elem_size: usize, elem_align: usize); +} +extern "C" { pub fn Gecko_ClearStyleContents(content: *mut nsStyleContent); +} +extern "C" { pub fn Gecko_CopyStyleContentsFrom(content: *mut nsStyleContent, other: *const nsStyleContent); +} +extern "C" { pub fn Gecko_EnsureImageLayersLength(layers: *mut nsStyleImageLayers, len: usize); - pub fn Gecko_InitializeImageLayer(layer: *mut Layer, - layer_type: LayerType); +} +extern "C" { + pub fn Gecko_InitializeImageLayer(layer: *mut nsStyleImageLayers_Layer, + layer_type: + nsStyleImageLayers_LayerType); +} +extern "C" { pub fn Gecko_ResetStyleCoord(unit: *mut nsStyleUnit, value: *mut nsStyleUnion); +} +extern "C" { pub fn Gecko_SetStyleCoordCalcValue(unit: *mut nsStyleUnit, value: *mut nsStyleUnion, - calc: CalcValue); + calc: nsStyleCoord_CalcValue); +} +extern "C" { pub fn Gecko_CopyClipPathValueFrom(dst: *mut StyleClipPath, src: *const StyleClipPath); +} +extern "C" { pub fn Gecko_DestroyClipPath(clip: *mut StyleClipPath); +} +extern "C" { pub fn Gecko_NewBasicShape(type_: StyleBasicShapeType) -> *mut StyleBasicShape; +} +extern "C" { pub fn Gecko_FillAllBackgroundLists(layers: *mut nsStyleImageLayers, max_len: u32); +} +extern "C" { pub fn Gecko_FillAllMaskLists(layers: *mut nsStyleImageLayers, max_len: u32); - pub fn Gecko_AddRefCalcArbitraryThread(aPtr: *mut Calc); - pub fn Gecko_ReleaseCalcArbitraryThread(aPtr: *mut Calc); +} +extern "C" { + pub fn Gecko_AddRefCalcArbitraryThread(aPtr: *mut nsStyleCoord_Calc); +} +extern "C" { + pub fn Gecko_ReleaseCalcArbitraryThread(aPtr: *mut nsStyleCoord_Calc); +} +extern "C" { pub fn Gecko_NewCSSShadowArray(len: u32) -> *mut nsCSSShadowArray; +} +extern "C" { pub fn Gecko_AddRefCSSShadowArrayArbitraryThread(aPtr: *mut nsCSSShadowArray); +} +extern "C" { pub fn Gecko_ReleaseCSSShadowArrayArbitraryThread(aPtr: *mut nsCSSShadowArray); +} +extern "C" { pub fn Gecko_Construct_nsStyleFont(ptr: *mut nsStyleFont); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleFont(ptr: *mut nsStyleFont, other: *const nsStyleFont); +} +extern "C" { pub fn Gecko_Destroy_nsStyleFont(ptr: *mut nsStyleFont); +} +extern "C" { pub fn Gecko_Construct_nsStyleColor(ptr: *mut nsStyleColor); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleColor(ptr: *mut nsStyleColor, other: *const nsStyleColor); +} +extern "C" { pub fn Gecko_Destroy_nsStyleColor(ptr: *mut nsStyleColor); +} +extern "C" { pub fn Gecko_Construct_nsStyleList(ptr: *mut nsStyleList); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleList(ptr: *mut nsStyleList, other: *const nsStyleList); +} +extern "C" { pub fn Gecko_Destroy_nsStyleList(ptr: *mut nsStyleList); +} +extern "C" { pub fn Gecko_Construct_nsStyleText(ptr: *mut nsStyleText); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleText(ptr: *mut nsStyleText, other: *const nsStyleText); +} +extern "C" { pub fn Gecko_Destroy_nsStyleText(ptr: *mut nsStyleText); +} +extern "C" { pub fn Gecko_Construct_nsStyleVisibility(ptr: *mut nsStyleVisibility); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleVisibility(ptr: *mut nsStyleVisibility, other: *const nsStyleVisibility); +} +extern "C" { pub fn Gecko_Destroy_nsStyleVisibility(ptr: *mut nsStyleVisibility); +} +extern "C" { pub fn Gecko_Construct_nsStyleUserInterface(ptr: *mut nsStyleUserInterface); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleUserInterface(ptr: *mut nsStyleUserInterface, other: *const nsStyleUserInterface); +} +extern "C" { pub fn Gecko_Destroy_nsStyleUserInterface(ptr: *mut nsStyleUserInterface); +} +extern "C" { pub fn Gecko_Construct_nsStyleTableBorder(ptr: *mut nsStyleTableBorder); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleTableBorder(ptr: *mut nsStyleTableBorder, other: *const nsStyleTableBorder); +} +extern "C" { pub fn Gecko_Destroy_nsStyleTableBorder(ptr: *mut nsStyleTableBorder); +} +extern "C" { pub fn Gecko_Construct_nsStyleSVG(ptr: *mut nsStyleSVG); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleSVG(ptr: *mut nsStyleSVG, other: *const nsStyleSVG); +} +extern "C" { pub fn Gecko_Destroy_nsStyleSVG(ptr: *mut nsStyleSVG); +} +extern "C" { pub fn Gecko_Construct_nsStyleVariables(ptr: *mut nsStyleVariables); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleVariables(ptr: *mut nsStyleVariables, other: *const nsStyleVariables); +} +extern "C" { pub fn Gecko_Destroy_nsStyleVariables(ptr: *mut nsStyleVariables); +} +extern "C" { pub fn Gecko_Construct_nsStyleBackground(ptr: *mut nsStyleBackground); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleBackground(ptr: *mut nsStyleBackground, other: *const nsStyleBackground); +} +extern "C" { pub fn Gecko_Destroy_nsStyleBackground(ptr: *mut nsStyleBackground); +} +extern "C" { pub fn Gecko_Construct_nsStylePosition(ptr: *mut nsStylePosition); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStylePosition(ptr: *mut nsStylePosition, other: *const nsStylePosition); +} +extern "C" { pub fn Gecko_Destroy_nsStylePosition(ptr: *mut nsStylePosition); +} +extern "C" { pub fn Gecko_Construct_nsStyleTextReset(ptr: *mut nsStyleTextReset); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleTextReset(ptr: *mut nsStyleTextReset, other: *const nsStyleTextReset); +} +extern "C" { pub fn Gecko_Destroy_nsStyleTextReset(ptr: *mut nsStyleTextReset); +} +extern "C" { pub fn Gecko_Construct_nsStyleDisplay(ptr: *mut nsStyleDisplay); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleDisplay(ptr: *mut nsStyleDisplay, other: *const nsStyleDisplay); +} +extern "C" { pub fn Gecko_Destroy_nsStyleDisplay(ptr: *mut nsStyleDisplay); +} +extern "C" { pub fn Gecko_Construct_nsStyleContent(ptr: *mut nsStyleContent); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleContent(ptr: *mut nsStyleContent, other: *const nsStyleContent); +} +extern "C" { pub fn Gecko_Destroy_nsStyleContent(ptr: *mut nsStyleContent); +} +extern "C" { pub fn Gecko_Construct_nsStyleUIReset(ptr: *mut nsStyleUIReset); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleUIReset(ptr: *mut nsStyleUIReset, other: *const nsStyleUIReset); +} +extern "C" { pub fn Gecko_Destroy_nsStyleUIReset(ptr: *mut nsStyleUIReset); +} +extern "C" { pub fn Gecko_Construct_nsStyleTable(ptr: *mut nsStyleTable); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleTable(ptr: *mut nsStyleTable, other: *const nsStyleTable); +} +extern "C" { pub fn Gecko_Destroy_nsStyleTable(ptr: *mut nsStyleTable); +} +extern "C" { pub fn Gecko_Construct_nsStyleMargin(ptr: *mut nsStyleMargin); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleMargin(ptr: *mut nsStyleMargin, other: *const nsStyleMargin); +} +extern "C" { pub fn Gecko_Destroy_nsStyleMargin(ptr: *mut nsStyleMargin); +} +extern "C" { pub fn Gecko_Construct_nsStylePadding(ptr: *mut nsStylePadding); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStylePadding(ptr: *mut nsStylePadding, other: *const nsStylePadding); +} +extern "C" { pub fn Gecko_Destroy_nsStylePadding(ptr: *mut nsStylePadding); +} +extern "C" { pub fn Gecko_Construct_nsStyleBorder(ptr: *mut nsStyleBorder); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleBorder(ptr: *mut nsStyleBorder, other: *const nsStyleBorder); +} +extern "C" { pub fn Gecko_Destroy_nsStyleBorder(ptr: *mut nsStyleBorder); +} +extern "C" { pub fn Gecko_Construct_nsStyleOutline(ptr: *mut nsStyleOutline); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleOutline(ptr: *mut nsStyleOutline, other: *const nsStyleOutline); +} +extern "C" { pub fn Gecko_Destroy_nsStyleOutline(ptr: *mut nsStyleOutline); +} +extern "C" { pub fn Gecko_Construct_nsStyleXUL(ptr: *mut nsStyleXUL); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleXUL(ptr: *mut nsStyleXUL, other: *const nsStyleXUL); +} +extern "C" { pub fn Gecko_Destroy_nsStyleXUL(ptr: *mut nsStyleXUL); +} +extern "C" { pub fn Gecko_Construct_nsStyleSVGReset(ptr: *mut nsStyleSVGReset); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleSVGReset(ptr: *mut nsStyleSVGReset, other: *const nsStyleSVGReset); +} +extern "C" { pub fn Gecko_Destroy_nsStyleSVGReset(ptr: *mut nsStyleSVGReset); +} +extern "C" { pub fn Gecko_Construct_nsStyleColumn(ptr: *mut nsStyleColumn); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleColumn(ptr: *mut nsStyleColumn, other: *const nsStyleColumn); +} +extern "C" { pub fn Gecko_Destroy_nsStyleColumn(ptr: *mut nsStyleColumn); +} +extern "C" { pub fn Gecko_Construct_nsStyleEffects(ptr: *mut nsStyleEffects); +} +extern "C" { pub fn Gecko_CopyConstruct_nsStyleEffects(ptr: *mut nsStyleEffects, other: *const nsStyleEffects); +} +extern "C" { pub fn Gecko_Destroy_nsStyleEffects(ptr: *mut nsStyleEffects); - pub fn Servo_NodeData_Drop(data: ServoNodeDataOwned); +} +extern "C" { pub fn Servo_StyleSheet_FromUTF8Bytes(bytes: *const u8, length: u32, parsing_mode: SheetParsingMode, base_bytes: *const u8, @@ -512,49 +827,87 @@ extern "C" { principal: *mut ThreadSafePrincipalHolder) -> RawServoStyleSheetStrong; +} +extern "C" { pub fn Servo_StyleSheet_AddRef(sheet: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_StyleSheet_Release(sheet: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_StyleSheet_HasRules(sheet: RawServoStyleSheetBorrowed) -> bool; +} +extern "C" { pub fn Servo_StyleSet_Init() -> RawServoStyleSetOwned; +} +extern "C" { pub fn Servo_StyleSet_Drop(set: RawServoStyleSetOwned); +} +extern "C" { pub fn Servo_StyleSet_AppendStyleSheet(set: RawServoStyleSetBorrowedMut, sheet: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_StyleSet_PrependStyleSheet(set: RawServoStyleSetBorrowedMut, sheet: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_StyleSet_RemoveStyleSheet(set: RawServoStyleSetBorrowedMut, sheet: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_StyleSet_InsertStyleSheetBefore(set: RawServoStyleSetBorrowedMut, sheet: RawServoStyleSheetBorrowed, reference: RawServoStyleSheetBorrowed); +} +extern "C" { pub fn Servo_ParseStyleAttribute(bytes: *const u8, length: u32, cache: *mut nsHTMLCSSStyleSheet) -> ServoDeclarationBlockStrong; +} +extern "C" { pub fn Servo_DeclarationBlock_AddRef(declarations: ServoDeclarationBlockBorrowed); +} +extern "C" { pub fn Servo_DeclarationBlock_Release(declarations: ServoDeclarationBlockBorrowed); +} +extern "C" { pub fn Servo_DeclarationBlock_GetCache(declarations: ServoDeclarationBlockBorrowed) -> *mut nsHTMLCSSStyleSheet; +} +extern "C" { pub fn Servo_DeclarationBlock_SetImmutable(declarations: ServoDeclarationBlockBorrowed); +} +extern "C" { pub fn Servo_DeclarationBlock_ClearCachePointer(declarations: ServoDeclarationBlockBorrowed); +} +extern "C" { pub fn Servo_CSSSupports(name: *const u8, name_length: u32, value: *const u8, value_length: u32) -> bool; +} +extern "C" { pub fn Servo_ComputedValues_Get(node: RawGeckoNodeBorrowed) -> ServoComputedValuesStrong; +} +extern "C" { pub fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null: ServoComputedValuesBorrowedOrNull, pseudoTag: *mut nsIAtom, set: RawServoStyleSetBorrowedMut) -> ServoComputedValuesStrong; +} +extern "C" { pub fn Servo_ComputedValues_GetForPseudoElement(parent_style: ServoComputedValuesBorrowed, match_element: @@ -564,77 +917,137 @@ extern "C" { RawServoStyleSetBorrowedMut, is_probe: bool) -> ServoComputedValuesStrong; +} +extern "C" { pub fn Servo_ComputedValues_Inherit(parent_style: ServoComputedValuesBorrowedOrNull) -> ServoComputedValuesStrong; +} +extern "C" { pub fn Servo_ComputedValues_AddRef(computed_values: ServoComputedValuesBorrowed); +} +extern "C" { pub fn Servo_ComputedValues_Release(computed_values: ServoComputedValuesBorrowed); +} +extern "C" { pub fn Servo_Initialize(); +} +extern "C" { pub fn Servo_Shutdown(); +} +extern "C" { pub fn Servo_ComputeRestyleHint(element: *mut RawGeckoElement, snapshot: *mut ServoElementSnapshot, set: RawServoStyleSetBorrowed) -> nsRestyleHint; - pub fn Servo_RestyleDocument(doc: RawGeckoDocumentBorrowed, - set: RawServoStyleSetBorrowedMut); +} +extern "C" { pub fn Servo_RestyleSubtree(node: RawGeckoNodeBorrowed, set: RawServoStyleSetBorrowedMut); +} +extern "C" { pub fn Servo_GetStyleFont(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleFont; +} +extern "C" { pub fn Servo_GetStyleColor(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleColor; +} +extern "C" { pub fn Servo_GetStyleList(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleList; +} +extern "C" { pub fn Servo_GetStyleText(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleText; +} +extern "C" { pub fn Servo_GetStyleVisibility(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleVisibility; +} +extern "C" { pub fn Servo_GetStyleUserInterface(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleUserInterface; +} +extern "C" { pub fn Servo_GetStyleTableBorder(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleTableBorder; +} +extern "C" { pub fn Servo_GetStyleSVG(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleSVG; +} +extern "C" { pub fn Servo_GetStyleVariables(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleVariables; +} +extern "C" { pub fn Servo_GetStyleBackground(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleBackground; +} +extern "C" { pub fn Servo_GetStylePosition(computed_values: ServoComputedValuesBorrowed) -> *const nsStylePosition; +} +extern "C" { pub fn Servo_GetStyleTextReset(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleTextReset; +} +extern "C" { pub fn Servo_GetStyleDisplay(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleDisplay; +} +extern "C" { pub fn Servo_GetStyleContent(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleContent; +} +extern "C" { pub fn Servo_GetStyleUIReset(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleUIReset; +} +extern "C" { pub fn Servo_GetStyleTable(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleTable; +} +extern "C" { pub fn Servo_GetStyleMargin(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleMargin; +} +extern "C" { pub fn Servo_GetStylePadding(computed_values: ServoComputedValuesBorrowed) -> *const nsStylePadding; +} +extern "C" { pub fn Servo_GetStyleBorder(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleBorder; +} +extern "C" { pub fn Servo_GetStyleOutline(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleOutline; +} +extern "C" { pub fn Servo_GetStyleXUL(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleXUL; +} +extern "C" { pub fn Servo_GetStyleSVGReset(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleSVGReset; +} +extern "C" { pub fn Servo_GetStyleColumn(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleColumn; +} +extern "C" { pub fn Servo_GetStyleEffects(computed_values: ServoComputedValuesBorrowed) -> *const nsStyleEffects; } diff --git a/ports/geckolib/gecko_bindings/ptr.rs b/ports/geckolib/gecko_bindings/ptr.rs index 9cdabee818b..f17762247b4 100644 --- a/ports/geckolib/gecko_bindings/ptr.rs +++ b/ports/geckolib/gecko_bindings/ptr.rs @@ -7,17 +7,20 @@ use heapsize::HeapSizeOf; use std::fmt::{self, Debug}; // Defines an Arc-like type that manages a refcounted Gecko object stored -// in a ThreadSafeFooHolder smart pointer. Used in tandem with the -// NS_DECL_HOLDER_FFI_REFCOUNTING-defined types and functions in Gecko. -macro_rules! define_holder_arc { - ($arc_type:ident, $name:ident, $holder_type:ident, $addref: ident, $release: ident) => ( +// in a ThreadSafeFooHolder smart pointer (for those Gecko classes that +// do not have thread-safe refcounting support) or as raw pointers (for +// those that do have thread-safe refcounting support). Used in tandem +// with the NS_DECL_(HOLDER|THREADSAFE)_FFI_REFCOUNTING-defined types and +// functions in Gecko. +macro_rules! define_arc { + ($arc_type:ident, $name:ident, $gecko_type:ident, $addref: ident, $release: ident) => ( #[derive(PartialEq)] pub struct $arc_type { - ptr: *mut $holder_type, + ptr: *mut $gecko_type, } impl $arc_type { - pub fn new(data: *mut $holder_type) -> $arc_type { + pub fn new(data: *mut $gecko_type) -> $arc_type { debug_assert!(!data.is_null()); unsafe { $addref(data); } $arc_type { @@ -25,7 +28,7 @@ macro_rules! define_holder_arc { } } - pub fn as_raw(&self) -> *mut $holder_type { self.ptr } + pub fn as_raw(&self) -> *mut $gecko_type { self.ptr } } unsafe impl Send for $arc_type {} @@ -55,7 +58,7 @@ macro_rules! define_holder_arc { ) } -define_holder_arc!(GeckoArcPrincipal, Principal, ThreadSafePrincipalHolder, - Gecko_AddRefPrincipalArbitraryThread, Gecko_ReleasePrincipalArbitraryThread); -define_holder_arc!(GeckoArcURI, URI, ThreadSafeURIHolder, - Gecko_AddRefURIArbitraryThread, Gecko_ReleaseURIArbitraryThread); +define_arc!(GeckoArcPrincipal, Principal, ThreadSafePrincipalHolder, + Gecko_AddRefPrincipalArbitraryThread, Gecko_ReleasePrincipalArbitraryThread); +define_arc!(GeckoArcURI, URI, ThreadSafeURIHolder, + Gecko_AddRefURIArbitraryThread, Gecko_ReleaseURIArbitraryThread); diff --git a/ports/geckolib/gecko_bindings/structs_debug.rs b/ports/geckolib/gecko_bindings/structs_debug.rs index 2e7500bb587..a64cf3912bd 100644 --- a/ports/geckolib/gecko_bindings/structs_debug.rs +++ b/ports/geckolib/gecko_bindings/structs_debug.rs @@ -1,6 +1,6 @@ /* automatically generated by rust-bindgen */ -#[derive(Copy, Debug)] +#[derive(Debug)] #[repr(C)] pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); impl <T> __BindgenUnionField<T> { @@ -19,6 +19,7 @@ impl <T> ::std::clone::Clone for __BindgenUnionField<T> { #[inline] fn clone(&self) -> Self { Self::new() } } +impl <T> ::std::marker::Copy for __BindgenUnionField<T> { } pub const NS_THEME_NONE: ::std::os::raw::c_uint = 0; pub const NS_THEME_BUTTON: ::std::os::raw::c_uint = 1; pub const NS_THEME_RADIO: ::std::os::raw::c_uint = 2; @@ -142,63 +143,9 @@ pub const NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN: ::std::os::raw::c_uint = 245; pub const NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED: ::std::os::raw::c_uint = 246; pub const NS_THEME_GTK_INFO_BAR: ::std::os::raw::c_uint = 247; pub const NS_THEME_MAC_SOURCE_LIST: ::std::os::raw::c_uint = 248; -pub const NS_ERROR_MODULE_XPCOM: ::std::os::raw::c_uint = 1; -pub const NS_ERROR_MODULE_BASE: ::std::os::raw::c_uint = 2; -pub const NS_ERROR_MODULE_GFX: ::std::os::raw::c_uint = 3; -pub const NS_ERROR_MODULE_WIDGET: ::std::os::raw::c_uint = 4; -pub const NS_ERROR_MODULE_CALENDAR: ::std::os::raw::c_uint = 5; -pub const NS_ERROR_MODULE_NETWORK: ::std::os::raw::c_uint = 6; -pub const NS_ERROR_MODULE_PLUGINS: ::std::os::raw::c_uint = 7; -pub const NS_ERROR_MODULE_LAYOUT: ::std::os::raw::c_uint = 8; -pub const NS_ERROR_MODULE_HTMLPARSER: ::std::os::raw::c_uint = 9; -pub const NS_ERROR_MODULE_RDF: ::std::os::raw::c_uint = 10; -pub const NS_ERROR_MODULE_UCONV: ::std::os::raw::c_uint = 11; -pub const NS_ERROR_MODULE_REG: ::std::os::raw::c_uint = 12; -pub const NS_ERROR_MODULE_FILES: ::std::os::raw::c_uint = 13; -pub const NS_ERROR_MODULE_DOM: ::std::os::raw::c_uint = 14; -pub const NS_ERROR_MODULE_IMGLIB: ::std::os::raw::c_uint = 15; -pub const NS_ERROR_MODULE_MAILNEWS: ::std::os::raw::c_uint = 16; -pub const NS_ERROR_MODULE_EDITOR: ::std::os::raw::c_uint = 17; -pub const NS_ERROR_MODULE_XPCONNECT: ::std::os::raw::c_uint = 18; -pub const NS_ERROR_MODULE_PROFILE: ::std::os::raw::c_uint = 19; -pub const NS_ERROR_MODULE_LDAP: ::std::os::raw::c_uint = 20; -pub const NS_ERROR_MODULE_SECURITY: ::std::os::raw::c_uint = 21; -pub const NS_ERROR_MODULE_DOM_XPATH: ::std::os::raw::c_uint = 22; -pub const NS_ERROR_MODULE_URILOADER: ::std::os::raw::c_uint = 24; -pub const NS_ERROR_MODULE_CONTENT: ::std::os::raw::c_uint = 25; -pub const NS_ERROR_MODULE_PYXPCOM: ::std::os::raw::c_uint = 26; -pub const NS_ERROR_MODULE_XSLT: ::std::os::raw::c_uint = 27; -pub const NS_ERROR_MODULE_IPC: ::std::os::raw::c_uint = 28; -pub const NS_ERROR_MODULE_SVG: ::std::os::raw::c_uint = 29; -pub const NS_ERROR_MODULE_STORAGE: ::std::os::raw::c_uint = 30; -pub const NS_ERROR_MODULE_SCHEMA: ::std::os::raw::c_uint = 31; -pub const NS_ERROR_MODULE_DOM_FILE: ::std::os::raw::c_uint = 32; -pub const NS_ERROR_MODULE_DOM_INDEXEDDB: ::std::os::raw::c_uint = 33; -pub const NS_ERROR_MODULE_DOM_FILEHANDLE: ::std::os::raw::c_uint = 34; -pub const NS_ERROR_MODULE_SIGNED_JAR: ::std::os::raw::c_uint = 35; -pub const NS_ERROR_MODULE_DOM_FILESYSTEM: ::std::os::raw::c_uint = 36; -pub const NS_ERROR_MODULE_DOM_BLUETOOTH: ::std::os::raw::c_uint = 37; -pub const NS_ERROR_MODULE_SIGNED_APP: ::std::os::raw::c_uint = 38; -pub const NS_ERROR_MODULE_DOM_ANIM: ::std::os::raw::c_uint = 39; -pub const NS_ERROR_MODULE_DOM_PUSH: ::std::os::raw::c_uint = 40; -pub const NS_ERROR_MODULE_DOM_MEDIA: ::std::os::raw::c_uint = 41; -pub const NS_ERROR_MODULE_GENERAL: ::std::os::raw::c_uint = 51; -pub const NS_ERROR_SEVERITY_SUCCESS: ::std::os::raw::c_uint = 0; -pub const NS_ERROR_SEVERITY_ERROR: ::std::os::raw::c_uint = 1; -pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69; -pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1; -pub const NSID_LENGTH: ::std::os::raw::c_uint = 39; -pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2; -pub const NS_EVENT_STATE_HIGHEST_SERVO_BIT: ::std::os::raw::c_uint = 6; -pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1; -pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2; -pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20; -pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72; -pub const NS_ATTRNAME_NODEINFO_BIT: ::std::os::raw::c_uint = 1; -pub const NS_ATTRVALUE_MAX_STRINGLENGTH_ATOM: ::std::os::raw::c_uint = 12; -pub const NS_ATTRVALUE_INTEGERTYPE_BITS: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_SMALL_CAPS: ::std::os::raw::c_uint = 1; +pub const NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0; +pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1; +pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2; pub const NS_CORNER_TOP_LEFT_X: ::std::os::raw::c_uint = 0; pub const NS_CORNER_TOP_LEFT_Y: ::std::os::raw::c_uint = 1; pub const NS_CORNER_TOP_RIGHT_X: ::std::os::raw::c_uint = 2; @@ -451,31 +398,6 @@ pub const NS_STYLE_GRID_TRACK_BREADTH_MAX_CONTENT: ::std::os::raw::c_uint = 1; pub const NS_STYLE_GRID_TRACK_BREADTH_MIN_CONTENT: ::std::os::raw::c_uint = 2; pub const NS_STYLE_GRID_REPEAT_AUTO_FILL: ::std::os::raw::c_uint = 0; pub const NS_STYLE_GRID_REPEAT_AUTO_FIT: ::std::os::raw::c_uint = 1; -pub const NS_MATHML_DEFAULT_SCRIPT_MIN_SIZE_PT: ::std::os::raw::c_uint = 8; -pub const NS_MATHML_MATHVARIANT_NONE: ::std::os::raw::c_uint = 0; -pub const NS_MATHML_MATHVARIANT_NORMAL: ::std::os::raw::c_uint = 1; -pub const NS_MATHML_MATHVARIANT_BOLD: ::std::os::raw::c_uint = 2; -pub const NS_MATHML_MATHVARIANT_ITALIC: ::std::os::raw::c_uint = 3; -pub const NS_MATHML_MATHVARIANT_BOLD_ITALIC: ::std::os::raw::c_uint = 4; -pub const NS_MATHML_MATHVARIANT_SCRIPT: ::std::os::raw::c_uint = 5; -pub const NS_MATHML_MATHVARIANT_BOLD_SCRIPT: ::std::os::raw::c_uint = 6; -pub const NS_MATHML_MATHVARIANT_FRAKTUR: ::std::os::raw::c_uint = 7; -pub const NS_MATHML_MATHVARIANT_DOUBLE_STRUCK: ::std::os::raw::c_uint = 8; -pub const NS_MATHML_MATHVARIANT_BOLD_FRAKTUR: ::std::os::raw::c_uint = 9; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF: ::std::os::raw::c_uint = 10; -pub const NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF: ::std::os::raw::c_uint = 11; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC: ::std::os::raw::c_uint = - 12; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC: ::std::os::raw::c_uint - = - 13; -pub const NS_MATHML_MATHVARIANT_MONOSPACE: ::std::os::raw::c_uint = 14; -pub const NS_MATHML_MATHVARIANT_INITIAL: ::std::os::raw::c_uint = 15; -pub const NS_MATHML_MATHVARIANT_TAILED: ::std::os::raw::c_uint = 16; -pub const NS_MATHML_MATHVARIANT_LOOPED: ::std::os::raw::c_uint = 17; -pub const NS_MATHML_MATHVARIANT_STRETCHED: ::std::os::raw::c_uint = 18; -pub const NS_MATHML_DISPLAYSTYLE_INLINE: ::std::os::raw::c_uint = 0; -pub const NS_MATHML_DISPLAYSTYLE_BLOCK: ::std::os::raw::c_uint = 1; pub const NS_STYLE_WIDTH_MAX_CONTENT: ::std::os::raw::c_uint = 0; pub const NS_STYLE_WIDTH_MIN_CONTENT: ::std::os::raw::c_uint = 1; pub const NS_STYLE_WIDTH_FIT_CONTENT: ::std::os::raw::c_uint = 2; @@ -847,44 +769,6 @@ 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 NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1; -pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2; -pub const NS_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400; -pub const NS_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700; -pub const NS_FONT_WEIGHT_THIN: ::std::os::raw::c_uint = 100; -pub const NS_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1; -pub const NS_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2; -pub const NS_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint = 3; -pub const NS_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint = 4; -pub const NS_FONT_SMOOTHING_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_SMOOTHING_GRAYSCALE: ::std::os::raw::c_uint = 1; -pub const NS_FONT_KERNING_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_KERNING_NONE: ::std::os::raw::c_uint = 1; -pub const NS_FONT_KERNING_NORMAL: ::std::os::raw::c_uint = 2; -pub const NS_FONT_SYNTHESIS_WEIGHT: ::std::os::raw::c_uint = 1; -pub const NS_FONT_SYNTHESIS_STYLE: ::std::os::raw::c_uint = 2; -pub const NS_FONT_DISPLAY_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_DISPLAY_BLOCK: ::std::os::raw::c_uint = 1; -pub const NS_FONT_DISPLAY_SWAP: ::std::os::raw::c_uint = 2; -pub const NS_FONT_DISPLAY_FALLBACK: ::std::os::raw::c_uint = 3; -pub const NS_FONT_DISPLAY_OPTIONAL: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_CAPS_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_CAPS_SMALLCAPS: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_CAPS_ALLSMALL: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_CAPS_PETITECAPS: ::std::os::raw::c_uint = 3; -pub const NS_FONT_VARIANT_CAPS_ALLPETITE: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_CAPS_TITLING: ::std::os::raw::c_uint = 5; -pub const NS_FONT_VARIANT_CAPS_UNICASE: ::std::os::raw::c_uint = 6; -pub const NS_FONT_VARIANT_POSITION_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_POSITION_SUPER: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_POSITION_SUB: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_WIDTH_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_WIDTH_FULL: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_WIDTH_HALF: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_WIDTH_THIRD: ::std::os::raw::c_uint = 3; -pub const NS_FONT_VARIANT_WIDTH_QUARTER: ::std::os::raw::c_uint = 4; pub const NS_STYLE_INHERIT_MASK: ::std::os::raw::c_uint = 16777215; pub const NS_STYLE_HAS_TEXT_DECORATION_LINES: ::std::os::raw::c_uint = 16777216; @@ -906,20 +790,25 @@ pub const NS_STYLE_HAS_CHILD_THAT_USES_RESET_STYLE: pub const NS_STYLE_IS_TEXT_COMBINED: ::std::os::raw::c_ulonglong = 34359738368; pub const NS_STYLE_CONTEXT_TYPE_SHIFT: ::std::os::raw::c_uint = 36; -pub const NS_RULE_NODE_IS_ANIMATION_RULE: ::std::os::raw::c_uint = 16777216; -pub const NS_RULE_NODE_USED_DIRECTLY: ::std::os::raw::c_uint = 67108864; -pub const NS_RULE_NODE_IS_IMPORTANT: ::std::os::raw::c_uint = 134217728; -pub const NS_RULE_NODE_LEVEL_MASK: ::std::os::raw::c_uint = 4026531840; -pub const NS_RULE_NODE_LEVEL_SHIFT: ::std::os::raw::c_uint = 28; -pub const NS_RULE_NODE_HAS_ANIMATION_DATA: ::std::os::raw::c_uint = - 2147483648; pub const BORDER_COLOR_FOREGROUND: ::std::os::raw::c_uint = 32; -pub const OUTLINE_COLOR_INITIAL: ::std::os::raw::c_uint = 128; pub const BORDER_COLOR_SPECIAL: ::std::os::raw::c_uint = 160; pub const BORDER_STYLE_MASK: ::std::os::raw::c_uint = 31; -pub const NS_SPACING_MARGIN: ::std::os::raw::c_uint = 0; -pub const NS_SPACING_PADDING: ::std::os::raw::c_uint = 1; -pub const NS_SPACING_BORDER: ::std::os::raw::c_uint = 2; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct fallible_t { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_fallible_t() { + assert_eq!(::std::mem::size_of::<fallible_t>() , 1usize); + assert_eq!(::std::mem::align_of::<fallible_t>() , 1usize); +} +impl Clone for fallible_t { + fn clone(&self) -> Self { *self } +} +/** Convenient aliases. */ +pub type TrueType = u8; +pub type FalseType = u8; /** * MozRefCountType is Mozilla's reference count type. * @@ -931,179 +820,184 @@ pub const NS_SPACING_BORDER: ::std::os::raw::c_uint = 2; * usable for both C and C++ code. */ pub type MozRefCountType = usize; -pub type MozExternalRefCountType = u32; -pub const NS_ERROR_NO_INTERFACE: nsresult = nsresult::NS_NOINTERFACE; -pub const NS_ERROR_INVALID_ARG: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_ERROR_INVALID_POINTER: nsresult = +pub const nsresult_NS_ERROR_NO_INTERFACE: nsresult = nsresult::NS_NOINTERFACE; +pub const nsresult_NS_ERROR_INVALID_ARG: nsresult = + nsresult::NS_ERROR_ILLEGAL_VALUE; +pub const nsresult_NS_ERROR_INVALID_POINTER: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_ERROR_NULL_POINTER: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_BINDING_SUCCEEDED: nsresult = nsresult::NS_OK; -pub const NS_NET_STATUS_RESOLVING_HOST: nsresult = +pub const nsresult_NS_ERROR_NULL_POINTER: nsresult = + nsresult::NS_ERROR_ILLEGAL_VALUE; +pub const nsresult_NS_BINDING_SUCCEEDED: nsresult = nsresult::NS_OK; +pub const nsresult_NS_NET_STATUS_RESOLVING_HOST: nsresult = nsresult::NS_BINDING_REDIRECTED; -pub const NS_NET_STATUS_RESOLVED_HOST: nsresult = +pub const nsresult_NS_NET_STATUS_RESOLVED_HOST: nsresult = nsresult::NS_ERROR_ALREADY_CONNECTED; -pub const NS_NET_STATUS_CONNECTED_TO: nsresult = +pub const nsresult_NS_NET_STATUS_CONNECTED_TO: nsresult = nsresult::NS_BINDING_RETARGETED; -pub const NS_NET_STATUS_WAITING_FOR: nsresult = +pub const nsresult_NS_NET_STATUS_WAITING_FOR: nsresult = nsresult::NS_ERROR_MALFORMED_URI; -pub const NS_STATE_PROPERTY_EXISTS: nsresult = nsresult::NS_OK; -pub const NS_ERROR_HTMLPARSER_CONTINUE: nsresult = nsresult::NS_OK; -pub const NS_RDF_ASSERTION_ACCEPTED: nsresult = nsresult::NS_OK; -pub const NS_EXACT_LENGTH: nsresult = nsresult::NS_OK_UDEC_EXACTLENGTH; -pub const NS_PARTIAL_MORE_INPUT: nsresult = nsresult::NS_OK_UDEC_MOREINPUT; -pub const NS_PARTIAL_MORE_OUTPUT: nsresult = nsresult::NS_OK_UDEC_MOREOUTPUT; -pub const NS_ERROR_ILLEGAL_INPUT: nsresult = +pub const nsresult_NS_STATE_PROPERTY_EXISTS: nsresult = nsresult::NS_OK; +pub const nsresult_NS_ERROR_HTMLPARSER_CONTINUE: nsresult = nsresult::NS_OK; +pub const nsresult_NS_RDF_ASSERTION_ACCEPTED: nsresult = nsresult::NS_OK; +pub const nsresult_NS_EXACT_LENGTH: nsresult = + nsresult::NS_OK_UDEC_EXACTLENGTH; +pub const nsresult_NS_PARTIAL_MORE_INPUT: nsresult = + nsresult::NS_OK_UDEC_MOREINPUT; +pub const nsresult_NS_PARTIAL_MORE_OUTPUT: nsresult = + nsresult::NS_OK_UDEC_MOREOUTPUT; +pub const nsresult_NS_ERROR_ILLEGAL_INPUT: nsresult = nsresult::NS_ERROR_UDEC_ILLEGALINPUT; -pub const NS_ERROR_XPATH_INVALID_ARG: nsresult = +pub const nsresult_NS_ERROR_XPATH_INVALID_ARG: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_SUCCESS_RESTART_APP: nsresult = nsresult::NS_SUCCESS_DONT_FIXUP; -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub const nsresult_NS_SUCCESS_RESTART_APP: nsresult = + nsresult::NS_SUCCESS_DONT_FIXUP; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsresult { NS_OK = 0, - NS_ERROR_BASE = -1041039360, - NS_ERROR_NOT_INITIALIZED = -1041039359, - NS_ERROR_ALREADY_INITIALIZED = -1041039358, - NS_ERROR_NOT_IMPLEMENTED = -2147467263, - NS_NOINTERFACE = -2147467262, - NS_ERROR_ABORT = -2147467260, - NS_ERROR_FAILURE = -2147467259, - NS_ERROR_UNEXPECTED = -2147418113, - NS_ERROR_OUT_OF_MEMORY = -2147024882, - NS_ERROR_ILLEGAL_VALUE = -2147024809, - NS_ERROR_NO_AGGREGATION = -2147221232, - NS_ERROR_NOT_AVAILABLE = -2147221231, - NS_ERROR_FACTORY_NOT_REGISTERED = -2147221164, - NS_ERROR_FACTORY_REGISTER_AGAIN = -2147221163, - NS_ERROR_FACTORY_NOT_LOADED = -2147221000, - NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = -1041039103, - NS_ERROR_FACTORY_EXISTS = -1041039104, - NS_ERROR_CANNOT_CONVERT_DATA = -2142896127, - NS_ERROR_OBJECT_IS_IMMUTABLE = -2142896126, - NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = -2142896125, - NS_ERROR_NOT_SAME_THREAD = -2142896124, - NS_ERROR_ILLEGAL_DURING_SHUTDOWN = -2142896098, - NS_ERROR_SERVICE_NOT_AVAILABLE = -2142896106, + NS_ERROR_BASE = 3253927936, + NS_ERROR_NOT_INITIALIZED = 3253927937, + NS_ERROR_ALREADY_INITIALIZED = 3253927938, + NS_ERROR_NOT_IMPLEMENTED = 2147500033, + NS_NOINTERFACE = 2147500034, + NS_ERROR_ABORT = 2147500036, + NS_ERROR_FAILURE = 2147500037, + NS_ERROR_UNEXPECTED = 2147549183, + NS_ERROR_OUT_OF_MEMORY = 2147942414, + NS_ERROR_ILLEGAL_VALUE = 2147942487, + NS_ERROR_NO_AGGREGATION = 2147746064, + NS_ERROR_NOT_AVAILABLE = 2147746065, + NS_ERROR_FACTORY_NOT_REGISTERED = 2147746132, + NS_ERROR_FACTORY_REGISTER_AGAIN = 2147746133, + NS_ERROR_FACTORY_NOT_LOADED = 2147746296, + NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = 3253928193, + NS_ERROR_FACTORY_EXISTS = 3253928192, + NS_ERROR_CANNOT_CONVERT_DATA = 2152071169, + NS_ERROR_OBJECT_IS_IMMUTABLE = 2152071170, + NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = 2152071171, + NS_ERROR_NOT_SAME_THREAD = 2152071172, + NS_ERROR_ILLEGAL_DURING_SHUTDOWN = 2152071198, + NS_ERROR_SERVICE_NOT_AVAILABLE = 2152071190, NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA = 4587521, NS_SUCCESS_INTERRUPTED_TRAVERSE = 4587522, NS_ERROR_SERVICE_NOT_FOUND = 4587542, NS_ERROR_SERVICE_IN_USE = 4587543, - NS_BASE_STREAM_CLOSED = -2142830590, - NS_BASE_STREAM_OSERROR = -2142830589, - NS_BASE_STREAM_ILLEGAL_ARGS = -2142830588, - NS_BASE_STREAM_NO_CONVERTER = -2142830587, - NS_BASE_STREAM_BAD_CONVERSION = -2142830586, - NS_BASE_STREAM_WOULD_BLOCK = -2142830585, - NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = -2142765055, - NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = -2142765054, - NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = -2142765053, - NS_ERROR_GFX_PRINTER_STARTDOC = -2142765052, - NS_ERROR_GFX_PRINTER_ENDDOC = -2142765051, - NS_ERROR_GFX_PRINTER_STARTPAGE = -2142765050, - NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = -2142765049, - NS_ERROR_GFX_CMAP_MALFORMED = -2142765005, + NS_BASE_STREAM_CLOSED = 2152136706, + NS_BASE_STREAM_OSERROR = 2152136707, + NS_BASE_STREAM_ILLEGAL_ARGS = 2152136708, + NS_BASE_STREAM_NO_CONVERTER = 2152136709, + NS_BASE_STREAM_BAD_CONVERSION = 2152136710, + NS_BASE_STREAM_WOULD_BLOCK = 2152136711, + NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = 2152202241, + NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = 2152202242, + NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = 2152202243, + NS_ERROR_GFX_PRINTER_STARTDOC = 2152202244, + NS_ERROR_GFX_PRINTER_ENDDOC = 2152202245, + NS_ERROR_GFX_PRINTER_STARTPAGE = 2152202246, + NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = 2152202247, + NS_ERROR_GFX_CMAP_MALFORMED = 2152202291, NS_SUCCESS_EVENT_CONSUMED = 4784129, NS_SUCCESS_EVENT_HANDLED_ASYNCHRONOUSLY = 4784130, - NS_BINDING_FAILED = -2142568447, - NS_BINDING_ABORTED = -2142568446, - NS_BINDING_REDIRECTED = -2142568445, - NS_BINDING_RETARGETED = -2142568444, - NS_ERROR_MALFORMED_URI = -2142568438, - NS_ERROR_IN_PROGRESS = -2142568433, - NS_ERROR_NO_CONTENT = -2142568431, - NS_ERROR_UNKNOWN_PROTOCOL = -2142568430, - NS_ERROR_INVALID_CONTENT_ENCODING = -2142568421, - NS_ERROR_CORRUPTED_CONTENT = -2142568419, - NS_ERROR_INVALID_SIGNATURE = -2142568390, - NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = -2142568414, - NS_ERROR_ALREADY_OPENED = -2142568375, - NS_ERROR_ALREADY_CONNECTED = -2142568437, - NS_ERROR_NOT_CONNECTED = -2142568436, - NS_ERROR_CONNECTION_REFUSED = -2142568435, - NS_ERROR_NET_TIMEOUT = -2142568434, - NS_ERROR_OFFLINE = -2142568432, - NS_ERROR_PORT_ACCESS_NOT_ALLOWED = -2142568429, - NS_ERROR_NET_RESET = -2142568428, - NS_ERROR_NET_INTERRUPT = -2142568377, - NS_ERROR_PROXY_CONNECTION_REFUSED = -2142568376, - NS_ERROR_NET_PARTIAL_TRANSFER = -2142568372, - NS_ERROR_NET_INADEQUATE_SECURITY = -2142568366, - NS_ERROR_NOT_RESUMABLE = -2142568423, - NS_ERROR_REDIRECT_LOOP = -2142568417, - NS_ERROR_ENTITY_CHANGED = -2142568416, - NS_ERROR_UNSAFE_CONTENT_TYPE = -2142568374, - NS_ERROR_REMOTE_XUL = -2142568373, - NS_ERROR_LOAD_SHOWED_ERRORPAGE = -2142568371, - NS_ERROR_FTP_LOGIN = -2142568427, - NS_ERROR_FTP_CWD = -2142568426, - NS_ERROR_FTP_PASV = -2142568425, - NS_ERROR_FTP_PWD = -2142568424, - NS_ERROR_FTP_LIST = -2142568420, - NS_ERROR_UNKNOWN_HOST = -2142568418, - NS_ERROR_DNS_LOOKUP_QUEUE_FULL = -2142568415, - NS_ERROR_UNKNOWN_PROXY_HOST = -2142568406, - NS_ERROR_UNKNOWN_SOCKET_TYPE = -2142568397, - NS_ERROR_SOCKET_CREATE_FAILED = -2142568396, - NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = -2142568395, - NS_ERROR_SOCKET_ADDRESS_IN_USE = -2142568394, - NS_ERROR_CACHE_KEY_NOT_FOUND = -2142568387, - NS_ERROR_CACHE_DATA_IS_STREAM = -2142568386, - NS_ERROR_CACHE_DATA_IS_NOT_STREAM = -2142568385, - NS_ERROR_CACHE_WAIT_FOR_VALIDATION = -2142568384, - NS_ERROR_CACHE_ENTRY_DOOMED = -2142568383, - NS_ERROR_CACHE_READ_ACCESS_DENIED = -2142568382, - NS_ERROR_CACHE_WRITE_ACCESS_DENIED = -2142568381, - NS_ERROR_CACHE_IN_USE = -2142568380, - NS_ERROR_DOCUMENT_NOT_CACHED = -2142568378, - NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = -2142568368, - NS_ERROR_HOST_IS_IP_ADDRESS = -2142568367, + NS_BINDING_FAILED = 2152398849, + NS_BINDING_ABORTED = 2152398850, + NS_BINDING_REDIRECTED = 2152398851, + NS_BINDING_RETARGETED = 2152398852, + NS_ERROR_MALFORMED_URI = 2152398858, + NS_ERROR_IN_PROGRESS = 2152398863, + NS_ERROR_NO_CONTENT = 2152398865, + NS_ERROR_UNKNOWN_PROTOCOL = 2152398866, + NS_ERROR_INVALID_CONTENT_ENCODING = 2152398875, + NS_ERROR_CORRUPTED_CONTENT = 2152398877, + NS_ERROR_INVALID_SIGNATURE = 2152398906, + NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = 2152398882, + NS_ERROR_ALREADY_OPENED = 2152398921, + NS_ERROR_ALREADY_CONNECTED = 2152398859, + NS_ERROR_NOT_CONNECTED = 2152398860, + NS_ERROR_CONNECTION_REFUSED = 2152398861, + NS_ERROR_NET_TIMEOUT = 2152398862, + NS_ERROR_OFFLINE = 2152398864, + NS_ERROR_PORT_ACCESS_NOT_ALLOWED = 2152398867, + NS_ERROR_NET_RESET = 2152398868, + NS_ERROR_NET_INTERRUPT = 2152398919, + NS_ERROR_PROXY_CONNECTION_REFUSED = 2152398920, + NS_ERROR_NET_PARTIAL_TRANSFER = 2152398924, + NS_ERROR_NET_INADEQUATE_SECURITY = 2152398930, + NS_ERROR_NOT_RESUMABLE = 2152398873, + NS_ERROR_REDIRECT_LOOP = 2152398879, + NS_ERROR_ENTITY_CHANGED = 2152398880, + NS_ERROR_UNSAFE_CONTENT_TYPE = 2152398922, + NS_ERROR_REMOTE_XUL = 2152398923, + NS_ERROR_LOAD_SHOWED_ERRORPAGE = 2152398925, + NS_ERROR_FTP_LOGIN = 2152398869, + NS_ERROR_FTP_CWD = 2152398870, + NS_ERROR_FTP_PASV = 2152398871, + NS_ERROR_FTP_PWD = 2152398872, + NS_ERROR_FTP_LIST = 2152398876, + NS_ERROR_UNKNOWN_HOST = 2152398878, + NS_ERROR_DNS_LOOKUP_QUEUE_FULL = 2152398881, + NS_ERROR_UNKNOWN_PROXY_HOST = 2152398890, + NS_ERROR_UNKNOWN_SOCKET_TYPE = 2152398899, + NS_ERROR_SOCKET_CREATE_FAILED = 2152398900, + NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = 2152398901, + NS_ERROR_SOCKET_ADDRESS_IN_USE = 2152398902, + NS_ERROR_CACHE_KEY_NOT_FOUND = 2152398909, + NS_ERROR_CACHE_DATA_IS_STREAM = 2152398910, + NS_ERROR_CACHE_DATA_IS_NOT_STREAM = 2152398911, + NS_ERROR_CACHE_WAIT_FOR_VALIDATION = 2152398912, + NS_ERROR_CACHE_ENTRY_DOOMED = 2152398913, + NS_ERROR_CACHE_READ_ACCESS_DENIED = 2152398914, + NS_ERROR_CACHE_WRITE_ACCESS_DENIED = 2152398915, + NS_ERROR_CACHE_IN_USE = 2152398916, + NS_ERROR_DOCUMENT_NOT_CACHED = 2152398918, + NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = 2152398928, + NS_ERROR_HOST_IS_IP_ADDRESS = 2152398929, NS_SUCCESS_ADOPTED_DATA = 4915290, NS_NET_STATUS_BEGIN_FTP_TRANSACTION = 4915227, NS_NET_STATUS_END_FTP_TRANSACTION = 4915228, NS_SUCCESS_AUTH_FINISHED = 4915240, - NS_NET_STATUS_READING = -2142568440, - NS_NET_STATUS_WRITING = -2142568439, - NS_NET_STATUS_CONNECTING_TO = -2142568441, - NS_NET_STATUS_SENDING_TO = -2142568443, - NS_NET_STATUS_RECEIVING_FROM = -2142568442, - NS_ERROR_INTERCEPTION_FAILED = -2142568348, - NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = -2142501912, - NS_ERROR_PLUGIN_DISABLED = -2142501911, - NS_ERROR_PLUGIN_BLOCKLISTED = -2142501910, - NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = -2142501909, - NS_ERROR_PLUGIN_CLICKTOPLAY = -2142501908, + NS_NET_STATUS_READING = 2152398856, + NS_NET_STATUS_WRITING = 2152398857, + NS_NET_STATUS_CONNECTING_TO = 2152398855, + NS_NET_STATUS_SENDING_TO = 2152398853, + NS_NET_STATUS_RECEIVING_FROM = 2152398854, + NS_ERROR_INTERCEPTION_FAILED = 2152398948, + NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = 2152465384, + NS_ERROR_PLUGIN_DISABLED = 2152465385, + NS_ERROR_PLUGIN_BLOCKLISTED = 2152465386, + NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = 2152465387, + NS_ERROR_PLUGIN_CLICKTOPLAY = 2152465388, NS_PLUGIN_INIT_PENDING = 4981741, NS_TABLELAYOUT_CELL_NOT_FOUND = 5046272, NS_POSITION_BEFORE_TABLE = 5046275, NS_STATE_PROPERTY_NOT_THERE = 5046277, - NS_ERROR_HTMLPARSER_EOF = -2142370840, - NS_ERROR_HTMLPARSER_UNKNOWN = -2142370839, - NS_ERROR_HTMLPARSER_CANTPROPAGATE = -2142370838, - NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = -2142370837, - NS_ERROR_HTMLPARSER_BADFILENAME = -2142370836, - NS_ERROR_HTMLPARSER_BADURL = -2142370835, - NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = -2142370834, - NS_ERROR_HTMLPARSER_INTERRUPTED = -2142370833, - NS_ERROR_HTMLPARSER_BLOCK = -2142370832, - NS_ERROR_HTMLPARSER_BADTOKENIZER = -2142370831, - NS_ERROR_HTMLPARSER_BADATTRIBUTE = -2142370830, - NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = -2142370829, - NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = -2142370828, - NS_ERROR_HTMLPARSER_BADDTD = -2142370827, - NS_ERROR_HTMLPARSER_BADCONTEXT = -2142370826, - NS_ERROR_HTMLPARSER_STOPPARSING = -2142370825, - NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = -2142370824, - NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = -2142370823, - NS_ERROR_HTMLPARSER_FAKE_ENDTAG = -2142370822, - NS_ERROR_HTMLPARSER_INVALID_COMMENT = -2142370821, + NS_ERROR_HTMLPARSER_EOF = 2152596456, + NS_ERROR_HTMLPARSER_UNKNOWN = 2152596457, + NS_ERROR_HTMLPARSER_CANTPROPAGATE = 2152596458, + NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = 2152596459, + NS_ERROR_HTMLPARSER_BADFILENAME = 2152596460, + NS_ERROR_HTMLPARSER_BADURL = 2152596461, + NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = 2152596462, + NS_ERROR_HTMLPARSER_INTERRUPTED = 2152596463, + NS_ERROR_HTMLPARSER_BLOCK = 2152596464, + NS_ERROR_HTMLPARSER_BADTOKENIZER = 2152596465, + NS_ERROR_HTMLPARSER_BADATTRIBUTE = 2152596466, + NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 2152596467, + NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = 2152596468, + NS_ERROR_HTMLPARSER_BADDTD = 2152596469, + NS_ERROR_HTMLPARSER_BADCONTEXT = 2152596470, + NS_ERROR_HTMLPARSER_STOPPARSING = 2152596471, + NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = 2152596472, + NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = 2152596473, + NS_ERROR_HTMLPARSER_FAKE_ENDTAG = 2152596474, + NS_ERROR_HTMLPARSER_INVALID_COMMENT = 2152596475, NS_HTMLTOKENS_NOT_AN_ENTITY = 5113808, NS_HTMLPARSER_VALID_META_CHARSET = 5114808, NS_RDF_CURSOR_EMPTY = 5177345, NS_RDF_NO_VALUE = 5177346, NS_RDF_ASSERTION_REJECTED = 5177347, NS_RDF_STOP_VISIT = 5177348, - NS_ERROR_UCONV_NOCONV = -2142240767, - NS_ERROR_UDEC_ILLEGALINPUT = -2142240754, + NS_ERROR_UCONV_NOCONV = 2152726529, + NS_ERROR_UDEC_ILLEGALINPUT = 2152726542, NS_SUCCESS_USING_FALLBACK_LOCALE = 5242882, NS_OK_UDEC_EXACTLENGTH = 5242891, NS_OK_UDEC_MOREINPUT = 5242892, @@ -1113,185 +1007,185 @@ pub enum nsresult { NS_OK_UENC_MOREOUTPUT = 5242914, NS_ERROR_UENC_NOMAPPING = 5242915, NS_OK_UENC_MOREINPUT = 5242916, - NS_ERROR_FILE_UNRECOGNIZED_PATH = -2142109695, - NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = -2142109694, - NS_ERROR_FILE_EXECUTION_FAILED = -2142109693, - NS_ERROR_FILE_UNKNOWN_TYPE = -2142109692, - NS_ERROR_FILE_DESTINATION_NOT_DIR = -2142109691, - NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = -2142109690, - NS_ERROR_FILE_COPY_OR_MOVE_FAILED = -2142109689, - NS_ERROR_FILE_ALREADY_EXISTS = -2142109688, - NS_ERROR_FILE_INVALID_PATH = -2142109687, - NS_ERROR_FILE_DISK_FULL = -2142109686, - NS_ERROR_FILE_CORRUPTED = -2142109685, - NS_ERROR_FILE_NOT_DIRECTORY = -2142109684, - NS_ERROR_FILE_IS_DIRECTORY = -2142109683, - NS_ERROR_FILE_IS_LOCKED = -2142109682, - NS_ERROR_FILE_TOO_BIG = -2142109681, - NS_ERROR_FILE_NO_DEVICE_SPACE = -2142109680, - NS_ERROR_FILE_NAME_TOO_LONG = -2142109679, - NS_ERROR_FILE_NOT_FOUND = -2142109678, - NS_ERROR_FILE_READ_ONLY = -2142109677, - NS_ERROR_FILE_DIR_NOT_EMPTY = -2142109676, - NS_ERROR_FILE_ACCESS_DENIED = -2142109675, + NS_ERROR_FILE_UNRECOGNIZED_PATH = 2152857601, + NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = 2152857602, + NS_ERROR_FILE_EXECUTION_FAILED = 2152857603, + NS_ERROR_FILE_UNKNOWN_TYPE = 2152857604, + NS_ERROR_FILE_DESTINATION_NOT_DIR = 2152857605, + NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = 2152857606, + NS_ERROR_FILE_COPY_OR_MOVE_FAILED = 2152857607, + NS_ERROR_FILE_ALREADY_EXISTS = 2152857608, + NS_ERROR_FILE_INVALID_PATH = 2152857609, + NS_ERROR_FILE_DISK_FULL = 2152857610, + NS_ERROR_FILE_CORRUPTED = 2152857611, + NS_ERROR_FILE_NOT_DIRECTORY = 2152857612, + NS_ERROR_FILE_IS_DIRECTORY = 2152857613, + NS_ERROR_FILE_IS_LOCKED = 2152857614, + NS_ERROR_FILE_TOO_BIG = 2152857615, + NS_ERROR_FILE_NO_DEVICE_SPACE = 2152857616, + NS_ERROR_FILE_NAME_TOO_LONG = 2152857617, + NS_ERROR_FILE_NOT_FOUND = 2152857618, + NS_ERROR_FILE_READ_ONLY = 2152857619, + NS_ERROR_FILE_DIR_NOT_EMPTY = 2152857620, + NS_ERROR_FILE_ACCESS_DENIED = 2152857621, NS_SUCCESS_FILE_DIRECTORY_EMPTY = 5373953, NS_SUCCESS_AGGREGATE_RESULT = 5373954, - NS_ERROR_DOM_INDEX_SIZE_ERR = -2142044159, - NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = -2142044157, - NS_ERROR_DOM_WRONG_DOCUMENT_ERR = -2142044156, - NS_ERROR_DOM_INVALID_CHARACTER_ERR = -2142044155, - NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = -2142044153, - NS_ERROR_DOM_NOT_FOUND_ERR = -2142044152, - NS_ERROR_DOM_NOT_SUPPORTED_ERR = -2142044151, - NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = -2142044150, - NS_ERROR_DOM_INVALID_STATE_ERR = -2142044149, - NS_ERROR_DOM_SYNTAX_ERR = -2142044148, - NS_ERROR_DOM_INVALID_MODIFICATION_ERR = -2142044147, - NS_ERROR_DOM_NAMESPACE_ERR = -2142044146, - NS_ERROR_DOM_INVALID_ACCESS_ERR = -2142044145, - NS_ERROR_DOM_TYPE_MISMATCH_ERR = -2142044143, - NS_ERROR_DOM_SECURITY_ERR = -2142044142, - NS_ERROR_DOM_NETWORK_ERR = -2142044141, - NS_ERROR_DOM_ABORT_ERR = -2142044140, - NS_ERROR_DOM_URL_MISMATCH_ERR = -2142044139, - NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = -2142044138, - NS_ERROR_DOM_TIMEOUT_ERR = -2142044137, - NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = -2142044136, - NS_ERROR_DOM_DATA_CLONE_ERR = -2142044135, - NS_ERROR_TYPE_ERR = -2142044134, - NS_ERROR_RANGE_ERR = -2142044133, - NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = -2142044132, - NS_ERROR_DOM_INVALID_POINTER_ERR = -2142044131, - NS_ERROR_DOM_UNKNOWN_ERR = -2142044130, - NS_ERROR_DOM_DATA_ERR = -2142044129, - NS_ERROR_DOM_OPERATION_ERR = -2142044128, - NS_ERROR_DOM_NOT_ALLOWED_ERR = -2142044127, - NS_ERROR_DOM_SECMAN_ERR = -2142043159, - NS_ERROR_DOM_WRONG_TYPE_ERR = -2142043158, - NS_ERROR_DOM_NOT_OBJECT_ERR = -2142043157, - NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = -2142043156, - NS_ERROR_DOM_NOT_NUMBER_ERR = -2142043155, - NS_ERROR_DOM_NOT_BOOLEAN_ERR = -2142043154, - NS_ERROR_DOM_NOT_FUNCTION_ERR = -2142043153, - NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = -2142043152, - NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = -2142043151, - NS_ERROR_DOM_PROP_ACCESS_DENIED = -2142043150, - NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = -2142043149, - NS_ERROR_DOM_BAD_URI = -2142043148, - NS_ERROR_DOM_RETVAL_UNDEFINED = -2142043147, - NS_ERROR_DOM_QUOTA_REACHED = -2142043146, - NS_ERROR_DOM_JS_EXCEPTION = -2142043145, - NS_ERROR_UNCATCHABLE_EXCEPTION = -2142043144, - NS_ERROR_DOM_DOMEXCEPTION = -2142043143, - NS_ERROR_DOM_EXCEPTION_ON_JSCONTEXT = -2142043142, + NS_ERROR_DOM_INDEX_SIZE_ERR = 2152923137, + NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = 2152923139, + NS_ERROR_DOM_WRONG_DOCUMENT_ERR = 2152923140, + NS_ERROR_DOM_INVALID_CHARACTER_ERR = 2152923141, + NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = 2152923143, + NS_ERROR_DOM_NOT_FOUND_ERR = 2152923144, + NS_ERROR_DOM_NOT_SUPPORTED_ERR = 2152923145, + NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = 2152923146, + NS_ERROR_DOM_INVALID_STATE_ERR = 2152923147, + NS_ERROR_DOM_SYNTAX_ERR = 2152923148, + NS_ERROR_DOM_INVALID_MODIFICATION_ERR = 2152923149, + NS_ERROR_DOM_NAMESPACE_ERR = 2152923150, + NS_ERROR_DOM_INVALID_ACCESS_ERR = 2152923151, + NS_ERROR_DOM_TYPE_MISMATCH_ERR = 2152923153, + NS_ERROR_DOM_SECURITY_ERR = 2152923154, + NS_ERROR_DOM_NETWORK_ERR = 2152923155, + NS_ERROR_DOM_ABORT_ERR = 2152923156, + NS_ERROR_DOM_URL_MISMATCH_ERR = 2152923157, + NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = 2152923158, + NS_ERROR_DOM_TIMEOUT_ERR = 2152923159, + NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = 2152923160, + NS_ERROR_DOM_DATA_CLONE_ERR = 2152923161, + NS_ERROR_TYPE_ERR = 2152923162, + NS_ERROR_RANGE_ERR = 2152923163, + NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = 2152923164, + NS_ERROR_DOM_INVALID_POINTER_ERR = 2152923165, + NS_ERROR_DOM_UNKNOWN_ERR = 2152923166, + NS_ERROR_DOM_DATA_ERR = 2152923167, + NS_ERROR_DOM_OPERATION_ERR = 2152923168, + NS_ERROR_DOM_NOT_ALLOWED_ERR = 2152923169, + NS_ERROR_DOM_SECMAN_ERR = 2152924137, + NS_ERROR_DOM_WRONG_TYPE_ERR = 2152924138, + NS_ERROR_DOM_NOT_OBJECT_ERR = 2152924139, + NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = 2152924140, + NS_ERROR_DOM_NOT_NUMBER_ERR = 2152924141, + NS_ERROR_DOM_NOT_BOOLEAN_ERR = 2152924142, + NS_ERROR_DOM_NOT_FUNCTION_ERR = 2152924143, + NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = 2152924144, + NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = 2152924145, + NS_ERROR_DOM_PROP_ACCESS_DENIED = 2152924146, + NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = 2152924147, + NS_ERROR_DOM_BAD_URI = 2152924148, + NS_ERROR_DOM_RETVAL_UNDEFINED = 2152924149, + NS_ERROR_DOM_QUOTA_REACHED = 2152924150, + NS_ERROR_DOM_JS_EXCEPTION = 2152924151, + NS_ERROR_UNCATCHABLE_EXCEPTION = 2152924152, + NS_ERROR_DOM_DOMEXCEPTION = 2152924153, + NS_ERROR_DOM_EXCEPTION_ON_JSCONTEXT = 2152924154, NS_SUCCESS_DOM_NO_OPERATION = 5439489, NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW = 5439490, NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW_UNCATCHABLE = 5439491, NS_IMAGELIB_SUCCESS_LOAD_FINISHED = 5505024, NS_IMAGELIB_CHANGING_OWNER = 5505025, - NS_IMAGELIB_ERROR_FAILURE = -2141978619, - NS_IMAGELIB_ERROR_NO_DECODER = -2141978618, - NS_IMAGELIB_ERROR_NOT_FINISHED = -2141978617, - NS_IMAGELIB_ERROR_NO_ENCODER = -2141978615, - NS_ERROR_EDITOR_NO_SELECTION = -2141847551, - NS_ERROR_EDITOR_NO_TEXTNODE = -2141847550, - NS_FOUND_TARGET = -2141847549, + NS_IMAGELIB_ERROR_FAILURE = 2152988677, + NS_IMAGELIB_ERROR_NO_DECODER = 2152988678, + NS_IMAGELIB_ERROR_NOT_FINISHED = 2152988679, + NS_IMAGELIB_ERROR_NO_ENCODER = 2152988681, + NS_ERROR_EDITOR_NO_SELECTION = 2153119745, + NS_ERROR_EDITOR_NO_TEXTNODE = 2153119746, + NS_FOUND_TARGET = 2153119747, NS_EDITOR_ELEMENT_NOT_FOUND = 5636097, - NS_ERROR_XPC_NOT_ENOUGH_ARGS = -2141782015, - NS_ERROR_XPC_NEED_OUT_OBJECT = -2141782014, - NS_ERROR_XPC_CANT_SET_OUT_VAL = -2141782013, - NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = -2141782012, - NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = -2141782011, - NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = -2141782010, - NS_ERROR_XPC_CANT_GET_METHOD_INFO = -2141782009, - NS_ERROR_XPC_UNEXPECTED = -2141782008, - NS_ERROR_XPC_BAD_CONVERT_JS = -2141782007, - NS_ERROR_XPC_BAD_CONVERT_NATIVE = -2141782006, - NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = -2141782005, - NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = -2141782004, - NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = -2141782003, - NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = -2141782002, - NS_ERROR_XPC_CANT_WATCH_WN_STATIC = -2141782001, - NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = -2141782000, - NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = -2141781999, - NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = -2141781998, - NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = -2141781997, - NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = -2141781996, - NS_ERROR_XPC_CI_RETURNED_FAILURE = -2141781995, - NS_ERROR_XPC_GS_RETURNED_FAILURE = -2141781994, - NS_ERROR_XPC_BAD_CID = -2141781993, - NS_ERROR_XPC_BAD_IID = -2141781992, - NS_ERROR_XPC_CANT_CREATE_WN = -2141781991, - NS_ERROR_XPC_JS_THREW_EXCEPTION = -2141781990, - NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = -2141781989, - NS_ERROR_XPC_JS_THREW_JS_OBJECT = -2141781988, - NS_ERROR_XPC_JS_THREW_NULL = -2141781987, - NS_ERROR_XPC_JS_THREW_STRING = -2141781986, - NS_ERROR_XPC_JS_THREW_NUMBER = -2141781985, - NS_ERROR_XPC_JAVASCRIPT_ERROR = -2141781984, - NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = -2141781983, - NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = -2141781982, - NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = -2141781981, - NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = -2141781980, - NS_ERROR_XPC_CANT_GET_ARRAY_INFO = -2141781979, - NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = -2141781978, - NS_ERROR_XPC_SECURITY_MANAGER_VETO = -2141781977, - NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = -2141781976, - NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = -2141781975, - NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = -2141781974, - NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = -2141781973, - NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = -2141781972, - NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = -2141781971, - NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = -2141781970, - NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = -2141781969, - NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = -2141781968, - NS_ERROR_XPC_BAD_ID_STRING = -2141781967, - NS_ERROR_XPC_BAD_INITIALIZER_NAME = -2141781966, - NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = -2141781965, - NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = -2141781964, - NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = -2141781963, - NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = -2141781962, - NS_ERROR_LAUNCHED_CHILD_PROCESS = -2141716280, - NS_ERROR_CSP_FORM_ACTION_VIOLATION = -2141585310, - NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = -2141585309, - NS_ERROR_SRI_CORRUPT = -2141585208, - NS_ERROR_SRI_DISABLED = -2141585207, - NS_ERROR_SRI_NOT_ELIGIBLE = -2141585206, - NS_ERROR_CMS_VERIFY_NOT_SIGNED = -2141584384, - NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = -2141584383, - NS_ERROR_CMS_VERIFY_BAD_DIGEST = -2141584382, - NS_ERROR_CMS_VERIFY_NOCERT = -2141584380, - NS_ERROR_CMS_VERIFY_UNTRUSTED = -2141584379, - NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = -2141584377, - NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = -2141584376, - NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = -2141584375, - NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = -2141584374, - NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = -2141584373, - NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = -2141584372, - NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = -2141584371, - NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = -2141584370, - NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = -2141584369, - NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = -2141584368, - NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = -2141584352, - NS_ERROR_CMS_ENCRYPT_INCOMPLETE = -2141584351, - NS_ERROR_DOM_INVALID_EXPRESSION_ERR = -2141519821, - NS_ERROR_DOM_TYPE_ERR = -2141519820, - NS_ERROR_WONT_HANDLE_CONTENT = -2141388799, - NS_ERROR_MALWARE_URI = -2141388770, - NS_ERROR_PHISHING_URI = -2141388769, - NS_ERROR_TRACKING_URI = -2141388766, - NS_ERROR_UNWANTED_URI = -2141388765, - NS_ERROR_BLOCKED_URI = -2141388763, - NS_ERROR_SAVE_LINK_AS_TIMEOUT = -2141388768, - NS_ERROR_PARSED_DATA_CACHED = -2141388767, + NS_ERROR_XPC_NOT_ENOUGH_ARGS = 2153185281, + NS_ERROR_XPC_NEED_OUT_OBJECT = 2153185282, + NS_ERROR_XPC_CANT_SET_OUT_VAL = 2153185283, + NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = 2153185284, + NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = 2153185285, + NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = 2153185286, + NS_ERROR_XPC_CANT_GET_METHOD_INFO = 2153185287, + NS_ERROR_XPC_UNEXPECTED = 2153185288, + NS_ERROR_XPC_BAD_CONVERT_JS = 2153185289, + NS_ERROR_XPC_BAD_CONVERT_NATIVE = 2153185290, + NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = 2153185291, + NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = 2153185292, + NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = 2153185293, + NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = 2153185294, + NS_ERROR_XPC_CANT_WATCH_WN_STATIC = 2153185295, + NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = 2153185296, + NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = 2153185297, + NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = 2153185298, + NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = 2153185299, + NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = 2153185300, + NS_ERROR_XPC_CI_RETURNED_FAILURE = 2153185301, + NS_ERROR_XPC_GS_RETURNED_FAILURE = 2153185302, + NS_ERROR_XPC_BAD_CID = 2153185303, + NS_ERROR_XPC_BAD_IID = 2153185304, + NS_ERROR_XPC_CANT_CREATE_WN = 2153185305, + NS_ERROR_XPC_JS_THREW_EXCEPTION = 2153185306, + NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = 2153185307, + NS_ERROR_XPC_JS_THREW_JS_OBJECT = 2153185308, + NS_ERROR_XPC_JS_THREW_NULL = 2153185309, + NS_ERROR_XPC_JS_THREW_STRING = 2153185310, + NS_ERROR_XPC_JS_THREW_NUMBER = 2153185311, + NS_ERROR_XPC_JAVASCRIPT_ERROR = 2153185312, + NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = 2153185313, + NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = 2153185314, + NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = 2153185315, + NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = 2153185316, + NS_ERROR_XPC_CANT_GET_ARRAY_INFO = 2153185317, + NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = 2153185318, + NS_ERROR_XPC_SECURITY_MANAGER_VETO = 2153185319, + NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = 2153185320, + NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = 2153185321, + NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = 2153185322, + NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = 2153185323, + NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = 2153185324, + NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = 2153185325, + NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = 2153185326, + NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = 2153185327, + NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = 2153185328, + NS_ERROR_XPC_BAD_ID_STRING = 2153185329, + NS_ERROR_XPC_BAD_INITIALIZER_NAME = 2153185330, + NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = 2153185331, + NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = 2153185332, + NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = 2153185333, + NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = 2153185334, + NS_ERROR_LAUNCHED_CHILD_PROCESS = 2153251016, + NS_ERROR_CSP_FORM_ACTION_VIOLATION = 2153381986, + NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = 2153381987, + NS_ERROR_SRI_CORRUPT = 2153382088, + NS_ERROR_SRI_DISABLED = 2153382089, + NS_ERROR_SRI_NOT_ELIGIBLE = 2153382090, + NS_ERROR_CMS_VERIFY_NOT_SIGNED = 2153382912, + NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = 2153382913, + NS_ERROR_CMS_VERIFY_BAD_DIGEST = 2153382914, + NS_ERROR_CMS_VERIFY_NOCERT = 2153382916, + NS_ERROR_CMS_VERIFY_UNTRUSTED = 2153382917, + NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = 2153382919, + NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = 2153382920, + NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = 2153382921, + NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = 2153382922, + NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = 2153382923, + NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = 2153382924, + NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = 2153382925, + NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = 2153382926, + NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = 2153382927, + NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = 2153382928, + NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = 2153382944, + NS_ERROR_CMS_ENCRYPT_INCOMPLETE = 2153382945, + NS_ERROR_DOM_INVALID_EXPRESSION_ERR = 2153447475, + NS_ERROR_DOM_TYPE_ERR = 2153447476, + NS_ERROR_WONT_HANDLE_CONTENT = 2153578497, + NS_ERROR_MALWARE_URI = 2153578526, + NS_ERROR_PHISHING_URI = 2153578527, + NS_ERROR_TRACKING_URI = 2153578530, + NS_ERROR_UNWANTED_URI = 2153578531, + NS_ERROR_BLOCKED_URI = 2153578533, + NS_ERROR_SAVE_LINK_AS_TIMEOUT = 2153578528, + NS_ERROR_PARSED_DATA_CACHED = 2153578529, NS_REFRESHURI_HEADER_FOUND = 6094850, - NS_ERROR_IMAGE_SRC_CHANGED = -2141323260, - NS_ERROR_IMAGE_BLOCKED = -2141323259, - NS_ERROR_CONTENT_BLOCKED = -2141323258, - NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = -2141323257, - NS_PROPTABLE_PROP_NOT_THERE = -2141323254, - NS_ERROR_XBL_BLOCKED = -2141323249, - NS_ERROR_CONTENT_CRASHED = -2141323248, + NS_ERROR_IMAGE_SRC_CHANGED = 2153644036, + NS_ERROR_IMAGE_BLOCKED = 2153644037, + NS_ERROR_CONTENT_BLOCKED = 2153644038, + NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = 2153644039, + NS_PROPTABLE_PROP_NOT_THERE = 2153644042, + NS_ERROR_XBL_BLOCKED = 2153644047, + NS_ERROR_CONTENT_CRASHED = 2153644048, NS_HTML_STYLE_PROPERTY_NOT_THERE = 6160386, NS_CONTENT_BLOCKED = 6160392, NS_CONTENT_BLOCKED_SHOW_ALT = 6160393, @@ -1299,141 +1193,162 @@ pub enum nsresult { NS_FINDBROADCASTER_NOT_FOUND = 6160396, NS_FINDBROADCASTER_FOUND = 6160397, NS_FINDBROADCASTER_AWAIT_OVERLAYS = 6160398, - NS_ERROR_XSLT_PARSE_FAILURE = -2141192191, - NS_ERROR_XPATH_PARSE_FAILURE = -2141192190, - NS_ERROR_XSLT_ALREADY_SET = -2141192189, - NS_ERROR_XSLT_EXECUTION_FAILURE = -2141192188, - NS_ERROR_XPATH_UNKNOWN_FUNCTION = -2141192187, - NS_ERROR_XSLT_BAD_RECURSION = -2141192186, - NS_ERROR_XSLT_BAD_VALUE = -2141192185, - NS_ERROR_XSLT_NODESET_EXPECTED = -2141192184, - NS_ERROR_XSLT_ABORTED = -2141192183, - NS_ERROR_XSLT_NETWORK_ERROR = -2141192182, - NS_ERROR_XSLT_WRONG_MIME_TYPE = -2141192181, - NS_ERROR_XSLT_LOAD_RECURSION = -2141192180, - NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = -2141192179, - NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = -2141192178, - NS_ERROR_XPATH_PAREN_EXPECTED = -2141192177, - NS_ERROR_XPATH_INVALID_AXIS = -2141192176, - NS_ERROR_XPATH_NO_NODE_TYPE_TEST = -2141192175, - NS_ERROR_XPATH_BRACKET_EXPECTED = -2141192174, - NS_ERROR_XPATH_INVALID_VAR_NAME = -2141192173, - NS_ERROR_XPATH_UNEXPECTED_END = -2141192172, - NS_ERROR_XPATH_OPERATOR_EXPECTED = -2141192171, - NS_ERROR_XPATH_UNCLOSED_LITERAL = -2141192170, - NS_ERROR_XPATH_BAD_COLON = -2141192169, - NS_ERROR_XPATH_BAD_BANG = -2141192168, - NS_ERROR_XPATH_ILLEGAL_CHAR = -2141192167, - NS_ERROR_XPATH_BINARY_EXPECTED = -2141192166, - NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = -2141192165, - NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = -2141192164, - NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = -2141192163, - NS_ERROR_XSLT_BAD_NODE_NAME = -2141192162, - NS_ERROR_XSLT_VAR_ALREADY_SET = -2141192161, - NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = -2141192160, + NS_ERROR_XSLT_PARSE_FAILURE = 2153775105, + NS_ERROR_XPATH_PARSE_FAILURE = 2153775106, + NS_ERROR_XSLT_ALREADY_SET = 2153775107, + NS_ERROR_XSLT_EXECUTION_FAILURE = 2153775108, + NS_ERROR_XPATH_UNKNOWN_FUNCTION = 2153775109, + NS_ERROR_XSLT_BAD_RECURSION = 2153775110, + NS_ERROR_XSLT_BAD_VALUE = 2153775111, + NS_ERROR_XSLT_NODESET_EXPECTED = 2153775112, + NS_ERROR_XSLT_ABORTED = 2153775113, + NS_ERROR_XSLT_NETWORK_ERROR = 2153775114, + NS_ERROR_XSLT_WRONG_MIME_TYPE = 2153775115, + NS_ERROR_XSLT_LOAD_RECURSION = 2153775116, + NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = 2153775117, + NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = 2153775118, + NS_ERROR_XPATH_PAREN_EXPECTED = 2153775119, + NS_ERROR_XPATH_INVALID_AXIS = 2153775120, + NS_ERROR_XPATH_NO_NODE_TYPE_TEST = 2153775121, + NS_ERROR_XPATH_BRACKET_EXPECTED = 2153775122, + NS_ERROR_XPATH_INVALID_VAR_NAME = 2153775123, + NS_ERROR_XPATH_UNEXPECTED_END = 2153775124, + NS_ERROR_XPATH_OPERATOR_EXPECTED = 2153775125, + NS_ERROR_XPATH_UNCLOSED_LITERAL = 2153775126, + NS_ERROR_XPATH_BAD_COLON = 2153775127, + NS_ERROR_XPATH_BAD_BANG = 2153775128, + NS_ERROR_XPATH_ILLEGAL_CHAR = 2153775129, + NS_ERROR_XPATH_BINARY_EXPECTED = 2153775130, + NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = 2153775131, + NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = 2153775132, + NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = 2153775133, + NS_ERROR_XSLT_BAD_NODE_NAME = 2153775134, + NS_ERROR_XSLT_VAR_ALREADY_SET = 2153775135, + NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = 2153775136, NS_XSLT_GET_NEW_HANDLER = 6291457, - NS_ERROR_TRANSPORT_INIT = -2141126655, - NS_ERROR_DUPLICATE_HANDLE = -2141126654, - NS_ERROR_BRIDGE_OPEN_PARENT = -2141126653, - NS_ERROR_BRIDGE_OPEN_CHILD = -2141126652, - NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = -2141061120, - NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = -2141061118, - NS_ERROR_STORAGE_BUSY = -2140995583, - NS_ERROR_STORAGE_IOERR = -2140995582, - NS_ERROR_STORAGE_CONSTRAINT = -2140995581, - NS_ERROR_DOM_FILE_NOT_FOUND_ERR = -2140864512, - NS_ERROR_DOM_FILE_NOT_READABLE_ERR = -2140864511, - NS_ERROR_DOM_FILE_ABORT_ERR = -2140864510, - NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = -2140798975, - NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = -2140798973, - NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = -2140798972, - NS_ERROR_DOM_INDEXEDDB_DATA_ERR = -2140798971, - NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = -2140798970, - NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = -2140798969, - NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = -2140798968, - NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = -2140798967, - NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = -2140798966, - NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = -2140798965, - NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = -2140798964, - NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = -2140797975, - NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = -2140733439, - NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = -2140733438, - NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = -2140733437, - NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = -2140733436, - NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = -2140733435, - NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = -2140733434, - NS_ERROR_SIGNED_JAR_NOT_SIGNED = -2140667903, - NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = -2140667902, - NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = -2140667901, - NS_ERROR_SIGNED_JAR_ENTRY_MISSING = -2140667900, - NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = -2140667899, - NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = -2140667898, - NS_ERROR_SIGNED_JAR_ENTRY_INVALID = -2140667897, - NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = -2140667896, - NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = -2140602367, - NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = -2140602366, - NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = -2140602365, - NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = -2140602364, - NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = -2140602363, - NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = -2140602362, - NS_ERROR_DOM_BLUETOOTH_FAIL = -2140536831, - NS_ERROR_DOM_BLUETOOTH_NOT_READY = -2140536830, - NS_ERROR_DOM_BLUETOOTH_NOMEM = -2140536829, - NS_ERROR_DOM_BLUETOOTH_BUSY = -2140536828, - NS_ERROR_DOM_BLUETOOTH_DONE = -2140536827, - NS_ERROR_DOM_BLUETOOTH_UNSUPPORTED = -2140536826, - NS_ERROR_DOM_BLUETOOTH_PARM_INVALID = -2140536825, - NS_ERROR_DOM_BLUETOOTH_UNHANDLED = -2140536824, - NS_ERROR_DOM_BLUETOOTH_AUTH_FAILURE = -2140536823, - NS_ERROR_DOM_BLUETOOTH_RMT_DEV_DOWN = -2140536822, - NS_ERROR_DOM_BLUETOOTH_AUTH_REJECTED = -2140536821, - NS_ERROR_SIGNED_APP_MANIFEST_INVALID = -2140471295, - NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = -2140405759, - NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = -2140340223, - NS_ERROR_DOM_PUSH_DENIED_ERR = -2140340222, - NS_ERROR_DOM_PUSH_ABORT_ERR = -2140340221, - NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = -2140340220, - NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = -2140340219, - NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = -2140340218, - NS_ERROR_DOM_MEDIA_ABORT_ERR = -2140274687, - NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = -2140274686, - NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = -2140274685, - NS_ERROR_DOWNLOAD_COMPLETE = -2139619327, - NS_ERROR_DOWNLOAD_NOT_PARTIAL = -2139619326, - NS_ERROR_UNORM_MOREOUTPUT = -2139619295, - NS_ERROR_DOCSHELL_REQUEST_REJECTED = -2139618327, - NS_ERROR_DOCUMENT_IS_PRINTMODE = -2139617327, + NS_ERROR_TRANSPORT_INIT = 2153840641, + NS_ERROR_DUPLICATE_HANDLE = 2153840642, + NS_ERROR_BRIDGE_OPEN_PARENT = 2153840643, + NS_ERROR_BRIDGE_OPEN_CHILD = 2153840644, + NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = 2153906176, + NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = 2153906178, + NS_ERROR_STORAGE_BUSY = 2153971713, + NS_ERROR_STORAGE_IOERR = 2153971714, + NS_ERROR_STORAGE_CONSTRAINT = 2153971715, + NS_ERROR_DOM_FILE_NOT_FOUND_ERR = 2154102784, + NS_ERROR_DOM_FILE_NOT_READABLE_ERR = 2154102785, + NS_ERROR_DOM_FILE_ABORT_ERR = 2154102786, + NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = 2154168321, + NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = 2154168323, + NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = 2154168324, + NS_ERROR_DOM_INDEXEDDB_DATA_ERR = 2154168325, + NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = 2154168326, + NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = 2154168327, + NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = 2154168328, + NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = 2154168329, + NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = 2154168330, + NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = 2154168331, + NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = 2154168332, + NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = 2154169321, + NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = 2154233857, + NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = 2154233858, + NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = 2154233859, + NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = 2154233860, + NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = 2154233861, + NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = 2154233862, + NS_ERROR_SIGNED_JAR_NOT_SIGNED = 2154299393, + NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = 2154299394, + NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = 2154299395, + NS_ERROR_SIGNED_JAR_ENTRY_MISSING = 2154299396, + NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = 2154299397, + NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = 2154299398, + NS_ERROR_SIGNED_JAR_ENTRY_INVALID = 2154299399, + NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = 2154299400, + NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = 2154364929, + NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = 2154364930, + NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = 2154364931, + NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = 2154364932, + NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = 2154364933, + NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = 2154364934, + NS_ERROR_DOM_BLUETOOTH_FAIL = 2154430465, + NS_ERROR_DOM_BLUETOOTH_NOT_READY = 2154430466, + NS_ERROR_DOM_BLUETOOTH_NOMEM = 2154430467, + NS_ERROR_DOM_BLUETOOTH_BUSY = 2154430468, + NS_ERROR_DOM_BLUETOOTH_DONE = 2154430469, + NS_ERROR_DOM_BLUETOOTH_UNSUPPORTED = 2154430470, + NS_ERROR_DOM_BLUETOOTH_PARM_INVALID = 2154430471, + NS_ERROR_DOM_BLUETOOTH_UNHANDLED = 2154430472, + NS_ERROR_DOM_BLUETOOTH_AUTH_FAILURE = 2154430473, + NS_ERROR_DOM_BLUETOOTH_RMT_DEV_DOWN = 2154430474, + NS_ERROR_DOM_BLUETOOTH_AUTH_REJECTED = 2154430475, + NS_ERROR_SIGNED_APP_MANIFEST_INVALID = 2154496001, + NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = 2154561537, + NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = 2154627073, + NS_ERROR_DOM_PUSH_DENIED_ERR = 2154627074, + NS_ERROR_DOM_PUSH_ABORT_ERR = 2154627075, + NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = 2154627076, + NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = 2154627077, + NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = 2154627078, + NS_ERROR_DOM_MEDIA_ABORT_ERR = 2154692609, + NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = 2154692610, + NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = 2154692611, + NS_ERROR_DOM_MEDIA_DECODE_ERR = 2154692612, + NS_ERROR_DOM_MEDIA_FATAL_ERR = 2154692613, + NS_ERROR_DOM_MEDIA_METADATA_ERR = 2154692614, + NS_ERROR_DOM_MEDIA_OVERFLOW_ERR = 2154692615, + NS_ERROR_DOM_MEDIA_END_OF_STREAM = 2154692616, + NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA = 2154692617, + NS_ERROR_DOM_MEDIA_CANCELED = 2154692618, + NS_ERROR_DOM_MEDIA_MEDIASINK_ERR = 2154692619, + NS_ERROR_DOM_MEDIA_DEMUXER_ERR = 2154692620, + NS_ERROR_DOM_MEDIA_CDM_ERR = 2154692621, + NS_ERROR_DOWNLOAD_COMPLETE = 2155347969, + NS_ERROR_DOWNLOAD_NOT_PARTIAL = 2155347970, + NS_ERROR_UNORM_MOREOUTPUT = 2155348001, + NS_ERROR_DOCSHELL_REQUEST_REJECTED = 2155348969, + NS_ERROR_DOCUMENT_IS_PRINTMODE = 2155349969, NS_SUCCESS_DONT_FIXUP = 7864321, NS_SUCCESS_RESTART_APP_NOT_SAME_PROFILE = 7864323, NS_SUCCESS_UNORM_NOTFOUND = 7864337, - NS_ERROR_NOT_IN_TREE = -2139619290, + NS_ERROR_NOT_IN_TREE = 2155348006, NS_OK_NO_NAME_CLAUSE_HANDLED = 7864354, } pub type nsrefcnt = MozRefCountType; #[repr(C)] -#[derive(Debug, Copy)] -pub struct HasPointerTypeHelper; -impl ::std::clone::Clone for HasPointerTypeHelper { - fn clone(&self) -> Self { *self } +#[derive(Debug, Copy, Clone)] +pub struct AlignedStorage2<T> { + pub u: AlignedStorage2_U<T>, + pub _phantom_0: ::std::marker::PhantomData<T>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct PointerType<T, D> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<D>, +pub struct AlignedStorage2_U<T> { + pub mBytes: __BindgenUnionField<*mut ::std::os::raw::c_char>, + pub mDummy: __BindgenUnionField<u64>, + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<T>, } /** - * <div rustbindgen="true" replaces="UniquePtr"> + * Pair is the logical concatenation of an instance of A with an instance B. + * Space is conserved when possible. Neither A nor B may be a final class. * - * TODO(Emilio): This is a workaround and we should be able to get rid of this - * one. + * It's typically clearer to have individual A and B member fields. Except if + * you want the space-conserving qualities of Pair, you're probably better off + * not using this! + * + * No guarantees are provided about the memory layout of A and B, the order of + * initialization or destruction of A and B, and so on. (This is approximately + * required to optimize space usage.) The first/second names are merely + * conceptual! */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct UniquePtr<T, Deleter> { - pub mPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<Deleter>, +pub struct Pair<A, B> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<A>, + pub _phantom_1: ::std::marker::PhantomData<B>, } +pub type Pair_Base = [u8; 0usize]; /** * A default deletion policy using plain old operator delete. * @@ -1450,81 +1365,255 @@ pub struct UniquePtr<T, Deleter> { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct DefaultDelete<T> { - pub _phantom0: ::std::marker::PhantomData<T>, + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct UniqueSelector<T> { - pub _phantom0: ::std::marker::PhantomData<T>, +#[derive(Debug, Copy)] +pub struct JSContext { + pub _address: u8, +} +impl Clone for JSContext { + fn clone(&self) -> Self { *self } } -/** - * typedefs for backwards compatibility - */ -pub type nsSubstring = nsAString_internal; -pub type nsCSubstring = nsACString_internal; -pub type nsAFlatString = nsString; -pub type nsASingleFragmentString = nsSubstring; -pub type nsAFlatCString = nsCString; -pub type nsASingleFragmentCString = nsCSubstring; -/** - * @see nsTAString - */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsReadingIterator<CharT> { - pub mStart: *const CharT, - pub mEnd: *const CharT, - pub mPosition: *const CharT, +#[derive(Debug, Copy)] +pub struct JSObject { + pub _address: u8, +} +impl Clone for JSObject { + fn clone(&self) -> Self { *self } } /** - * @see nsTAString + * JS::Value is the interface for a single JavaScript Engine value. A few + * general notes on JS::Value: + * + * - JS::Value has setX() and isX() members for X in + * + * { Int32, Double, String, Symbol, Boolean, Undefined, Null, Object, Magic } + * + * JS::Value also contains toX() for each of the non-singleton types. + * + * - Magic is a singleton type whose payload contains either a JSWhyMagic "reason" for + * the magic value or a uint32_t value. By providing JSWhyMagic values when + * creating and checking for magic values, it is possible to assert, at + * runtime, that only magic values with the expected reason flow through a + * particular value. For example, if cx->exception has a magic value, the + * reason must be JS_GENERATOR_CLOSING. + * + * - The JS::Value operations are preferred. The JSVAL_* operations remain for + * compatibility; they may be removed at some point. These operations mostly + * provide similar functionality. But there are a few key differences. One + * is that JS::Value gives null a separate type. + * Also, to help prevent mistakenly boxing a nullable JSObject* as an object, + * Value::setObject takes a JSObject&. (Conversely, Value::toObject returns a + * JSObject&.) A convenience member Value::setObjectOrNull is provided. + * + * - JSVAL_VOID is the same as the singleton value of the Undefined type. + * + * - Note that JS::Value is 8 bytes on 32 and 64-bit architectures. Thus, on + * 32-bit user code should avoid copying jsval/JS::Value as much as possible, + * preferring to pass by const Value&. */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsWritingIterator<CharT> { - pub mStart: *mut CharT, - pub mEnd: *mut CharT, - pub mPosition: *mut CharT, +#[derive(Debug, Copy)] +pub struct Value { + pub data: jsval_layout, +} +#[test] +fn bindgen_test_layout_Value() { + assert_eq!(::std::mem::size_of::<Value>() , 8usize); + assert_eq!(::std::mem::align_of::<Value>() , 8usize); +} +impl Clone for Value { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStringComparator { - pub _vftable: *const _vftable_nsStringComparator, +pub struct JSCompartment { + pub _address: u8, +} +impl Clone for JSCompartment { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct atomic<_Tp> { + pub _M_i: _Tp, } #[repr(C)] -pub struct _vftable_nsStringComparator { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug, Copy)] +pub struct FreePolicy { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_FreePolicy() { + assert_eq!(::std::mem::size_of::<FreePolicy>() , 1usize); + assert_eq!(::std::mem::align_of::<FreePolicy>() , 1usize); } -impl ::std::clone::Clone for nsStringComparator { +impl Clone for FreePolicy { fn clone(&self) -> Self { *self } } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum JSValueTag { + JSVAL_TAG_MAX_DOUBLE = 131056, + JSVAL_TAG_INT32 = 131057, + JSVAL_TAG_UNDEFINED = 131058, + JSVAL_TAG_STRING = 131061, + JSVAL_TAG_SYMBOL = 131062, + JSVAL_TAG_BOOLEAN = 131059, + JSVAL_TAG_MAGIC = 131060, + JSVAL_TAG_NULL = 131064, + JSVAL_TAG_OBJECT = 131068, + JSVAL_TAG_PRIVATE_GCTHING = 131063, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum JSWhyMagic { + JS_ELEMENTS_HOLE = 0, + JS_NO_ITER_VALUE = 1, + JS_GENERATOR_CLOSING = 2, + JS_NO_CONSTANT = 3, + JS_THIS_POISON = 4, + JS_ARG_POISON = 5, + JS_SERIALIZE_NO_NODE = 6, + JS_LAZY_ARGUMENTS = 7, + JS_OPTIMIZED_ARGUMENTS = 8, + JS_IS_CONSTRUCTING = 9, + JS_BLOCK_NEEDS_CLONE = 10, + JS_HASH_KEY_EMPTY = 11, + JS_ION_ERROR = 12, + JS_ION_BAILOUT = 13, + JS_OPTIMIZED_OUT = 14, + JS_UNINITIALIZED_LEXICAL = 15, + JS_GENERIC_MAGIC = 16, + JS_WHY_MAGIC_COUNT = 17, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct jsval_layout { + pub asBits: __BindgenUnionField<u64>, + pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_62758>, + pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_62765>, + pub asDouble: __BindgenUnionField<f64>, + pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, + pub asWord: __BindgenUnionField<usize>, + pub asUIntPtr: __BindgenUnionField<usize>, + pub bindgen_union_field: u64, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct jsval_layout__bindgen_ty_bindgen_id_62758 { + pub _bitfield_1: u64, +} #[test] -fn bindgen_test_layout_nsStringComparator() { - assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize); +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_62758() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62758>() + , 8usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62758>() + , 8usize); +} +impl Clone for jsval_layout__bindgen_ty_bindgen_id_62758 { + fn clone(&self) -> Self { *self } +} +impl jsval_layout__bindgen_ty_bindgen_id_62758 { + #[inline] + pub fn payload47(&self) -> u64 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (140737488355327usize as u64)) >> + 0u32) as u64) + } + } + #[inline] + pub fn set_payload47(&mut self, val: u64) { + self._bitfield_1 &= !(140737488355327usize as u64); + self._bitfield_1 |= + ((val as u64 as u64) << 0u32) & (140737488355327usize as u64); + } + #[inline] + pub fn tag(&self) -> JSValueTag { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (18446603336221196288usize as u64)) >> + 47u32) as u32) + } + } + #[inline] + pub fn set_tag(&mut self, val: JSValueTag) { + self._bitfield_1 &= !(18446603336221196288usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 47u32) & + (18446603336221196288usize as u64); + } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsDefaultStringComparator { - pub _base: nsStringComparator, +pub struct jsval_layout__bindgen_ty_bindgen_id_62765 { + pub payload: jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766, } #[repr(C)] -pub struct _vftable_nsDefaultStringComparator { - pub _base: _vftable_nsStringComparator, +#[derive(Debug, Copy)] +pub struct jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766 { + pub i32: __BindgenUnionField<i32>, + pub u32: __BindgenUnionField<u32>, + pub why: __BindgenUnionField<JSWhyMagic>, + pub bindgen_union_field: u32, +} +#[test] +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766>() + , 4usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766>() + , 4usize); } -impl ::std::clone::Clone for nsDefaultStringComparator { +impl Clone for + jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766 { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_62765() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62765>() + , 4usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62765>() + , 4usize); +} +impl Clone for jsval_layout__bindgen_ty_bindgen_id_62765 { + fn clone(&self) -> Self { *self } +} +impl Clone for jsval_layout { fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] pub struct nsAString_internal { - pub mData: *mut ::std::os::raw::c_ushort, - pub mLength: ::std::os::raw::c_uint, + pub mData: *mut nsAString_internal_char_type, + pub mLength: nsAString_internal_size_type, pub mFlags: u32, } +pub type nsAString_internal_fallible_t = fallible_t; +pub type nsAString_internal_char_type = u16; +pub type nsAString_internal_char_traits = u8; +pub type nsAString_internal_incompatible_char_type = u8; +pub type nsAString_internal_self_type = nsAString_internal; +pub type nsAString_internal_abstract_string_type = + nsAString_internal_self_type; +pub type nsAString_internal_base_string_type = nsAString_internal_self_type; +pub type nsAString_internal_substring_type = nsAString_internal_self_type; +pub type nsAString_internal_substring_tuple_type = nsSubstringTuple; +pub type nsAString_internal_string_type = nsString; +pub type nsAString_internal_const_iterator = nsReadingIterator<u16>; +pub type nsAString_internal_iterator = nsWritingIterator<u16>; +pub type nsAString_internal_comparator_type = nsStringComparator; +pub type nsAString_internal_char_iterator = *mut nsAString_internal_char_type; +pub type nsAString_internal_const_char_iterator = + *const nsAString_internal_char_type; +pub type nsAString_internal_size_type = u32; +pub type nsAString_internal_index_type = u32; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAString_internal_nsTSubstring_h_unnamed_1 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAString_internal__bindgen_ty_bindgen_id_64603 { F_NONE = 0, F_TERMINATED = 1, F_VOIDED = 2, @@ -1541,43 +1630,99 @@ fn bindgen_test_layout_nsAString_internal() { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCStringComparator { - pub _vftable: *const _vftable_nsCStringComparator, +pub struct nsSubstringTuple { + pub mHead: *const nsSubstringTuple_self_type, + pub mFragA: *const nsSubstringTuple_base_string_type, + pub mFragB: *const nsSubstringTuple_base_string_type, +} +pub type nsSubstringTuple_char_type = u16; +pub type nsSubstringTuple_char_traits = nsCharTraits<u16>; +pub type nsSubstringTuple_self_type = nsSubstringTuple; +pub type nsSubstringTuple_substring_type = nsAString_internal; +pub type nsSubstringTuple_base_string_type = nsAString_internal; +pub type nsSubstringTuple_size_type = u32; +#[test] +fn bindgen_test_layout_nsSubstringTuple() { + assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize); + assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize); +} +impl Clone for nsSubstringTuple { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct _vftable_nsCStringComparator { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug)] +pub struct nsString { + pub _base: nsAString_internal, } -impl ::std::clone::Clone for nsCStringComparator { +pub type nsString_self_type = nsString; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsString_Segment { + pub mBegin: u32, + pub mLength: u32, +} +#[test] +fn bindgen_test_layout_nsString_Segment() { + assert_eq!(::std::mem::size_of::<nsString_Segment>() , 8usize); + assert_eq!(::std::mem::align_of::<nsString_Segment>() , 4usize); +} +impl Clone for nsString_Segment { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCStringComparator() { - assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize); +fn bindgen_test_layout_nsString() { + assert_eq!(::std::mem::size_of::<nsString>() , 16usize); + assert_eq!(::std::mem::align_of::<nsString>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsDefaultCStringComparator { - pub _base: nsCStringComparator, +pub struct bindgen_vtable__bindgen_id_65213 { } #[repr(C)] -pub struct _vftable_nsDefaultCStringComparator { - pub _base: _vftable_nsCStringComparator, +#[derive(Debug, Copy)] +pub struct nsStringComparator { + pub vtable_: *const bindgen_vtable__bindgen_id_65213, } -impl ::std::clone::Clone for nsDefaultCStringComparator { +pub type nsStringComparator_char_type = u16; +#[test] +fn bindgen_test_layout_nsStringComparator() { + assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize); +} +impl Clone for nsStringComparator { fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] pub struct nsACString_internal { - pub mData: *mut ::std::os::raw::c_char, - pub mLength: ::std::os::raw::c_uint, + pub mData: *mut nsACString_internal_char_type, + pub mLength: nsACString_internal_size_type, pub mFlags: u32, } +pub type nsACString_internal_fallible_t = fallible_t; +pub type nsACString_internal_char_type = ::std::os::raw::c_char; +pub type nsACString_internal_char_traits = u8; +pub type nsACString_internal_incompatible_char_type = u16; +pub type nsACString_internal_self_type = nsACString_internal; +pub type nsACString_internal_abstract_string_type = + nsACString_internal_self_type; +pub type nsACString_internal_base_string_type = nsACString_internal_self_type; +pub type nsACString_internal_substring_type = nsACString_internal_self_type; +pub type nsACString_internal_substring_tuple_type = nsCSubstringTuple; +pub type nsACString_internal_string_type = nsCString; +pub type nsACString_internal_const_iterator = + nsReadingIterator<::std::os::raw::c_char>; +pub type nsACString_internal_iterator = + nsWritingIterator<::std::os::raw::c_char>; +pub type nsACString_internal_comparator_type = nsCStringComparator; +pub type nsACString_internal_char_iterator = + *mut nsACString_internal_char_type; +pub type nsACString_internal_const_char_iterator = + *const nsACString_internal_char_type; +pub type nsACString_internal_size_type = u32; +pub type nsACString_internal_index_type = u32; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsACString_internal_nsTSubstring_h_unnamed_2 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsACString_internal__bindgen_ty_bindgen_id_66443 { F_NONE = 0, F_TERMINATED = 1, F_VOIDED = 2, @@ -1592,998 +1737,3239 @@ fn bindgen_test_layout_nsACString_internal() { assert_eq!(::std::mem::size_of::<nsACString_internal>() , 16usize); assert_eq!(::std::mem::align_of::<nsACString_internal>() , 8usize); } -/** - * ASCII case-insensitive comparator. (for Unicode case-insensitive - * comparision, see nsUnicharUtils.h) - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCaseInsensitiveCStringComparator { - pub _base: nsCStringComparator, +pub struct nsCSubstringTuple { + pub mHead: *const nsCSubstringTuple_self_type, + pub mFragA: *const nsCSubstringTuple_base_string_type, + pub mFragB: *const nsCSubstringTuple_base_string_type, } -#[repr(C)] -pub struct _vftable_nsCaseInsensitiveCStringComparator { - pub _base: _vftable_nsCStringComparator, +pub type nsCSubstringTuple_char_type = ::std::os::raw::c_char; +pub type nsCSubstringTuple_char_traits = nsCharTraits<::std::os::raw::c_char>; +pub type nsCSubstringTuple_self_type = nsCSubstringTuple; +pub type nsCSubstringTuple_substring_type = nsACString_internal; +pub type nsCSubstringTuple_base_string_type = nsACString_internal; +pub type nsCSubstringTuple_size_type = u32; +#[test] +fn bindgen_test_layout_nsCSubstringTuple() { + assert_eq!(::std::mem::size_of::<nsCSubstringTuple>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSubstringTuple>() , 8usize); } -impl ::std::clone::Clone for nsCaseInsensitiveCStringComparator { +impl Clone for nsCSubstringTuple { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCaseInsensitiveCStringArrayComparator; -impl ::std::clone::Clone for nsCaseInsensitiveCStringArrayComparator { - fn clone(&self) -> Self { *self } +#[derive(Debug)] +pub struct nsCString { + pub _base: nsACString_internal, } +pub type nsCString_self_type = nsCString; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsSubstringTuple { - pub mHead: *const nsSubstringTuple, - pub mFragA: *const nsAString_internal, - pub mFragB: *const nsAString_internal, +pub struct nsCString_Segment { + pub mBegin: u32, + pub mLength: u32, +} +#[test] +fn bindgen_test_layout_nsCString_Segment() { + assert_eq!(::std::mem::size_of::<nsCString_Segment>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCString_Segment>() , 4usize); } -impl ::std::clone::Clone for nsSubstringTuple { +impl Clone for nsCString_Segment { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsSubstringTuple() { - assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize); - assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize); +fn bindgen_test_layout_nsCString() { + assert_eq!(::std::mem::size_of::<nsCString>() , 16usize); + assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCSubstringTuple { - pub mHead: *const nsCSubstringTuple, - pub mFragA: *const nsACString_internal, - pub mFragB: *const nsACString_internal, +pub struct bindgen_vtable__bindgen_id_66995 { } -impl ::std::clone::Clone for nsCSubstringTuple { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCStringComparator { + pub vtable_: *const bindgen_vtable__bindgen_id_66995, } +pub type nsCStringComparator_char_type = ::std::os::raw::c_char; #[test] -fn bindgen_test_layout_nsCSubstringTuple() { - assert_eq!(::std::mem::size_of::<nsCSubstringTuple>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSubstringTuple>() , 8usize); +fn bindgen_test_layout_nsCStringComparator() { + assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize); +} +impl Clone for nsCStringComparator { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsString { - pub _base: nsAString_internal, +pub struct bindgen_vtable__bindgen_id_67298 { } +/** + * Basic component object model interface. Objects which implement + * this interface support runtime interface discovery (QueryInterface) + * and a reference counted memory model (AddRef/Release). This is + * modelled after the win32 IUnknown API. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsString_Segment { - pub mBegin: u32, - pub mLength: u32, +pub struct nsISupports { + pub vtable_: *const bindgen_vtable__bindgen_id_67298, } -impl ::std::clone::Clone for nsString_Segment { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISupports_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsString_Segment() { - assert_eq!(::std::mem::size_of::<nsString_Segment>() , 8usize); - assert_eq!(::std::mem::align_of::<nsString_Segment>() , 4usize); +fn bindgen_test_layout_nsISupports() { + assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize); } -#[test] -fn bindgen_test_layout_nsString() { - assert_eq!(::std::mem::size_of::<nsString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsString>() , 8usize); +impl Clone for nsISupports { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsFixedString { - pub _base: nsString, - pub mFixedCapacity: ::std::os::raw::c_uint, - pub mFixedBuf: *mut ::std::os::raw::c_ushort, +pub struct bindgen_vtable__bindgen_id_67581 { +} +/** + * Participant implementation classes + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCycleCollectionParticipant { + pub vtable_: *const bindgen_vtable__bindgen_id_67581, + pub mMightSkip: bool, } #[test] -fn bindgen_test_layout_nsFixedString() { - assert_eq!(::std::mem::size_of::<nsFixedString>() , 32usize); - assert_eq!(::std::mem::align_of::<nsFixedString>() , 8usize); +fn bindgen_test_layout_nsCycleCollectionParticipant() { + assert_eq!(::std::mem::size_of::<nsCycleCollectionParticipant>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsCycleCollectionParticipant>() , + 8usize); +} +impl Clone for nsCycleCollectionParticipant { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsAutoString { - pub _base: nsFixedString, - pub mStorage: [::std::os::raw::c_ushort; 64usize], +#[derive(Debug, Copy)] +pub struct nsCycleCollectingAutoRefCnt { + pub mRefCntAndFlags: usize, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAutoString_nsTString_h_unnamed_3 { kDefaultStorageSize = 64, } #[test] -fn bindgen_test_layout_nsAutoString() { - assert_eq!(::std::mem::size_of::<nsAutoString>() , 160usize); - assert_eq!(::std::mem::align_of::<nsAutoString>() , 8usize); +fn bindgen_test_layout_nsCycleCollectingAutoRefCnt() { + assert_eq!(::std::mem::size_of::<nsCycleCollectingAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCycleCollectingAutoRefCnt>() , + 8usize); } +impl Clone for nsCycleCollectingAutoRefCnt { + fn clone(&self) -> Self { *self } +} +pub type PRUint32 = ::std::os::raw::c_uint; +pub type PRUintn = ::std::os::raw::c_uint; +/************************************************************************ +** TYPES: PRSize +** DESCRIPTION: +** A type for representing the size of objects. +************************************************************************/ +pub type PRSize = usize; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct Dont_Instantiate_nsTArray_of<A> { - pub _phantom0: ::std::marker::PhantomData<A>, +pub struct nsCharTraits<CharT> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CharT>, +} +/** + * @see nsTAString + */ +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsReadingIterator<CharT> { + pub mStart: *mut CharT, + pub mEnd: *mut CharT, + pub mPosition: *mut CharT, } +pub type nsReadingIterator_self_type<CharT> = nsReadingIterator<CharT>; +pub type nsReadingIterator_difference_type = isize; +pub type nsReadingIterator_value_type<CharT> = CharT; +pub type nsReadingIterator_pointer<CharT> = *mut CharT; +pub type nsReadingIterator_reference = [u8; 0usize]; +/** + * @see nsTAString + */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct Instead_Use_nsTArray_of<A> { - pub _phantom0: ::std::marker::PhantomData<A>, +pub struct nsWritingIterator<CharT> { + pub mStart: *mut CharT, + pub mEnd: *mut CharT, + pub mPosition: *mut CharT, } +pub type nsWritingIterator_self_type<CharT> = nsWritingIterator<CharT>; +pub type nsWritingIterator_difference_type = isize; +pub type nsWritingIterator_value_type<CharT> = CharT; +pub type nsWritingIterator_pointer<CharT> = *mut CharT; +pub type nsWritingIterator_reference = [u8; 0usize]; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayElementTraits; -impl ::std::clone::Clone for nsTArrayElementTraits { +pub struct PLHashEntry { + pub next: *mut PLHashEntry, + pub keyHash: PLHashNumber, + pub key: *const ::std::os::raw::c_void, + pub value: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_PLHashEntry() { + assert_eq!(::std::mem::size_of::<PLHashEntry>() , 32usize); + assert_eq!(::std::mem::align_of::<PLHashEntry>() , 8usize); +} +impl Clone for PLHashEntry { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsXPIDLString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct PLHashTable { + pub buckets: *mut *mut PLHashEntry, + pub nentries: PRUint32, + pub shift: PRUint32, + pub keyHash: PLHashFunction, + pub keyCompare: PLHashComparator, + pub valueCompare: PLHashComparator, + pub allocOps: *const PLHashAllocOps, + pub allocPriv: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_PLHashTable() { + assert_eq!(::std::mem::size_of::<PLHashTable>() , 56usize); + assert_eq!(::std::mem::align_of::<PLHashTable>() , 8usize); +} +impl Clone for PLHashTable { + fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsXPIDLString() { - assert_eq!(::std::mem::size_of::<nsXPIDLString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsXPIDLString>() , 8usize); +pub type PLHashNumber = PRUint32; +pub type PLHashFunction = + ::std::option::Option<unsafe extern "C" fn(key: + *const ::std::os::raw::c_void) + -> ::std::os::raw::c_uint>; +pub type PLHashComparator = + ::std::option::Option<unsafe extern "C" fn(v1: + *const ::std::os::raw::c_void, + v2: + *const ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLHashAllocOps { + pub allocTable: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + size: PRSize) + -> *mut ::std::os::raw::c_void>, + pub freeTable: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + item: + *mut ::std::os::raw::c_void)>, + pub allocEntry: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + key: + *const ::std::os::raw::c_void) + -> *mut PLHashEntry>, + pub freeEntry: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + he: + *mut PLHashEntry, + flag: PRUintn)>, +} +#[test] +fn bindgen_test_layout_PLHashAllocOps() { + assert_eq!(::std::mem::size_of::<PLHashAllocOps>() , 32usize); + assert_eq!(::std::mem::align_of::<PLHashAllocOps>() , 8usize); +} +impl Clone for PLHashAllocOps { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct nsGetterCopies { - pub mString: *mut nsAString_internal, - pub mData: *mut ::std::os::raw::c_ushort, +pub struct OwningNonNull<T> { + pub mPtr: RefPtr<T>, + pub mInited: bool, } -#[test] -fn bindgen_test_layout_nsGetterCopies() { - assert_eq!(::std::mem::size_of::<nsGetterCopies>() , 16usize); - assert_eq!(::std::mem::align_of::<nsGetterCopies>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StaticRefPtr<T> { + pub mRawPtr: *mut T, } #[repr(C)] #[derive(Debug)] -pub struct nsAdoptingString { - pub _base: nsXPIDLString, +pub struct RefPtr<T> { + pub mRawPtr: *mut T, } -#[test] -fn bindgen_test_layout_nsAdoptingString() { - assert_eq!(::std::mem::size_of::<nsAdoptingString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAdoptingString>() , 8usize); +pub type RefPtr_element_type<T> = T; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RefPtr_Proxy<T, R, Args> { + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<R>, + pub _phantom_2: ::std::marker::PhantomData<Args>, } +pub type RefPtr_Proxy_member_function = [u8; 0usize]; #[repr(C)] -#[derive(Debug)] -pub struct nsCString { - pub _base: nsACString_internal, +#[derive(Debug, Copy, Clone)] +pub struct RefPtr_ConstRemovingRefPtrTraits<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCString_Segment { - pub mBegin: u32, - pub mLength: u32, -} -impl ::std::clone::Clone for nsCString_Segment { - fn clone(&self) -> Self { *self } +pub struct nsAutoOwningThread { + pub mThread: *mut ::std::os::raw::c_void, } #[test] -fn bindgen_test_layout_nsCString_Segment() { - assert_eq!(::std::mem::size_of::<nsCString_Segment>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCString_Segment>() , 4usize); +fn bindgen_test_layout_nsAutoOwningThread() { + assert_eq!(::std::mem::size_of::<nsAutoOwningThread>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAutoOwningThread>() , 8usize); } -#[test] -fn bindgen_test_layout_nsCString() { - assert_eq!(::std::mem::size_of::<nsCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); +impl Clone for nsAutoOwningThread { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsFixedCString { - pub _base: nsCString, - pub mFixedCapacity: ::std::os::raw::c_uint, - pub mFixedBuf: *mut ::std::os::raw::c_char, +#[derive(Debug, Copy)] +pub struct nsAutoRefCnt { + pub mValue: nsrefcnt, +} +extern "C" { + #[link_name = "_ZN12nsAutoRefCnt12isThreadSafeE"] + pub static nsAutoRefCnt_isThreadSafe: bool; } #[test] -fn bindgen_test_layout_nsFixedCString() { - assert_eq!(::std::mem::size_of::<nsFixedCString>() , 32usize); - assert_eq!(::std::mem::align_of::<nsFixedCString>() , 8usize); +fn bindgen_test_layout_nsAutoRefCnt() { + assert_eq!(::std::mem::size_of::<nsAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAutoRefCnt>() , 8usize); +} +impl Clone for nsAutoRefCnt { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsAutoCString { - pub _base: nsFixedCString, - pub mStorage: [::std::os::raw::c_char; 64usize], +#[derive(Debug, Copy)] +pub struct ThreadSafeAutoRefCnt { + pub mValue: u64, +} +extern "C" { + #[link_name = "_ZN7mozilla20ThreadSafeAutoRefCnt12isThreadSafeE"] + pub static ThreadSafeAutoRefCnt_isThreadSafe: bool; } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAutoCString_nsTString_h_unnamed_4 { kDefaultStorageSize = 64, } #[test] -fn bindgen_test_layout_nsAutoCString() { - assert_eq!(::std::mem::size_of::<nsAutoCString>() , 96usize); - assert_eq!(::std::mem::align_of::<nsAutoCString>() , 8usize); +fn bindgen_test_layout_ThreadSafeAutoRefCnt() { + assert_eq!(::std::mem::size_of::<ThreadSafeAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<ThreadSafeAutoRefCnt>() , 8usize); } +impl Clone for ThreadSafeAutoRefCnt { + fn clone(&self) -> Self { *self } +} +pub type nscoord = i32; #[repr(C)] -#[derive(Debug)] -pub struct nsXPIDLCString { - pub _base: nsCString, +#[derive(Debug, Copy)] +pub struct nsTArrayHeader { + pub mLength: u32, + pub _bitfield_1: u32, +} +extern "C" { + #[link_name = "_ZN14nsTArrayHeader9sEmptyHdrE"] + pub static mut nsTArrayHeader_sEmptyHdr: nsTArrayHeader; } #[test] -fn bindgen_test_layout_nsXPIDLCString() { - assert_eq!(::std::mem::size_of::<nsXPIDLCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsXPIDLCString>() , 8usize); +fn bindgen_test_layout_nsTArrayHeader() { + assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize); + assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize); +} +impl Clone for nsTArrayHeader { + fn clone(&self) -> Self { *self } +} +impl nsTArrayHeader { + #[inline] + pub fn mCapacity(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483647usize as u32)) >> 0u32) as + u32) + } + } + #[inline] + pub fn set_mCapacity(&mut self, val: u32) { + self._bitfield_1 &= !(2147483647usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 0u32) & (2147483647usize as u32); + } + #[inline] + pub fn mIsAutoArray(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u32)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mIsAutoArray(&mut self, val: u32) { + self._bitfield_1 &= !(2147483648usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 31u32) & (2147483648usize as u32); + } } #[repr(C)] #[derive(Debug)] -pub struct nsCGetterCopies { - pub mString: *mut nsACString_internal, - pub mData: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_nsCGetterCopies() { - assert_eq!(::std::mem::size_of::<nsCGetterCopies>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCGetterCopies>() , 8usize); +pub struct nsCOMPtr<T> { + pub mRawPtr: *mut T, } +pub type nsCOMPtr_element_type<T> = T; #[repr(C)] #[derive(Debug)] -pub struct nsAdoptingCString { - pub _base: nsXPIDLCString, +pub struct ErrorResult { + pub _base: TErrorResult<AssertAndSuppressCleanupPolicy>, } +pub type ErrorResult_BaseErrorResult = + TErrorResult<AssertAndSuppressCleanupPolicy>; #[test] -fn bindgen_test_layout_nsAdoptingCString() { - assert_eq!(::std::mem::size_of::<nsAdoptingCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAdoptingCString>() , 8usize); +fn bindgen_test_layout_ErrorResult() { + assert_eq!(::std::mem::size_of::<ErrorResult>() , 32usize); + assert_eq!(::std::mem::align_of::<ErrorResult>() , 8usize); } /** - * A helper class that converts a UTF-16 string to ASCII in a lossy manner + * Templated implementation class for various ErrorResult-like things. The + * instantiations differ only in terms of their cleanup policies (used in the + * destructor), which they can specify via the template argument. Note that + * this means it's safe to reinterpret_cast between the instantiations unless + * you plan to invoke the destructor through such a cast pointer. + * + * A cleanup policy consists of two booleans: whether to assert that we've been + * reported or suppressed, and whether to then go ahead and suppress the + * exception. */ #[repr(C)] -pub struct NS_LossyConvertUTF16toASCII { - pub _base: nsAutoCString, +#[derive(Debug)] +pub struct TErrorResult<CleanupPolicy> { + pub mResult: nsresult, + pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_75451<CleanupPolicy>, + pub mMightHaveUnreportedJSException: bool, + pub mUnionState: TErrorResult_UnionState, + pub _mOwningThread: nsAutoOwningThread, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } -#[test] -fn bindgen_test_layout_NS_LossyConvertUTF16toASCII() { - assert_eq!(::std::mem::size_of::<NS_LossyConvertUTF16toASCII>() , - 96usize); - assert_eq!(::std::mem::align_of::<NS_LossyConvertUTF16toASCII>() , - 8usize); +pub const TErrorResult_UnionState_HasDOMExceptionInfo: TErrorResult_UnionState + = + TErrorResult_UnionState::HasMessage; +pub const TErrorResult_UnionState_HasJSException: TErrorResult_UnionState = + TErrorResult_UnionState::HasMessage; +pub const TErrorResult_UnionState_HasNothing: TErrorResult_UnionState = + TErrorResult_UnionState::HasMessage; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum TErrorResult_UnionState { HasMessage = 0, } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TErrorResult_Message<CleanupPolicy> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } #[repr(C)] -pub struct NS_ConvertASCIItoUTF16 { - pub _base: nsAutoString, +#[derive(Debug, Copy, Clone)] +pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } -#[test] -fn bindgen_test_layout_NS_ConvertASCIItoUTF16() { - assert_eq!(::std::mem::size_of::<NS_ConvertASCIItoUTF16>() , 160usize); - assert_eq!(::std::mem::align_of::<NS_ConvertASCIItoUTF16>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TErrorResult__bindgen_ty_bindgen_id_75451<CleanupPolicy> { + pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>, + pub mJSException: __BindgenUnionField<Value>, + pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>, + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } -/** - * A helper class that converts a UTF-16 string to UTF-8 - */ #[repr(C)] -pub struct NS_ConvertUTF16toUTF8 { - pub _base: nsAutoCString, +#[derive(Debug, Copy)] +pub struct AssertAndSuppressCleanupPolicy { + pub _address: u8, } -#[test] -fn bindgen_test_layout_NS_ConvertUTF16toUTF8() { - assert_eq!(::std::mem::size_of::<NS_ConvertUTF16toUTF8>() , 96usize); - assert_eq!(::std::mem::align_of::<NS_ConvertUTF16toUTF8>() , 8usize); +extern "C" { + #[link_name = + "_ZN7mozilla14binding_danger30AssertAndSuppressCleanupPolicy13assertHandledE"] + pub static AssertAndSuppressCleanupPolicy_assertHandled: bool; } -#[repr(C)] -pub struct NS_ConvertUTF8toUTF16 { - pub _base: nsAutoString, +extern "C" { + #[link_name = + "_ZN7mozilla14binding_danger30AssertAndSuppressCleanupPolicy8suppressE"] + pub static AssertAndSuppressCleanupPolicy_suppress: bool; } #[test] -fn bindgen_test_layout_NS_ConvertUTF8toUTF16() { - assert_eq!(::std::mem::size_of::<NS_ConvertUTF8toUTF16>() , 160usize); - assert_eq!(::std::mem::align_of::<NS_ConvertUTF8toUTF16>() , 8usize); +fn bindgen_test_layout_AssertAndSuppressCleanupPolicy() { + assert_eq!(::std::mem::size_of::<AssertAndSuppressCleanupPolicy>() , + 1usize); + assert_eq!(::std::mem::align_of::<AssertAndSuppressCleanupPolicy>() , + 1usize); } -pub type nsVoidableString = nsAutoString; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct RefPtrTraits<U> { - pub _phantom0: ::std::marker::PhantomData<U>, +impl Clone for AssertAndSuppressCleanupPolicy { + fn clone(&self) -> Self { *self } } +/** + * Factors implementation for all template versions of nsCOMPtr. + * + * Here's the way people normally do things like this: + * + * template<class T> class Foo { ... }; + * template<> class Foo<void*> { ... }; + * template<class T> class Foo<T*> : private Foo<void*> { ... }; + */ #[repr(C)] #[derive(Debug)] -pub struct RefPtr<T> { - pub mRawPtr: *mut T, +pub struct nsCOMPtr_base { + pub mRawPtr: *mut nsISupports, } #[repr(C)] #[derive(Debug)] -pub struct RefPtr_Proxy<T, R, Args> { +pub struct nsAutoPtr<T> { pub mRawPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<R>, - pub _phantom1: ::std::marker::PhantomData<Args>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct RefPtr_ConstRemovingRefPtrTraits<T, U> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<U>, +pub struct nsAutoPtr_Ptr<T> { + pub mPtr: *mut T, } +pub type nsAutoPtr_element_type<T> = T; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct RefPtrGetterAddRefs<T> { - pub mTargetSmartPtr: *mut RefPtr<T>, +pub struct nsAutoPtr_Proxy<T, R, Args> { + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<R>, + pub _phantom_2: ::std::marker::PhantomData<Args>, } +pub type nsAutoPtr_Proxy_member_function = [u8; 0usize]; /** - * A "unique identifier". This is modeled after OSF DCE UUIDs. + * This structure precedes the string buffers "we" allocate. It may be the + * case that nsTAString::mData does not point to one of these special + * buffers. The mFlags member variable distinguishes the buffer type. + * + * When this header is in use, it enables reference counting, and capacity + * tracking. NOTE: A string buffer can be modified only if its reference + * count is 1. */ #[repr(C)] -#[derive(Debug)] -pub struct nsID { - pub m0: u32, - pub m1: u16, - pub m2: u16, - pub m3: [u8; 8usize], +#[derive(Debug, Copy)] +pub struct nsStringBuffer { + pub mRefCount: u32, + pub mStorageSize: u32, } #[test] -fn bindgen_test_layout_nsID() { - assert_eq!(::std::mem::size_of::<nsID>() , 16usize); - assert_eq!(::std::mem::align_of::<nsID>() , 4usize); +fn bindgen_test_layout_nsStringBuffer() { + assert_eq!(::std::mem::size_of::<nsStringBuffer>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStringBuffer>() , 4usize); +} +impl Clone for nsStringBuffer { + fn clone(&self) -> Self { *self } } -/** - * A stack helper class to convert a nsID to a string. Useful - * for printing nsIDs. For example: - * nsID aID = ...; - * printf("%s", nsIDToCString(aID).get()); - */ #[repr(C)] -#[derive(Copy)] -pub struct nsIDToCString { - pub mStringBytes: [::std::os::raw::c_char; 39usize], +#[derive(Debug, Copy)] +pub struct nsIAtom { + pub _base: nsISupports, + pub _bitfield_1: u32, + pub mHash: u32, + /** + * WARNING! There is an invisible constraint on |mString|: the chars it + * points to must belong to an nsStringBuffer. This is so that the + * nsStringBuffer::FromData() calls above are valid. + */ + pub mString: *mut u16, } -impl ::std::clone::Clone for nsIDToCString { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIAtom_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsIDToCString() { - assert_eq!(::std::mem::size_of::<nsIDToCString>() , 39usize); - assert_eq!(::std::mem::align_of::<nsIDToCString>() , 1usize); +fn bindgen_test_layout_nsIAtom() { + assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize); +} +impl Clone for nsIAtom { + fn clone(&self) -> Self { *self } +} +impl nsIAtom { + #[inline] + pub fn mLength(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483647usize as u32)) >> 0u32) as + u32) + } + } + #[inline] + pub fn set_mLength(&mut self, val: u32) { + self._bitfield_1 &= !(2147483647usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 0u32) & (2147483647usize as u32); + } + #[inline] + pub fn mIsStatic(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u32)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mIsStatic(&mut self, val: u32) { + self._bitfield_1 &= !(2147483648usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 31u32) & (2147483648usize as u32); + } } -pub type nsCID = nsID; -/** - * An "interface id" which can be used to uniquely identify a given - * interface. - */ -pub type nsIID = nsID; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct COMTypeInfo<T, U> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<U>, +pub struct bindgen_vtable__bindgen_id_76438 { } /** - * Basic component object model interface. Objects which implement - * this interface support runtime interface discovery (QueryInterface) - * and a reference counted memory model (AddRef/Release). This is - * modelled after the win32 IUnknown API. + * Class to store the wrapper for an object. This can only be used with objects + * that only have one non-security wrapper at a time (for an XPCWrappedNative + * this is usually ensured by setting an explicit parent in the PreCreate hook + * for the class). + * + * An instance of nsWrapperCache can be gotten from an object that implements + * a wrapper cache by calling QueryInterface on it. Note that this breaks XPCOM + * rules a bit (this object doesn't derive from nsISupports). + * + * The cache can store objects other than wrappers. We allow wrappers to use a + * separate JSObject to store their state (mostly expandos). If the wrapper is + * collected and we want to preserve this state we actually store the state + * object in the cache. + * + * The cache can store 2 types of objects: + * + * If WRAPPER_IS_NOT_DOM_BINDING is set (IsDOMBinding() returns false): + * - the JSObject of an XPCWrappedNative wrapper + * + * If WRAPPER_IS_NOT_DOM_BINDING is not set (IsDOMBinding() returns true): + * - a DOM binding object (regular JS object or proxy) + * + * The finalizer for the wrapper clears the cache. + * + * A compacting GC can move the wrapper object. Pointers to moved objects are + * usually found and updated by tracing the heap, however non-preserved wrappers + * are weak references and are not traced, so another approach is + * necessary. Instead a class hook (objectMovedOp) is provided that is called + * when an object is moved and is responsible for ensuring pointers are + * updated. It does this by calling UpdateWrapper() on the wrapper + * cache. SetWrapper() asserts that the hook is implemented for any wrapper set. + * + * A number of the methods are implemented in nsWrapperCacheInlines.h because we + * have to include some JS headers that don't play nicely with the rest of the + * codebase. Include nsWrapperCacheInlines.h if you need to call those methods. */ #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsISupports { - pub _vftable: *const _vftable_nsISupports, +#[derive(Debug)] +pub struct nsWrapperCache { + pub vtable_: *const bindgen_vtable__bindgen_id_76438, + pub mWrapper: *mut JSObject, + pub mFlags: nsWrapperCache_FlagsType, } #[repr(C)] -pub struct _vftable_nsISupports { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug, Copy, Clone)] +pub struct nsWrapperCache_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsISupports { - fn clone(&self) -> Self { *self } +pub type nsWrapperCache_FlagsType = u32; +#[repr(u32)] +/** + * If this bit is set then we're preserving the wrapper, which in effect ties + * the lifetime of the JS object stored in the cache to the lifetime of the + * native object. We rely on the cycle collector to break the cycle that this + * causes between the native object and the JS object, so it is important that + * any native object that supports preserving of its wrapper + * traces/traverses/unlinks the cached JS object (see + * NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER, + * NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS and + * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsWrapperCache__bindgen_ty_bindgen_id_76645 { + WRAPPER_BIT_PRESERVED = 1, } #[test] -fn bindgen_test_layout_nsISupports() { - assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize); - assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize); +fn bindgen_test_layout_nsWrapperCache() { + assert_eq!(::std::mem::size_of::<nsWrapperCache>() , 24usize); + assert_eq!(::std::mem::align_of::<nsWrapperCache>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsAutoOwningThread { - pub mThread: *mut ::std::os::raw::c_void, +pub struct AllOwningUnionBase { + pub _address: u8, } -impl ::std::clone::Clone for nsAutoOwningThread { +#[test] +fn bindgen_test_layout_AllOwningUnionBase() { + assert_eq!(::std::mem::size_of::<AllOwningUnionBase>() , 1usize); + assert_eq!(::std::mem::align_of::<AllOwningUnionBase>() , 1usize); +} +impl Clone for AllOwningUnionBase { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct GlobalObject { + pub mGlobalJSObject: [u64; 3usize], + pub mCx: *mut JSContext, + pub mGlobalObject: *mut nsISupports, +} #[test] -fn bindgen_test_layout_nsAutoOwningThread() { - assert_eq!(::std::mem::size_of::<nsAutoOwningThread>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAutoOwningThread>() , 8usize); +fn bindgen_test_layout_GlobalObject() { + assert_eq!(::std::mem::size_of::<GlobalObject>() , 40usize); + assert_eq!(::std::mem::align_of::<GlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCycleCollectingAutoRefCnt { - pub mRefCntAndFlags: usize, -} -impl ::std::clone::Clone for nsCycleCollectingAutoRefCnt { - fn clone(&self) -> Self { *self } +pub struct nsScriptObjectTracer { + pub _base: nsCycleCollectionParticipant, } #[test] -fn bindgen_test_layout_nsCycleCollectingAutoRefCnt() { - assert_eq!(::std::mem::size_of::<nsCycleCollectingAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCycleCollectingAutoRefCnt>() , - 8usize); +fn bindgen_test_layout_nsScriptObjectTracer() { + assert_eq!(::std::mem::size_of::<nsScriptObjectTracer>() , 16usize); + assert_eq!(::std::mem::align_of::<nsScriptObjectTracer>() , 8usize); +} +impl Clone for nsScriptObjectTracer { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsAutoRefCnt { - pub mValue: nsrefcnt, +pub struct nsXPCOMCycleCollectionParticipant { + pub _base: nsScriptObjectTracer, } -impl ::std::clone::Clone for nsAutoRefCnt { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsXPCOMCycleCollectionParticipant_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsAutoRefCnt() { - assert_eq!(::std::mem::size_of::<nsAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAutoRefCnt>() , 8usize); +fn bindgen_test_layout_nsXPCOMCycleCollectionParticipant() { + assert_eq!(::std::mem::size_of::<nsXPCOMCycleCollectionParticipant>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsXPCOMCycleCollectionParticipant>() , + 8usize); } -extern "C" { - #[link_name = "_ZN12nsAutoRefCnt12isThreadSafeE"] - pub static nsAutoRefCnt_consts_isThreadSafe: bool; +impl Clone for nsXPCOMCycleCollectionParticipant { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct ThreadSafeAutoRefCnt { - pub mValue: u64, -} -#[test] -fn bindgen_test_layout_ThreadSafeAutoRefCnt() { - assert_eq!(::std::mem::size_of::<ThreadSafeAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<ThreadSafeAutoRefCnt>() , 8usize); +#[derive(Debug, Copy, Clone)] +pub struct pair<_T1, _T2> { + pub first: _T1, + pub second: _T2, } -extern "C" { - #[link_name = "_ZN7mozilla20ThreadSafeAutoRefCnt12isThreadSafeE"] - pub static ThreadSafeAutoRefCnt_consts_isThreadSafe: bool; +pub type pair_first_type<_T1> = _T1; +pub type pair_second_type<_T2> = _T2; +#[repr(C)] +pub struct bindgen_vtable__bindgen_id_93519 { } /** - * There are two ways of implementing QueryInterface, and we use both: - * - * Table-driven QueryInterface uses a static table of IID->offset mappings - * and a shared helper function. Using it tends to reduce codesize and improve - * runtime performance (due to processor cache hits). + * A class of objects that return source code on demand. * - * Macro-driven QueryInterface generates a QueryInterface function directly - * using common macros. This is necessary if special QueryInterface features - * are being used (such as tearoffs and conditional interfaces). - * - * These methods can be combined into a table-driven function call followed - * by custom code for tearoffs and conditionals. + * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't + * retain the source code (and doesn't do lazy bytecode generation). If we ever + * need the source code, say, in response to a call to Function.prototype. + * toSource or Debugger.Source.prototype.text, then we call the 'load' member + * function of the instance of this class that has hopefully been registered + * with the runtime, passing the code's URL, and hope that it will be able to + * find the source. */ #[repr(C)] +#[derive(Debug)] +pub struct SourceHook { + pub vtable_: *const bindgen_vtable__bindgen_id_93519, +} +#[test] +fn bindgen_test_layout_SourceHook() { + assert_eq!(::std::mem::size_of::<SourceHook>() , 8usize); + assert_eq!(::std::mem::align_of::<SourceHook>() , 8usize); +} +#[repr(C)] #[derive(Debug, Copy)] -pub struct QITableEntry { - pub iid: *const nsIID, - pub offset: i32, +pub struct nsIPrincipal { + pub _base: nsISerializable, } -impl ::std::clone::Clone for QITableEntry { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIPrincipal_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPrincipal__bindgen_ty_bindgen_id_98969 { + APP_STATUS_NOT_INSTALLED = 0, + APP_STATUS_INSTALLED = 1, + APP_STATUS_PRIVILEGED = 2, + APP_STATUS_CERTIFIED = 3, } #[test] -fn bindgen_test_layout_QITableEntry() { - assert_eq!(::std::mem::size_of::<QITableEntry>() , 16usize); - assert_eq!(::std::mem::align_of::<QITableEntry>() , 8usize); +fn bindgen_test_layout_nsIPrincipal() { + assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIPrincipal>() , 8usize); +} +impl Clone for nsIPrincipal { + fn clone(&self) -> Self { *self } } -pub enum TileClient { } -pub enum SerializedStructuredCloneBuffer { } -pub enum StructuredCloneData { } -pub enum ClonedMessageData { } -pub enum MessagePortMessage { } -pub enum StructuredCloneReadInfo { } -pub enum SerializedStructuredCloneReadInfo { } -pub enum ObjectStoreCursorResponse { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayFallibleResult { - pub mResult: bool, +pub struct nsISerializable { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISerializable_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsISerializable() { + assert_eq!(::std::mem::size_of::<nsISerializable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISerializable>() , 8usize); } -impl ::std::clone::Clone for nsTArrayFallibleResult { +impl Clone for nsISerializable { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct nsIGlobalObject { + pub _base: nsISupports, + pub mHostObjectURIs: nsTArray<nsCString>, + pub mIsDying: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIGlobalObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} #[test] -fn bindgen_test_layout_nsTArrayFallibleResult() { - assert_eq!(::std::mem::size_of::<nsTArrayFallibleResult>() , 1usize); - assert_eq!(::std::mem::align_of::<nsTArrayFallibleResult>() , 1usize); +fn bindgen_test_layout_nsIGlobalObject() { + assert_eq!(::std::mem::size_of::<nsIGlobalObject>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIGlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayInfallibleResult; -impl ::std::clone::Clone for nsTArrayInfallibleResult { - fn clone(&self) -> Self { *self } +pub struct nsIURI { + pub _base: nsISupports, } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayFallibleAllocatorBase; -impl ::std::clone::Clone for nsTArrayFallibleAllocatorBase { +#[derive(Debug, Copy, Clone)] +pub struct nsIURI_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIURI() { + assert_eq!(::std::mem::size_of::<nsIURI>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIURI>() , 8usize); +} +impl Clone for nsIURI { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayInfallibleAllocatorBase; -impl ::std::clone::Clone for nsTArrayInfallibleAllocatorBase { - fn clone(&self) -> Self { *self } +#[derive(Debug)] +pub struct nsPIDOMWindowInner { + pub _base: [u64; 28usize], } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayFallibleAllocator { - pub _base: nsTArrayFallibleAllocatorBase, +#[derive(Debug, Copy, Clone)] +pub struct nsPIDOMWindowInner_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsTArrayFallibleAllocator { - fn clone(&self) -> Self { *self } +#[test] +fn bindgen_test_layout_nsPIDOMWindowInner() { + assert_eq!(::std::mem::size_of::<nsPIDOMWindowInner>() , 224usize); + assert_eq!(::std::mem::align_of::<nsPIDOMWindowInner>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument { + pub _base: nsINode, + pub mDeprecationWarnedAbout: u64, + pub mDocWarningWarnedAbout: u64, + pub mSelectorCache: [u64; 16usize], + pub mReferrer: nsCString, + pub mLastModified: nsString, + pub mDocumentURI: nsCOMPtr<nsIURI>, + pub mOriginalURI: nsCOMPtr<nsIURI>, + pub mChromeXHRDocURI: nsCOMPtr<nsIURI>, + pub mDocumentBaseURI: nsCOMPtr<nsIURI>, + pub mChromeXHRDocBaseURI: nsCOMPtr<nsIURI>, + pub mDocumentLoadGroup: nsWeakPtr, + pub mReferrerPolicySet: bool, + pub mReferrerPolicy: nsIDocument_ReferrerPolicyEnum, + pub mBlockAllMixedContent: bool, + pub mBlockAllMixedContentPreloads: bool, + pub mUpgradeInsecureRequests: bool, + pub mUpgradeInsecurePreloads: bool, + pub mDocumentContainer: u64, + pub mCharacterSet: nsCString, + pub mCharacterSetSource: i32, + pub mParentDocument: *mut nsIDocument, + pub mCachedRootElement: *mut Element, + pub mNodeInfoManager: *mut nsNodeInfoManager, + pub mCSSLoader: RefPtr<Loader>, + pub mStyleImageLoader: RefPtr<ImageLoader>, + pub mAttrStyleSheet: RefPtr<nsHTMLStyleSheet>, + pub mStyleAttrStyleSheet: RefPtr<nsHTMLCSSStyleSheet>, + pub mSVGAttrAnimationRuleProcessor: RefPtr<SVGAttrAnimationRuleProcessor>, + pub mActivityObservers: nsAutoPtr<()>, + pub mLinksToUpdate: [u64; 6usize], + pub mAnimationController: RefPtr<nsSMILAnimationController>, + pub mPropertyTable: nsPropertyTable, + pub mExtraPropertyTables: nsTArray<nsAutoPtr<nsPropertyTable>>, + pub mChildrenCollection: nsCOMPtr<nsIHTMLCollection>, + pub mFontFaceSet: RefPtr<FontFaceSet>, + pub mCompatMode: nsCompatibility, + pub mReadyState: nsIDocument_ReadyState, + pub mVisibilityState: VisibilityState, + pub mStyleBackendType: StyleBackendType, + pub _bitfield_1: u64, + pub mType: nsIDocument_Type, + pub mDefaultElementType: u8, + pub mAllowXULXBL: nsIDocument_Tri, + /** + * This is true while FlushPendingLinkUpdates executes. Calls to + * [Un]RegisterPendingLinkUpdate will assert when this is true. + */ + pub mIsLinkUpdateRegistrationsForbidden: bool, + pub mScriptGlobalObject: nsCOMPtr<nsIScriptGlobalObject>, + pub mOriginalDocument: nsCOMPtr<nsIDocument>, + pub mBidiOptions: u32, + pub mSandboxFlags: u32, + pub mContentLanguage: nsCString, + pub mChannel: nsCOMPtr<nsIChannel>, + pub mContentType: nsCString, + pub mId: nsString, + pub mSecurityInfo: nsCOMPtr<nsISupports>, + pub mFailedChannel: nsCOMPtr<nsIChannel>, + pub mPartID: u32, + pub mMarkedCCGeneration: u32, + pub mPresShell: *mut nsIPresShell, + pub mSubtreeModifiedTargets: nsCOMArray<nsINode>, + pub mSubtreeModifiedDepth: u32, + pub mDisplayDocument: nsCOMPtr<nsIDocument>, + pub mEventsSuppressed: u32, + pub mAnimationsPaused: u32, + /** + * The number number of external scripts (ones with the src attribute) that + * have this document as their owner and that are being evaluated right now. + */ + pub mExternalScriptsBeingEvaluated: u32, + /** + * The current frame request callback handle + */ + pub mFrameRequestCallbackCounter: i32, + pub mStaticCloneCount: u32, + pub mBlockedTrackingNodes: nsTArray<nsCOMPtr<nsIWeakReference>>, + pub mWindow: *mut nsPIDOMWindowInner, + pub mCachedEncoder: nsCOMPtr<nsIDocumentEncoder>, + pub mFrameRequestCallbacks: nsTArray<nsIDocument_FrameRequest>, + pub mBFCacheEntry: *mut nsIBFCacheEntry, + pub mBaseTarget: nsString, + pub mStateObjectContainer: nsCOMPtr<nsIStructuredCloneContainer>, + pub mStateObjectCached: nsCOMPtr<nsIVariant>, + pub mInSyncOperationCount: u32, + pub mXPathEvaluator: RefPtr<XPathEvaluator>, + pub mAnonymousContents: nsTArray<RefPtr<AnonymousContent>>, + pub mBlockDOMContentLoaded: u32, + pub _bitfield_2: u8, + pub mDOMMediaQueryLists: PRCList, + pub mUseCounters: [u64; 2usize], + pub mChildDocumentUseCounters: [u64; 2usize], + pub mNotifiedPageForUseCounter: [u64; 2usize], + pub mUserHasInteracted: bool, +} +pub type nsIDocument_GlobalObject = GlobalObject; +pub type nsIDocument_ReferrerPolicyEnum = ReferrerPolicy; +pub type nsIDocument_Element = Element; +pub type nsIDocument_FullscreenRequest = FullscreenRequest; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIDocument_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +/** + * This gets fired when the element that an id refers to changes. + * This fires at difficult times. It is generally not safe to do anything + * which could modify the DOM in any way. Use + * nsContentUtils::AddScriptRunner. + * @return true to keep the callback in the callback set, false + * to remove it. + */ +pub type nsIDocument_IDTargetObserver = + ::std::option::Option<unsafe extern "C" fn(aOldElement: + *mut nsIDocument_Element, + aNewelement: + *mut nsIDocument_Element, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_SelectorCacheKey { + pub mKey: nsString, + pub mState: nsExpirationState, +} +#[test] +fn bindgen_test_layout_nsIDocument_SelectorCacheKey() { + assert_eq!(::std::mem::size_of::<nsIDocument_SelectorCacheKey>() , + 24usize); + assert_eq!(::std::mem::align_of::<nsIDocument_SelectorCacheKey>() , + 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayInfallibleAllocator { - pub _base: nsTArrayInfallibleAllocatorBase, +pub struct nsIDocument_SelectorCacheKeyDeleter { + pub _address: u8, } -impl ::std::clone::Clone for nsTArrayInfallibleAllocator { +impl Clone for nsIDocument_SelectorCacheKeyDeleter { fn clone(&self) -> Self { *self } } #[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_SelectorCache { + pub _bindgen_opaque_blob: [u64; 16usize], +} +#[test] +fn bindgen_test_layout_nsIDocument_SelectorCache() { + assert_eq!(::std::mem::size_of::<nsIDocument_SelectorCache>() , 128usize); + assert_eq!(::std::mem::align_of::<nsIDocument_SelectorCache>() , 8usize); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_additionalSheetType { + eAgentSheet = 0, + eUserSheet = 1, + eAuthorSheet = 2, + AdditionalSheetTypeCount = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ReadyState { + READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4, +} +/** + * Enumerate all subdocuments. + * The enumerator callback should return true to continue enumerating, or + * false to stop. This will never get passed a null aDocument. + */ +pub type nsIDocument_nsSubDocEnumFunc = + ::std::option::Option<unsafe extern "C" fn(aDocument: *mut nsIDocument, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ElementsFromPointFlags { + IGNORE_ROOT_SCROLL_FRAME = 1, + FLUSH_LAYOUT = 2, + IS_ELEMENT_FROM_POINT = 4, +} +/** + * A class that represents an external resource load that has begun but + * doesn't have a document yet. Observers can be registered on this object, + * and will be notified after the document is created. Observers registered + * after the document has been created will NOT be notified. When observers + * are notified, the subject will be the newly-created document, the topic + * will be "external-resource-document-created", and the data will be null. + * If document creation fails for some reason, observers will still be + * notified, with a null document pointer. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_ExternalResourceLoad { + pub _base: nsISupports, + pub mObservers: [u64; 10usize], +} +#[test] +fn bindgen_test_layout_nsIDocument_ExternalResourceLoad() { + assert_eq!(::std::mem::size_of::<nsIDocument_ExternalResourceLoad>() , + 88usize); + assert_eq!(::std::mem::align_of::<nsIDocument_ExternalResourceLoad>() , + 8usize); +} +pub type nsIDocument_ActivityObserverEnumerator = + ::std::option::Option<unsafe extern "C" fn(arg1: *mut nsISupports, + arg2: + *mut ::std::os::raw::c_void)>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_SuppressionType { eAnimationsOnly = 1, eEvents = 3, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DocumentTheme { + Doc_Theme_Uninitialized = 0, + Doc_Theme_None = 1, + Doc_Theme_Neutral = 2, + Doc_Theme_Dark = 3, + Doc_Theme_Bright = 4, +} +pub type nsIDocument_FrameRequestCallbackList = + nsTArray<RefPtr<FrameRequestCallback>>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument__bindgen_ty_bindgen_id_107679 { REQUEST_DISCARD = 1, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DeprecatedOperations { + eGetAttributeNode = 0, + eSetAttributeNode = 1, + eGetAttributeNodeNS = 2, + eSetAttributeNodeNS = 3, + eRemoveAttributeNode = 4, + eCreateAttribute = 5, + eCreateAttributeNS = 6, + eNodeValue = 7, + eTextContent = 8, + eEnablePrivilege = 9, + eDOMExceptionCode = 10, + eNoExposedProps = 11, + eMutationEvent = 12, + eComponents = 13, + ePrefixedVisibilityAPI = 14, + eNodeIteratorDetach = 15, + eLenientThis = 16, + eGetPreventDefault = 17, + eGetSetUserData = 18, + eMozGetAsFile = 19, + eUseOfCaptureEvents = 20, + eUseOfReleaseEvents = 21, + eUseOfDOM3LoadMethod = 22, + eShowModalDialog = 23, + eWindow_Content = 24, + eSyncXMLHttpRequest = 25, + eDataContainerEvent = 26, + eWindow_Controllers = 27, + eImportXULIntoContent = 28, + ePannerNodeDoppler = 29, + eNavigatorGetUserMedia = 30, + eWebrtcDeprecatedPrefix = 31, + eRTCPeerConnectionGetStreams = 32, + eAppCache = 33, + ePrefixedImageSmoothingEnabled = 34, + ePrefixedFullscreenAPI = 35, + eLenientSetter = 36, + eFileLastModifiedDate = 37, + eDeprecatedOperationCount = 38, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DocumentWarnings { + eIgnoringWillChangeOverBudget = 0, + ePreventDefaultFromPassiveListener = 1, + eDocumentWarningCount = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ElementCallbackType { + eCreated = 0, + eAttached = 1, + eDetached = 2, + eAttributeChanged = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_Type { + eUnknown = 0, + eHTML = 1, + eXHTML = 2, + eGenericXML = 3, + eSVG = 4, + eXUL = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_Tri { eTriUnset = 0, eTriFalse = 1, eTriTrue = 2, } +#[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayHeader { - pub mLength: u32, - pub _bitfield_1: u32, +pub struct nsIDocument_FrameRequest { + pub _address: u8, } -impl nsTArrayHeader { +impl Clone for nsIDocument_FrameRequest { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsIDocument() { + assert_eq!(::std::mem::size_of::<nsIDocument>() , 912usize); + assert_eq!(::std::mem::align_of::<nsIDocument>() , 8usize); +} +impl nsIDocument { #[inline] - pub fn mCapacity(&self) -> u32 { - (self._bitfield_1 & (2147483647usize as u32)) >> 0usize + pub fn mBidiEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u64)) >> + 0u32) as u8) + } } #[inline] - pub fn set_mCapacity(&mut self, val: u32) { - self._bitfield_1 &= !(2147483647usize as u32); + pub fn set_mBidiEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(1usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 0u32) & (1usize as u64); + } + #[inline] + pub fn mMathMLEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u64)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mMathMLEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(2usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 1u32) & (2usize as u64); + } + #[inline] + pub fn mIsInitialDocumentInWindow(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u64)) >> + 2u32) as u8) + } + } + #[inline] + pub fn set_mIsInitialDocumentInWindow(&mut self, val: bool) { + self._bitfield_1 &= !(4usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 2u32) & (4usize as u64); + } + #[inline] + pub fn mLoadedAsData(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u64)) >> + 3u32) as u8) + } + } + #[inline] + pub fn set_mLoadedAsData(&mut self, val: bool) { + self._bitfield_1 &= !(8usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 3u32) & (8usize as u64); + } + #[inline] + pub fn mLoadedAsInteractiveData(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u64)) >> + 4u32) as u8) + } + } + #[inline] + pub fn set_mLoadedAsInteractiveData(&mut self, val: bool) { + self._bitfield_1 &= !(16usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 4u32) & (16usize as u64); + } + #[inline] + pub fn mMayStartLayout(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u64)) >> + 5u32) as u8) + } + } + #[inline] + pub fn set_mMayStartLayout(&mut self, val: bool) { + self._bitfield_1 &= !(32usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 5u32) & (32usize as u64); + } + #[inline] + pub fn mHaveFiredTitleChange(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u64)) >> + 6u32) as u8) + } + } + #[inline] + pub fn set_mHaveFiredTitleChange(&mut self, val: bool) { + self._bitfield_1 &= !(64usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 6u32) & (64usize as u64); + } + #[inline] + pub fn mIsShowing(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u64)) >> + 7u32) as u8) + } + } + #[inline] + pub fn set_mIsShowing(&mut self, val: bool) { + self._bitfield_1 &= !(128usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 7u32) & (128usize as u64); + } + #[inline] + pub fn mVisible(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u64)) >> + 8u32) as u8) + } + } + #[inline] + pub fn set_mVisible(&mut self, val: bool) { + self._bitfield_1 &= !(256usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 8u32) & (256usize as u64); + } + #[inline] + pub fn mRemovedFromDocShell(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u64)) >> + 9u32) as u8) + } + } + #[inline] + pub fn set_mRemovedFromDocShell(&mut self, val: bool) { + self._bitfield_1 &= !(512usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 9u32) & (512usize as u64); + } + #[inline] + pub fn mAllowDNSPrefetch(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u64)) >> + 10u32) as u8) + } + } + #[inline] + pub fn set_mAllowDNSPrefetch(&mut self, val: bool) { + self._bitfield_1 &= !(1024usize as u64); self._bitfield_1 |= - ((val as u32) << 0usize) & (2147483647usize as u32); + ((val as u8 as u64) << 10u32) & (1024usize as u64); } #[inline] - pub fn mIsAutoArray(&self) -> u32 { - (self._bitfield_1 & (2147483648usize as u32)) >> 31usize + pub fn mIsStaticDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u64)) >> + 11u32) as u8) + } } #[inline] - pub fn set_mIsAutoArray(&mut self, val: bool) { - self._bitfield_1 &= !(2147483648usize as u32); + pub fn set_mIsStaticDocument(&mut self, val: bool) { + self._bitfield_1 &= !(2048usize as u64); self._bitfield_1 |= - ((val as u32) << 31usize) & (2147483648usize as u32); + ((val as u8 as u64) << 11u32) & (2048usize as u64); } #[inline] - pub fn new_bitfield_1(mCapacity: u32, mIsAutoArray: bool) -> u32 { - 0 | ((mCapacity as u32) << 0u32) | ((mIsAutoArray as u32) << 31u32) + pub fn mCreatingStaticClone(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u64)) >> + 12u32) as u8) + } + } + #[inline] + pub fn set_mCreatingStaticClone(&mut self, val: bool) { + self._bitfield_1 &= !(4096usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 12u32) & (4096usize as u64); + } + #[inline] + pub fn mInUnlinkOrDeletion(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u64)) >> + 13u32) as u8) + } + } + #[inline] + pub fn set_mInUnlinkOrDeletion(&mut self, val: bool) { + self._bitfield_1 &= !(8192usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 13u32) & (8192usize as u64); + } + #[inline] + pub fn mHasHadScriptHandlingObject(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16384usize as u64)) >> + 14u32) as u8) + } + } + #[inline] + pub fn set_mHasHadScriptHandlingObject(&mut self, val: bool) { + self._bitfield_1 &= !(16384usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 14u32) & (16384usize as u64); + } + #[inline] + pub fn mIsBeingUsedAsImage(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32768usize as u64)) >> + 15u32) as u8) + } + } + #[inline] + pub fn set_mIsBeingUsedAsImage(&mut self, val: bool) { + self._bitfield_1 &= !(32768usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 15u32) & (32768usize as u64); + } + #[inline] + pub fn mIsSyntheticDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (65536usize as u64)) >> + 16u32) as u8) + } + } + #[inline] + pub fn set_mIsSyntheticDocument(&mut self, val: bool) { + self._bitfield_1 &= !(65536usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 16u32) & (65536usize as u64); + } + #[inline] + pub fn mHasLinksToUpdate(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (131072usize as u64)) + >> 17u32) as u8) + } + } + #[inline] + pub fn set_mHasLinksToUpdate(&mut self, val: bool) { + self._bitfield_1 &= !(131072usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 17u32) & (131072usize as u64); + } + #[inline] + pub fn mNeedLayoutFlush(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (262144usize as u64)) + >> 18u32) as u8) + } + } + #[inline] + pub fn set_mNeedLayoutFlush(&mut self, val: bool) { + self._bitfield_1 &= !(262144usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 18u32) & (262144usize as u64); + } + #[inline] + pub fn mNeedStyleFlush(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (524288usize as u64)) + >> 19u32) as u8) + } + } + #[inline] + pub fn set_mNeedStyleFlush(&mut self, val: bool) { + self._bitfield_1 &= !(524288usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 19u32) & (524288usize as u64); + } + #[inline] + pub fn mMayHaveDOMMutationObservers(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1048576usize as u64)) + >> 20u32) as u8) + } + } + #[inline] + pub fn set_mMayHaveDOMMutationObservers(&mut self, val: bool) { + self._bitfield_1 &= !(1048576usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 20u32) & (1048576usize as u64); + } + #[inline] + pub fn mMayHaveAnimationObservers(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2097152usize as u64)) + >> 21u32) as u8) + } + } + #[inline] + pub fn set_mMayHaveAnimationObservers(&mut self, val: bool) { + self._bitfield_1 &= !(2097152usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 21u32) & (2097152usize as u64); + } + #[inline] + pub fn mHasMixedActiveContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4194304usize as u64)) + >> 22u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedActiveContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(4194304usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 22u32) & (4194304usize as u64); + } + #[inline] + pub fn mHasMixedActiveContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8388608usize as u64)) + >> 23u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedActiveContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(8388608usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 23u32) & (8388608usize as u64); + } + #[inline] + pub fn mHasMixedDisplayContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16777216usize as u64)) + >> 24u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedDisplayContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(16777216usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 24u32) & (16777216usize as u64); + } + #[inline] + pub fn mHasMixedDisplayContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (33554432usize as u64)) + >> 25u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedDisplayContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(33554432usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 25u32) & (33554432usize as u64); + } + #[inline] + pub fn mHasMixedContentObjectSubrequest(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (67108864usize as u64)) + >> 26u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedContentObjectSubrequest(&mut self, val: bool) { + self._bitfield_1 &= !(67108864usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 26u32) & (67108864usize as u64); + } + #[inline] + pub fn mHasCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (134217728usize as u64)) >> 27u32) as + u8) + } + } + #[inline] + pub fn set_mHasCSP(&mut self, val: bool) { + self._bitfield_1 &= !(134217728usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 27u32) & (134217728usize as u64); + } + #[inline] + pub fn mHasUnsafeEvalCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (268435456usize as u64)) >> 28u32) as + u8) + } + } + #[inline] + pub fn set_mHasUnsafeEvalCSP(&mut self, val: bool) { + self._bitfield_1 &= !(268435456usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 28u32) & (268435456usize as u64); + } + #[inline] + pub fn mHasUnsafeInlineCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (536870912usize as u64)) >> 29u32) as + u8) + } + } + #[inline] + pub fn set_mHasUnsafeInlineCSP(&mut self, val: bool) { + self._bitfield_1 &= !(536870912usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 29u32) & (536870912usize as u64); + } + #[inline] + pub fn mHasTrackingContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1073741824usize as u64)) >> 30u32) as + u8) + } + } + #[inline] + pub fn set_mHasTrackingContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(1073741824usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 30u32) & (1073741824usize as u64); + } + #[inline] + pub fn mHasTrackingContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u64)) >> 31u32) as + u8) + } + } + #[inline] + pub fn set_mHasTrackingContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(2147483648usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 31u32) & (2147483648usize as u64); + } + #[inline] + pub fn mBFCacheDisallowed(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967296usize as u64)) >> 32u32) as + u8) + } + } + #[inline] + pub fn set_mBFCacheDisallowed(&mut self, val: bool) { + self._bitfield_1 &= !(4294967296usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 32u32) & (4294967296usize as u64); + } + #[inline] + pub fn mHasHadDefaultView(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8589934592usize as u64)) >> 33u32) as + u8) + } + } + #[inline] + pub fn set_mHasHadDefaultView(&mut self, val: bool) { + self._bitfield_1 &= !(8589934592usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 33u32) & (8589934592usize as u64); + } + #[inline] + pub fn mStyleSheetChangeEventsEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17179869184usize as u64)) >> 34u32) + as u8) + } + } + #[inline] + pub fn set_mStyleSheetChangeEventsEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(17179869184usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 34u32) & (17179869184usize as u64); + } + #[inline] + pub fn mIsSrcdocDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (34359738368usize as u64)) >> 35u32) + as u8) + } + } + #[inline] + pub fn set_mIsSrcdocDocument(&mut self, val: bool) { + self._bitfield_1 &= !(34359738368usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 35u32) & (34359738368usize as u64); + } + #[inline] + pub fn mDidDocumentOpen(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (68719476736usize as u64)) >> 36u32) + as u8) + } + } + #[inline] + pub fn set_mDidDocumentOpen(&mut self, val: bool) { + self._bitfield_1 &= !(68719476736usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 36u32) & (68719476736usize as u64); + } + #[inline] + pub fn mHasDisplayDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (137438953472usize as u64)) >> 37u32) + as u8) + } + } + #[inline] + pub fn set_mHasDisplayDocument(&mut self, val: bool) { + self._bitfield_1 &= !(137438953472usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 37u32) & (137438953472usize as u64); + } + #[inline] + pub fn mFontFaceSetDirty(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (274877906944usize as u64)) >> 38u32) + as u8) + } + } + #[inline] + pub fn set_mFontFaceSetDirty(&mut self, val: bool) { + self._bitfield_1 &= !(274877906944usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 38u32) & (274877906944usize as u64); + } + #[inline] + pub fn mGetUserFontSetCalled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (549755813888usize as u64)) >> 39u32) + as u8) + } + } + #[inline] + pub fn set_mGetUserFontSetCalled(&mut self, val: bool) { + self._bitfield_1 &= !(549755813888usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 39u32) & (549755813888usize as u64); + } + #[inline] + pub fn mPostedFlushUserFontSet(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1099511627776usize as u64)) >> 40u32) + as u8) + } + } + #[inline] + pub fn set_mPostedFlushUserFontSet(&mut self, val: bool) { + self._bitfield_1 &= !(1099511627776usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 40u32) & (1099511627776usize as u64); + } + #[inline] + pub fn mEverInForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2199023255552usize as u64)) >> 41u32) + as u8) + } + } + #[inline] + pub fn set_mEverInForeground(&mut self, val: bool) { + self._bitfield_1 &= !(2199023255552usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 41u32) & (2199023255552usize as u64); + } + #[inline] + pub fn mMayHavePluginFramesForPrinting(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4398046511104usize as u64)) >> 42u32) + as u8) + } + } + #[inline] + pub fn set_mMayHavePluginFramesForPrinting(&mut self, val: bool) { + self._bitfield_1 &= !(4398046511104usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 42u32) & (4398046511104usize as u64); + } + #[inline] + pub fn mDidFireDOMContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_2 & (1usize as u8)) >> + 0u32) as u8) + } + } + #[inline] + pub fn set_mDidFireDOMContentLoaded(&mut self, val: bool) { + self._bitfield_2 &= !(1usize as u8); + self._bitfield_2 |= ((val as u8 as u8) << 0u32) & (1usize as u8); + } + #[inline] + pub fn mHasScrollLinkedEffect(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_2 & (2usize as u8)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mHasScrollLinkedEffect(&mut self, val: bool) { + self._bitfield_2 &= !(2usize as u8); + self._bitfield_2 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } } -impl ::std::clone::Clone for nsTArrayHeader { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsTArrayHeader() { - assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize); - assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize); -} -extern "C" { - #[link_name = "_ZN14nsTArrayHeader9sEmptyHdrE"] - pub static mut nsTArrayHeader_consts_sEmptyHdr: nsTArrayHeader; -} +/** + * An internal interface that abstracts some DOMNode-related parts that both + * nsIContent and nsIDocument share. An instance of this interface has a list + * of nsIContent children and provides access to them. + */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_SafeElementAtHelper<E, Derived> { - pub _phantom0: ::std::marker::PhantomData<E>, - pub _phantom1: ::std::marker::PhantomData<Derived>, -} +#[derive(Debug)] +pub struct nsINode { + pub _base: EventTarget, + pub mNodeInfo: RefPtr<NodeInfo>, + pub mParent: *mut nsINode, + pub mBoolFlags: u32, + pub mNextSibling: *mut nsIContent, + pub mPreviousSibling: *mut nsIContent, + pub mFirstChild: *mut nsIContent, + pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_104382, + pub mSlots: *mut nsINode_nsSlots, + pub mServoNodeData: UniquePtr<ServoNodeData, + DefaultDelete<ServoNodeData>>, +} +pub type nsINode_BoxQuadOptions = BoxQuadOptions; +pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; +pub type nsINode_DOMPoint = DOMPoint; +pub type nsINode_DOMPointInit = DOMPointInit; +pub type nsINode_DOMQuad = DOMQuad; +pub type nsINode_DOMRectReadOnly = DOMRectReadOnly; +pub type nsINode_OwningNodeOrString = OwningNodeOrString; +pub type nsINode_TextOrElementOrDocument = TextOrElementOrDocument; +pub type nsINode_ErrorResult = ErrorResult; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsTArray_SafeElementAtSmartPtrHelper<E, Derived> { - pub _phantom0: ::std::marker::PhantomData<E>, - pub _phantom1: ::std::marker::PhantomData<Derived>, +pub struct nsINode_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +/** + * Bit-flags to pass (or'ed together) to IsNodeOfType() + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsINode__bindgen_ty_bindgen_id_100513 { + eCONTENT = 1, + eDOCUMENT = 2, + eATTRIBUTE = 4, + eTEXT = 8, + ePROCESSING_INSTRUCTION = 16, + eCOMMENT = 32, + eHTML_FORM_CONTROL = 64, + eDOCUMENT_FRAGMENT = 128, + eDATA_NODE = 256, + eMEDIA = 512, + eANIMATION = 1024, + eFILTER = 2048, } #[repr(C)] -#[derive(Debug)] -pub struct nsTArray_base<Alloc, Copy> { - pub mHdr: *mut nsTArrayHeader, - pub _phantom0: ::std::marker::PhantomData<Alloc>, - pub _phantom1: ::std::marker::PhantomData<Copy>, +pub struct bindgen_vtable__bindgen_id_101282 { } #[repr(C)] #[derive(Debug)] -pub struct nsTArray_base_IsAutoArrayRestorer<Alloc, Copy> { - pub mArray: *mut nsTArray_base<Alloc, Copy>, - pub mElemAlign: usize, - pub mIsAuto: bool, - pub _phantom0: ::std::marker::PhantomData<Copy>, +pub struct nsINode_nsSlots { + pub vtable_: *const bindgen_vtable__bindgen_id_101282, + /** + * A list of mutation observers + */ + pub mMutationObservers: [u64; 2usize], + /** + * An object implementing nsIDOMNodeList for this content (childNodes) + * @see nsIDOMNodeList + * @see nsGenericHTMLElement::GetChildNodes + */ + pub mChildNodes: RefPtr<nsChildContentList>, + /** + * Weak reference to this node. This is cleared by the destructor of + * nsNodeWeakReference. + */ + pub mWeakReference: *mut nsNodeWeakReference, + /** + * Number of descendant nodes in the uncomposed document that have been + * explicitly set as editable. + */ + pub mEditableDescendantCount: u32, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsDefaultComparator<A, B> { - pub _phantom0: ::std::marker::PhantomData<A>, - pub _phantom1: ::std::marker::PhantomData<B>, +#[test] +fn bindgen_test_layout_nsINode_nsSlots() { + assert_eq!(::std::mem::size_of::<nsINode_nsSlots>() , 48usize); + assert_eq!(::std::mem::align_of::<nsINode_nsSlots>() , 8usize); +} +#[repr(u32)] +/** + * Boolean flags + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsINode_BooleanFlag { + NodeHasRenderingObservers = 0, + IsInDocument = 1, + ParentIsContent = 2, + NodeIsElement = 3, + ElementHasID = 4, + ElementMayHaveStyle = 5, + ElementHasName = 6, + ElementMayHaveContentEditableAttr = 7, + NodeIsCommonAncestorForRangeInSelection = 8, + NodeIsDescendantOfCommonAncestorForRangeInSelection = 9, + NodeIsCCMarkedRoot = 10, + NodeIsCCBlackTree = 11, + NodeIsPurpleRoot = 12, + NodeHasExplicitBaseURI = 13, + ElementHasLockedStyleStates = 14, + ElementHasPointerLock = 15, + NodeMayHaveDOMMutationObserver = 16, + NodeIsContent = 17, + ElementHasAnimations = 18, + NodeHasValidDirAttribute = 19, + NodeHasFixedDir = 20, + NodeHasDirAutoSet = 21, + NodeHasTextNodeDirectionalityMap = 22, + NodeHasDirAuto = 23, + NodeAncestorHasDirAuto = 24, + ElementIsInStyleScope = 25, + ElementIsScopedStyleRoot = 26, + NodeHandlingClick = 27, + NodeHasRelevantHoverRules = 28, + ElementHasWeirdParserInsertionMode = 29, + ParserHasNotified = 30, + MayBeApzAware = 31, + BooleanFlagCount = 32, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArray_CopyWithMemutils; -impl ::std::clone::Clone for nsTArray_CopyWithMemutils { +pub struct nsINode__bindgen_ty_bindgen_id_104382 { + pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>, + pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_104382() { + assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_104382>() + , 8usize); + assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_104382>() + , 8usize); +} +impl Clone for nsINode__bindgen_ty_bindgen_id_104382 { fn clone(&self) -> Self { *self } } -extern "C" { - #[link_name = "_ZN25nsTArray_CopyWithMemutils12allowReallocE"] - pub static nsTArray_CopyWithMemutils_consts_allowRealloc: bool; +#[test] +fn bindgen_test_layout_nsINode() { + assert_eq!(::std::mem::size_of::<nsINode>() , 104usize); + assert_eq!(::std::mem::align_of::<nsINode>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_CopyWithConstructors<ElemType> { - pub _phantom0: ::std::marker::PhantomData<ElemType>, +#[derive(Debug)] +pub struct EventTarget { + pub _base: nsIDOMEventTarget, + pub _base_1: nsWrapperCache, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsTArray_CopyChooser<E> { - pub _phantom0: ::std::marker::PhantomData<E>, +pub struct EventTarget_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_TypedBase<E, Derived> { - pub _base: nsTArray_SafeElementAtHelper<E, Derived>, - pub _phantom0: ::std::marker::PhantomData<Derived>, +#[test] +fn bindgen_test_layout_EventTarget() { + assert_eq!(::std::mem::size_of::<EventTarget>() , 32usize); + assert_eq!(::std::mem::align_of::<EventTarget>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ItemComparatorEq<Item, Comparator> { - pub mItem: *const Item, - pub mComp: *const Comparator, +#[derive(Debug, Copy)] +pub struct nsIDOMEventTarget { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ItemComparatorFirstElementGT<Item, Comparator> { - pub mItem: *const Item, - pub mComp: *const Comparator, +pub struct nsIDOMEventTarget_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMEventTarget() { + assert_eq!(::std::mem::size_of::<nsIDOMEventTarget>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMEventTarget>() , 8usize); +} +impl Clone for nsIDOMEventTarget { + fn clone(&self) -> Self { *self } } /** - * <div rustbindgen replaces="nsTArray"></div> + * Smart pointer class that can hold a pointer to either an nsStyleSet + * or a ServoStyleSet. */ #[repr(C)] -#[derive(Debug)] -pub struct nsTArray<T> { - pub mBuffer: *mut T, +#[derive(Debug, Copy)] +pub struct StyleSetHandle { + pub mPtr: StyleSetHandle_Ptr, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCOMPtr_helper { - pub _vftable: *const _vftable_nsCOMPtr_helper, +pub struct StyleSetHandle_Ptr { + pub mValue: usize, } -#[repr(C)] -pub struct _vftable_nsCOMPtr_helper { - pub _bindgen_empty_ctype_warning_fix: u64, +#[test] +fn bindgen_test_layout_StyleSetHandle_Ptr() { + assert_eq!(::std::mem::size_of::<StyleSetHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSetHandle_Ptr>() , 8usize); } -impl ::std::clone::Clone for nsCOMPtr_helper { +impl Clone for StyleSetHandle_Ptr { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCOMPtr_helper() { - assert_eq!(::std::mem::size_of::<nsCOMPtr_helper>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCOMPtr_helper>() , 8usize); +fn bindgen_test_layout_StyleSetHandle() { + assert_eq!(::std::mem::size_of::<StyleSetHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSetHandle>() , 8usize); +} +impl Clone for StyleSetHandle { + fn clone(&self) -> Self { *self } } +#[repr(i32)] +/** + * Enumeration that represents one of the two supported style system backends. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum StyleBackendType { Gecko = 1, Servo = 2, } +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SheetType { + Agent = 0, + User = 1, + PresHint = 2, + SVGAttrAnimation = 3, + Doc = 4, + ScopedDoc = 5, + StyleAttr = 6, + Override = 7, + Animation = 8, + Transition = 9, + Count = 10, + Unknown = 255, +} +/** + * Smart pointer class that can hold a pointer to either a CSSStyleSheet + * or a ServoStyleSheet. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsQueryInterface { - pub mRawPtr: *mut nsISupports, +pub struct StyleSheetHandle { + pub mPtr: StyleSheetHandle_Ptr, +} +pub type StyleSheetHandle_RefPtr = HandleRefPtr<StyleSheetHandle>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct StyleSheetHandle_Ptr { + pub mValue: usize, +} +#[test] +fn bindgen_test_layout_StyleSheetHandle_Ptr() { + assert_eq!(::std::mem::size_of::<StyleSheetHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSheetHandle_Ptr>() , 8usize); } -impl ::std::clone::Clone for nsQueryInterface { +impl Clone for StyleSheetHandle_Ptr { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsQueryInterface() { - assert_eq!(::std::mem::size_of::<nsQueryInterface>() , 8usize); - assert_eq!(::std::mem::align_of::<nsQueryInterface>() , 8usize); +fn bindgen_test_layout_StyleSheetHandle() { + assert_eq!(::std::mem::size_of::<StyleSheetHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSheetHandle>() , 8usize); +} +impl Clone for StyleSheetHandle { + fn clone(&self) -> Self { *self } +} +pub const ReferrerPolicy_RP_Default: ReferrerPolicy = + ReferrerPolicy::RP_No_Referrer_When_Downgrade; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum ReferrerPolicy { + RP_No_Referrer = 1, + RP_Origin = 2, + RP_No_Referrer_When_Downgrade = 0, + RP_Origin_When_Crossorigin = 3, + RP_Unsafe_URL = 4, + RP_Unset = 4294967295, } +/** + * EventStates is the class used to represent the event states of nsIContent + * instances. These states are calculated by IntrinsicState() and + * ContentStatesChanged() has to be called when one of them changes thus + * informing the layout/style engine of the change. + * Event states are associated with pseudo-classes. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsQueryInterfaceWithError { - pub mRawPtr: *mut nsISupports, - pub mErrorPtr: *mut nsresult, +pub struct EventStates { + pub mStates: EventStates_InternalType, } -impl ::std::clone::Clone for nsQueryInterfaceWithError { +pub type EventStates_InternalType = u64; +pub type EventStates_ServoType = u8; +#[test] +fn bindgen_test_layout_EventStates() { + assert_eq!(::std::mem::size_of::<EventStates>() , 8usize); + assert_eq!(::std::mem::align_of::<EventStates>() , 8usize); +} +impl Clone for EventStates { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsQueryInterfaceWithError() { - assert_eq!(::std::mem::size_of::<nsQueryInterfaceWithError>() , 16usize); - assert_eq!(::std::mem::align_of::<nsQueryInterfaceWithError>() , 8usize); +#[repr(u32)] +/** + * |nsRestyleHint| is a bitfield for the result of + * |HasStateDependentStyle| and |HasAttributeDependentStyle|. When no + * restyling is necessary, use |nsRestyleHint(0)|. + * + * Without eRestyle_Force or eRestyle_ForceDescendants, the restyling process + * can stop processing at a frame when it detects no style changes and it is + * known that the styles of the subtree beneath it will not change, leaving + * the old style context on the frame. eRestyle_Force can be used to skip this + * optimization on a frame, and to force its new style context to be used. + * + * Similarly, eRestyle_ForceDescendants will cause the frame and all of its + * descendants to be traversed and for the new style contexts that are created + * to be set on the frames. + * + * NOTE: When adding new restyle hints, please also add them to + * RestyleManager::RestyleHintToString. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsRestyleHint { + eRestyle_Self = 1, + eRestyle_SomeDescendants = 2, + eRestyle_Subtree = 4, + eRestyle_LaterSiblings = 8, + eRestyle_CSSTransitions = 16, + eRestyle_CSSAnimations = 32, + eRestyle_SVGAttrAnimations = 64, + eRestyle_StyleAttribute = 128, + eRestyle_StyleAttribute_Animations = 256, + eRestyle_Force = 512, + eRestyle_ForceDescendants = 1024, + eRestyle_AllHintsWithAnimations = 368, } -//////////////////////////////////////////////////////////////////////////// #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByCID { - pub mCID: *const nsCID, +pub struct nsIObserver { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsGetServiceByCID { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIObserver_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByCID() { - assert_eq!(::std::mem::size_of::<nsGetServiceByCID>() , 8usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByCID>() , 8usize); +fn bindgen_test_layout_nsIObserver() { + assert_eq!(::std::mem::size_of::<nsIObserver>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIObserver>() , 8usize); +} +impl Clone for nsIObserver { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsCompatibility { + eCompatibility_FullStandards = 1, + eCompatibility_AlmostStandards = 2, + eCompatibility_NavQuirks = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum VisibilityState { + Hidden = 0, + Visible = 1, + Prerender = 2, + EndGuard_ = 3, } +/** + * The global object which keeps a script context for each supported script + * language. This often used to store per-window global state. + * This is a heavyweight interface implemented only by DOM globals, and + * it might go away some time in the future. + */ #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsGetServiceByCIDWithError { - pub mCID: *const nsCID, - pub mErrorPtr: *mut nsresult, +#[derive(Debug)] +pub struct nsIScriptGlobalObject { + pub _base: nsIGlobalObject, } -impl ::std::clone::Clone for nsGetServiceByCIDWithError { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIScriptGlobalObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByCIDWithError() { - assert_eq!(::std::mem::size_of::<nsGetServiceByCIDWithError>() , 16usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByCIDWithError>() , 8usize); +fn bindgen_test_layout_nsIScriptGlobalObject() { + assert_eq!(::std::mem::size_of::<nsIScriptGlobalObject>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIScriptGlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByContractID { - pub mContractID: *const ::std::os::raw::c_char, +pub struct ShortcutKeyCandidate { + pub _address: u8, } -impl ::std::clone::Clone for nsGetServiceByContractID { +impl Clone for ShortcutKeyCandidate { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIVariant { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIVariant_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} #[test] -fn bindgen_test_layout_nsGetServiceByContractID() { - assert_eq!(::std::mem::size_of::<nsGetServiceByContractID>() , 8usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByContractID>() , 8usize); +fn bindgen_test_layout_nsIVariant() { + assert_eq!(::std::mem::size_of::<nsIVariant>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIVariant>() , 8usize); +} +impl Clone for nsIVariant { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByContractIDWithError { - pub mContractID: *const ::std::os::raw::c_char, - pub mErrorPtr: *mut nsresult, +pub struct nsIRunnable { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsGetServiceByContractIDWithError { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIRunnable_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByContractIDWithError() { - assert_eq!(::std::mem::size_of::<nsGetServiceByContractIDWithError>() , - 16usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByContractIDWithError>() , - 8usize); +fn bindgen_test_layout_nsIRunnable() { + assert_eq!(::std::mem::size_of::<nsIRunnable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIRunnable>() , 8usize); +} +impl Clone for nsIRunnable { + fn clone(&self) -> Self { *self } } -/** - * Factors implementation for all template versions of nsCOMPtr. - * - * Here's the way people normally do things like this: - * - * template<class T> class Foo { ... }; - * template<> class Foo<void*> { ... }; - * template<class T> class Foo<T*> : private Foo<void*> { ... }; - */ #[repr(C)] #[derive(Debug)] -pub struct nsCOMPtr_base { - pub mRawPtr: *mut nsISupports, +pub struct Runnable { + pub _base: nsIRunnable, + pub mRefCnt: ThreadSafeAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type Runnable_HasThreadSafeRefCnt = TrueType; #[test] -fn bindgen_test_layout_nsCOMPtr_base() { - assert_eq!(::std::mem::size_of::<nsCOMPtr_base>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCOMPtr_base>() , 8usize); +fn bindgen_test_layout_Runnable() { + assert_eq!(::std::mem::size_of::<Runnable>() , 24usize); + assert_eq!(::std::mem::align_of::<Runnable>() , 8usize); } #[repr(C)] -#[derive(Debug)] -pub struct nsCOMPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct nsIDOMAttr { + pub _base: nsIDOMNode, } -/** - * This class is designed to be used for anonymous temporary objects in the - * argument list of calls that return COM interface pointers, e.g., - * - * nsCOMPtr<IFoo> fooP; - * ...->QueryInterface(iid, getter_AddRefs(fooP)) - * - * DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_AddRefs()| instead. - * - * When initialized with a |nsCOMPtr|, as in the example above, it returns - * a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call - * (|QueryInterface| in this case) can fill in. - * - * This type should be a nested class inside |nsCOMPtr<T>|. - */ #[repr(C)] -#[derive(Debug)] -pub struct nsGetterAddRefs<T> { - pub mTargetSmartPtr: *mut nsCOMPtr<T>, +#[derive(Debug, Copy, Clone)] +pub struct nsIDOMAttr_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMAttr() { + assert_eq!(::std::mem::size_of::<nsIDOMAttr>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMAttr>() , 8usize); +} +impl Clone for nsIDOMAttr { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsAutoPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct nsIDOMNode { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsAutoPtr_Ptr<T> { - pub mPtr: *mut T, +pub struct nsIDOMNode_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDOMNode__bindgen_ty_bindgen_id_112514 { + ELEMENT_NODE = 1, + ATTRIBUTE_NODE = 2, + TEXT_NODE = 3, + CDATA_SECTION_NODE = 4, + ENTITY_REFERENCE_NODE = 5, + ENTITY_NODE = 6, + PROCESSING_INSTRUCTION_NODE = 7, + COMMENT_NODE = 8, + DOCUMENT_NODE = 9, + DOCUMENT_TYPE_NODE = 10, + DOCUMENT_FRAGMENT_NODE = 11, + NOTATION_NODE = 12, +} +#[test] +fn bindgen_test_layout_nsIDOMNode() { + assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize); +} +impl Clone for nsIDOMNode { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsAutoPtr_Proxy<T, R, Args> { - pub mRawPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<R>, - pub _phantom1: ::std::marker::PhantomData<Args>, +#[derive(Debug, Copy)] +pub struct nsIDOMHTMLCollection { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsAutoPtrGetterTransfers<T> { - pub mTargetSmartPtr: *mut nsAutoPtr<T>, +pub struct nsIDOMHTMLCollection_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMHTMLCollection() { + assert_eq!(::std::mem::size_of::<nsIDOMHTMLCollection>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMHTMLCollection>() , 8usize); +} +impl Clone for nsIDOMHTMLCollection { + fn clone(&self) -> Self { *self } } -/** - * This structure precedes the string buffers "we" allocate. It may be the - * case that nsTAString::mData does not point to one of these special - * buffers. The mFlags member variable distinguishes the buffer type. - * - * When this header is in use, it enables reference counting, and capacity - * tracking. NOTE: A string buffer can be modified only if its reference - * count is 1. - */ #[repr(C)] -#[derive(Debug)] -pub struct nsStringBuffer { - pub mRefCount: u32, - pub mStorageSize: u32, +#[derive(Debug, Copy)] +pub struct nsIControllers { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStringBuffer() { - assert_eq!(::std::mem::size_of::<nsStringBuffer>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStringBuffer>() , 4usize); +impl Clone for nsIControllers { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsPresContext { + pub _base: nsIObserver, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mType: nsPresContext_nsPresContextType, + pub mShell: *mut nsIPresShell, + pub mDocument: nsCOMPtr<nsIDocument>, + pub mDeviceContext: RefPtr<nsDeviceContext>, + pub mEventManager: RefPtr<EventStateManager>, + pub mRefreshDriver: RefPtr<nsRefreshDriver>, + pub mEffectCompositor: RefPtr<EffectCompositor>, + pub mTransitionManager: RefPtr<nsTransitionManager>, + pub mAnimationManager: RefPtr<nsAnimationManager>, + pub mRestyleManager: RestyleManagerHandle_RefPtr, + pub mCounterStyleManager: RefPtr<CounterStyleManager>, + pub mMedium: *mut nsIAtom, + pub mMediaEmulated: nsCOMPtr<nsIAtom>, + pub mLinkHandler: *mut nsILinkHandler, + pub mLanguage: nsCOMPtr<nsIAtom>, + pub mInflationDisabledForShrinkWrap: bool, + pub mContainer: u64, + pub mBaseMinFontSize: i32, + pub mTextZoom: f32, + pub mFullZoom: f32, + pub mOverrideDPPX: f32, + pub mLastFontInflationScreenSize: [u64; 2usize], + pub mCurAppUnitsPerDevPixel: i32, + pub mAutoQualityMinFontSizePixelsPref: i32, + pub mTheme: nsCOMPtr<nsITheme>, + pub mLangService: nsCOMPtr<nsILanguageAtomService>, + pub mPrintSettings: nsCOMPtr<nsIPrintSettings>, + pub mPrefChangedTimer: nsCOMPtr<nsITimer>, + pub mPropertyTable: nsPresContext_FramePropertyTable, + pub mInvalidateRequestsSinceLastPaint: nsInvalidateRequestList, + pub mUndeliveredInvalidateRequestsBeforeLastPaint: nsInvalidateRequestList, + pub mTextPerf: nsAutoPtr<gfxTextPerfMetrics>, + pub mMissingFonts: nsAutoPtr<gfxMissingFontRecorder>, + pub mVisibleArea: nsRect, + pub mPageSize: nsSize, + pub mPageScale: f32, + pub mPPScale: f32, + pub mDefaultColor: nscolor, + pub mBackgroundColor: nscolor, + pub mLinkColor: nscolor, + pub mActiveLinkColor: nscolor, + pub mVisitedLinkColor: nscolor, + pub mFocusBackgroundColor: nscolor, + pub mFocusTextColor: nscolor, + pub mBodyTextColor: nscolor, + pub mViewportStyleScrollbar: nsPresContext_ScrollbarStyles, + pub mFocusRingWidth: u8, + pub mExistThrottledUpdates: bool, + pub mImageAnimationMode: u16, + pub mImageAnimationModePref: u16, + pub mLangGroupFontPrefs: nsPresContext_LangGroupFontPrefs, + pub mBorderWidthTable: [nscoord; 3usize], + pub mInterruptChecksToSkip: u32, + pub mElementsRestyled: u64, + pub mFramesConstructed: u64, + pub mFramesReflowed: u64, + pub mReflowStartTime: TimeStamp, + pub mLastStyleUpdateForAllAnimations: TimeStamp, + pub _bitfield_1: u64, + pub mRestyleLoggingEnabled: bool, + pub mInitialized: bool, + pub mLayoutPhaseCount: [u32; 3usize], } +pub type nsPresContext_FramePropertyTable = FramePropertyTable; +pub type nsPresContext_LangGroupFontPrefs = LangGroupFontPrefs; +pub type nsPresContext_ScrollbarStyles = ScrollbarStyles; +pub type nsPresContext_StaticPresData = StaticPresData; +pub type nsPresContext_HasThreadSafeRefCnt = FalseType; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsIAtom { - pub _base: nsISupports, - pub _bitfield_1: u32, - pub mHash: u32, - /** - * WARNING! There is an invisible constraint on |mString|: the chars it - * points to must belong to an nsStringBuffer. This is so that the - * nsStringBuffer::FromData() calls above are valid. - */ - pub mString: *mut ::std::os::raw::c_ushort, +pub struct nsPresContext_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsPresContext_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsPresContext_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsPresContext_cycleCollection>() , + 8usize); +} +impl Clone for nsPresContext_cycleCollection { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPresContext_nsPresContextType { + eContext_Galley = 0, + eContext_PrintPreview = 1, + eContext_Print = 2, + eContext_PageLayout = 3, } +/** + * A class that can be used to temporarily disable reflow interruption. + */ #[repr(C)] -pub struct _vftable_nsIAtom { - pub _base: _vftable_nsISupports, +#[derive(Debug)] +pub struct nsPresContext_InterruptPreventer { + pub mCtx: *mut nsPresContext, + pub mInterruptsEnabled: bool, + pub mHasPendingInterrupt: bool, } -impl nsIAtom { +#[test] +fn bindgen_test_layout_nsPresContext_InterruptPreventer() { + assert_eq!(::std::mem::size_of::<nsPresContext_InterruptPreventer>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsPresContext_InterruptPreventer>() , + 8usize); +} +extern "C" { + #[link_name = "_ZN13nsPresContext21_cycleCollectorGlobalE"] + pub static mut nsPresContext__cycleCollectorGlobal: + nsPresContext_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsPresContext() { + assert_eq!(::std::mem::size_of::<nsPresContext>() , 1184usize); + assert_eq!(::std::mem::align_of::<nsPresContext>() , 8usize); +} +impl nsPresContext { #[inline] - pub fn mLength(&self) -> u32 { - (self._bitfield_1 & (2147483647usize as u32)) >> 0usize + pub fn mHasPendingInterrupt(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u64)) >> + 0u32) as u32) + } } #[inline] - pub fn set_mLength(&mut self, val: u32) { - self._bitfield_1 &= !(2147483647usize as u32); + pub fn set_mHasPendingInterrupt(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 0u32) & (1usize as u64); + } + #[inline] + pub fn mPendingInterruptFromTest(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u64)) >> + 1u32) as u32) + } + } + #[inline] + pub fn set_mPendingInterruptFromTest(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 1u32) & (2usize as u64); + } + #[inline] + pub fn mInterruptsEnabled(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u64)) >> + 2u32) as u32) + } + } + #[inline] + pub fn set_mInterruptsEnabled(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 2u32) & (4usize as u64); + } + #[inline] + pub fn mUseDocumentFonts(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u64)) >> + 3u32) as u32) + } + } + #[inline] + pub fn set_mUseDocumentFonts(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 3u32) & (8usize as u64); + } + #[inline] + pub fn mUseDocumentColors(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u64)) >> + 4u32) as u32) + } + } + #[inline] + pub fn set_mUseDocumentColors(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 4u32) & (16usize as u64); + } + #[inline] + pub fn mUnderlineLinks(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u64)) >> + 5u32) as u32) + } + } + #[inline] + pub fn set_mUnderlineLinks(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(32usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 5u32) & (32usize as u64); + } + #[inline] + pub fn mSendAfterPaintToContent(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u64)) >> + 6u32) as u32) + } + } + #[inline] + pub fn set_mSendAfterPaintToContent(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(64usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 6u32) & (64usize as u64); + } + #[inline] + pub fn mUseFocusColors(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u64)) >> + 7u32) as u32) + } + } + #[inline] + pub fn set_mUseFocusColors(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(128usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 7u32) & (128usize as u64); + } + #[inline] + pub fn mFocusRingOnAnything(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u64)) >> + 8u32) as u32) + } + } + #[inline] + pub fn set_mFocusRingOnAnything(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(256usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 8u32) & (256usize as u64); + } + #[inline] + pub fn mFocusRingStyle(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u64)) >> + 9u32) as u32) + } + } + #[inline] + pub fn set_mFocusRingStyle(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(512usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 9u32) & (512usize as u64); + } + #[inline] + pub fn mDrawImageBackground(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u64)) >> + 10u32) as u32) + } + } + #[inline] + pub fn set_mDrawImageBackground(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1024usize as u64); self._bitfield_1 |= - ((val as u32) << 0usize) & (2147483647usize as u32); + ((val as u32 as u64) << 10u32) & (1024usize as u64); } #[inline] - pub fn mIsStatic(&self) -> u32 { - (self._bitfield_1 & (2147483648usize as u32)) >> 31usize + pub fn mDrawColorBackground(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u64)) >> + 11u32) as u32) + } } #[inline] - pub fn set_mIsStatic(&mut self, val: bool) { - self._bitfield_1 &= !(2147483648usize as u32); + pub fn set_mDrawColorBackground(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2048usize as u64); self._bitfield_1 |= - ((val as u32) << 31usize) & (2147483648usize as u32); + ((val as u32 as u64) << 11u32) & (2048usize as u64); } #[inline] - pub fn new_bitfield_1(mLength: u32, mIsStatic: bool) -> u32 { - 0 | ((mLength as u32) << 0u32) | ((mIsStatic as u32) << 31u32) + pub fn mNeverAnimate(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u64)) >> + 12u32) as u32) + } + } + #[inline] + pub fn set_mNeverAnimate(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4096usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 12u32) & (4096usize as u64); + } + #[inline] + pub fn mIsRenderingOnlySelection(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u64)) >> + 13u32) as u32) + } + } + #[inline] + pub fn set_mIsRenderingOnlySelection(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8192usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 13u32) & (8192usize as u64); + } + #[inline] + pub fn mPaginated(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16384usize as u64)) >> + 14u32) as u32) + } + } + #[inline] + pub fn set_mPaginated(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16384usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 14u32) & (16384usize as u64); + } + #[inline] + pub fn mCanPaginatedScroll(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32768usize as u64)) >> + 15u32) as u32) + } + } + #[inline] + pub fn set_mCanPaginatedScroll(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(32768usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 15u32) & (32768usize as u64); + } + #[inline] + pub fn mDoScaledTwips(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (65536usize as u64)) >> + 16u32) as u32) + } + } + #[inline] + pub fn set_mDoScaledTwips(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(65536usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 16u32) & (65536usize as u64); + } + #[inline] + pub fn mIsRootPaginatedDocument(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (131072usize as u64)) + >> 17u32) as u32) + } + } + #[inline] + pub fn set_mIsRootPaginatedDocument(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(131072usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 17u32) & (131072usize as u64); + } + #[inline] + pub fn mPrefBidiDirection(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (262144usize as u64)) + >> 18u32) as u32) + } + } + #[inline] + pub fn set_mPrefBidiDirection(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(262144usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 18u32) & (262144usize as u64); + } + #[inline] + pub fn mPrefScrollbarSide(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1572864usize as u64)) + >> 19u32) as u32) + } + } + #[inline] + pub fn set_mPrefScrollbarSide(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1572864usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 19u32) & (1572864usize as u64); + } + #[inline] + pub fn mPendingSysColorChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2097152usize as u64)) + >> 21u32) as u32) + } + } + #[inline] + pub fn set_mPendingSysColorChanged(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2097152usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 21u32) & (2097152usize as u64); + } + #[inline] + pub fn mPendingThemeChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4194304usize as u64)) + >> 22u32) as u32) + } + } + #[inline] + pub fn set_mPendingThemeChanged(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4194304usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 22u32) & (4194304usize as u64); + } + #[inline] + pub fn mPendingUIResolutionChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8388608usize as u64)) + >> 23u32) as u32) + } + } + #[inline] + pub fn set_mPendingUIResolutionChanged(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8388608usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 23u32) & (8388608usize as u64); + } + #[inline] + pub fn mPendingMediaFeatureValuesChanged(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16777216usize as u64)) + >> 24u32) as u32) + } + } + #[inline] + pub fn set_mPendingMediaFeatureValuesChanged(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16777216usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 24u32) & (16777216usize as u64); + } + #[inline] + pub fn mPrefChangePendingNeedsReflow(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (33554432usize as u64)) + >> 25u32) as u32) + } + } + #[inline] + pub fn set_mPrefChangePendingNeedsReflow(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(33554432usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 25u32) & (33554432usize as u64); + } + #[inline] + pub fn mIsEmulatingMedia(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (67108864usize as u64)) + >> 26u32) as u32) + } + } + #[inline] + pub fn set_mIsEmulatingMedia(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(67108864usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 26u32) & (67108864usize as u64); + } + #[inline] + pub fn mAllInvalidated(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (134217728usize as u64)) >> 27u32) as + u32) + } + } + #[inline] + pub fn set_mAllInvalidated(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(134217728usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 27u32) & (134217728usize as u64); + } + #[inline] + pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (268435456usize as u64)) >> 28u32) as + u32) + } + } + #[inline] + pub fn set_mIsGlyph(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(268435456usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 28u32) & (268435456usize as u64); + } + #[inline] + pub fn mUsesRootEMUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (536870912usize as u64)) >> 29u32) as + u32) + } + } + #[inline] + pub fn set_mUsesRootEMUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(536870912usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 29u32) & (536870912usize as u64); + } + #[inline] + pub fn mUsesExChUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1073741824usize as u64)) >> 30u32) as + u32) + } + } + #[inline] + pub fn set_mUsesExChUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1073741824usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 30u32) & (1073741824usize as u64); + } + #[inline] + pub fn mUsesViewportUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u64)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mUsesViewportUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2147483648usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 31u32) & (2147483648usize as u64); + } + #[inline] + pub fn mPendingViewportChange(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967296usize as u64)) >> 32u32) as + u32) + } + } + #[inline] + pub fn set_mPendingViewportChange(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4294967296usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 32u32) & (4294967296usize as u64); + } + #[inline] + pub fn mCounterStylesDirty(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8589934592usize as u64)) >> 33u32) as + u32) + } + } + #[inline] + pub fn set_mCounterStylesDirty(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8589934592usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 33u32) & (8589934592usize as u64); + } + #[inline] + pub fn mPostedFlushCounterStyles(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17179869184usize as u64)) >> 34u32) + as u32) + } + } + #[inline] + pub fn set_mPostedFlushCounterStyles(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(17179869184usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 34u32) & (17179869184usize as u64); + } + #[inline] + pub fn mSuppressResizeReflow(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (34359738368usize as u64)) >> 35u32) + as u32) + } + } + #[inline] + pub fn set_mSuppressResizeReflow(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(34359738368usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 35u32) & (34359738368usize as u64); + } + #[inline] + pub fn mIsVisual(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (68719476736usize as u64)) >> 36u32) + as u32) + } + } + #[inline] + pub fn set_mIsVisual(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(68719476736usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 36u32) & (68719476736usize as u64); + } + #[inline] + pub fn mFireAfterPaintEvents(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (137438953472usize as u64)) >> 37u32) + as u32) + } + } + #[inline] + pub fn set_mFireAfterPaintEvents(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(137438953472usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 37u32) & (137438953472usize as u64); + } + #[inline] + pub fn mIsChrome(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (274877906944usize as u64)) >> 38u32) + as u32) + } + } + #[inline] + pub fn set_mIsChrome(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(274877906944usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 38u32) & (274877906944usize as u64); + } + #[inline] + pub fn mIsChromeOriginImage(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (549755813888usize as u64)) >> 39u32) + as u32) + } + } + #[inline] + pub fn set_mIsChromeOriginImage(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(549755813888usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 39u32) & (549755813888usize as u64); + } + #[inline] + pub fn mPaintFlashing(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1099511627776usize as u64)) >> 40u32) + as u32) + } + } + #[inline] + pub fn set_mPaintFlashing(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1099511627776usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 40u32) & (1099511627776usize as u64); + } + #[inline] + pub fn mPaintFlashingInitialized(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2199023255552usize as u64)) >> 41u32) + as u32) + } + } + #[inline] + pub fn set_mPaintFlashingInitialized(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2199023255552usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 41u32) & (2199023255552usize as u64); + } + #[inline] + pub fn mHasWarnedAboutPositionedTableParts(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4398046511104usize as u64)) >> 42u32) + as u32) + } + } + #[inline] + pub fn set_mHasWarnedAboutPositionedTableParts(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4398046511104usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 42u32) & (4398046511104usize as u64); + } + #[inline] + pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8796093022208usize as u64)) >> 43u32) + as u32) + } + } + #[inline] + pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8796093022208usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 43u32) & (8796093022208usize as u64); + } + #[inline] + pub fn mQuirkSheetAdded(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17592186044416usize as u64)) >> + 44u32) as u32) + } + } + #[inline] + pub fn set_mQuirkSheetAdded(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(17592186044416usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 44u32) & (17592186044416usize as u64); + } + #[inline] + pub fn mNeedsPrefUpdate(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (35184372088832usize as u64)) >> + 45u32) as u32) + } + } + #[inline] + pub fn set_mNeedsPrefUpdate(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(35184372088832usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 45u32) & (35184372088832usize as u64); } } -impl ::std::clone::Clone for nsIAtom { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsIAtom() { - assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize); - assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize); +/** + * Smart pointer class that can hold a pointer to either a RestyleManager + * or a ServoRestyleManager. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct RestyleManagerHandle { + pub mPtr: RestyleManagerHandle_Ptr, } +pub type RestyleManagerHandle_RefPtr = HandleRefPtr<RestyleManagerHandle>; #[repr(C)] -#[derive(Debug)] -pub struct nsAtomString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct RestyleManagerHandle_Ptr { + pub mValue: usize, } #[test] -fn bindgen_test_layout_nsAtomString() { - assert_eq!(::std::mem::size_of::<nsAtomString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAtomString>() , 8usize); +fn bindgen_test_layout_RestyleManagerHandle_Ptr() { + assert_eq!(::std::mem::size_of::<RestyleManagerHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<RestyleManagerHandle_Ptr>() , 8usize); } -#[repr(C)] -#[derive(Debug)] -pub struct nsAtomCString { - pub _base: nsCString, +impl Clone for RestyleManagerHandle_Ptr { + fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsAtomCString() { - assert_eq!(::std::mem::size_of::<nsAtomCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAtomCString>() , 8usize); +fn bindgen_test_layout_RestyleManagerHandle() { + assert_eq!(::std::mem::size_of::<RestyleManagerHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<RestyleManagerHandle>() , 8usize); } -#[repr(C)] -pub struct nsDependentAtomString { - pub _base: [u64; 2usize], -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct piecewise_construct_t; -impl ::std::clone::Clone for piecewise_construct_t { +impl Clone for RestyleManagerHandle { fn clone(&self) -> Self { *self } } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pair<_T1, _T2> { - pub first: _T1, - pub second: _T2, +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsChangeHint { + nsChangeHint_RepaintFrame = 1, + nsChangeHint_NeedReflow = 2, + nsChangeHint_ClearAncestorIntrinsics = 4, + nsChangeHint_ClearDescendantIntrinsics = 8, + nsChangeHint_NeedDirtyReflow = 16, + nsChangeHint_SyncFrameView = 32, + nsChangeHint_UpdateCursor = 64, + nsChangeHint_UpdateEffects = 128, + nsChangeHint_UpdateOpacityLayer = 256, + nsChangeHint_UpdateTransformLayer = 512, + nsChangeHint_ReconstructFrame = 1024, + nsChangeHint_UpdateOverflow = 2048, + nsChangeHint_UpdateSubtreeOverflow = 4096, + nsChangeHint_UpdatePostTransformOverflow = 8192, + nsChangeHint_UpdateParentOverflow = 16384, + nsChangeHint_ChildrenOnlyTransform = 32768, + nsChangeHint_RecomputePosition = 65536, + nsChangeHint_UpdateContainingBlock = 131072, + nsChangeHint_BorderStyleNoneChange = 262144, + nsChangeHint_UpdateTextPath = 524288, + nsChangeHint_SchedulePaint = 1048576, + nsChangeHint_NeutralChange = 2097152, + nsChangeHint_InvalidateRenderingObservers = 4194304, + nsChangeHint_ReflowChangesSizeOrPosition = 8388608, + nsChangeHint_UpdateComputedBSize = 16777216, + nsChangeHint_UpdateUsesOpacity = 33554432, + nsChangeHint_UpdateBackgroundPosition = 67108864, + nsChangeHint_AllHints = 134217727, +} +pub type nscolor = u32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum Side { + eSideTop = 0, + eSideRight = 1, + eSideBottom = 2, + eSideLeft = 3, } -pub enum nsIContentSecurityPolicy { } -pub enum nsIDOMDocument { } #[repr(C)] -pub struct nsIPrincipal { - pub _bindgen_opaque_blob: u64, +#[derive(Debug)] +pub struct CallbackFunction { + pub _base: CallbackObject, } #[test] -fn bindgen_test_layout_nsIPrincipal() { - assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize); - assert_eq!(::std::mem::align_of::<nsIPrincipal>() , 8usize); +fn bindgen_test_layout_CallbackFunction() { + assert_eq!(::std::mem::size_of::<CallbackFunction>() , 56usize); + assert_eq!(::std::mem::align_of::<CallbackFunction>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsIExpandedPrincipal { +#[derive(Debug)] +pub struct CallbackObject { pub _base: nsISupports, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mCallback: u64, + pub mCreationStack: u64, + pub mIncumbentGlobal: nsCOMPtr<nsIGlobalObject>, + pub mIncumbentJSGlobal: u64, } #[repr(C)] -pub struct _vftable_nsIExpandedPrincipal { - pub _base: _vftable_nsISupports, -} -impl ::std::clone::Clone for nsIExpandedPrincipal { - fn clone(&self) -> Self { *self } +#[derive(Debug, Copy, Clone)] +pub struct CallbackObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } +pub type CallbackObject_HasThreadSafeRefCnt = FalseType; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsIURI { - pub _base: nsISupports, +pub struct CallbackObject_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, } -#[repr(C)] -pub struct _vftable_nsIURI { - pub _base: _vftable_nsISupports, +#[test] +fn bindgen_test_layout_CallbackObject_cycleCollection() { + assert_eq!(::std::mem::size_of::<CallbackObject_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<CallbackObject_cycleCollection>() , + 8usize); } -impl ::std::clone::Clone for nsIURI { +impl Clone for CallbackObject_cycleCollection { fn clone(&self) -> Self { *self } } -pub type PLDHashNumber = u32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum CallbackObject_ExceptionHandling { + eReportExceptions = 0, + eRethrowContentExceptions = 1, + eRethrowExceptions = 2, +} #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashEntryHdr { - pub mKeyHash: PLDHashNumber, -} -impl ::std::clone::Clone for PLDHashEntryHdr { - fn clone(&self) -> Self { *self } +pub struct CallbackObject_FastCallbackConstructor { + pub _address: u8, } #[test] -fn bindgen_test_layout_PLDHashEntryHdr() { - assert_eq!(::std::mem::size_of::<PLDHashEntryHdr>() , 4usize); - assert_eq!(::std::mem::align_of::<PLDHashEntryHdr>() , 4usize); +fn bindgen_test_layout_CallbackObject_FastCallbackConstructor() { + assert_eq!(::std::mem::size_of::<CallbackObject_FastCallbackConstructor>() + , 1usize); + assert_eq!(::std::mem::align_of::<CallbackObject_FastCallbackConstructor>() + , 1usize); +} +impl Clone for CallbackObject_FastCallbackConstructor { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct Checker { - pub mState: u32, - pub mIsWritable: u32, -} -#[test] -fn bindgen_test_layout_Checker() { - assert_eq!(::std::mem::size_of::<Checker>() , 8usize); - assert_eq!(::std::mem::align_of::<Checker>() , 4usize); +pub struct CallbackObject_CallSetup { + pub mCx: *mut JSContext, + pub mCompartment: *mut JSCompartment, + pub mAutoEntryScript: [u64; 21usize], + pub mAutoIncumbentScript: [u64; 6usize], + pub mRootedCallable: [u64; 4usize], + pub mAsyncStack: [u64; 4usize], + pub mAsyncStackSetter: [u64; 7usize], + pub mAc: [u64; 4usize], + pub mErrorResult: *mut ErrorResult, + pub mExceptionHandling: CallbackObject_ExceptionHandling, + pub mIsMainThread: bool, +} +#[test] +fn bindgen_test_layout_CallbackObject_CallSetup() { + assert_eq!(::std::mem::size_of::<CallbackObject_CallSetup>() , 400usize); + assert_eq!(::std::mem::align_of::<CallbackObject_CallSetup>() , 8usize); } extern "C" { - #[link_name = "_ZN7Checker5kIdleE"] - pub static Checker_consts_kIdle: ::std::os::raw::c_uint; - #[link_name = "_ZN7Checker6kRead1E"] - pub static Checker_consts_kRead1: ::std::os::raw::c_uint; - #[link_name = "_ZN7Checker8kReadMaxE"] - pub static Checker_consts_kReadMax: ::std::os::raw::c_uint; - #[link_name = "_ZN7Checker6kWriteE"] - pub static Checker_consts_kWrite: ::std::os::raw::c_uint; + #[link_name = "_ZN7mozilla3dom14CallbackObject21_cycleCollectorGlobalE"] + pub static mut CallbackObject__cycleCollectorGlobal: + CallbackObject_cycleCollection; } +#[test] +fn bindgen_test_layout_CallbackObject() { + assert_eq!(::std::mem::size_of::<CallbackObject>() , 56usize); + assert_eq!(::std::mem::align_of::<CallbackObject>() , 8usize); +} +pub type PLDHashNumber = u32; #[repr(C)] +#[derive(Debug)] pub struct PLDHashTable { pub mOps: *const PLDHashTableOps, pub mHashShift: i16, pub mEntrySize: u32, pub mEntryCount: u32, pub mRemovedCount: u32, - pub mEntryStore: [u64; 2usize], - pub mChecker: ::std::cell::UnsafeCell<Checker>, + pub mEntryStore: PLDHashTable_EntryStore, + pub mChecker: Checker, } #[repr(C)] +#[derive(Debug)] pub struct PLDHashTable_EntryStore { - pub _bindgen_opaque_blob: [u64; 2usize], + pub mEntryStore: *mut ::std::os::raw::c_char, + pub mGeneration: u32, } #[test] fn bindgen_test_layout_PLDHashTable_EntryStore() { @@ -2607,34 +4993,105 @@ fn bindgen_test_layout_PLDHashTable_Iterator() { assert_eq!(::std::mem::align_of::<PLDHashTable_Iterator>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum PLDHashTable_SearchReason { ForSearchOrRemove = 0, ForAdd = 1, } -#[test] -fn bindgen_test_layout_PLDHashTable() { - assert_eq!(::std::mem::size_of::<PLDHashTable>() , 48usize); - assert_eq!(::std::mem::align_of::<PLDHashTable>() , 8usize); -} extern "C" { #[link_name = "_ZN12PLDHashTable12kMaxCapacityE"] - pub static PLDHashTable_consts_kMaxCapacity: ::std::os::raw::c_uint; + pub static PLDHashTable_kMaxCapacity: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable12kMinCapacityE"] - pub static PLDHashTable_consts_kMinCapacity: ::std::os::raw::c_uint; + pub static PLDHashTable_kMinCapacity: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable17kMaxInitialLengthE"] - pub static PLDHashTable_consts_kMaxInitialLength: ::std::os::raw::c_uint; + pub static PLDHashTable_kMaxInitialLength: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable21kDefaultInitialLengthE"] - pub static PLDHashTable_consts_kDefaultInitialLength: - ::std::os::raw::c_uint; + pub static PLDHashTable_kDefaultInitialLength: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable9kHashBitsE"] - pub static PLDHashTable_consts_kHashBits: ::std::os::raw::c_uint; + pub static PLDHashTable_kHashBits: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable12kGoldenRatioE"] - pub static PLDHashTable_consts_kGoldenRatio: ::std::os::raw::c_uint; + pub static PLDHashTable_kGoldenRatio: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable14kCollisionFlagE"] - pub static PLDHashTable_consts_kCollisionFlag: ::std::os::raw::c_uint; + pub static PLDHashTable_kCollisionFlag: PLDHashNumber; +} +#[test] +fn bindgen_test_layout_PLDHashTable() { + assert_eq!(::std::mem::size_of::<PLDHashTable>() , 48usize); + assert_eq!(::std::mem::align_of::<PLDHashTable>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLDHashTableOps { + pub hashKey: PLDHashHashKey, + pub matchEntry: PLDHashMatchEntry, + pub moveEntry: PLDHashMoveEntry, + pub clearEntry: PLDHashClearEntry, + pub initEntry: PLDHashInitEntry, +} +#[test] +fn bindgen_test_layout_PLDHashTableOps() { + assert_eq!(::std::mem::size_of::<PLDHashTableOps>() , 40usize); + assert_eq!(::std::mem::align_of::<PLDHashTableOps>() , 8usize); +} +impl Clone for PLDHashTableOps { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLDHashEntryHdr { + pub mKeyHash: PLDHashNumber, +} +#[test] +fn bindgen_test_layout_PLDHashEntryHdr() { + assert_eq!(::std::mem::size_of::<PLDHashEntryHdr>() , 4usize); + assert_eq!(::std::mem::align_of::<PLDHashEntryHdr>() , 4usize); +} +impl Clone for PLDHashEntryHdr { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Checker { + pub mState: u32, + pub mIsWritable: u32, +} +extern "C" { + #[link_name = "_ZN7Checker5kIdleE"] + pub static Checker_kIdle: u32; +} +extern "C" { + #[link_name = "_ZN7Checker6kRead1E"] + pub static Checker_kRead1: u32; +} +extern "C" { + #[link_name = "_ZN7Checker8kReadMaxE"] + pub static Checker_kReadMax: u32; +} +extern "C" { + #[link_name = "_ZN7Checker6kWriteE"] + pub static Checker_kWrite: u32; +} +#[test] +fn bindgen_test_layout_Checker() { + assert_eq!(::std::mem::size_of::<Checker>() , 8usize); + assert_eq!(::std::mem::align_of::<Checker>() , 4usize); +} +impl Clone for Checker { + fn clone(&self) -> Self { *self } } pub type PLDHashHashKey = ::std::option::Option<unsafe extern "C" fn(aKey: *const ::std::os::raw::c_void) - -> PLDHashNumber>; + -> ::std::os::raw::c_uint>; pub type PLDHashMatchEntry = ::std::option::Option<unsafe extern "C" fn(aEntry: *const PLDHashEntryHdr, aKey: @@ -2651,122 +5108,403 @@ pub type PLDHashInitEntry = ::std::option::Option<unsafe extern "C" fn(aEntry: *mut PLDHashEntryHdr, aKey: *const ::std::os::raw::c_void)>; +/** + * hashkey wrapper using T* KeyType + * + * @see nsTHashtable::EntryType for specification + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsPtrHashKey<T> { + pub _base: PLDHashEntryHdr, + pub mKey: *mut T, +} +pub type nsPtrHashKey_KeyType<T> = *mut T; +pub type nsPtrHashKey_KeyTypePointer<T> = *mut T; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPtrHashKey__bindgen_ty_bindgen_id_117256 { ALLOW_MEMMOVE = 0, } +/** + * A node of content in a document's content model. This interface + * is supported by all content objects. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIContent { + pub _base: nsINode, +} +pub type nsIContent_IMEState = IMEState; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIContent_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIContent__bindgen_ty_bindgen_id_118596 { + eAllChildren = 0, + eAllButXBL = 1, + eSkipPlaceholderContent = 2, +} +/** + * Check whether this content node's given attribute has one of a given + * list of values. If there is a match, we return the index in the list + * of the first matching value. If there was no attribute at all, then + * we return ATTR_MISSING. If there was an attribute but it didn't + * match, we return ATTR_VALUE_NO_MATCH. A non-negative result always + * indicates a match. + * + * @param aNameSpaceID The namespace ID of the attribute. Must not + * be kNameSpaceID_Unknown. + * @param aName The name atom of the attribute. Must not be null. + * @param aValues a nullptr-terminated array of pointers to atom values to test + * against. + * @param aCaseSensitive Whether to do a case-sensitive compare on the values. + * @return ATTR_MISSING, ATTR_VALUE_NO_MATCH or the non-negative index + * indicating the first value of aValues that matched + */ +pub type nsIContent_AttrValuesArray = *const *mut nsIAtom; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIContent_ETabFocusType { + eTabFocus_formElementsMask = 2, + eTabFocus_linksMask = 4, + eTabFocus_any = 7, +} +extern "C" { + #[link_name = "_ZN10nsIContent14sTabFocusModelE"] + pub static mut nsIContent_sTabFocusModel: i32; +} +extern "C" { + #[link_name = "_ZN10nsIContent26sTabFocusModelAppliesToXULE"] + pub static mut nsIContent_sTabFocusModelAppliesToXUL: bool; +} +#[test] +fn bindgen_test_layout_nsIContent() { + assert_eq!(::std::mem::size_of::<nsIContent>() , 104usize); + assert_eq!(::std::mem::align_of::<nsIContent>() , 8usize); +} +/** + * Struct that stores info on an attribute. The name and value must either both + * be null or both be non-null. + * + * Note that, just as the pointers returned by GetAttrNameAt, the pointers that + * this struct hold are only valid until the element or its attributes are + * mutated (directly or via script). + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashTableOps { - pub hashKey: PLDHashHashKey, - pub matchEntry: PLDHashMatchEntry, - pub moveEntry: PLDHashMoveEntry, - pub clearEntry: PLDHashClearEntry, - pub initEntry: PLDHashInitEntry, +pub struct BorrowedAttrInfo { + pub mName: *const nsAttrName, + pub mValue: *const nsAttrValue, +} +#[test] +fn bindgen_test_layout_BorrowedAttrInfo() { + assert_eq!(::std::mem::size_of::<BorrowedAttrInfo>() , 16usize); + assert_eq!(::std::mem::align_of::<BorrowedAttrInfo>() , 8usize); } -impl ::std::clone::Clone for PLDHashTableOps { +impl Clone for BorrowedAttrInfo { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_PLDHashTableOps() { - assert_eq!(::std::mem::size_of::<PLDHashTableOps>() , 40usize); - assert_eq!(::std::mem::align_of::<PLDHashTableOps>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsICSSDeclaration { + pub _address: u8, +} +impl Clone for nsICSSDeclaration { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashEntryStub { - pub _base: PLDHashEntryHdr, - pub key: *const ::std::os::raw::c_void, +pub struct AudioContext { + pub _address: u8, +} +impl Clone for AudioContext { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct Element { + pub _base: FragmentOrElement, + pub mState: EventStates, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Element_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Element_MappedAttributeEntry { + pub attribute: *mut *mut nsIAtom, +} +#[test] +fn bindgen_test_layout_Element_MappedAttributeEntry() { + assert_eq!(::std::mem::size_of::<Element_MappedAttributeEntry>() , + 8usize); + assert_eq!(::std::mem::align_of::<Element_MappedAttributeEntry>() , + 8usize); } -impl ::std::clone::Clone for PLDHashEntryStub { +impl Clone for Element_MappedAttributeEntry { fn clone(&self) -> Self { *self } } +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element18kFireMutationEventE"] + pub static Element_kFireMutationEvent: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element22kDontFireMutationEventE"] + pub static Element_kDontFireMutationEvent: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element24kNotifyDocumentObserversE"] + pub static Element_kNotifyDocumentObservers: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element28kDontNotifyDocumentObserversE"] + pub static Element_kDontNotifyDocumentObservers: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element17kCallAfterSetAttrE"] + pub static Element_kCallAfterSetAttr: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element21kDontCallAfterSetAttrE"] + pub static Element_kDontCallAfterSetAttr: bool; +} #[test] -fn bindgen_test_layout_PLDHashEntryStub() { - assert_eq!(::std::mem::size_of::<PLDHashEntryStub>() , 16usize); - assert_eq!(::std::mem::align_of::<PLDHashEntryStub>() , 8usize); +fn bindgen_test_layout_Element() { + assert_eq!(::std::mem::size_of::<Element>() , 136usize); + assert_eq!(::std::mem::align_of::<Element>() , 8usize); } -/** - * a base class for templated hashtables. - * - * Clients will rarely need to use this class directly. Check the derived - * classes first, to see if they will meet your needs. - * - * @param EntryType the templated entry-type class that is managed by the - * hashtable. <code>EntryType</code> must extend the following declaration, - * and <strong>must not declare any virtual functions or derive from classes - * with virtual functions.</strong> Any vtable pointer would break the - * PLDHashTable code. - *<pre> class EntryType : public PLDHashEntryHdr - * { - * public: or friend nsTHashtable<EntryType>; - * // KeyType is what we use when Get()ing or Put()ing this entry - * // this should either be a simple datatype (uint32_t, nsISupports*) or - * // a const reference (const nsAString&) - * typedef something KeyType; - * // KeyTypePointer is the pointer-version of KeyType, because - * // PLDHashTable.h requires keys to cast to <code>const void*</code> - * typedef const something* KeyTypePointer; - * - * EntryType(KeyTypePointer aKey); - * - * // A copy or C++11 Move constructor must be defined, even if - * // AllowMemMove() == true, otherwise you will cause link errors. - * EntryType(const EntryType& aEnt); // Either this... - * EntryType(EntryType&& aEnt); // ...or this - * - * // the destructor must be defined... or you will cause link errors! - * ~EntryType(); - * - * // KeyEquals(): does this entry match this key? - * bool KeyEquals(KeyTypePointer aKey) const; - * - * // KeyToPointer(): Convert KeyType to KeyTypePointer - * static KeyTypePointer KeyToPointer(KeyType aKey); - * - * // HashKey(): calculate the hash number - * static PLDHashNumber HashKey(KeyTypePointer aKey); - * - * // ALLOW_MEMMOVE can we move this class with memmove(), or do we have - * // to use the copy constructor? - * enum { ALLOW_MEMMOVE = true/false }; - * }</pre> - * - * @see nsInterfaceHashtable - * @see nsDataHashtable - * @see nsClassHashtable - * @author "Benjamin Smedberg <bsmedberg@covad.net>" - */ #[repr(C)] -pub struct nsTHashtable<EntryType> { - pub mTable: PLDHashTable, - pub _phantom0: ::std::marker::PhantomData<EntryType>, +#[derive(Debug)] +pub struct FragmentOrElement { + pub _base: nsIContent, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + /** + * Array containing all attributes and children for this element + */ + pub mAttrsAndChildren: nsAttrAndChildArray, +} +pub type FragmentOrElement_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FragmentOrElement_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_FragmentOrElement_cycleCollection() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_cycleCollection>() , + 8usize); +} +impl Clone for FragmentOrElement_cycleCollection { + fn clone(&self) -> Self { *self } } +/** + * There are a set of DOM- and scripting-specific instance variables + * that may only be instantiated when a content object is accessed + * through the DOM. Rather than burn actual slots in the content + * objects for each of these instance variables, we put them off + * in a side structure that's only allocated when the content is + * accessed through the DOM. + */ #[repr(C)] #[derive(Debug)] -pub struct nsTHashtable_Iterator<EntryType> { - pub _base: PLDHashTable_Iterator, - pub _phantom0: ::std::marker::PhantomData<EntryType>, +pub struct FragmentOrElement_nsDOMSlots { + pub _base: nsINode_nsSlots, + /** + * The .style attribute (an interface that forwards to the actual + * style rules) + * @see nsGenericHTMLElement::GetStyle + */ + pub mStyle: nsCOMPtr<nsICSSDeclaration>, + /** + * The .dataset attribute. + * @see nsGenericHTMLElement::GetDataset + */ + pub mDataset: *mut nsDOMStringMap, + /** + * The .undoManager property. + * @see nsGenericHTMLElement::GetUndoManager + */ + pub mUndoManager: RefPtr<UndoManager>, + /** + * SMIL Overridde style rules (for SMIL animation of CSS properties) + * @see nsIContent::GetSMILOverrideStyle + */ + pub mSMILOverrideStyle: nsCOMPtr<nsICSSDeclaration>, + /** + * Holds any SMIL override style declaration for this element. + */ + pub mSMILOverrideStyleDeclaration: RefPtr<Declaration>, + /** + * An object implementing nsIDOMMozNamedAttrMap for this content (attributes) + * @see FragmentOrElement::GetAttributes + */ + pub mAttributeMap: RefPtr<nsDOMAttributeMap>, + pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962, + /** + * An object implementing the .children property for this element. + */ + pub mChildrenList: RefPtr<nsContentList>, + /** + * An object implementing the .classList property for this element. + */ + pub mClassList: RefPtr<nsDOMTokenList>, + /** + * ShadowRoot bound to the element. + */ + pub mShadowRoot: RefPtr<ShadowRoot>, + /** + * The root ShadowRoot of this element if it is in a shadow tree. + */ + pub mContainingShadow: RefPtr<ShadowRoot>, + /** + * An array of web component insertion points to which this element + * is distributed. + */ + pub mDestInsertionPoints: nsTArray<*mut nsIContent>, + /** + * XBL binding installed on the element. + */ + pub mXBLBinding: RefPtr<nsXBLBinding>, + /** + * XBL binding installed on the lement. + */ + pub mXBLInsertionParent: nsCOMPtr<nsIContent>, + /** + * Web components custom element data. + */ + pub mCustomElementData: RefPtr<CustomElementData>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962 { + /** + * The nearest enclosing content node with a binding that created us. + * @see FragmentOrElement::GetBindingParent + */ + pub mBindingParent: __BindgenUnionField<*mut nsIContent>, + /** + * The controllers of the XUL Element. + */ + pub mControllers: __BindgenUnionField<*mut nsIControllers>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962>() + , 8usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962>() + , 8usize); +} +impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962 { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() , + 168usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() , + 8usize); +} +extern "C" { + #[link_name = + "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"] + pub static mut FragmentOrElement__cycleCollectorGlobal: + FragmentOrElement_cycleCollection; +} +#[test] +fn bindgen_test_layout_FragmentOrElement() { + assert_eq!(::std::mem::size_of::<FragmentOrElement>() , 128usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct VoidPtrHashKey { - pub _base: [u64; 2usize], +pub struct nsIWeakReference { + pub _base: nsISupports, } -impl ::std::clone::Clone for VoidPtrHashKey { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIWeakReference_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIWeakReference() { + assert_eq!(::std::mem::size_of::<nsIWeakReference>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIWeakReference>() , 8usize); +} +impl Clone for nsIWeakReference { fn clone(&self) -> Self { *self } } +pub type nsWeakPtr = nsCOMPtr<nsIWeakReference>; #[repr(C)] -pub struct nsDataHashtable; -pub type nsLoadFlags = u32; +#[derive(Debug, Copy)] +pub struct PrefSetting { + pub _address: u8, +} +impl Clone for PrefSetting { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIChannel { + pub _base: nsIRequest, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIChannel_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIChannel__bindgen_ty_bindgen_id_135707 { + LOAD_DOCUMENT_URI = 65536, + LOAD_RETARGETED_DOCUMENT_URI = 131072, + LOAD_REPLACE = 262144, + LOAD_INITIAL_DOCUMENT_URI = 524288, + LOAD_TARGETED = 1048576, + LOAD_CALL_CONTENT_SNIFFERS = 2097152, + LOAD_CLASSIFY_URI = 4194304, + LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE = 8388608, + LOAD_EXPLICIT_CREDENTIALS = 16777216, + LOAD_BYPASS_SERVICE_WORKER = 33554432, +} +#[test] +fn bindgen_test_layout_nsIChannel() { + assert_eq!(::std::mem::size_of::<nsIChannel>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIChannel>() , 8usize); +} +impl Clone for nsIChannel { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] pub struct nsIRequest { pub _base: nsISupports, } #[repr(C)] -pub struct _vftable_nsIRequest { - pub _base: _vftable_nsISupports, +#[derive(Debug, Copy, Clone)] +pub struct nsIRequest_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsIRequest_nsIRequest_h_unnamed_7 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIRequest__bindgen_ty_bindgen_id_135545 { LOAD_REQUESTMASK = 65535, LOAD_NORMAL = 0, LOAD_BACKGROUND = 1, @@ -2781,29 +5519,91 @@ pub enum nsIRequest_nsIRequest_h_unnamed_7 { LOAD_ANONYMOUS = 16384, LOAD_FRESH_CONNECTION = 32768, } -impl ::std::clone::Clone for nsIRequest { +#[test] +fn bindgen_test_layout_nsIRequest() { + assert_eq!(::std::mem::size_of::<nsIRequest>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIRequest>() , 8usize); +} +impl Clone for nsIRequest { fn clone(&self) -> Self { *self } } -/** - * EventStates is the class used to represent the event states of nsIContent - * instances. These states are calculated by IntrinsicState() and - * ContentStatesChanged() has to be called when one of them changes thus - * informing the layout/style engine of the change. - * Event states are associated with pseudo-classes. - */ +pub type nsLoadFlags = u32; #[repr(C)] #[derive(Debug, Copy)] -pub struct EventStates { - pub mStates: ::std::os::raw::c_ulonglong, +pub struct nsILoadGroup { + pub _base: nsIRequest, } -impl ::std::clone::Clone for EventStates { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILoadGroup_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsILoadGroup() { + assert_eq!(::std::mem::size_of::<nsILoadGroup>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILoadGroup>() , 8usize); +} +impl Clone for nsILoadGroup { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct nsCOMArray_base { + pub mArray: nsTArray<*mut nsISupports>, +} +pub type nsCOMArray_base_nsBaseArrayEnumFunc = + ::std::option::Option<unsafe extern "C" fn(aElement: + *mut ::std::os::raw::c_void, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +pub type nsCOMArray_base_nsBaseArrayComparatorFunc = + ::std::option::Option<unsafe extern "C" fn(aElement1: *mut nsISupports, + aElement2: *mut nsISupports, + aData: + *mut ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCOMArray_base_nsCOMArrayComparatorContext { + pub mComparatorFunc: nsCOMArray_base_nsBaseArrayComparatorFunc, + pub mData: *mut ::std::os::raw::c_void, +} #[test] -fn bindgen_test_layout_EventStates() { - assert_eq!(::std::mem::size_of::<EventStates>() , 8usize); - assert_eq!(::std::mem::align_of::<EventStates>() , 8usize); +fn bindgen_test_layout_nsCOMArray_base_nsCOMArrayComparatorContext() { + assert_eq!(::std::mem::size_of::<nsCOMArray_base_nsCOMArrayComparatorContext>() + , 16usize); + assert_eq!(::std::mem::align_of::<nsCOMArray_base_nsCOMArrayComparatorContext>() + , 8usize); +} +impl Clone for nsCOMArray_base_nsCOMArrayComparatorContext { + fn clone(&self) -> Self { *self } } +#[test] +fn bindgen_test_layout_nsCOMArray_base() { + assert_eq!(::std::mem::size_of::<nsCOMArray_base>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCOMArray_base>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsCOMArray<T> { + pub _base: nsCOMArray_base, + pub _phantom_0: ::std::marker::PhantomData<T>, +} +pub type nsCOMArray_nsCOMArrayEnumFunc<T> = + ::std::option::Option<unsafe extern "C" fn(aElement: *mut T, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +pub type nsCOMArray_nsCOMArrayComparatorFunc<T> = + ::std::option::Option<unsafe extern "C" fn(aElement1: *mut T, + aElement2: *mut T, + aData: + *mut ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(u32)] /** * Enum defining the mode in which a sheet is to be parsed. This is * usually, but not always, the same as the cascade level at which the @@ -2825,8 +5625,7 @@ fn bindgen_test_layout_EventStates() { * styling of anonymous box pseudo-elements can violate layout * invariants. */ -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum SheetParsingMode { eAuthorSheetFeatures = 0, eUserSheetFeatures = 1, @@ -2844,38 +5643,909 @@ pub enum SheetParsingMode { pub struct HandleRefPtr<T> { pub mHandle: T, } -pub enum nsAttrAndChildArray { } -pub enum nsChildContentList { } -pub enum nsCSSSelectorList { } -pub enum nsDOMAttributeMap { } -pub enum nsIAnimationObserver { } -pub enum nsIDOMElement { } -pub enum nsIDOMNodeList { } -pub enum nsIEditor { } -pub enum nsIFrame { } -pub enum nsINodeList { } -pub enum nsNodeSupportsWeakRefTearoff { } -pub enum nsNodeWeakReference { } -pub enum nsDOMMutationObserver { } -pub enum ServoNodeData { } -pub enum EventListenerManager { } -pub enum AccessibleNode { } -pub enum BoxQuadOptions { } -pub enum ConvertCoordinateOptions { } -pub enum DOMPoint { } -pub enum DOMQuad { } -pub enum DOMRectReadOnly { } -pub enum Element { } -pub enum Text { } -pub enum TextOrElementOrDocument { } -pub enum DOMPointInit { } -pub const NODE_IS_DIRTY_FOR_SERVO: nsINode_h_unnamed_8 = - nsINode_h_unnamed_8::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: nsINode_h_unnamed_8 = - nsINode_h_unnamed_8::NODE_SHARED_RESTYLE_BIT_2; +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrValue { + pub mBits: usize, +} +pub type nsAttrValue_AtomArray = nsTArray<nsCOMPtr<nsIAtom>>; +pub const nsAttrValue_ValueType_eSVGTypesBegin: nsAttrValue_ValueType = + nsAttrValue_ValueType::eSVGAngle; +pub const nsAttrValue_ValueType_eSVGTypesEnd: nsAttrValue_ValueType = + nsAttrValue_ValueType::eSVGViewBox; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAttrValue_ValueType { + eString = 0, + eAtom = 2, + eInteger = 3, + eColor = 7, + eEnum = 11, + ePercent = 15, + eGeckoCSSDeclaration = 16, + eServoCSSDeclaration = 17, + eURL = 18, + eImage = 19, + eAtomArray = 20, + eDoubleValue = 21, + eIntMarginValue = 22, + eSVGAngle = 23, + eSVGIntegerPair = 24, + eSVGLength = 25, + eSVGLengthList = 26, + eSVGNumberList = 27, + eSVGNumberPair = 28, + eSVGPathData = 29, + eSVGPointList = 30, + eSVGPreserveAspectRatio = 31, + eSVGStringList = 32, + eSVGTransformList = 33, + eSVGViewBox = 34, +} +/** + * Structure for a mapping from int (enum) values to strings. When you use + * it you generally create an array of them. + * Instantiate like this: + * EnumTable myTable[] = { + * { "string1", 1 }, + * { "string2", 2 }, + * { nullptr, 0 } + * } + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAttrValue_EnumTable { + /** The string the value maps to */ + pub tag: *const ::std::os::raw::c_char, + /** The enum value that maps to this string */ + pub value: i16, +} +#[test] +fn bindgen_test_layout_nsAttrValue_EnumTable() { + assert_eq!(::std::mem::size_of::<nsAttrValue_EnumTable>() , 16usize); + assert_eq!(::std::mem::align_of::<nsAttrValue_EnumTable>() , 8usize); +} +impl Clone for nsAttrValue_EnumTable { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAttrValue_ValueBaseType { + eStringBase = 0, + eOtherBase = 1, + eAtomBase = 2, + eIntegerBase = 3, +} +extern "C" { + #[link_name = "_ZN11nsAttrValue15sEnumTableArrayE"] + pub static mut nsAttrValue_sEnumTableArray: + *mut nsTArray<*const nsAttrValue_EnumTable>; +} +#[test] +fn bindgen_test_layout_nsAttrValue() { + assert_eq!(::std::mem::size_of::<nsAttrValue>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAttrValue>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsNodeInfoManager { + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mNodeInfoHash: *mut PLHashTable, + pub mDocument: *mut nsIDocument, + pub mNonDocumentNodeInfos: u32, + pub mPrincipal: nsCOMPtr<nsIPrincipal>, + pub mDefaultPrincipal: nsCOMPtr<nsIPrincipal>, + pub mTextNodeInfo: *mut NodeInfo, + pub mCommentNodeInfo: *mut NodeInfo, + pub mDocumentNodeInfo: *mut NodeInfo, + pub mBindingManager: RefPtr<nsBindingManager>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsNodeInfoManager_cycleCollection { + pub _base: nsCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsNodeInfoManager_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsNodeInfoManager_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsNodeInfoManager_cycleCollection>() , + 8usize); +} +impl Clone for nsNodeInfoManager_cycleCollection { + fn clone(&self) -> Self { *self } +} +pub type nsNodeInfoManager_HasThreadSafeRefCnt = FalseType; +extern "C" { + #[link_name = "_ZN17nsNodeInfoManager21_cycleCollectorGlobalE"] + pub static mut nsNodeInfoManager__cycleCollectorGlobal: + nsNodeInfoManager_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsNodeInfoManager() { + assert_eq!(::std::mem::size_of::<nsNodeInfoManager>() , 88usize); + assert_eq!(::std::mem::align_of::<nsNodeInfoManager>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct NodeInfo { + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mDocument: *mut nsIDocument, + pub mInner: NodeInfo_NodeInfoInner, + pub mOwnerManager: RefPtr<nsNodeInfoManager>, + pub mQualifiedName: nsString, + pub mNodeName: nsString, + pub mLocalName: nsString, +} +pub type NodeInfo_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct NodeInfo_cycleCollection { + pub _base: nsCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_NodeInfo_cycleCollection() { + assert_eq!(::std::mem::size_of::<NodeInfo_cycleCollection>() , 16usize); + assert_eq!(::std::mem::align_of::<NodeInfo_cycleCollection>() , 8usize); +} +impl Clone for NodeInfo_cycleCollection { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct NodeInfo_NodeInfoInner { + pub mName: nsCOMPtr<nsIAtom>, + pub mPrefix: nsCOMPtr<nsIAtom>, + pub mNamespaceID: i32, + pub mNodeType: u16, + pub mNameString: *const nsAString_internal, + pub mExtraName: nsCOMPtr<nsIAtom>, +} +#[test] +fn bindgen_test_layout_NodeInfo_NodeInfoInner() { + assert_eq!(::std::mem::size_of::<NodeInfo_NodeInfoInner>() , 40usize); + assert_eq!(::std::mem::align_of::<NodeInfo_NodeInfoInner>() , 8usize); +} +extern "C" { + #[link_name = "_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE"] + pub static mut NodeInfo__cycleCollectorGlobal: NodeInfo_cycleCollection; +} +#[test] +fn bindgen_test_layout_NodeInfo() { + assert_eq!(::std::mem::size_of::<NodeInfo>() , 120usize); + assert_eq!(::std::mem::align_of::<NodeInfo>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsBindingManager { + pub _address: u8, +} +impl Clone for nsBindingManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIFrame { + pub _address: u8, +} +impl Clone for nsIFrame { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsPropertyTable { + pub mPropertyList: *mut nsPropertyTable_PropertyList, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsPropertyTable_PropertyList { + pub _address: u8, +} +impl Clone for nsPropertyTable_PropertyList { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsPropertyTable() { + assert_eq!(::std::mem::size_of::<nsPropertyTable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsPropertyTable>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrAndChildArray { + pub mImpl: *mut nsAttrAndChildArray_Impl, +} +pub type nsAttrAndChildArray_BorrowedAttrInfo = BorrowedAttrInfo; +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrAndChildArray_InternalAttr { + pub mName: nsAttrName, + pub mValue: nsAttrValue, +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray_InternalAttr() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray_InternalAttr>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray_InternalAttr>() , + 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAttrAndChildArray_Impl { + pub mAttrAndChildCount: u32, + pub mBufferSize: u32, + pub mMappedAttrs: *mut nsMappedAttributes, + pub mBuffer: [*mut ::std::os::raw::c_void; 1usize], +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray_Impl() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray_Impl>() , 24usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray_Impl>() , 8usize); +} +impl Clone for nsAttrAndChildArray_Impl { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsChildContentList { + pub _address: u8, +} +impl Clone for nsChildContentList { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsDOMAttributeMap { + pub _base: nsIDOMMozNamedAttrMap, + pub _base_1: nsWrapperCache, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mContent: nsCOMPtr<Element>, + /** + * Cache of Attrs. + */ + pub mAttributeCache: nsDOMAttributeMap_AttrCache, +} +pub type nsDOMAttributeMap_Attr = Attr; +pub type nsDOMAttributeMap_Element = Element; +pub type nsDOMAttributeMap_ErrorResult = ErrorResult; +pub type nsDOMAttributeMap_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMAttributeMap_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsDOMAttributeMap_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsDOMAttributeMap_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsDOMAttributeMap_cycleCollection>() , + 8usize); +} +impl Clone for nsDOMAttributeMap_cycleCollection { + fn clone(&self) -> Self { *self } +} +pub type nsDOMAttributeMap_AttrCache = [u64; 6usize]; +extern "C" { + #[link_name = "_ZN17nsDOMAttributeMap21_cycleCollectorGlobalE"] + pub static mut nsDOMAttributeMap__cycleCollectorGlobal: + nsDOMAttributeMap_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsDOMAttributeMap() { + assert_eq!(::std::mem::size_of::<nsDOMAttributeMap>() , 104usize); + assert_eq!(::std::mem::align_of::<nsDOMAttributeMap>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIDOMMozNamedAttrMap { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIDOMMozNamedAttrMap_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMMozNamedAttrMap() { + assert_eq!(::std::mem::size_of::<nsIDOMMozNamedAttrMap>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMMozNamedAttrMap>() , 8usize); +} +impl Clone for nsIDOMMozNamedAttrMap { + fn clone(&self) -> Self { *self } +} +/** + * Presentation shell interface. Presentation shells are the + * controlling point for managing the presentation of a document. The + * presentation shell holds a live reference to the document, the + * presentation context, the style manager, the style set and the root + * frame. <p> + * + * When this object is Release'd, it will release the document, the + * presentation context, the style manager, the style set and the root + * frame. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIPresShell { + pub _base: nsISupports, + pub mDocument: nsCOMPtr<nsIDocument>, + pub mPresContext: RefPtr<nsPresContext>, + pub mStyleSet: StyleSetHandle, + pub mFrameConstructor: *mut nsCSSFrameConstructor, + pub mViewManager: *mut nsViewManager, + pub mFrameArena: nsPresArena, + pub mSelection: RefPtr<nsFrameSelection>, + pub mFrameManager: *mut nsFrameManagerBase, + pub mForwardingContainer: u64, + pub mHiddenInvalidationObserverRefreshDriver: *mut nsRefreshDriver, + pub mDocAccessible: *mut DocAccessible, + pub mReflowContinueTimer: nsCOMPtr<nsITimer>, + pub mDrawEventTargetFrame: *mut nsIFrame, + pub mAllocatedPointers: [u64; 6usize], + pub mPaintCount: u64, + pub mScrollPositionClampingScrollPortSize: nsSize, + pub mWeakFrames: *mut nsWeakFrame, + pub mCanvasBackgroundColor: nscolor, + pub mResolution: [u64; 2usize], + pub mSelectionFlags: i16, + pub mRenderFlags: nsIPresShell_RenderFlags, + pub _bitfield_1: u16, + pub mPresShellId: u32, + pub mChangedScopeStyleRoots: [u64; 3usize], + pub mFontSizeInflationEmPerLine: u32, + pub mFontSizeInflationMinTwips: u32, + pub mFontSizeInflationLineThreshold: u32, + pub mFontSizeInflationForceEnabled: bool, + pub mFontSizeInflationDisabledInMasterProcess: bool, + pub mFontSizeInflationEnabled: bool, + pub mPaintingIsFrozen: bool, + pub mFontSizeInflationEnabledIsDirty: bool, + pub mIsNeverPainting: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIPresShell_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +pub type nsIPresShell_LayerManager = LayerManager; +pub type nsIPresShell_SourceSurface = SourceSurface; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_eRenderFlag { + STATE_IGNORING_VIEWPORT_SCROLLING = 1, + STATE_DRAWWINDOW_NOT_FLUSHING = 2, +} +pub type nsIPresShell_RenderFlags = u8; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_ScrollDirection { + eHorizontal = 0, + eVertical = 1, + eEither = 2, +} +#[repr(u32)] +/** + * Tell the pres shell that a frame needs to be marked dirty and needs + * Reflow. It's OK if this is an ancestor of the frame needing reflow as + * long as the ancestor chain between them doesn't cross a reflow root. + * + * The bit to add should be NS_FRAME_IS_DIRTY, NS_FRAME_HAS_DIRTY_CHILDREN + * or nsFrameState(0); passing 0 means that dirty bits won't be set on the + * frame or its ancestors/descendants, but that intrinsic widths will still + * be marked dirty. Passing aIntrinsicDirty = eResize and aBitToAdd = 0 + * would result in no work being done, so don't do that. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_IntrinsicDirty { + eResize = 0, + eTreeChange = 1, + eStyleChange = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_ReflowRootHandling { + ePositionOrSizeChange = 0, + eNoPositionOrSizeChange = 1, + eInferFromBitToAdd = 2, +} +pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_154828 = + nsIPresShell__bindgen_ty_bindgen_id_154828::SCROLL_TOP; +pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_154828 = + nsIPresShell__bindgen_ty_bindgen_id_154828::SCROLL_BOTTOM; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell__bindgen_ty_bindgen_id_154828 { + SCROLL_TOP = 0, + SCROLL_BOTTOM = 100, + SCROLL_CENTER = 50, + SCROLL_MINIMUM = -1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_WhenToScroll { + SCROLL_ALWAYS = 0, + SCROLL_IF_NOT_VISIBLE = 1, + SCROLL_IF_NOT_FULLY_VISIBLE = 2, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPresShell_ScrollAxis { + pub _bindgen_opaque_blob: u32, +} +#[test] +fn bindgen_test_layout_nsIPresShell_ScrollAxis() { + assert_eq!(::std::mem::size_of::<nsIPresShell_ScrollAxis>() , 4usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_ScrollAxis>() , 4usize); +} +impl Clone for nsIPresShell_ScrollAxis { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsIPresShell_PointerCaptureInfo { + pub mPendingContent: nsCOMPtr<nsIContent>, + pub mOverrideContent: nsCOMPtr<nsIContent>, + pub mPrimaryState: bool, +} +#[test] +fn bindgen_test_layout_nsIPresShell_PointerCaptureInfo() { + assert_eq!(::std::mem::size_of::<nsIPresShell_PointerCaptureInfo>() , + 24usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_PointerCaptureInfo>() , + 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPresShell_PointerInfo { + pub mActiveState: bool, + pub mPointerType: u16, + pub mPrimaryState: bool, +} +#[test] +fn bindgen_test_layout_nsIPresShell_PointerInfo() { + assert_eq!(::std::mem::size_of::<nsIPresShell_PointerInfo>() , 6usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_PointerInfo>() , 2usize); +} +impl Clone for nsIPresShell_PointerInfo { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_PaintFlags { + PAINT_LAYERS = 1, + PAINT_COMPOSITE = 2, + PAINT_SYNC_DECODE_IMAGES = 4, +} +#[repr(u32)] +/** + * Ensures that the refresh driver is running, and schedules a view + * manager flush on the next tick. + * + * @param aType PAINT_DELAYED_COMPRESS : Schedule a paint to be executed after a delay, and + * put FrameLayerBuilder in 'compressed' mode that avoids short cut optimizations. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_PaintType { + PAINT_DEFAULT = 0, + PAINT_DELAYED_COMPRESS = 1, +} +extern "C" { + #[link_name = "_ZN12nsIPresShell12gCaptureInfoE"] + pub static mut nsIPresShell_gCaptureInfo: CapturingContentInfo; +} +extern "C" { + #[link_name = "_ZN12nsIPresShell19gPointerCaptureListE"] + pub static mut nsIPresShell_gPointerCaptureList: *mut [u64; 6usize]; +} +extern "C" { + #[link_name = "_ZN12nsIPresShell18gActivePointersIdsE"] + pub static mut nsIPresShell_gActivePointersIds: *mut (); +} +extern "C" { + #[link_name = "_ZN12nsIPresShell14gKeyDownTargetE"] + pub static mut nsIPresShell_gKeyDownTarget: *mut nsIContent; +} +#[test] +fn bindgen_test_layout_nsIPresShell() { + assert_eq!(::std::mem::size_of::<nsIPresShell>() , 416usize); + assert_eq!(::std::mem::align_of::<nsIPresShell>() , 8usize); +} +impl nsIPresShell { + #[inline] + pub fn mStylesHaveChanged(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u16)) >> + 0u32) as u8) + } + } + #[inline] + pub fn set_mStylesHaveChanged(&mut self, val: bool) { + self._bitfield_1 &= !(1usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 0u32) & (1usize as u16); + } + #[inline] + pub fn mDidInitialize(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u16)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mDidInitialize(&mut self, val: bool) { + self._bitfield_1 &= !(2usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 1u32) & (2usize as u16); + } + #[inline] + pub fn mIsDestroying(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u16)) >> + 2u32) as u8) + } + } + #[inline] + pub fn set_mIsDestroying(&mut self, val: bool) { + self._bitfield_1 &= !(4usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 2u32) & (4usize as u16); + } + #[inline] + pub fn mIsZombie(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u16)) >> + 3u32) as u8) + } + } + #[inline] + pub fn set_mIsZombie(&mut self, val: bool) { + self._bitfield_1 &= !(8usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 3u32) & (8usize as u16); + } + #[inline] + pub fn mIsReflowing(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u16)) >> + 4u32) as u8) + } + } + #[inline] + pub fn set_mIsReflowing(&mut self, val: bool) { + self._bitfield_1 &= !(16usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 4u32) & (16usize as u16); + } + #[inline] + pub fn mPaintingSuppressed(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u16)) >> + 5u32) as u8) + } + } + #[inline] + pub fn set_mPaintingSuppressed(&mut self, val: bool) { + self._bitfield_1 &= !(32usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 5u32) & (32usize as u16); + } + #[inline] + pub fn mIsThemeSupportDisabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u16)) >> + 6u32) as u8) + } + } + #[inline] + pub fn set_mIsThemeSupportDisabled(&mut self, val: bool) { + self._bitfield_1 &= !(64usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 6u32) & (64usize as u16); + } + #[inline] + pub fn mIsActive(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u16)) >> + 7u32) as u8) + } + } + #[inline] + pub fn set_mIsActive(&mut self, val: bool) { + self._bitfield_1 &= !(128usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 7u32) & (128usize as u16); + } + #[inline] + pub fn mFrozen(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u16)) >> + 8u32) as u8) + } + } + #[inline] + pub fn set_mFrozen(&mut self, val: bool) { + self._bitfield_1 &= !(256usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 8u32) & (256usize as u16); + } + #[inline] + pub fn mIsFirstPaint(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u16)) >> + 9u32) as u8) + } + } + #[inline] + pub fn set_mIsFirstPaint(&mut self, val: bool) { + self._bitfield_1 &= !(512usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 9u32) & (512usize as u16); + } + #[inline] + pub fn mObservesMutationsForPrint(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u16)) >> + 10u32) as u8) + } + } + #[inline] + pub fn set_mObservesMutationsForPrint(&mut self, val: bool) { + self._bitfield_1 &= !(1024usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 10u32) & (1024usize as u16); + } + #[inline] + pub fn mReflowScheduled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u16)) >> + 11u32) as u8) + } + } + #[inline] + pub fn set_mReflowScheduled(&mut self, val: bool) { + self._bitfield_1 &= !(2048usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 11u32) & (2048usize as u16); + } + #[inline] + pub fn mSuppressInterruptibleReflows(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u16)) >> + 12u32) as u8) + } + } + #[inline] + pub fn set_mSuppressInterruptibleReflows(&mut self, val: bool) { + self._bitfield_1 &= !(4096usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 12u32) & (4096usize as u16); + } + #[inline] + pub fn mScrollPositionClampingScrollPortSizeSet(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u16)) >> + 13u32) as u8) + } + } + #[inline] + pub fn set_mScrollPositionClampingScrollPortSizeSet(&mut self, + val: bool) { + self._bitfield_1 &= !(8192usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 13u32) & (8192usize as u16); + } +} +/** + * A class that implements nsIWeakReference + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsNodeWeakReference { + pub _base: nsIWeakReference, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mNode: *mut nsINode, +} +pub type nsNodeWeakReference_HasThreadSafeRefCnt = FalseType; +#[test] +fn bindgen_test_layout_nsNodeWeakReference() { + assert_eq!(::std::mem::size_of::<nsNodeWeakReference>() , 32usize); + assert_eq!(::std::mem::align_of::<nsNodeWeakReference>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMMutationObserver { + pub _address: u8, +} +impl Clone for nsDOMMutationObserver { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ServoNodeData { + pub _address: u8, +} +impl Clone for ServoNodeData { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct BoxQuadOptions { + pub _address: u8, +} +impl Clone for BoxQuadOptions { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ConvertCoordinateOptions { + pub _address: u8, +} +impl Clone for ConvertCoordinateOptions { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMPoint { + pub _address: u8, +} +impl Clone for DOMPoint { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMQuad { + pub _address: u8, +} +impl Clone for DOMQuad { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct DOMRectReadOnly { + pub _base: nsISupports, + pub _base_1: nsWrapperCache, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mParent: nsCOMPtr<nsISupports>, +} +pub type DOMRectReadOnly_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMRectReadOnly_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_DOMRectReadOnly_cycleCollection() { + assert_eq!(::std::mem::size_of::<DOMRectReadOnly_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<DOMRectReadOnly_cycleCollection>() , + 8usize); +} +impl Clone for DOMRectReadOnly_cycleCollection { + fn clone(&self) -> Self { *self } +} +extern "C" { + #[link_name = "_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE"] + pub static mut DOMRectReadOnly__cycleCollectorGlobal: + DOMRectReadOnly_cycleCollection; +} +#[test] +fn bindgen_test_layout_DOMRectReadOnly() { + assert_eq!(::std::mem::size_of::<DOMRectReadOnly>() , 56usize); + assert_eq!(::std::mem::align_of::<DOMRectReadOnly>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct OwningNodeOrString { + pub mType: OwningNodeOrString_Type, + pub mValue: OwningNodeOrString_Value, +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsINode_h_unnamed_8 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum OwningNodeOrString_Type { + eUninitialized = 0, + eNode = 1, + eString = 2, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct OwningNodeOrString_Value { + pub mNode: __BindgenUnionField<UnionMember<OwningNonNull<nsINode>>>, + pub mString: __BindgenUnionField<UnionMember<nsString>>, + pub bindgen_union_field: [u64; 2usize], +} +#[test] +fn bindgen_test_layout_OwningNodeOrString_Value() { + assert_eq!(::std::mem::size_of::<OwningNodeOrString_Value>() , 16usize); + assert_eq!(::std::mem::align_of::<OwningNodeOrString_Value>() , 8usize); +} +impl Clone for OwningNodeOrString_Value { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_OwningNodeOrString() { + assert_eq!(::std::mem::size_of::<OwningNodeOrString>() , 24usize); + assert_eq!(::std::mem::align_of::<OwningNodeOrString>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct TextOrElementOrDocument { + pub _address: u8, +} +impl Clone for TextOrElementOrDocument { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMPointInit { + pub _address: u8, +} +impl Clone for DOMPointInit { + fn clone(&self) -> Self { *self } +} +pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_LISTENERMANAGER; +pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_PROPERTIES; +pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_ANONYMOUS_ROOT; +pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; +pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_NATIVE_ANONYMOUS_ROOT; +pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_FORCE_XBL_BINDINGS; +pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_MAY_BE_IN_BINDING_MNGR; +pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_EDITABLE; +pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_MAY_HAVE_CLASS; +pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_IN_SHADOW_TREE; +pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_EMPTY_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_SLOW_SELECTOR; +pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_EDGE_CHILD_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_156879 + = + _bindgen_ty_bindgen_id_156879::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; +pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_ALL_SELECTOR_FLAGS; +pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_NEEDS_FRAME; +pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_DESCENDANTS_NEED_FRAMES; +pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_ACCESSKEY; +pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_DIRECTION_RTL; +pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_HAS_DIRECTION_LTR; +pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_ALL_DIRECTION_FLAGS; +pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_CHROME_ONLY_ACCESS; +pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; +pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_156879 + = + _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_156879 = + _bindgen_ty_bindgen_id_156879::NODE_TYPE_SPECIFIC_BITS_OFFSET; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum _bindgen_ty_bindgen_id_156879 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -2903,388 +6573,379 @@ pub enum nsINode_h_unnamed_8 { NODE_SHARED_RESTYLE_BIT_2 = 16777216, NODE_TYPE_SPECIFIC_BITS_OFFSET = 23, } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsContentList { + pub _address: u8, +} +impl Clone for nsContentList { + fn clone(&self) -> Self { *self } +} /** - * Class used to detect unexpected mutations. To use the class create an - * nsMutationGuard on the stack before unexpected mutations could occur. - * You can then at any time call Mutated to check if any unexpected mutations - * have occurred. + * The signature of the timer callback function passed to initWithFuncCallback. + * This is the function that will get called when the timer expires if the + * timer is initialized via initWithFuncCallback. + * + * @param aTimer the timer which has expired + * @param aClosure opaque parameter passed to initWithFuncCallback */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsMutationGuard { - pub mStartingGeneration: u64, +pub struct nsITimer { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsMutationGuard { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsITimer_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsITimer__bindgen_ty_bindgen_id_173287 { + TYPE_ONE_SHOT = 0, + TYPE_REPEATING_SLACK = 1, + TYPE_REPEATING_PRECISE = 2, + TYPE_REPEATING_PRECISE_CAN_SKIP = 3, } #[test] -fn bindgen_test_layout_nsMutationGuard() { - assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize); - assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize); +fn bindgen_test_layout_nsITimer() { + assert_eq!(::std::mem::size_of::<nsITimer>() , 8usize); + assert_eq!(::std::mem::align_of::<nsITimer>() , 8usize); } -extern "C" { - #[link_name = "_ZN15nsMutationGuard11sGenerationE"] - pub static mut nsMutationGuard_consts_sGeneration: - ::std::os::raw::c_ulonglong; -} -pub type Float = f32; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SurfaceType { - DATA = 0, - D2D1_BITMAP = 1, - D2D1_DRAWTARGET = 2, - CAIRO = 3, - CAIRO_IMAGE = 4, - COREGRAPHICS_IMAGE = 5, - COREGRAPHICS_CGCONTEXT = 6, - SKIA = 7, - DUAL_DT = 8, - D2D1_1_IMAGE = 9, - RECORDING = 10, - TILED = 11, -} -pub const A8R8G8B8_UINT32: SurfaceFormat = SurfaceFormat::B8G8R8A8; -pub const X8R8G8B8_UINT32: SurfaceFormat = SurfaceFormat::B8G8R8X8; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SurfaceFormat { - B8G8R8A8 = 0, - B8G8R8X8 = 1, - R8G8B8A8 = 2, - R8G8B8X8 = 3, - A8R8G8B8 = 4, - X8R8G8B8 = 5, - R8G8B8 = 6, - B8G8R8 = 7, - R5G6B5_UINT16 = 8, - A8 = 9, - YUV = 10, - NV12 = 11, - YUV422 = 12, - HSV = 13, - Lab = 14, - Depth = 15, - UNKNOWN = 16, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FilterType { - BLEND = 0, - TRANSFORM = 1, - MORPHOLOGY = 2, - COLOR_MATRIX = 3, - FLOOD = 4, - TILE = 5, - TABLE_TRANSFER = 6, - DISCRETE_TRANSFER = 7, - LINEAR_TRANSFER = 8, - GAMMA_TRANSFER = 9, - CONVOLVE_MATRIX = 10, - DISPLACEMENT_MAP = 11, - TURBULENCE = 12, - ARITHMETIC_COMBINE = 13, - COMPOSITE = 14, - DIRECTIONAL_BLUR = 15, - GAUSSIAN_BLUR = 16, - POINT_DIFFUSE = 17, - POINT_SPECULAR = 18, - SPOT_DIFFUSE = 19, - SPOT_SPECULAR = 20, - DISTANT_DIFFUSE = 21, - DISTANT_SPECULAR = 22, - CROP = 23, - PREMULTIPLY = 24, - UNPREMULTIPLY = 25, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum DrawTargetType { - SOFTWARE_RASTER = 0, - HARDWARE_RASTER = 1, - VECTOR = 2, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum BackendType { - NONE = 0, - DIRECT2D = 1, - COREGRAPHICS = 2, - COREGRAPHICS_ACCELERATED = 3, - CAIRO = 4, - SKIA = 5, - RECORDING = 6, - DIRECT2D1_1 = 7, - BACKEND_LAST = 8, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontType { - DWRITE = 0, - GDI = 1, - MAC = 2, - SKIA = 3, - CAIRO = 4, - COREGRAPHICS = 5, - FONTCONFIG = 6, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum NativeSurfaceType { - D3D10_TEXTURE = 0, - CAIRO_CONTEXT = 1, - CGCONTEXT = 2, - CGCONTEXT_ACCELERATED = 3, - OPENGL_TEXTURE = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum NativeFontType { - DWRITE_FONT_FACE = 0, - GDI_FONT_FACE = 1, - MAC_FONT_FACE = 2, - SKIA_FONT_FACE = 3, - CAIRO_FONT_FACE = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontStyle { NORMAL = 0, ITALIC = 1, BOLD = 2, BOLD_ITALIC = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontHinting { NONE = 0, LIGHT = 1, NORMAL = 2, FULL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum CompositionOp { - OP_OVER = 0, - OP_ADD = 1, - OP_ATOP = 2, - OP_OUT = 3, - OP_IN = 4, - OP_SOURCE = 5, - OP_DEST_IN = 6, - OP_DEST_OUT = 7, - OP_DEST_OVER = 8, - OP_DEST_ATOP = 9, - OP_XOR = 10, - OP_MULTIPLY = 11, - OP_SCREEN = 12, - OP_OVERLAY = 13, - OP_DARKEN = 14, - OP_LIGHTEN = 15, - OP_COLOR_DODGE = 16, - OP_COLOR_BURN = 17, - OP_HARD_LIGHT = 18, - OP_SOFT_LIGHT = 19, - OP_DIFFERENCE = 20, - OP_EXCLUSION = 21, - OP_HUE = 22, - OP_SATURATION = 23, - OP_COLOR = 24, - OP_LUMINOSITY = 25, - OP_COUNT = 26, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum Axis { X_AXIS = 0, Y_AXIS = 1, BOTH = 2, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum ExtendMode { - CLAMP = 0, - REPEAT = 1, - REPEAT_X = 2, - REPEAT_Y = 3, - REFLECT = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FillRule { FILL_WINDING = 0, FILL_EVEN_ODD = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum AntialiasMode { NONE = 0, GRAY = 1, SUBPIXEL = 2, DEFAULT = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SamplingFilter { GOOD = 0, LINEAR = 1, POINT = 2, SENTINEL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum PatternType { - COLOR = 0, - SURFACE = 1, - LINEAR_GRADIENT = 2, - RADIAL_GRADIENT = 3, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum JoinStyle { BEVEL = 0, ROUND = 1, MITER = 2, MITER_OR_BEVEL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum CapStyle { BUTT = 0, ROUND = 1, SQUARE = 2, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SamplingBounds { UNBOUNDED = 0, BOUNDED = 1, } -#[repr(C)] -#[derive(Debug, Copy)] -pub struct Color { - pub r: Float, - pub g: Float, - pub b: Float, - pub a: Float, -} -impl ::std::clone::Clone for Color { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_Color() { - assert_eq!(::std::mem::size_of::<Color>() , 16usize); - assert_eq!(::std::mem::align_of::<Color>() , 4usize); -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct GradientStop { - pub offset: Float, - pub color: Color, -} -impl ::std::clone::Clone for GradientStop { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_GradientStop() { - assert_eq!(::std::mem::size_of::<GradientStop>() , 20usize); - assert_eq!(::std::mem::align_of::<GradientStop>() , 4usize); +impl Clone for nsITimer { + fn clone(&self) -> Self { *self } } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum JobStatus { Complete = 0, Wait = 1, Yield = 2, Error = 3, } -pub type gfxImageFormat = SurfaceFormat; +/** + * Data used to track the expiration state of an object. We promise that this + * is 32 bits so that objects that includes this as a field can pad and align + * efficiently. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct RectCorner; +pub struct nsExpirationState { + pub _bitfield_1: u32, +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum RectCorner_Types_h_unnamed_11 { - TopLeft = 0, - TopRight = 1, - BottomRight = 2, - BottomLeft = 3, - Count = 4, +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsExpirationState__bindgen_ty_bindgen_id_173763 { + NOT_TRACKED = 15, + MAX_INDEX_IN_GENERATION = 268435455, +} +#[test] +fn bindgen_test_layout_nsExpirationState() { + assert_eq!(::std::mem::size_of::<nsExpirationState>() , 4usize); + assert_eq!(::std::mem::align_of::<nsExpirationState>() , 4usize); } -impl ::std::clone::Clone for RectCorner { +impl Clone for nsExpirationState { fn clone(&self) -> Self { *self } } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum Side { - eSideTop = 0, - eSideRight = 1, - eSideBottom = 2, - eSideLeft = 3, +impl nsExpirationState { + #[inline] + pub fn mGeneration(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (15usize as u32)) >> + 0u32) as u32) + } + } + #[inline] + pub fn set_mGeneration(&mut self, val: u32) { + self._bitfield_1 &= !(15usize as u32); + self._bitfield_1 |= ((val as u32 as u32) << 0u32) & (15usize as u32); + } + #[inline] + pub fn mIndexInGeneration(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967280usize as u32)) >> 4u32) as + u32) + } + } + #[inline] + pub fn set_mIndexInGeneration(&mut self, val: u32) { + self._bitfield_1 &= !(4294967280usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 4u32) & (4294967280usize as u32); + } } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SideBits { - eSideBitsNone = 0, - eSideBitsTop = 1, - eSideBitsRight = 2, - eSideBitsBottom = 4, - eSideBitsLeft = 8, - eSideBitsTopBottom = 5, - eSideBitsLeftRight = 10, - eSideBitsAll = 15, +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PRCListStr { + pub next: *mut PRCList, + pub prev: *mut PRCList, } -pub type nscoord = i32; +#[test] +fn bindgen_test_layout_PRCListStr() { + assert_eq!(::std::mem::size_of::<PRCListStr>() , 16usize); + assert_eq!(::std::mem::align_of::<PRCListStr>() , 8usize); +} +impl Clone for PRCListStr { + fn clone(&self) -> Self { *self } +} +pub type PRCList = PRCListStr; #[repr(C)] -pub struct nsIntPoint { - pub _bindgen_opaque_blob: [u32; 2usize], +#[derive(Debug, Copy, Clone)] +pub struct UnionMember<T> { + pub mStorage: AlignedStorage2<T>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct imgIRequest { + pub _base: nsIRequest, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imgIRequest_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum imgIRequest__bindgen_ty_bindgen_id_175185 { + STATUS_NONE = 0, + STATUS_SIZE_AVAILABLE = 1, + STATUS_LOAD_COMPLETE = 2, + STATUS_ERROR = 4, + STATUS_FRAME_COMPLETE = 8, + STATUS_DECODE_COMPLETE = 16, + STATUS_IS_ANIMATED = 32, + STATUS_HAS_TRANSPARENCY = 64, } #[test] -fn bindgen_test_layout_nsIntPoint() { - assert_eq!(::std::mem::size_of::<nsIntPoint>() , 8usize); - assert_eq!(::std::mem::align_of::<nsIntPoint>() , 4usize); +fn bindgen_test_layout_imgIRequest() { + assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize); + assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize); +} +impl Clone for imgIRequest { + fn clone(&self) -> Self { *self } } -/** - * These *_Simple types are used to map Gecko types to layout-equivalent but - * simpler Rust types, to aid Rust binding generation. - * - * If something in this types or the assertions below needs to change, ask - * bholley, heycam or emilio before! - * - * <div rustbindgen="true" replaces="nsPoint"> - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsPoint { - pub x: nscoord, - pub y: nscoord, +pub struct nsHTMLCSSStyleSheet { + pub _address: u8, } -impl ::std::clone::Clone for nsPoint { +impl Clone for nsHTMLCSSStyleSheet { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsPoint() { - assert_eq!(::std::mem::size_of::<nsPoint>() , 8usize); - assert_eq!(::std::mem::align_of::<nsPoint>() , 4usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsHTMLStyleSheet { + pub _address: u8, +} +impl Clone for nsHTMLStyleSheet { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIBFCacheEntry { + pub _address: u8, +} +impl Clone for nsIBFCacheEntry { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIDocumentEncoder { + pub _address: u8, +} +impl Clone for nsIDocumentEncoder { + fn clone(&self) -> Self { *self } } /** - * <div rustbindgen="true" replaces="nsMargin"> + * An internal interface */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsMargin { - pub top: nscoord, - pub right: nscoord, - pub bottom: nscoord, - pub left: nscoord, +pub struct nsIHTMLCollection { + pub _base: nsIDOMHTMLCollection, } -impl ::std::clone::Clone for nsMargin { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIHTMLCollection_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsMargin() { - assert_eq!(::std::mem::size_of::<nsMargin>() , 16usize); - assert_eq!(::std::mem::align_of::<nsMargin>() , 4usize); +fn bindgen_test_layout_nsIHTMLCollection() { + assert_eq!(::std::mem::size_of::<nsIHTMLCollection>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIHTMLCollection>() , 8usize); +} +impl Clone for nsIHTMLCollection { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIObjectLoadingContent { + pub _address: u8, +} +impl Clone for nsIObjectLoadingContent { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIStructuredCloneContainer { + pub _address: u8, +} +impl Clone for nsIStructuredCloneContainer { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsViewManager { + pub _address: u8, +} +impl Clone for nsViewManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsSMILAnimationController { + pub _address: u8, } +impl Clone for nsSMILAnimationController { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct SVGAttrAnimationRuleProcessor { + pub _address: u8, +} +impl Clone for SVGAttrAnimationRuleProcessor { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Loader { + pub _address: u8, +} +impl Clone for Loader { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ImageLoader { + pub _address: u8, +} +impl Clone for ImageLoader { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Animation { + pub _address: u8, +} +impl Clone for Animation { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct AnonymousContent { + pub _address: u8, +} +impl Clone for AnonymousContent { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct Attr { + pub _base: nsIAttribute, + pub _base_1: nsIDOMAttr, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mValue: nsString, +} +pub type Attr_HasThreadSafeRefCnt = FalseType; #[repr(C)] -pub struct nsIntMargin { - pub _bindgen_opaque_blob: [u32; 4usize], +#[derive(Debug, Copy)] +pub struct Attr_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_Attr_cycleCollection() { + assert_eq!(::std::mem::size_of::<Attr_cycleCollection>() , 16usize); + assert_eq!(::std::mem::align_of::<Attr_cycleCollection>() , 8usize); +} +impl Clone for Attr_cycleCollection { + fn clone(&self) -> Self { *self } +} +extern "C" { + #[link_name = "_ZN7mozilla3dom4Attr21_cycleCollectorGlobalE"] + pub static mut Attr__cycleCollectorGlobal: Attr_cycleCollection; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom4Attr12sInitializedE"] + pub static mut Attr_sInitialized: bool; } #[test] -fn bindgen_test_layout_nsIntMargin() { - assert_eq!(::std::mem::size_of::<nsIntMargin>() , 16usize); - assert_eq!(::std::mem::align_of::<nsIntMargin>() , 4usize); +fn bindgen_test_layout_Attr() { + assert_eq!(::std::mem::size_of::<Attr>() , 152usize); + assert_eq!(::std::mem::align_of::<Attr>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsIAttribute { + pub _base: nsINode, + pub mAttrMap: RefPtr<nsDOMAttributeMap>, } #[repr(C)] -pub struct nsIntRect { - pub _bindgen_opaque_blob: [u32; 4usize], +#[derive(Debug, Copy, Clone)] +pub struct nsIAttribute_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsIntRect() { - assert_eq!(::std::mem::size_of::<nsIntRect>() , 16usize); - assert_eq!(::std::mem::align_of::<nsIntRect>() , 4usize); +fn bindgen_test_layout_nsIAttribute() { + assert_eq!(::std::mem::size_of::<nsIAttribute>() , 112usize); + assert_eq!(::std::mem::align_of::<nsIAttribute>() , 8usize); } -/** - * <div rustbindgen="true" replaces="nsRect"> - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsRect { - pub x: nscoord, - pub y: nscoord, - pub width: nscoord, - pub height: nscoord, +pub struct FontFaceSet { + pub _address: u8, } -impl ::std::clone::Clone for nsRect { +impl Clone for FontFaceSet { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct FrameRequestCallback { + pub _base: CallbackFunction, +} #[test] -fn bindgen_test_layout_nsRect() { - assert_eq!(::std::mem::size_of::<nsRect>() , 16usize); - assert_eq!(::std::mem::align_of::<nsRect>() , 4usize); +fn bindgen_test_layout_FrameRequestCallback() { + assert_eq!(::std::mem::size_of::<FrameRequestCallback>() , 56usize); + assert_eq!(::std::mem::align_of::<FrameRequestCallback>() , 8usize); } -pub enum AnimationEffectReadOnly { } -pub enum AnimationEffectReadOnlyAtoms { } -pub enum AnimationEffectTimingPropertiesAtoms { } -pub enum ComputedTimingPropertiesAtoms { } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FullscreenRequest { + pub _address: u8, +} +impl Clone for FullscreenRequest { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct UndoManager { + pub _address: u8, +} +impl Clone for UndoManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct XPathEvaluator { + pub _address: u8, +} +impl Clone for XPathEvaluator { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum FillMode { None = 0, Forwards = 1, @@ -3293,8 +6954,8 @@ pub enum FillMode { Auto = 4, EndGuard_ = 5, } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum PlaybackDirection { Normal = 0, Reverse = 1, @@ -3302,7 +6963,6 @@ pub enum PlaybackDirection { Alternate_reverse = 3, EndGuard_ = 4, } -pub type NativeType = AnimationEffectReadOnly; #[repr(C)] #[derive(Debug)] pub struct nsAttrName { @@ -3313,199 +6973,55 @@ fn bindgen_test_layout_nsAttrName() { assert_eq!(::std::mem::size_of::<nsAttrName>() , 8usize); assert_eq!(::std::mem::align_of::<nsAttrName>() , 8usize); } -pub type nscolor = u32; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsHexColorType { NoAlpha = 0, AllowAlpha = 1, } -pub enum nsStyledElement { } -pub enum MiscContainer { } -pub enum ServoDeclarationBlock { } -pub enum Declaration { } -/** - * A class used to construct a nsString from a nsStringBuffer (we might - * want to move this to nsString at some point). - * - * WARNING: Note that nsCheapString doesn't take an explicit length -- it - * assumes the string is maximally large, given the nsStringBuffer's storage - * size. This means the given string buffer *must* be sized exactly correctly - * for the string it contains (including one byte for a null terminator). If - * it has any unused storage space, then that will result in bogus characters - * at the end of our nsCheapString. - */ #[repr(C)] -#[derive(Debug)] -pub struct nsCheapString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct Declaration { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsCheapString() { - assert_eq!(::std::mem::size_of::<nsCheapString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCheapString>() , 8usize); +impl Clone for Declaration { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct nsAttrValue { - pub mBits: usize, -} -pub const eSVGTypesBegin: nsAttrValue_ValueType = - nsAttrValue_ValueType::eSVGAngle; -pub const eSVGTypesEnd: nsAttrValue_ValueType = - nsAttrValue_ValueType::eSVGViewBox; -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAttrValue_ValueType { - eString = 0, - eAtom = 2, - eInteger = 3, - eColor = 7, - eEnum = 11, - ePercent = 15, - eGeckoCSSDeclaration = 16, - eServoCSSDeclaration = 17, - eURL = 18, - eImage = 19, - eAtomArray = 20, - eDoubleValue = 21, - eIntMarginValue = 22, - eSVGAngle = 23, - eSVGIntegerPair = 24, - eSVGLength = 25, - eSVGLengthList = 26, - eSVGNumberList = 27, - eSVGNumberPair = 28, - eSVGPathData = 29, - eSVGPointList = 30, - eSVGPreserveAspectRatio = 31, - eSVGStringList = 32, - eSVGTransformList = 33, - eSVGViewBox = 34, -} -/** - * Structure for a mapping from int (enum) values to strings. When you use - * it you generally create an array of them. - * Instantiate like this: - * EnumTable myTable[] = { - * { "string1", 1 }, - * { "string2", 2 }, - * { nullptr, 0 } - * } - */ -#[repr(C)] -#[derive(Debug, Copy)] -pub struct nsAttrValue_EnumTable { - /** The string the value maps to */ - pub tag: *const ::std::os::raw::c_char, - /** The enum value that maps to this string */ - pub value: i16, -} -impl ::std::clone::Clone for nsAttrValue_EnumTable { - fn clone(&self) -> Self { *self } +pub struct URLValue { + pub _base: URLValueData, + pub mRefCnt: ThreadSafeAutoRefCnt, } +pub type URLValue_HasThreadSafeRefCnt = TrueType; #[test] -fn bindgen_test_layout_nsAttrValue_EnumTable() { - assert_eq!(::std::mem::size_of::<nsAttrValue_EnumTable>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAttrValue_EnumTable>() , 8usize); +fn bindgen_test_layout_URLValue() { + assert_eq!(::std::mem::size_of::<URLValue>() , 56usize); + assert_eq!(::std::mem::align_of::<URLValue>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAttrValue_ValueBaseType { - eStringBase = 0, - eOtherBase = 1, - eAtomBase = 2, - eIntegerBase = 3, +#[repr(C)] +#[derive(Debug)] +pub struct URLValueData { + pub mURI: nsMainThreadPtrHandle<nsIURI>, + pub mBaseURI: nsMainThreadPtrHandle<nsIURI>, + pub mString: RefPtr<nsStringBuffer>, + pub mReferrer: nsMainThreadPtrHandle<nsIURI>, + pub mOriginPrincipal: nsMainThreadPtrHandle<nsIPrincipal>, + pub mURIResolved: bool, + pub mLocalURLFlag: bool, } #[test] -fn bindgen_test_layout_nsAttrValue() { - assert_eq!(::std::mem::size_of::<nsAttrValue>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAttrValue>() , 8usize); -} -extern "C" { - #[link_name = "_ZN11nsAttrValue15sEnumTableArrayE"] - pub static mut nsAttrValue_consts_sEnumTableArray: - nsTArray<*const nsAttrValue_EnumTable>; -} -pub enum nsCSSSelector { } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsChangeHint { - nsChangeHint_RepaintFrame = 1, - nsChangeHint_NeedReflow = 2, - nsChangeHint_ClearAncestorIntrinsics = 4, - nsChangeHint_ClearDescendantIntrinsics = 8, - nsChangeHint_NeedDirtyReflow = 16, - nsChangeHint_SyncFrameView = 32, - nsChangeHint_UpdateCursor = 64, - nsChangeHint_UpdateEffects = 128, - nsChangeHint_UpdateOpacityLayer = 256, - nsChangeHint_UpdateTransformLayer = 512, - nsChangeHint_ReconstructFrame = 1024, - nsChangeHint_UpdateOverflow = 2048, - nsChangeHint_UpdateSubtreeOverflow = 4096, - nsChangeHint_UpdatePostTransformOverflow = 8192, - nsChangeHint_UpdateParentOverflow = 16384, - nsChangeHint_ChildrenOnlyTransform = 32768, - nsChangeHint_RecomputePosition = 65536, - nsChangeHint_UpdateContainingBlock = 131072, - nsChangeHint_BorderStyleNoneChange = 262144, - nsChangeHint_UpdateTextPath = 524288, - nsChangeHint_SchedulePaint = 1048576, - nsChangeHint_NeutralChange = 2097152, - nsChangeHint_InvalidateRenderingObservers = 4194304, - nsChangeHint_ReflowChangesSizeOrPosition = 8388608, - nsChangeHint_UpdateComputedBSize = 16777216, - nsChangeHint_UpdateUsesOpacity = 33554432, - nsChangeHint_UpdateBackgroundPosition = 67108864, - nsChangeHint_AllHints = 134217727, -} -pub type nsChangeHint_size_t = ::std::os::raw::c_int; -/** - * |nsRestyleHint| is a bitfield for the result of - * |HasStateDependentStyle| and |HasAttributeDependentStyle|. When no - * restyling is necessary, use |nsRestyleHint(0)|. - * - * Without eRestyle_Force or eRestyle_ForceDescendants, the restyling process - * can stop processing at a frame when it detects no style changes and it is - * known that the styles of the subtree beneath it will not change, leaving - * the old style context on the frame. eRestyle_Force can be used to skip this - * optimization on a frame, and to force its new style context to be used. - * - * Similarly, eRestyle_ForceDescendants will cause the frame and all of its - * descendants to be traversed and for the new style contexts that are created - * to be set on the frames. - * - * NOTE: When adding new restyle hints, please also add them to - * RestyleManager::RestyleHintToString. - */ -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsRestyleHint { - eRestyle_Self = 1, - eRestyle_SomeDescendants = 2, - eRestyle_Subtree = 4, - eRestyle_LaterSiblings = 8, - eRestyle_CSSTransitions = 16, - eRestyle_CSSAnimations = 32, - eRestyle_SVGAttrAnimations = 64, - eRestyle_StyleAttribute = 128, - eRestyle_StyleAttribute_Animations = 256, - eRestyle_Force = 512, - eRestyle_ForceDescendants = 1024, - eRestyle_AllHintsWithAnimations = 368, +fn bindgen_test_layout_URLValueData() { + assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize); + assert_eq!(::std::mem::align_of::<URLValueData>() , 8usize); } -pub type nsRestyleHint_size_t = ::std::os::raw::c_int; -/** - * Additional data used in conjunction with an nsRestyleHint to control the - * restyle process. - */ #[repr(C)] #[derive(Debug)] -pub struct RestyleHintData { - pub mSelectorsForDescendants: nsTArray<*mut nsCSSSelector>, +pub struct ImageValue { + pub _base: URLValueData, + pub mRequests: [u64; 6usize], + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type ImageValue_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_RestyleHintData() { - assert_eq!(::std::mem::size_of::<RestyleHintData>() , 8usize); - assert_eq!(::std::mem::align_of::<RestyleHintData>() , 8usize); +fn bindgen_test_layout_ImageValue() { + assert_eq!(::std::mem::size_of::<ImageValue>() , 112usize); + assert_eq!(::std::mem::align_of::<ImageValue>() , 8usize); } /** * A structure representing a single attribute name and value. @@ -3523,12 +7039,12 @@ fn bindgen_test_layout_ServoAttrSnapshot() { assert_eq!(::std::mem::size_of::<ServoAttrSnapshot>() , 16usize); assert_eq!(::std::mem::align_of::<ServoAttrSnapshot>() , 8usize); } +#[repr(u8)] /** * A bitflags enum class used to determine what data does a ServoElementSnapshot * contains. */ -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum ServoElementSnapshotFlags { State = 1, Attributes = 2, All = 3, } /** * This class holds all non-tree-structural state of an element that might be @@ -3540,268 +7056,304 @@ pub enum ServoElementSnapshotFlags { State = 1, Attributes = 2, All = 3, } #[repr(C)] #[derive(Debug)] pub struct ServoElementSnapshot { - pub mContains: ServoElementSnapshotFlags, + pub mContains: ServoElementSnapshot_Flags, pub mAttrs: nsTArray<ServoAttrSnapshot>, - pub mState: ::std::os::raw::c_uchar, + pub mState: ServoElementSnapshot_ServoStateType, pub mExplicitRestyleHint: nsRestyleHint, pub mExplicitChangeHint: nsChangeHint, pub mIsHTMLElementInHTMLDocument: bool, pub mIsInChromeDocument: bool, } +pub type ServoElementSnapshot_BorrowedAttrInfo = BorrowedAttrInfo; +pub type ServoElementSnapshot_Element = Element; +pub type ServoElementSnapshot_ServoStateType = EventStates_ServoType; +pub type ServoElementSnapshot_Flags = ServoElementSnapshotFlags; #[test] fn bindgen_test_layout_ServoElementSnapshot() { assert_eq!(::std::mem::size_of::<ServoElementSnapshot>() , 32usize); assert_eq!(::std::mem::align_of::<ServoElementSnapshot>() , 8usize); } -pub enum ErrorReporter { } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSTokenType { - eCSSToken_Whitespace = 0, - eCSSToken_Comment = 1, - eCSSToken_Ident = 2, - eCSSToken_Function = 3, - eCSSToken_AtKeyword = 4, - eCSSToken_ID = 5, - eCSSToken_Hash = 6, - eCSSToken_Number = 7, - eCSSToken_Dimension = 8, - eCSSToken_Percentage = 9, - eCSSToken_String = 10, - eCSSToken_Bad_String = 11, - eCSSToken_URL = 12, - eCSSToken_Bad_URL = 13, - eCSSToken_Symbol = 14, - eCSSToken_Includes = 15, - eCSSToken_Dashmatch = 16, - eCSSToken_Beginsmatch = 17, - eCSSToken_Endsmatch = 18, - eCSSToken_Containsmatch = 19, - eCSSToken_URange = 20, - eCSSToken_HTMLComment = 21, +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsMappedAttributes { + pub _address: u8, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSTokenSerializationType { - eCSSTokenSerialization_Nothing = 0, - eCSSTokenSerialization_Whitespace = 1, - eCSSTokenSerialization_AtKeyword_or_Hash = 2, - eCSSTokenSerialization_Number = 3, - eCSSTokenSerialization_Dimension = 4, - eCSSTokenSerialization_Percentage = 5, - eCSSTokenSerialization_URange = 6, - eCSSTokenSerialization_URL_or_BadURL = 7, - eCSSTokenSerialization_Function = 8, - eCSSTokenSerialization_Ident = 9, - eCSSTokenSerialization_CDC = 10, - eCSSTokenSerialization_DashMatch = 11, - eCSSTokenSerialization_ContainsMatch = 12, - eCSSTokenSerialization_Symbol_Hash = 13, - eCSSTokenSerialization_Symbol_At = 14, - eCSSTokenSerialization_Symbol_Dot_or_Plus = 15, - eCSSTokenSerialization_Symbol_Minus = 16, - eCSSTokenSerialization_Symbol_OpenParen = 17, - eCSSTokenSerialization_Symbol_Question = 18, - eCSSTokenSerialization_Symbol_Assorted = 19, - eCSSTokenSerialization_Symbol_Equals = 20, - eCSSTokenSerialization_Symbol_Bar = 21, - eCSSTokenSerialization_Symbol_Slash = 22, - eCSSTokenSerialization_Symbol_Asterisk = 23, - eCSSTokenSerialization_Other = 24, +impl Clone for nsMappedAttributes { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsCSSToken { - pub mIdent: nsAutoString, - pub mNumber: f32, - pub mInteger: i32, - pub mInteger2: i32, - pub mType: nsCSSTokenType, - pub mSymbol: ::std::os::raw::c_ushort, - pub mIntegerValid: bool, - pub mHasSign: bool, +#[derive(Debug, Copy)] +pub struct nsXBLBinding { + pub _address: u8, +} +impl Clone for nsXBLBinding { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ShadowRoot { + pub _address: u8, +} +impl Clone for ShadowRoot { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct CustomElementData { + pub _address: u8, +} +impl Clone for CustomElementData { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct IMEState { + pub _address: u8, +} +impl Clone for IMEState { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMTokenList { + pub _address: u8, +} +impl Clone for nsDOMTokenList { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMStringMap { + pub _address: u8, +} +impl Clone for nsDOMStringMap { + fn clone(&self) -> Self { *self } +} +/** + * Interface used for handling clicks on links + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsILinkHandler { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILinkHandler_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsCSSToken() { - assert_eq!(::std::mem::size_of::<nsCSSToken>() , 184usize); - assert_eq!(::std::mem::align_of::<nsCSSToken>() , 8usize); +fn bindgen_test_layout_nsILinkHandler() { + assert_eq!(::std::mem::size_of::<nsILinkHandler>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILinkHandler>() , 8usize); +} +impl Clone for nsILinkHandler { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSScannerPosition { - pub mOffset: u32, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mTokenLineNumber: u32, - pub mTokenLineOffset: u32, - pub mTokenOffset: u32, - pub mInitialized: bool, +pub struct nsStyleContext { + pub _address: u8, +} +impl Clone for nsStyleContext { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsFrameManagerBase { + pub mPresShell: *mut nsIPresShell, + pub mRootFrame: *mut nsIFrame, + pub mPlaceholderMap: PLDHashTable, + pub mUndisplayedMap: *mut nsFrameManagerBase_UndisplayedMap, + pub mDisplayContentsMap: *mut nsFrameManagerBase_UndisplayedMap, + pub mIsDestroyingFrames: bool, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsFrameManagerBase_UndisplayedMap { + pub _address: u8, } -impl ::std::clone::Clone for nsCSSScannerPosition { +impl Clone for nsFrameManagerBase_UndisplayedMap { fn clone(&self) -> Self { *self } } +extern "C" { + #[link_name = "_ZN18nsFrameManagerBase23sGlobalGenerationNumberE"] + pub static mut nsFrameManagerBase_sGlobalGenerationNumber: u32; +} #[test] -fn bindgen_test_layout_nsCSSScannerPosition() { - assert_eq!(::std::mem::size_of::<nsCSSScannerPosition>() , 28usize); - assert_eq!(::std::mem::align_of::<nsCSSScannerPosition>() , 4usize); +fn bindgen_test_layout_nsFrameManagerBase() { + assert_eq!(::std::mem::size_of::<nsFrameManagerBase>() , 88usize); + assert_eq!(::std::mem::align_of::<nsFrameManagerBase>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSScannerExclude { - eCSSScannerExclude_None = 0, - eCSSScannerExclude_Comments = 1, - eCSSScannerExclude_WhitespaceAndComments = 2, +#[repr(C)] +#[derive(Debug)] +pub struct nsPresArena { + pub mFreeLists: [u64; 6usize], + pub mPool: [u64; 7usize], + pub mArenaRefPtrs: [u64; 6usize], } #[repr(C)] #[derive(Debug)] -pub struct nsCSSScanner { - pub mBuffer: *const ::std::os::raw::c_ushort, - pub mOffset: u32, - pub mCount: u32, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mTokenLineNumber: u32, - pub mTokenLineOffset: u32, - pub mTokenOffset: u32, - pub mRecordStartOffset: u32, - pub mEOFCharacters: nsCSSScanner_EOFCharacters, - pub mReporter: *mut ErrorReporter, - pub mSVGMode: bool, - pub mRecording: bool, - pub mSeenBadToken: bool, - pub mSeenVariableReference: bool, +pub struct nsPresArena_FreeList { + pub _base: PLDHashEntryHdr, + pub mEntries: nsTArray<*mut ::std::os::raw::c_void>, + pub mEntrySize: usize, + pub mEntriesEverAllocated: usize, + pub mKey: nsPresArena_FreeList_KeyTypePointer, } +pub type nsPresArena_FreeList_KeyType = u32; +pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSScanner_EOFCharacters { - eEOFCharacters_None = 0, - eEOFCharacters_DropBackslash = 1, - eEOFCharacters_ReplacementChar = 2, - eEOFCharacters_Asterisk = 4, - eEOFCharacters_Slash = 8, - eEOFCharacters_DoubleQuote = 16, - eEOFCharacters_SingleQuote = 32, - eEOFCharacters_CloseParen = 64, +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_195712 { + ALLOW_MEMMOVE = 0, +} +#[test] +fn bindgen_test_layout_nsPresArena_FreeList() { + assert_eq!(::std::mem::size_of::<nsPresArena_FreeList>() , 40usize); + assert_eq!(::std::mem::align_of::<nsPresArena_FreeList>() , 8usize); } #[test] -fn bindgen_test_layout_nsCSSScanner() { - assert_eq!(::std::mem::size_of::<nsCSSScanner>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSScanner>() , 8usize); +fn bindgen_test_layout_nsPresArena() { + assert_eq!(::std::mem::size_of::<nsPresArena>() , 152usize); + assert_eq!(::std::mem::align_of::<nsPresArena>() , 8usize); } #[repr(C)] -pub struct nsCSSGridTemplateAreaToken { - pub mName: nsAutoString, - pub isTrash: bool, +#[derive(Debug, Copy)] +pub struct imgINotificationObserver { + pub _base: nsISupports, } -#[test] -fn bindgen_test_layout_nsCSSGridTemplateAreaToken() { - assert_eq!(::std::mem::size_of::<nsCSSGridTemplateAreaToken>() , - 168usize); - assert_eq!(::std::mem::align_of::<nsCSSGridTemplateAreaToken>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imgINotificationObserver_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum imgINotificationObserver__bindgen_ty_bindgen_id_195859 { + SIZE_AVAILABLE = 1, + FRAME_UPDATE = 2, + FRAME_COMPLETE = 3, + LOAD_COMPLETE = 4, + DECODE_COMPLETE = 5, + DISCARD = 6, + UNLOCKED_DRAW = 7, + IS_ANIMATED = 8, + HAS_TRANSPARENCY = 9, +} +#[test] +fn bindgen_test_layout_imgINotificationObserver() { + assert_eq!(::std::mem::size_of::<imgINotificationObserver>() , 8usize); + assert_eq!(::std::mem::align_of::<imgINotificationObserver>() , 8usize); +} +impl Clone for imgINotificationObserver { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSGridTemplateAreaScanner { - pub mBuffer: *const ::std::os::raw::c_ushort, - pub mOffset: u32, - pub mCount: u32, +pub struct nsFrameSelection { + pub _address: u8, } -impl ::std::clone::Clone for nsCSSGridTemplateAreaScanner { +impl Clone for nsFrameSelection { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsCSSGridTemplateAreaScanner() { - assert_eq!(::std::mem::size_of::<nsCSSGridTemplateAreaScanner>() , - 16usize); - assert_eq!(::std::mem::align_of::<nsCSSGridTemplateAreaScanner>() , - 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCSSFrameConstructor { + pub _address: u8, +} +impl Clone for nsCSSFrameConstructor { + fn clone(&self) -> Self { *self } } -pub enum CSSVariableResolver { } #[repr(C)] -pub struct CSSVariableValues { - pub mVariableIDs: [u64; 6usize], - /** - * Array of variables, indexed by variable ID. - */ - pub mVariables: nsTArray<CSSVariableValues_Variable>, +#[derive(Debug, Copy)] +pub struct nsWeakFrame { + pub _address: u8, +} +impl Clone for nsWeakFrame { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct CSSVariableValues_Variable { - pub mVariableName: nsString, - pub mValue: nsString, - pub mFirstToken: nsCSSTokenSerializationType, - pub mLastToken: nsCSSTokenSerializationType, +pub struct ScrollbarStyles { + pub mHorizontal: u8, + pub mVertical: u8, + pub mScrollBehavior: u8, + pub mScrollSnapTypeX: u8, + pub mScrollSnapTypeY: u8, + pub mScrollSnapPointsX: nsStyleCoord, + pub mScrollSnapPointsY: nsStyleCoord, + pub mScrollSnapDestinationX: nsStyleCoord_CalcValue, + pub mScrollSnapDestinationY: nsStyleCoord_CalcValue, } #[test] -fn bindgen_test_layout_CSSVariableValues_Variable() { - assert_eq!(::std::mem::size_of::<CSSVariableValues_Variable>() , 40usize); - assert_eq!(::std::mem::align_of::<CSSVariableValues_Variable>() , 8usize); +fn bindgen_test_layout_ScrollbarStyles() { + assert_eq!(::std::mem::size_of::<ScrollbarStyles>() , 64usize); + assert_eq!(::std::mem::align_of::<ScrollbarStyles>() , 8usize); } -#[test] -fn bindgen_test_layout_CSSVariableValues() { - assert_eq!(::std::mem::size_of::<CSSVariableValues>() , 56usize); - assert_eq!(::std::mem::align_of::<CSSVariableValues>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsRefreshDriver { + pub _address: u8, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SheetType { - Agent = 0, - User = 1, - PresHint = 2, - SVGAttrAnimation = 3, - Doc = 4, - ScopedDoc = 5, - StyleAttr = 6, - Override = 7, - Animation = 8, - Transition = 9, - Count = 10, - Unknown = -1, +impl Clone for nsRefreshDriver { + fn clone(&self) -> Self { *self } } -/** - * StaticAutoPtr and StaticRefPtr are like nsAutoPtr and nsRefPtr, except they - * are suitable for use as global variables. - * - * In particular, a global instance of Static{Auto,Ref}Ptr doesn't cause the - * compiler to emit a static initializer (in release builds, anyway). - * - * In order to accomplish this, Static{Auto,Ref}Ptr must have a trivial - * constructor and destructor. As a consequence, it cannot initialize its raw - * pointer to 0 on construction, and it cannot delete/release its raw pointer - * upon destruction. - * - * Since the compiler guarantees that all global variables are initialized to - * 0, these trivial constructors are safe. Since we rely on this, the clang - * plugin, run as part of our "static analysis" builds, makes it a compile-time - * error to use Static{Auto,Ref}Ptr as anything except a global variable. - * - * Static{Auto,Ref}Ptr have a limited interface as compared to ns{Auto,Ref}Ptr; - * this is intentional, since their range of acceptable uses is smaller. - */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StaticAutoPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct DocAccessible { + pub _address: u8, +} +impl Clone for DocAccessible { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StaticRefPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct LayerManager { + pub _address: u8, +} +impl Clone for LayerManager { + fn clone(&self) -> Self { *self } } -pub enum Zero { } -pub const eFamily_generic_first: FontFamilyType = +#[repr(C)] +#[derive(Debug, Copy)] +pub struct SourceSurface { + pub _address: u8, +} +impl Clone for SourceSurface { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct CapturingContentInfo { + pub mAllowed: bool, + pub mPointerLock: bool, + pub mRetargetToElement: bool, + pub mPreventDrag: bool, + pub mContent: StaticRefPtr<nsIContent>, +} +#[test] +fn bindgen_test_layout_CapturingContentInfo() { + assert_eq!(::std::mem::size_of::<CapturingContentInfo>() , 16usize); + assert_eq!(::std::mem::align_of::<CapturingContentInfo>() , 8usize); +} +pub const FontFamilyType_eFamily_generic_first: FontFamilyType = FontFamilyType::eFamily_serif; -pub const eFamily_generic_last: FontFamilyType = +pub const FontFamilyType_eFamily_generic_last: FontFamilyType = FontFamilyType::eFamily_fantasy; -pub const eFamily_generic_count: FontFamilyType = +pub const FontFamilyType_eFamily_generic_count: FontFamilyType = FontFamilyType::eFamily_monospace; +#[repr(u32)] /** * type of font family name, either a name (e.g. Helvetica) or a * generic (e.g. serif, sans-serif), with the ability to distinguish * between unquoted and quoted names for serializaiton */ -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum FontFamilyType { eFamily_none = 0, eFamily_named = 1, @@ -3814,9 +7366,6 @@ pub enum FontFamilyType { eFamily_moz_variable = 8, eFamily_moz_fixed = 9, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum QuotedName { eQuotedName = 0, eUnquotedName = 1, } /** * font family name, a string for the name if not a generic and * a font type indicated named family or which generic family @@ -3854,14 +7403,14 @@ pub struct gfxFontFeature { pub mTag: u32, pub mValue: u32, } -impl ::std::clone::Clone for gfxFontFeature { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_gfxFontFeature() { assert_eq!(::std::mem::size_of::<gfxFontFeature>() , 8usize); assert_eq!(::std::mem::align_of::<gfxFontFeature>() , 4usize); } +impl Clone for gfxFontFeature { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug)] pub struct gfxAlternateValue { @@ -3874,22 +7423,84 @@ fn bindgen_test_layout_gfxAlternateValue() { assert_eq!(::std::mem::align_of::<gfxAlternateValue>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct gfxFontFeatureValueSet { - pub _bindgen_opaque_blob: [u64; 8usize], + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mFontFeatureValues: [u64; 6usize], +} +pub type gfxFontFeatureValueSet_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_ValueList { + pub name: nsString, + pub featureSelectors: nsTArray<::std::os::raw::c_uint>, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_ValueList>() , + 24usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_ValueList>() , + 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValues { + pub alternate: u32, + pub valuelist: nsTArray<gfxFontFeatureValueSet_ValueList>, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValues() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValues>() , + 16usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValues>() + , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValueHashKey { + pub mFamily: nsString, + pub mPropVal: u32, + pub mName: nsString, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashKey() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashKey>() + , 40usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashKey>() + , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValueHashEntry { + pub _base: PLDHashEntryHdr, + pub mKey: gfxFontFeatureValueSet_FeatureValueHashKey, + pub mValues: nsTArray<::std::os::raw::c_uint>, +} +pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType = + *const gfxFontFeatureValueSet_FeatureValueHashKey; +pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer = + *const gfxFontFeatureValueSet_FeatureValueHashKey; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_197113 + { + ALLOW_MEMMOVE = 1, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>() + , 56usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>() + , 8usize); } #[test] fn bindgen_test_layout_gfxFontFeatureValueSet() { assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet>() , 64usize); assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet>() , 8usize); } -pub enum gfxFontStyle { } -pub type nsFontFamilyEnumFunc = - ::std::option::Option<unsafe extern "C" fn(aFamily: *const nsString, - aGeneric: bool, - aData: - *mut ::std::os::raw::c_void) - -> bool>; #[repr(C)] +#[derive(Debug)] pub struct nsFont { pub fontlist: FontFamilyList, pub style: u8, @@ -3918,16 +7529,192 @@ fn bindgen_test_layout_nsFont() { assert_eq!(::std::mem::size_of::<nsFont>() , 88usize); assert_eq!(::std::mem::align_of::<nsFont>() , 8usize); } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub type TimeStampValue = u64; +/** + * Instances of this class represent moments in time, or a special + * "null" moment. We do not use the non-monotonic system clock or + * local time, since they can be reset, causing apparent backward + * travel in time, which can confuse algorithms. Instead we measure + * elapsed time according to the system. This time can never go + * backwards (i.e. it never wraps around, at least not in less than + * five million years of system elapsed time). It might not advance + * while the system is sleeping. If TimeStamp::SetNow() is not called + * at all for hours or days, we might not notice the passage of some + * of that time. + * + * We deliberately do not expose a way to convert TimeStamps to some + * particular unit. All you can do is compute a difference between two + * TimeStamps to get a TimeDuration. You can also add a TimeDuration + * to a TimeStamp to get a new TimeStamp. You can't do something + * meaningless like add two TimeStamps. + * + * Internally this is implemented as either a wrapper around + * - high-resolution, monotonic, system clocks if they exist on this + * platform + * - PRIntervalTime otherwise. We detect wraparounds of + * PRIntervalTime and work around them. + * + * This class is similar to C++11's time_point, however it is + * explicitly nullable and provides an IsNull() method. time_point + * is initialized to the clock's epoch and provides a + * time_since_epoch() method that functions similiarly. i.e. + * t.IsNull() is equivalent to t.time_since_epoch() == decltype(t)::duration::zero(); + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct TimeStamp { + /** + * When built with PRIntervalTime, a value of 0 means this instance + * is "null". Otherwise, the low 32 bits represent a PRIntervalTime, + * and the high 32 bits represent a counter of the number of + * rollovers of PRIntervalTime that we've seen. This counter starts + * at 1 to avoid a real time colliding with the "null" value. + * + * PR_INTERVAL_MAX is set at 100,000 ticks per second. So the minimum + * time to wrap around is about 2^64/100000 seconds, i.e. about + * 5,849,424 years. + * + * When using a system clock, a value is system dependent. + */ + pub mValue: TimeStampValue, +} +#[test] +fn bindgen_test_layout_TimeStamp() { + assert_eq!(::std::mem::size_of::<TimeStamp>() , 8usize); + assert_eq!(::std::mem::align_of::<TimeStamp>() , 8usize); +} +impl Clone for TimeStamp { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyDescriptorUntyped { + pub mDestructor: FramePropertyDescriptorUntyped_UntypedDestructor, + pub mDestructorWithFrame: FramePropertyDescriptorUntyped_UntypedDestructorWithFrame, +} +/** + * mDestructor will be called if it's non-null. + */ +pub type FramePropertyDescriptorUntyped_UntypedDestructor = + ::std::option::Option<unsafe extern "C" fn(aPropertyValue: + *mut ::std::os::raw::c_void)>; +/** + * mDestructorWithFrame will be called if it's non-null and mDestructor + * is null. WARNING: The frame passed to mDestructorWithFrame may + * be a dangling frame pointer, if this is being called during + * presshell teardown. Do not use it except to compare against + * other frame pointers. No frame will have been allocated with + * the same address yet. + */ +pub type FramePropertyDescriptorUntyped_UntypedDestructorWithFrame = + ::std::option::Option<unsafe extern "C" fn(aFrame: *const nsIFrame, + aPropertyValue: + *mut ::std::os::raw::c_void)>; +#[test] +fn bindgen_test_layout_FramePropertyDescriptorUntyped() { + assert_eq!(::std::mem::size_of::<FramePropertyDescriptorUntyped>() , + 16usize); + assert_eq!(::std::mem::align_of::<FramePropertyDescriptorUntyped>() , + 8usize); +} +impl Clone for FramePropertyDescriptorUntyped { + fn clone(&self) -> Self { *self } +} +/** + * The FramePropertyTable is optimized for storing 0 or 1 properties on + * a given frame. Storing very large numbers of properties on a single + * frame will not be efficient. + * + * Property values are passed as void* but do not actually have to be + * valid pointers. You can use NS_INT32_TO_PTR/NS_PTR_TO_INT32 to + * store int32_t values. Null/zero values can be stored and retrieved. + * Of course, the destructor function (if any) must handle such values + * correctly. + */ +#[repr(C)] +#[derive(Debug)] +pub struct FramePropertyTable { + pub mEntries: [u64; 6usize], + pub mLastFrame: *const nsIFrame, + pub mLastEntry: *mut FramePropertyTable_Entry, +} +pub type FramePropertyTable_UntypedDescriptor = + *const FramePropertyDescriptorUntyped; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FramePropertyTable_ReinterpretHelper<T> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, +} +/** + * Stores a property descriptor/value pair. It can also be used to + * store an nsTArray of PropertyValues. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyTable_PropertyValue { + pub mProperty: FramePropertyTable_UntypedDescriptor, + pub mValue: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_PropertyValue() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_PropertyValue>() , + 16usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_PropertyValue>() , + 8usize); +} +impl Clone for FramePropertyTable_PropertyValue { + fn clone(&self) -> Self { *self } +} +/** + * Used with an array of PropertyValues to allow lookups that compare + * only on the FramePropertyDescriptor. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyTable_PropertyComparator { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_PropertyComparator() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_PropertyComparator>() + , 1usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_PropertyComparator>() + , 1usize); +} +impl Clone for FramePropertyTable_PropertyComparator { + fn clone(&self) -> Self { *self } +} +/** + * Our hashtable entry. The key is an nsIFrame*, the value is a + * PropertyValue representing one or more property/value pairs. + */ +#[repr(C)] +#[derive(Debug)] +pub struct FramePropertyTable_Entry { + pub _base: nsPtrHashKey<nsIFrame>, + pub mProp: FramePropertyTable_PropertyValue, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_Entry() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_Entry>() , 32usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_Entry>() , 8usize); +} +#[test] +fn bindgen_test_layout_FramePropertyTable() { + assert_eq!(::std::mem::size_of::<FramePropertyTable>() , 64usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable>() , 8usize); +} +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBasicShapeType { Polygon = 0, Circle = 1, Ellipse = 2, Inset = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxAlign { Stretch = 0, Start = 1, @@ -3935,26 +7722,23 @@ pub enum StyleBoxAlign { Baseline = 3, End = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxDecorationBreak { Slice = 0, Clone = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxDirection { Normal = 0, Reverse = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxOrient { Horizontal = 0, Vertical = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxPack { Start = 0, Center = 1, End = 2, Justify = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxSizing { Content = 0, Border = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum StyleBoxShadowType { Inset = 0, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleClear { None = 0, Left = 1, @@ -3965,8 +7749,8 @@ pub enum StyleClear { Line = 8, Max = 13, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleClipPathGeometryBox { NoBox = 0, Content = 1, @@ -3977,11 +7761,11 @@ pub enum StyleClipPathGeometryBox { Stroke = 6, View = 7, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFillRule { Nonzero = 0, Evenodd = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFloat { None = 0, Left = 1, @@ -3989,11 +7773,11 @@ pub enum StyleFloat { InlineStart = 3, InlineEnd = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFloatEdge { ContentBox = 0, MarginBox = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleShapeOutsideShapeBox { NoBox = 0, Content = 1, @@ -4001,11 +7785,11 @@ pub enum StyleShapeOutsideShapeBox { Border = 3, Margin = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleShapeSourceType { None = 0, URL = 1, Shape = 2, Box = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleUserFocus { None = 0, Ignore = 1, @@ -4016,8 +7800,8 @@ pub enum StyleUserFocus { SelectSame = 6, SelectMenu = 7, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleUserSelect { None = 0, Text = 1, @@ -4030,8 +7814,8 @@ pub enum StyleUserSelect { MozAll = 8, MozText = 9, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleDisplay { None = 0, Block = 1, @@ -4072,20 +7856,504 @@ pub enum StyleDisplay { Groupbox = 36, Popup = 37, } -pub const eCSSProperty_COUNT_DUMMY: nsCSSPropertyID = +pub const nsStyleUnit_eStyleUnit_MAX: nsStyleUnit = + nsStyleUnit::eStyleUnit_Calc; +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleUnit { + eStyleUnit_Null = 0, + eStyleUnit_Normal = 1, + eStyleUnit_Auto = 2, + eStyleUnit_None = 3, + eStyleUnit_Percent = 10, + eStyleUnit_Factor = 11, + eStyleUnit_Degree = 12, + eStyleUnit_Grad = 13, + eStyleUnit_Radian = 14, + eStyleUnit_Turn = 15, + eStyleUnit_FlexFraction = 16, + eStyleUnit_Coord = 20, + eStyleUnit_Integer = 30, + eStyleUnit_Enumerated = 32, + eStyleUnit_Calc = 40, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct _bindgen_ty_bindgen_id_197858 { + pub mInt: __BindgenUnionField<i32>, + pub mFloat: __BindgenUnionField<f32>, + pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout__bindgen_ty_bindgen_id_197858() { + assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_197858>() , + 8usize); + assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_197858>() , + 8usize); +} +impl Clone for _bindgen_ty_bindgen_id_197858 { + fn clone(&self) -> Self { *self } +} +pub type nsStyleUnion = _bindgen_ty_bindgen_id_197858; +/** + * Class that hold a single size specification used by the style + * system. The size specification consists of two parts -- a number + * and a unit. The number is an integer, a floating point value, an + * nscoord, or undefined, and the unit is an nsStyleUnit. Checking + * the unit is a must before asking for the value in any particular + * form. + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCoord { + mUnit: nsStyleUnit, + mValue: nsStyleUnion, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsStyleCoord_CalcValue { + pub mLength: nscoord, + pub mPercent: f32, + pub mHasPercent: bool, +} +#[test] +fn bindgen_test_layout_nsStyleCoord_CalcValue() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_CalcValue>() , 12usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_CalcValue>() , 4usize); +} +impl Clone for nsStyleCoord_CalcValue { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCoord_Calc { + pub _base: nsStyleCoord_CalcValue, + pub mRefCnt: ThreadSafeAutoRefCnt, +} +pub type nsStyleCoord_Calc_HasThreadSafeRefCnt = TrueType; +#[test] +fn bindgen_test_layout_nsStyleCoord_Calc() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_Calc>() , 24usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_Calc>() , 8usize); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleCoord_CoordConstructorType { CoordConstructor = 0, } +#[test] +fn bindgen_test_layout_nsStyleCoord() { + assert_eq!(::std::mem::size_of::<nsStyleCoord>() , 16usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord>() , 8usize); +} +impl nsStyleCoord { + #[inline] + pub unsafe fn get_mUnit(&self) -> &nsStyleUnit { &self.mUnit } + #[inline] + pub unsafe fn get_mUnit_mut(&mut self) -> &mut nsStyleUnit { + &mut self.mUnit + } + #[inline] + pub unsafe fn get_mValue(&self) -> &nsStyleUnion { &self.mValue } + #[inline] + pub unsafe fn get_mValue_mut(&mut self) -> &mut nsStyleUnion { + &mut self.mValue + } +} +/** + * Class that represents a set of top/right/bottom/left nsStyleCoords. + * This is commonly used to hold the widths of the borders, margins, + * or paddings of a box. + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleSides { + mUnits: [nsStyleUnit; 4usize], + mValues: [nsStyleUnion; 4usize], +} +#[test] +fn bindgen_test_layout_nsStyleSides() { + assert_eq!(::std::mem::size_of::<nsStyleSides>() , 40usize); + assert_eq!(::std::mem::align_of::<nsStyleSides>() , 8usize); +} +impl nsStyleSides { + #[inline] + pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 4usize] { &self.mUnits } + #[inline] + pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 4usize] { + &mut self.mUnits + } + #[inline] + pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 4usize] { + &self.mValues + } + #[inline] + pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 4usize] { + &mut self.mValues + } +} +/** + * Class that represents a set of top-left/top-right/bottom-right/bottom-left + * nsStyleCoord pairs. This is used to hold the dimensions of the + * corners of a box (for, e.g., border-radius and outline-radius). + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCorners { + mUnits: [nsStyleUnit; 8usize], + mValues: [nsStyleUnion; 8usize], +} +#[test] +fn bindgen_test_layout_nsStyleCorners() { + assert_eq!(::std::mem::size_of::<nsStyleCorners>() , 72usize); + assert_eq!(::std::mem::align_of::<nsStyleCorners>() , 8usize); +} +impl nsStyleCorners { + #[inline] + pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 8usize] { &self.mUnits } + #[inline] + pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 8usize] { + &mut self.mUnits + } + #[inline] + pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 8usize] { + &self.mValues + } + #[inline] + pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 8usize] { + &mut self.mValues + } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleDisplay { + pub mBinding: RefPtr<URLValue>, + pub mDisplay: StyleDisplay, + pub mOriginalDisplay: StyleDisplay, + pub mContain: u8, + pub mAppearance: u8, + pub mPosition: u8, + pub mFloat: StyleFloat, + pub mOriginalFloat: StyleFloat, + pub mBreakType: StyleClear, + pub mBreakInside: u8, + pub mBreakBefore: bool, + pub mBreakAfter: bool, + pub mOverflowX: u8, + pub mOverflowY: u8, + pub mOverflowClipBox: u8, + pub mResize: u8, + pub mOrient: u8, + pub mIsolation: u8, + pub mTopLayer: u8, + pub mWillChangeBitField: u8, + pub mWillChange: nsTArray<nsString>, + pub mTouchAction: u8, + pub mScrollBehavior: u8, + pub mScrollSnapTypeX: u8, + pub mScrollSnapTypeY: u8, + pub mScrollSnapPointsX: nsStyleCoord, + pub mScrollSnapPointsY: nsStyleCoord, + pub mScrollSnapDestination: Position, + pub mScrollSnapCoordinate: nsTArray<Position>, + pub mBackfaceVisibility: u8, + pub mTransformStyle: u8, + pub mTransformBox: u8, + pub mSpecifiedTransform: RefPtr<nsCSSValueSharedList>, + pub mTransformOrigin: [nsStyleCoord; 3usize], + pub mChildPerspective: nsStyleCoord, + pub mPerspectiveOrigin: [nsStyleCoord; 2usize], + pub mVerticalAlign: nsStyleCoord, + pub mTransitions: nsStyleAutoArray<StyleTransition>, + pub mTransitionTimingFunctionCount: u32, + pub mTransitionDurationCount: u32, + pub mTransitionDelayCount: u32, + pub mTransitionPropertyCount: u32, + pub mAnimations: nsStyleAutoArray<StyleAnimation>, + pub mAnimationTimingFunctionCount: u32, + pub mAnimationDurationCount: u32, + pub mAnimationDelayCount: u32, + pub mAnimationNameCount: u32, + pub mAnimationDirectionCount: u32, + pub mAnimationFillModeCount: u32, + pub mAnimationPlayStateCount: u32, + pub mAnimationIterationCountCount: u32, + pub mShapeOutside: StyleShapeOutside, +} +#[test] +fn bindgen_test_layout_nsStyleDisplay() { + assert_eq!(::std::mem::size_of::<nsStyleDisplay>() , 424usize); + assert_eq!(::std::mem::align_of::<nsStyleDisplay>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsILanguageAtomService { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILanguageAtomService_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsILanguageAtomService() { + assert_eq!(::std::mem::size_of::<nsILanguageAtomService>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILanguageAtomService>() , 8usize); +} +impl Clone for nsILanguageAtomService { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct LangGroupFontPrefs { + pub mLangGroup: nsCOMPtr<nsIAtom>, + pub mMinimumFontSize: nscoord, + pub mDefaultVariableFont: nsFont, + pub mDefaultFixedFont: nsFont, + pub mDefaultSerifFont: nsFont, + pub mDefaultSansSerifFont: nsFont, + pub mDefaultMonospaceFont: nsFont, + pub mDefaultCursiveFont: nsFont, + pub mDefaultFantasyFont: nsFont, + pub mNext: nsAutoPtr<LangGroupFontPrefs>, +} +#[test] +fn bindgen_test_layout_LangGroupFontPrefs() { + assert_eq!(::std::mem::size_of::<LangGroupFontPrefs>() , 640usize); + assert_eq!(::std::mem::align_of::<LangGroupFontPrefs>() , 8usize); +} +/** + * Some functionality that has historically lived on nsPresContext does not + * actually need to be per-document. This singleton class serves as a host + * for that functionality. We delegate to it from nsPresContext where + * appropriate, and use it standalone in some cases as well. + */ +#[repr(C)] +#[derive(Debug)] +pub struct StaticPresData { + pub mLangService: nsCOMPtr<nsILanguageAtomService>, + pub mBorderWidthTable: [nscoord; 3usize], + pub mStaticLangGroupFontPrefs: LangGroupFontPrefs, +} +#[test] +fn bindgen_test_layout_StaticPresData() { + assert_eq!(::std::mem::size_of::<StaticPresData>() , 664usize); + assert_eq!(::std::mem::align_of::<StaticPresData>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPrintSettings { + pub _address: u8, +} +impl Clone for nsIPrintSettings { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsITheme { + pub _address: u8, +} +impl Clone for nsITheme { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct gfxTextPerfMetrics { + pub _address: u8, +} +impl Clone for gfxTextPerfMetrics { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsTransitionManager { + pub _address: u8, +} +impl Clone for nsTransitionManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAnimationManager { + pub _address: u8, +} +impl Clone for nsAnimationManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDeviceContext { + pub _address: u8, +} +impl Clone for nsDeviceContext { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct gfxMissingFontRecorder { + pub _address: u8, +} +impl Clone for gfxMissingFontRecorder { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct EffectCompositor { + pub _address: u8, +} +impl Clone for EffectCompositor { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct EventStateManager { + pub _address: u8, +} +impl Clone for EventStateManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct CounterStyleManager { + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mPresContext: *mut nsPresContext, + pub mCacheTable: [u64; 6usize], +} +pub type CounterStyleManager_HasThreadSafeRefCnt = FalseType; +#[test] +fn bindgen_test_layout_CounterStyleManager() { + assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 72usize); + assert_eq!(::std::mem::align_of::<CounterStyleManager>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsInvalidateRequestList { + pub mRequests: nsTArray<nsInvalidateRequestList_Request>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsInvalidateRequestList_Request { + pub mRect: nsRect, + pub mFlags: u32, +} +#[test] +fn bindgen_test_layout_nsInvalidateRequestList_Request() { + assert_eq!(::std::mem::size_of::<nsInvalidateRequestList_Request>() , + 20usize); + assert_eq!(::std::mem::align_of::<nsInvalidateRequestList_Request>() , + 4usize); +} +impl Clone for nsInvalidateRequestList_Request { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsInvalidateRequestList() { + assert_eq!(::std::mem::size_of::<nsInvalidateRequestList>() , 8usize); + assert_eq!(::std::mem::align_of::<nsInvalidateRequestList>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DisplayItemClip_RoundedRect { + pub mRect: nsRect, + pub mRadii: [nscoord; 8usize], +} +#[test] +fn bindgen_test_layout_DisplayItemClip_RoundedRect() { + assert_eq!(::std::mem::size_of::<DisplayItemClip_RoundedRect>() , + 48usize); + assert_eq!(::std::mem::align_of::<DisplayItemClip_RoundedRect>() , + 4usize); +} +impl Clone for DisplayItemClip_RoundedRect { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Grid { + pub _address: u8, +} +impl Clone for Grid { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsCSSTokenSerializationType { + eCSSTokenSerialization_Nothing = 0, + eCSSTokenSerialization_Whitespace = 1, + eCSSTokenSerialization_AtKeyword_or_Hash = 2, + eCSSTokenSerialization_Number = 3, + eCSSTokenSerialization_Dimension = 4, + eCSSTokenSerialization_Percentage = 5, + eCSSTokenSerialization_URange = 6, + eCSSTokenSerialization_URL_or_BadURL = 7, + eCSSTokenSerialization_Function = 8, + eCSSTokenSerialization_Ident = 9, + eCSSTokenSerialization_CDC = 10, + eCSSTokenSerialization_DashMatch = 11, + eCSSTokenSerialization_ContainsMatch = 12, + eCSSTokenSerialization_Symbol_Hash = 13, + eCSSTokenSerialization_Symbol_At = 14, + eCSSTokenSerialization_Symbol_Dot_or_Plus = 15, + eCSSTokenSerialization_Symbol_Minus = 16, + eCSSTokenSerialization_Symbol_OpenParen = 17, + eCSSTokenSerialization_Symbol_Question = 18, + eCSSTokenSerialization_Symbol_Assorted = 19, + eCSSTokenSerialization_Symbol_Equals = 20, + eCSSTokenSerialization_Symbol_Bar = 21, + eCSSTokenSerialization_Symbol_Slash = 22, + eCSSTokenSerialization_Symbol_Asterisk = 23, + eCSSTokenSerialization_Other = 24, +} +#[repr(C)] +#[derive(Debug)] +pub struct CSSVariableValues { + /** + * Map of variable names to IDs. Variable IDs are indexes into + * mVariables. + */ + pub mVariableIDs: [u64; 6usize], + /** + * Array of variables, indexed by variable ID. + */ + pub mVariables: nsTArray<CSSVariableValues_Variable>, +} +#[repr(C)] +#[derive(Debug)] +pub struct CSSVariableValues_Variable { + pub mVariableName: nsString, + pub mValue: nsString, + pub mFirstToken: nsCSSTokenSerializationType, + pub mLastToken: nsCSSTokenSerializationType, +} +#[test] +fn bindgen_test_layout_CSSVariableValues_Variable() { + assert_eq!(::std::mem::size_of::<CSSVariableValues_Variable>() , 40usize); + assert_eq!(::std::mem::align_of::<CSSVariableValues_Variable>() , 8usize); +} +#[test] +fn bindgen_test_layout_CSSVariableValues() { + assert_eq!(::std::mem::size_of::<CSSVariableValues>() , 56usize); + assert_eq!(::std::mem::align_of::<CSSVariableValues>() , 8usize); +} +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_z_index; -pub const eCSSProperty_all: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_all: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT_no_shorthands; -pub const eCSSProperty_COUNT_DUMMY2: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY2: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_transition; -pub const eCSSPropertyAlias_WordWrap: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSPropertyAlias_WordWrap: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT; -pub const eCSSProperty_COUNT_DUMMY3: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY3: nsCSSPropertyID = nsCSSPropertyID::eCSSPropertyAlias_WebkitMaskSize; -pub const eCSSPropertyExtra_no_properties: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSPropertyExtra_no_properties: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT_with_aliases; #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsCSSPropertyID { eCSSProperty_UNKNOWN = -1, eCSSProperty_align_content = 0, @@ -4554,52 +8822,6 @@ pub enum nsCSSPropertyID { eCSSPropertyExtra_x_auto_value = 463, eCSSPropertyExtra_variable = 464, } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSFontDesc { - eCSSFontDesc_UNKNOWN = -1, - eCSSFontDesc_Family = 0, - eCSSFontDesc_Style = 1, - eCSSFontDesc_Weight = 2, - eCSSFontDesc_Stretch = 3, - eCSSFontDesc_Src = 4, - eCSSFontDesc_UnicodeRange = 5, - eCSSFontDesc_FontFeatureSettings = 6, - eCSSFontDesc_FontLanguageOverride = 7, - eCSSFontDesc_Display = 8, - eCSSFontDesc_COUNT = 9, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSCounterDesc { - eCSSCounterDesc_UNKNOWN = -1, - eCSSCounterDesc_System = 0, - eCSSCounterDesc_Symbols = 1, - eCSSCounterDesc_AdditiveSymbols = 2, - eCSSCounterDesc_Negative = 3, - eCSSCounterDesc_Prefix = 4, - eCSSCounterDesc_Suffix = 5, - eCSSCounterDesc_Range = 6, - eCSSCounterDesc_Pad = 7, - eCSSCounterDesc_Fallback = 8, - eCSSCounterDesc_SpeakAs = 9, - eCSSCounterDesc_COUNT = 10, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSPropertyLogicalGroup { - eCSSPropertyLogicalGroup_UNKNOWN = -1, - eCSSPropertyLogicalGroup_BorderColor = 0, - eCSSPropertyLogicalGroup_BorderStyle = 1, - eCSSPropertyLogicalGroup_BorderWidth = 2, - eCSSPropertyLogicalGroup_Margin = 3, - eCSSPropertyLogicalGroup_MaxSize = 4, - eCSSPropertyLogicalGroup_Offset = 5, - eCSSPropertyLogicalGroup_Padding = 6, - eCSSPropertyLogicalGroup_MinSize = 7, - eCSSPropertyLogicalGroup_Size = 8, - eCSSPropertyLogicalGroup_COUNT = 9, -} /** * Class to safely handle main-thread-only pointers off the main thread. * @@ -4645,38 +8867,152 @@ pub struct nsMainThreadPtrHolder<T> { pub mRawPtr: *mut T, pub mStrict: bool, } +pub type nsMainThreadPtrHolder_HasThreadSafeRefCnt = TrueType; #[repr(C)] #[derive(Debug)] pub struct nsMainThreadPtrHandle<T> { pub mPtr: RefPtr<T>, } -pub enum CSSStyleSheet { } #[repr(C)] -pub struct URLValueData { - pub _bindgen_opaque_blob: [u64; 6usize], +#[derive(Debug)] +pub struct imgRequestProxy { + pub _base: imgIRequest, + pub _base_1: IProgressObserver, + pub _base_2: nsISupportsPriority, + pub _base_3: nsISecurityInfoProvider, + pub _base_4: nsITimedChannel, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mBehaviour: UniquePtr<ProxyBehaviour, DefaultDelete<ProxyBehaviour>>, + pub mURI: RefPtr<ImageURL>, + pub mListener: *mut imgINotificationObserver, + pub mLoadGroup: nsCOMPtr<nsILoadGroup>, + pub mLoadFlags: nsLoadFlags, + pub mLockCount: u32, + pub mAnimationConsumers: u32, + pub mCanceled: bool, + pub mIsInLoadGroup: bool, + pub mListenerIsStrongRef: bool, + pub mDecodeRequested: bool, + pub mDeferNotifications: bool, +} +pub type imgRequestProxy_Image = Image; +pub type imgRequestProxy_ImageURL = ImageURL; +pub type imgRequestProxy_ProgressTracker = ProgressTracker; +pub type imgRequestProxy_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug)] +pub struct imgRequestProxy_imgCancelRunnable { + pub _base: Runnable, + pub mOwner: RefPtr<imgRequestProxy>, + pub mStatus: nsresult, } #[test] -fn bindgen_test_layout_URLValueData() { - assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize); - assert_eq!(::std::mem::align_of::<URLValueData>() , 8usize); +fn bindgen_test_layout_imgRequestProxy_imgCancelRunnable() { + assert_eq!(::std::mem::size_of::<imgRequestProxy_imgCancelRunnable>() , + 40usize); + assert_eq!(::std::mem::align_of::<imgRequestProxy_imgCancelRunnable>() , + 8usize); +} +#[test] +fn bindgen_test_layout_imgRequestProxy() { + assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize); + assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); } #[repr(C)] -pub struct URLValue { - pub _bindgen_opaque_blob: [u64; 7usize], +pub struct bindgen_vtable__bindgen_id_206771 { +} +/** + * An interface for observing changes to image state, as reported by + * ProgressTracker. + * + * This is the ImageLib-internal version of imgINotificationObserver, + * essentially, with implementation details that code outside of ImageLib + * shouldn't see. + * + * XXX(seth): It's preferable to avoid adding anything to this interface if + * possible. In the long term, it would be ideal to get to a place where we can + * just use the imgINotificationObserver interface internally as well. + */ +#[repr(C)] +#[derive(Debug)] +pub struct IProgressObserver { + pub vtable_: *const bindgen_vtable__bindgen_id_206771, + pub _base: u64, } #[test] -fn bindgen_test_layout_URLValue() { - assert_eq!(::std::mem::size_of::<URLValue>() , 56usize); - assert_eq!(::std::mem::align_of::<URLValue>() , 8usize); +fn bindgen_test_layout_IProgressObserver() { + assert_eq!(::std::mem::size_of::<IProgressObserver>() , 16usize); + assert_eq!(::std::mem::align_of::<IProgressObserver>() , 8usize); } #[repr(C)] -pub struct ImageValue { - pub _bindgen_opaque_blob: [u64; 14usize], +#[derive(Debug, Copy)] +pub struct nsISupportsPriority { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISupportsPriority_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsISupportsPriority__bindgen_ty_bindgen_id_206852 { + PRIORITY_HIGHEST = -20, + PRIORITY_HIGH = -10, + PRIORITY_NORMAL = 0, + PRIORITY_LOW = 10, + PRIORITY_LOWEST = 20, } #[test] -fn bindgen_test_layout_ImageValue() { - assert_eq!(::std::mem::size_of::<ImageValue>() , 112usize); - assert_eq!(::std::mem::align_of::<ImageValue>() , 8usize); +fn bindgen_test_layout_nsISupportsPriority() { + assert_eq!(::std::mem::size_of::<nsISupportsPriority>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISupportsPriority>() , 8usize); +} +impl Clone for nsISupportsPriority { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsISecurityInfoProvider { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISecurityInfoProvider_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsISecurityInfoProvider() { + assert_eq!(::std::mem::size_of::<nsISecurityInfoProvider>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISecurityInfoProvider>() , 8usize); +} +impl Clone for nsISecurityInfoProvider { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsITimedChannel { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsITimedChannel_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsITimedChannel() { + assert_eq!(::std::mem::size_of::<nsITimedChannel>() , 8usize); + assert_eq!(::std::mem::align_of::<nsITimedChannel>() , 8usize); +} +impl Clone for nsITimedChannel { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] @@ -4701,6 +9037,7 @@ pub struct GridTemplateAreasValue { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type GridTemplateAreasValue_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_GridTemplateAreasValue() { assert_eq!(::std::mem::size_of::<GridTemplateAreasValue>() , 40usize); @@ -4713,13 +9050,14 @@ pub struct FontFamilyListRefCnt { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type FontFamilyListRefCnt_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_FontFamilyListRefCnt() { assert_eq!(::std::mem::size_of::<FontFamilyListRefCnt>() , 32usize); assert_eq!(::std::mem::align_of::<FontFamilyListRefCnt>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsCSSUnit { eCSSUnit_Null = 0, eCSSUnit_Auto = 1, @@ -4808,184 +9146,71 @@ pub enum nsCSSUnit { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValue { - pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue_nsCSSValue_h_unnamed_13, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, } -#[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCSSValue_nsCSSValue_h_unnamed_13 { - pub mInt: __BindgenUnionField<i32>, - pub mFloat: __BindgenUnionField<f32>, - pub mString: __BindgenUnionField<*mut nsStringBuffer>, - pub mColor: __BindgenUnionField<nscolor>, - pub mArray: __BindgenUnionField<*mut Array>, - pub mURL: __BindgenUnionField<*mut URLValue>, - pub mImage: __BindgenUnionField<*mut ImageValue>, - pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>, - pub mGradient: __BindgenUnionField<*mut nsCSSValueGradient>, - pub mTokenStream: __BindgenUnionField<*mut nsCSSValueTokenStream>, - pub mPair: __BindgenUnionField<*mut nsCSSValuePair_heap>, - pub mRect: __BindgenUnionField<*mut nsCSSRect_heap>, - pub mTriplet: __BindgenUnionField<*mut nsCSSValueTriplet_heap>, - pub mList: __BindgenUnionField<*mut nsCSSValueList_heap>, - pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>, - pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>, - pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>, - pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>, - pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>, - pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, - pub _bindgen_data_: u64, -} -impl nsCSSValue_nsCSSValue_h_unnamed_13 { - pub unsafe fn mInt(&mut self) -> *mut i32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloat(&mut self) -> *mut f32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mString(&mut self) -> *mut *mut nsStringBuffer { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mColor(&mut self) -> *mut nscolor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mArray(&mut self) -> *mut *mut Array { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mURL(&mut self) -> *mut *mut URLValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mImage(&mut self) -> *mut *mut ImageValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGridTemplateAreas(&mut self) - -> *mut *mut GridTemplateAreasValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGradient(&mut self) -> *mut *mut nsCSSValueGradient { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mTokenStream(&mut self) -> *mut *mut nsCSSValueTokenStream { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPair(&mut self) -> *mut *mut nsCSSValuePair_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mRect(&mut self) -> *mut *mut nsCSSRect_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mTriplet(&mut self) -> *mut *mut nsCSSValueTriplet_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mList(&mut self) -> *mut *mut nsCSSValueList_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mListDependent(&mut self) -> *mut *mut nsCSSValueList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mSharedList(&mut self) -> *mut *mut nsCSSValueSharedList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPairList(&mut self) -> *mut *mut nsCSSValuePairList_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPairListDependent(&mut self) - -> *mut *mut nsCSSValuePairList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloatColor(&mut self) -> *mut *mut nsCSSValueFloatColor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFontFamilyList(&mut self) - -> *mut *mut FontFamilyListRefCnt { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_13 { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_13() { - assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_13>() , - 8usize); - assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_13>() , - 8usize); -} -#[test] -fn bindgen_test_layout_nsCSSValue() { - assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct Array { - pub mRefCnt: usize, - pub mCount: usize, - pub mArray: [nsCSSValue; 1usize], +pub struct nsCSSValueGradient { + pub mIsRadial: bool, + pub mIsRepeating: bool, + pub mIsLegacySyntax: bool, + pub mIsExplicitSize: bool, + pub mBgPos: nsCSSValuePair, + pub mAngle: nsCSSValue, + pub mRadialValues: [nsCSSValue; 2usize], + pub mStops: nsTArray<nsCSSValueGradientStop>, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValueGradient_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_Array() { - assert_eq!(::std::mem::size_of::<Array>() , 32usize); - assert_eq!(::std::mem::align_of::<Array>() , 8usize); +fn bindgen_test_layout_nsCSSValueGradient() { + assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 112usize); + assert_eq!(::std::mem::align_of::<nsCSSValueGradient>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueList { - pub mValue: nsCSSValue, - pub mNext: *mut nsCSSValueList, +pub struct nsCSSValuePair { + pub mXValue: nsCSSValue, + pub mYValue: nsCSSValue, } #[test] -fn bindgen_test_layout_nsCSSValueList() { - assert_eq!(::std::mem::size_of::<nsCSSValueList>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSSValueList>() , 8usize); +fn bindgen_test_layout_nsCSSValuePair() { + assert_eq!(::std::mem::size_of::<nsCSSValuePair>() , 32usize); + assert_eq!(::std::mem::align_of::<nsCSSValuePair>() , 8usize); } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum Serialization { eNormalized = 0, eAuthorSpecified = 1, } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueList_heap { - pub _base: nsCSSValueList, +pub struct nsCSSValuePair_heap { + pub _base: nsCSSValuePair, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValuePair_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueList_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 40usize); - assert_eq!(::std::mem::align_of::<nsCSSValueList_heap>() , 8usize); +fn bindgen_test_layout_nsCSSValuePair_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 48usize); + assert_eq!(::std::mem::align_of::<nsCSSValuePair_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueSharedList { +pub struct nsCSSValueTokenStream { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, - pub mHead: *mut nsCSSValueList, + pub mPropertyID: nsCSSPropertyID, + pub mShorthandPropertyID: nsCSSPropertyID, + pub mTokenStream: nsString, + pub mBaseURI: nsCOMPtr<nsIURI>, + pub mSheetURI: nsCOMPtr<nsIURI>, + pub mSheetPrincipal: nsCOMPtr<nsIPrincipal>, + pub mLineNumber: u32, + pub mLineOffset: u32, + pub mLevel: SheetType, } +pub type nsCSSValueTokenStream_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueSharedList() { - assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSSValueSharedList>() , 8usize); +fn bindgen_test_layout_nsCSSValueTokenStream() { + assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 80usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTokenStream>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -4995,15 +9220,16 @@ pub struct nsCSSRect { pub mBottom: nsCSSValue, pub mLeft: nsCSSValue, } +pub type nsCSSRect_side_type = *mut nsCSSValue; +extern "C" { + #[link_name = "_ZN9nsCSSRect5sidesE"] + pub static mut nsCSSRect_sides: [nsCSSRect_side_type; 4usize]; +} #[test] fn bindgen_test_layout_nsCSSRect() { assert_eq!(::std::mem::size_of::<nsCSSRect>() , 64usize); assert_eq!(::std::mem::align_of::<nsCSSRect>() , 8usize); } -extern "C" { - #[link_name = "_ZN9nsCSSRect5sidesE"] - pub static mut nsCSSRect_consts_sides: [::std::os::raw::c_void; 4usize]; -} #[repr(C)] #[derive(Debug)] pub struct nsCSSRect_heap { @@ -5011,6 +9237,7 @@ pub struct nsCSSRect_heap { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSRect_heap_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSRect_heap() { assert_eq!(::std::mem::size_of::<nsCSSRect_heap>() , 80usize); @@ -5018,50 +9245,40 @@ fn bindgen_test_layout_nsCSSRect_heap() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValuePair { - pub mXValue: nsCSSValue, - pub mYValue: nsCSSValue, +pub struct nsCSSValueList { + pub mValue: nsCSSValue, + pub mNext: *mut nsCSSValueList, } #[test] -fn bindgen_test_layout_nsCSSValuePair() { - assert_eq!(::std::mem::size_of::<nsCSSValuePair>() , 32usize); - assert_eq!(::std::mem::align_of::<nsCSSValuePair>() , 8usize); +fn bindgen_test_layout_nsCSSValueList() { + assert_eq!(::std::mem::size_of::<nsCSSValueList>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSSValueList>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValuePair_heap { - pub _base: nsCSSValuePair, +pub struct nsCSSValueList_heap { + pub _base: nsCSSValueList, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValueList_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValuePair_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 48usize); - assert_eq!(::std::mem::align_of::<nsCSSValuePair_heap>() , 8usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct nsCSSValueTriplet { - pub mXValue: nsCSSValue, - pub mYValue: nsCSSValue, - pub mZValue: nsCSSValue, -} -#[test] -fn bindgen_test_layout_nsCSSValueTriplet() { - assert_eq!(::std::mem::size_of::<nsCSSValueTriplet>() , 48usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTriplet>() , 8usize); +fn bindgen_test_layout_nsCSSValueList_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 40usize); + assert_eq!(::std::mem::align_of::<nsCSSValueList_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueTriplet_heap { - pub _base: nsCSSValueTriplet, +pub struct nsCSSValueSharedList { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, + pub mHead: *mut nsCSSValueList, } +pub type nsCSSValueSharedList_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueTriplet_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTriplet_heap>() , 8usize); +fn bindgen_test_layout_nsCSSValueSharedList() { + assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSSValueSharedList>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -5082,6 +9299,7 @@ pub struct nsCSSValuePairList_heap { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValuePairList_heap_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSValuePairList_heap() { assert_eq!(::std::mem::size_of::<nsCSSValuePairList_heap>() , 56usize); @@ -5089,53 +9307,28 @@ fn bindgen_test_layout_nsCSSValuePairList_heap() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueGradientStop { - pub mLocation: nsCSSValue, - pub mColor: nsCSSValue, - pub mIsInterpolationHint: bool, +pub struct nsCSSValueTriplet { + pub mXValue: nsCSSValue, + pub mYValue: nsCSSValue, + pub mZValue: nsCSSValue, } #[test] -fn bindgen_test_layout_nsCSSValueGradientStop() { - assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize); - assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); +fn bindgen_test_layout_nsCSSValueTriplet() { + assert_eq!(::std::mem::size_of::<nsCSSValueTriplet>() , 48usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTriplet>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueGradient { - pub mIsRadial: bool, - pub mIsRepeating: bool, - pub mIsLegacySyntax: bool, - pub mIsExplicitSize: bool, - pub mBgPos: nsCSSValuePair, - pub mAngle: nsCSSValue, - pub mRadialValues: [nsCSSValue; 2usize], - pub mStops: nsTArray<nsCSSValueGradientStop>, +pub struct nsCSSValueTriplet_heap { + pub _base: nsCSSValueTriplet, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValueTriplet_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueGradient() { - assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 112usize); - assert_eq!(::std::mem::align_of::<nsCSSValueGradient>() , 8usize); -} -#[repr(C)] -pub struct nsCSSValueTokenStream { - pub mRefCnt: nsAutoRefCnt, - pub _mOwningThread: nsAutoOwningThread, - pub mPropertyID: nsCSSPropertyID, - pub mShorthandPropertyID: nsCSSPropertyID, - pub mTokenStream: nsString, - pub mBaseURI: nsCOMPtr<nsIURI>, - pub mSheetURI: nsCOMPtr<nsIURI>, - pub mSheetPrincipal: nsCOMPtr<nsIPrincipal>, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mLevel: SheetType, -} -#[test] -fn bindgen_test_layout_nsCSSValueTokenStream() { - assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 80usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTokenStream>() , 8usize); +fn bindgen_test_layout_nsCSSValueTriplet_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 64usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTriplet_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -5147,6 +9340,7 @@ pub struct nsCSSValueFloatColor { pub mComponent3: f32, pub mAlpha: f32, } +pub type nsCSSValueFloatColor_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSValueFloatColor() { assert_eq!(::std::mem::size_of::<nsCSSValueFloatColor>() , 32usize); @@ -5154,420 +9348,161 @@ fn bindgen_test_layout_nsCSSValueFloatColor() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSCornerSizes { - pub mTopLeft: nsCSSValue, - pub mTopRight: nsCSSValue, - pub mBottomRight: nsCSSValue, - pub mBottomLeft: nsCSSValue, +pub struct nsCSSValue { + pub mUnit: nsCSSUnit, + pub mValue: nsCSSValue__bindgen_ty_bindgen_id_209746, } -#[test] -fn bindgen_test_layout_nsCSSCornerSizes() { - assert_eq!(::std::mem::size_of::<nsCSSCornerSizes>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSCornerSizes>() , 8usize); +#[repr(C)] +#[derive(Debug)] +pub struct nsCSSValue_Array { + pub mRefCnt: usize, + pub mCount: usize, + pub mArray: [nsCSSValue; 1usize], } -extern "C" { - #[link_name = "_ZN16nsCSSCornerSizes7cornersE"] - pub static mut nsCSSCornerSizes_consts_corners: - [::std::os::raw::c_void; 4usize]; +#[test] +fn bindgen_test_layout_nsCSSValue_Array() { + assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize); + assert_eq!(::std::mem::align_of::<nsCSSValue_Array>() , 8usize); } -pub enum WritingMode { } -pub type CounterValue = i32; -pub enum NegativeType { } -pub enum PadType { } #[repr(C)] #[derive(Debug, Copy)] -pub struct CounterStyle { - pub _vftable: *const _vftable_CounterStyle, - pub mStyle: i32, +pub struct nsCSSValue__bindgen_ty_bindgen_id_209746 { + pub mInt: __BindgenUnionField<i32>, + pub mFloat: __BindgenUnionField<f32>, + pub mString: __BindgenUnionField<*mut nsStringBuffer>, + pub mColor: __BindgenUnionField<nscolor>, + pub mArray: __BindgenUnionField<*mut nsCSSValue_Array>, + pub mURL: __BindgenUnionField<*mut URLValue>, + pub mImage: __BindgenUnionField<*mut ImageValue>, + pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>, + pub mGradient: __BindgenUnionField<*mut nsCSSValueGradient>, + pub mTokenStream: __BindgenUnionField<*mut nsCSSValueTokenStream>, + pub mPair: __BindgenUnionField<*mut nsCSSValuePair_heap>, + pub mRect: __BindgenUnionField<*mut nsCSSRect_heap>, + pub mTriplet: __BindgenUnionField<*mut nsCSSValueTriplet_heap>, + pub mList: __BindgenUnionField<*mut nsCSSValueList_heap>, + pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>, + pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>, + pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>, + pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>, + pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>, + pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, + pub bindgen_union_field: u64, } -#[repr(C)] -pub struct _vftable_CounterStyle { - pub _bindgen_empty_ctype_warning_fix: u64, +#[test] +fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_209746() { + assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_209746>() + , 8usize); + assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_209746>() + , 8usize); } -impl ::std::clone::Clone for CounterStyle { +impl Clone for nsCSSValue__bindgen_ty_bindgen_id_209746 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_CounterStyle() { - assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize); - assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize); +fn bindgen_test_layout_nsCSSValue() { + assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize); + assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct AnonymousCounterStyle { - pub _base: CounterStyle, - pub mRefCnt: nsAutoRefCnt, - pub _mOwningThread: nsAutoOwningThread, - pub mSingleString: bool, - pub mSystem: u8, - pub mSymbols: nsTArray<nsString>, -} -#[repr(C)] -pub struct _vftable_AnonymousCounterStyle { - pub _base: _vftable_CounterStyle, +pub struct nsCSSValueGradientStop { + pub mLocation: nsCSSValue, + pub mColor: nsCSSValue, + pub mIsInterpolationHint: bool, } #[test] -fn bindgen_test_layout_AnonymousCounterStyle() { - assert_eq!(::std::mem::size_of::<AnonymousCounterStyle>() , 48usize); - assert_eq!(::std::mem::align_of::<AnonymousCounterStyle>() , 8usize); +fn bindgen_test_layout_nsCSSValueGradientStop() { + assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize); + assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); } #[repr(C)] -pub struct CounterStyleManager { - pub _bindgen_opaque_blob: [u64; 9usize], -} -#[test] -fn bindgen_test_layout_CounterStyleManager() { - assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 72usize); - assert_eq!(::std::mem::align_of::<CounterStyleManager>() , 8usize); +pub struct bindgen_vtable__bindgen_id_209953 { } -/** - * A class for holding strong references to nsPresArena-allocated - * objects. - * - * Since the arena's lifetime is not related to the refcounts - * of the objects allocated within it, it is possible to have a strong - * reference to an arena-allocated object that lives until the - * destruction of the arena. An ArenaRefPtr acts like a weak reference - * in that it will clear its referent if the arena is about to go away. - * - * T must be a class that has these two methods: - * - * static mozilla::ArenaObjectID ArenaObjectID(); - * U* Arena(); - * - * where U is a class that has these two methods: - * - * void RegisterArenaRefPtr(ArenaRefPtr<T>*); - * void DeregisterArenaRefPtr(ArenaRefPtr<T>*); - * - * Currently, both nsPresArena and nsIPresShell can be used as U. - * - * The ArenaObjectID method must return the mozilla::ArenaObjectID that - * uniquely identifies T, and the Arena method must return the nsPresArena - * (or a proxy for it) in which the object was allocated. - */ #[repr(C)] -#[derive(Debug)] -pub struct ArenaRefPtr<T> { - pub mPtr: RefPtr<T>, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_14 { - eFeatureAlternates_historical = 0, - eFeatureAlternates_stylistic = 1, - eFeatureAlternates_styleset = 2, - eFeatureAlternates_character_variant = 3, - eFeatureAlternates_swash = 4, - eFeatureAlternates_ornaments = 5, - eFeatureAlternates_annotation = 6, - eFeatureAlternates_numFeatures = 7, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_15 { - eFeatureEastAsian_jis78 = 0, - eFeatureEastAsian_jis83 = 1, - eFeatureEastAsian_jis90 = 2, - eFeatureEastAsian_jis04 = 3, - eFeatureEastAsian_simplified = 4, - eFeatureEastAsian_traditional = 5, - eFeatureEastAsian_full_width = 6, - eFeatureEastAsian_prop_width = 7, - eFeatureEastAsian_ruby = 8, - eFeatureEastAsian_numFeatures = 9, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_16 { - eFeatureLigatures_none = 0, - eFeatureLigatures_common = 1, - eFeatureLigatures_no_common = 2, - eFeatureLigatures_discretionary = 3, - eFeatureLigatures_no_discretionary = 4, - eFeatureLigatures_historical = 5, - eFeatureLigatures_no_historical = 6, - eFeatureLigatures_contextual = 7, - eFeatureLigatures_no_contextual = 8, - eFeatureLigatures_numFeatures = 9, +#[derive(Debug, Copy)] +pub struct CounterStyle { + pub vtable_: *const bindgen_vtable__bindgen_id_209953, + pub mStyle: i32, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_17 { - eFeatureNumeric_lining = 0, - eFeatureNumeric_oldstyle = 1, - eFeatureNumeric_proportional = 2, - eFeatureNumeric_tabular = 3, - eFeatureNumeric_diagonal_fractions = 4, - eFeatureNumeric_stacked_fractions = 5, - eFeatureNumeric_slashedzero = 6, - eFeatureNumeric_ordinal = 7, - eFeatureNumeric_numFeatures = 8, -} -pub const eFontPrefLang_First: eFontPrefLang = - eFontPrefLang::eFontPrefLang_Western; -pub const eFontPrefLang_Last: eFontPrefLang = - eFontPrefLang::eFontPrefLang_Others; -pub const eFontPrefLang_Count: eFontPrefLang = - eFontPrefLang::eFontPrefLang_CJKSet; -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum eFontPrefLang { - eFontPrefLang_Western = 0, - eFontPrefLang_Japanese = 1, - eFontPrefLang_ChineseTW = 2, - eFontPrefLang_ChineseCN = 3, - eFontPrefLang_ChineseHK = 4, - eFontPrefLang_Korean = 5, - eFontPrefLang_Cyrillic = 6, - eFontPrefLang_Greek = 7, - eFontPrefLang_Thai = 8, - eFontPrefLang_Hebrew = 9, - eFontPrefLang_Arabic = 10, - eFontPrefLang_Devanagari = 11, - eFontPrefLang_Tamil = 12, - eFontPrefLang_Armenian = 13, - eFontPrefLang_Bengali = 14, - eFontPrefLang_Canadian = 15, - eFontPrefLang_Ethiopic = 16, - eFontPrefLang_Georgian = 17, - eFontPrefLang_Gujarati = 18, - eFontPrefLang_Gurmukhi = 19, - eFontPrefLang_Khmer = 20, - eFontPrefLang_Malayalam = 21, - eFontPrefLang_Mathematics = 22, - eFontPrefLang_Oriya = 23, - eFontPrefLang_Telugu = 24, - eFontPrefLang_Kannada = 25, - eFontPrefLang_Sinhala = 26, - eFontPrefLang_Tibetan = 27, - eFontPrefLang_Others = 28, - eFontPrefLang_CJKSet = 29, +#[test] +fn bindgen_test_layout_CounterStyle() { + assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize); + assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalAxis { eLogicalAxisBlock = 0, eLogicalAxisInline = 1, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalEdge { eLogicalEdgeStart = 0, eLogicalEdgeEnd = 1, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalSide { - eLogicalSideBStart = 0, - eLogicalSideBEnd = 1, - eLogicalSideIStart = 2, - eLogicalSideIEnd = 3, -} -pub const eStyleUnit_MAX: nsStyleUnit = nsStyleUnit::eStyleUnit_Calc; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleUnit { - eStyleUnit_Null = 0, - eStyleUnit_Normal = 1, - eStyleUnit_Auto = 2, - eStyleUnit_None = 3, - eStyleUnit_Percent = 10, - eStyleUnit_Factor = 11, - eStyleUnit_Degree = 12, - eStyleUnit_Grad = 13, - eStyleUnit_Radian = 14, - eStyleUnit_Turn = 15, - eStyleUnit_FlexFraction = 16, - eStyleUnit_Coord = 20, - eStyleUnit_Integer = 30, - eStyleUnit_Enumerated = 32, - eStyleUnit_Calc = 40, +impl Clone for CounterStyle { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_h_unnamed_18 { - pub mInt: __BindgenUnionField<i32>, - pub mFloat: __BindgenUnionField<f32>, - pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, - pub _bindgen_data_: u64, -} -impl nsStyleCoord_h_unnamed_18 { - pub unsafe fn mInt(&mut self) -> *mut i32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloat(&mut self) -> *mut f32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPointer(&mut self) -> *mut *mut ::std::os::raw::c_void { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleCoord_h_unnamed_18 { - fn clone(&self) -> Self { *self } +pub struct LookAndFeelInt { + pub id: i32, + pub value: i32, } #[test] -fn bindgen_test_layout_nsStyleCoord_h_unnamed_18() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_18>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_18>() , 8usize); +fn bindgen_test_layout_LookAndFeelInt() { + assert_eq!(::std::mem::size_of::<LookAndFeelInt>() , 8usize); + assert_eq!(::std::mem::align_of::<LookAndFeelInt>() , 4usize); } -pub type nsStyleUnion = nsStyleCoord_h_unnamed_18; -/** - * Class that hold a single size specification used by the style - * system. The size specification consists of two parts -- a number - * and a unit. The number is an integer, a floating point value, an - * nscoord, or undefined, and the unit is an nsStyleUnit. Checking - * the unit is a must before asking for the value in any particular - * form. - */ - /** <div rustbindgen private accessor="unsafe"></div> */ -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleCoord { - mUnit: nsStyleUnit, - mValue: nsStyleUnion, -} -impl nsStyleCoord { - #[inline] - pub unsafe fn get_mUnit(&self) -> &nsStyleUnit { &self.mUnit } - pub unsafe fn get_mUnit_mut(&mut self) -> &mut nsStyleUnit { - &mut self.mUnit - } - #[inline] - pub unsafe fn get_mValue(&self) -> &nsStyleUnion { &self.mValue } - pub unsafe fn get_mValue_mut(&mut self) -> &mut nsStyleUnion { - &mut self.mValue - } +impl Clone for LookAndFeelInt { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_CalcValue { - pub mLength: nscoord, - pub mPercent: f32, - pub mHasPercent: bool, +pub struct imgIContainer { + pub _address: u8, } -impl ::std::clone::Clone for nsStyleCoord_CalcValue { +impl Clone for imgIContainer { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsStyleCoord_CalcValue() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_CalcValue>() , 12usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_CalcValue>() , 4usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleCoord_Calc { - pub _base: nsStyleCoord_CalcValue, - pub mRefCnt: ThreadSafeAutoRefCnt, -} -#[test] -fn bindgen_test_layout_nsStyleCoord_Calc() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_Calc>() , 24usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_Calc>() , 8usize); -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleCoord_CoordConstructorType { CoordConstructor = 0, } -#[test] -fn bindgen_test_layout_nsStyleCoord() { - assert_eq!(::std::mem::size_of::<nsStyleCoord>() , 16usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord>() , 8usize); -} -/** - * Class that represents a set of top/right/bottom/left nsStyleCoords. - * This is commonly used to hold the widths of the borders, margins, - * or paddings of a box. - */ - /** <div rustbindgen private accessor="unsafe"></div> */ #[repr(C)] -#[derive(Debug)] -pub struct nsStyleSides { - mUnits: [nsStyleUnit; 4usize], - mValues: [nsStyleUnion; 4usize], -} -impl nsStyleSides { - #[inline] - pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 4usize] { &self.mUnits } - pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 4usize] { - &mut self.mUnits - } - #[inline] - pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 4usize] { - &self.mValues - } - pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 4usize] { - &mut self.mValues - } +#[derive(Debug, Copy)] +pub struct ImageURL { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStyleSides() { - assert_eq!(::std::mem::size_of::<nsStyleSides>() , 40usize); - assert_eq!(::std::mem::align_of::<nsStyleSides>() , 8usize); +impl Clone for ImageURL { + fn clone(&self) -> Self { *self } } -/** - * Class that represents a set of top-left/top-right/bottom-right/bottom-left - * nsStyleCoord pairs. This is used to hold the dimensions of the - * corners of a box (for, e.g., border-radius and outline-radius). - */ - /** <div rustbindgen private accessor="unsafe"></div> */ #[repr(C)] -#[derive(Debug)] -pub struct nsStyleCorners { - mUnits: [nsStyleUnit; 8usize], - mValues: [nsStyleUnion; 8usize], -} -impl nsStyleCorners { - #[inline] - pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 8usize] { &self.mUnits } - pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 8usize] { - &mut self.mUnits - } - #[inline] - pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 8usize] { - &self.mValues - } - pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 8usize] { - &mut self.mValues - } +#[derive(Debug, Copy)] +pub struct Image { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStyleCorners() { - assert_eq!(::std::mem::size_of::<nsStyleCorners>() , 72usize); - assert_eq!(::std::mem::align_of::<nsStyleCorners>() , 8usize); +impl Clone for Image { + fn clone(&self) -> Self { *self } } -pub enum imgIContainer { } -pub enum imgINotificationObserver { } #[repr(C)] -pub struct imgIRequest { - pub _bindgen_opaque_blob: u64, +#[derive(Debug, Copy)] +pub struct ProgressTracker { + pub _address: u8, } -#[test] -fn bindgen_test_layout_imgIRequest() { - assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize); - assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize); +impl Clone for ProgressTracker { + fn clone(&self) -> Self { *self } } -pub enum imgStatusNotifyRunnable { } -pub enum ProxyBehaviour { } -pub enum Image { } -pub enum ImageURL { } -pub enum ProgressTracker { } #[repr(C)] -pub struct imgRequestProxy { - pub _bindgen_opaque_blob: [u64; 15usize], +#[derive(Debug, Copy)] +pub struct ProxyBehaviour { + pub _address: u8, } -#[test] -fn bindgen_test_layout_imgRequestProxy() { - assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize); - assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); +impl Clone for ProxyBehaviour { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct imgRequestProxyStatic { - pub _bindgen_opaque_blob: [u64; 16usize], +#[derive(Debug)] +pub struct nsStyleVisibility { + pub mImageOrientation: nsStyleImageOrientation, + pub mDirection: u8, + pub mVisible: u8, + pub mImageRendering: u8, + pub mWritingMode: u8, + pub mTextOrientation: u8, + pub mColorAdjust: u8, } #[test] -fn bindgen_test_layout_imgRequestProxyStatic() { - assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize); - assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize); +fn bindgen_test_layout_nsStyleVisibility() { + assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); + assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); } -pub enum nsStyleContext { } -pub enum nsTextFrame { } #[repr(C)] #[derive(Debug)] pub struct FragmentOrURL { @@ -5582,18 +9517,20 @@ fn bindgen_test_layout_FragmentOrURL() { #[repr(C)] #[derive(Debug, Copy)] pub struct Position { - pub mXPosition: nsStyleCoord_CalcValue, - pub mYPosition: nsStyleCoord_CalcValue, -} -impl ::std::clone::Clone for Position { - fn clone(&self) -> Self { *self } + pub mXPosition: Position_Coord, + pub mYPosition: Position_Coord, } +pub type Position_Coord = nsStyleCoord_CalcValue; #[test] fn bindgen_test_layout_Position() { assert_eq!(::std::mem::size_of::<Position>() , 24usize); assert_eq!(::std::mem::align_of::<Position>() , 4usize); } +impl Clone for Position { + fn clone(&self) -> Self { *self } +} #[repr(C)] +#[derive(Debug)] pub struct nsStyleFont { pub mFont: nsFont, pub mSize: nscoord, @@ -5641,13 +9578,14 @@ pub struct nsStyleGradient { pub mStops: nsTArray<nsStyleGradientStop>, pub mRefCnt: ThreadSafeAutoRefCnt, } +pub type nsStyleGradient_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsStyleGradient() { assert_eq!(::std::mem::size_of::<nsStyleGradient>() , 104usize); assert_eq!(::std::mem::align_of::<nsStyleGradient>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageType { eStyleImageType_Null = 0, eStyleImageType_Image = 1, @@ -5655,9 +9593,10 @@ pub enum nsStyleImageType { eStyleImageType_Element = 3, } #[repr(C)] +#[derive(Debug)] pub struct CachedBorderImageData { pub mCachedSVGViewportSize: [u64; 2usize], - pub mSubImages: u64, + pub mSubImages: nsCOMArray<imgIContainer>, } #[test] fn bindgen_test_layout_CachedBorderImageData() { @@ -5675,47 +9614,33 @@ fn bindgen_test_layout_CachedBorderImageData() { * image of type (1)). */ #[repr(C)] +#[derive(Debug)] pub struct nsStyleImage { pub mCachedBIData: UniquePtr<CachedBorderImageData, DefaultDelete<CachedBorderImageData>>, pub mType: nsStyleImageType, - pub nsStyleImage_nsStyleStruct_h_unnamed_21: nsStyleImage_nsStyleStruct_h_unnamed_21, + pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_211908, pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleImage_nsStyleStruct_h_unnamed_21 { +pub struct nsStyleImage__bindgen_ty_bindgen_id_211908 { pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mGradient: __BindgenUnionField<*mut nsStyleGradient>, - pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, - pub _bindgen_data_: u64, -} -impl nsStyleImage_nsStyleStruct_h_unnamed_21 { - pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGradient(&mut self) -> *mut *mut nsStyleGradient { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mElementId(&mut self) - -> *mut *mut ::std::os::raw::c_ushort { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_21 { - fn clone(&self) -> Self { *self } + pub mElementId: __BindgenUnionField<*mut u16>, + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_21() { - assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_21>() +fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_211908() { + assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_211908>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_21>() + assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_211908>() , 8usize); } +impl Clone for nsStyleImage__bindgen_ty_bindgen_id_211908 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleImage() { assert_eq!(::std::mem::size_of::<nsStyleImage>() , 40usize); @@ -5742,11 +9667,12 @@ pub struct nsStyleAutoArray<T> { pub mOtherElements: nsTArray<T>, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleAutoArray_WithSingleInitialElement { WITH_SINGLE_INITIAL_ELEMENT = 0, } #[repr(C)] +#[derive(Debug)] pub struct nsStyleImageLayers { pub mAttachmentCount: u32, pub mClipCount: u32, @@ -5762,8 +9688,8 @@ pub struct nsStyleImageLayers { pub mLayers: nsStyleAutoArray<nsStyleImageLayers_Layer>, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_22 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_211954 { shorthand = 0, color = 1, image = 2, @@ -5777,8 +9703,8 @@ pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_22 { maskMode = 10, composite = 11, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageLayers_LayerType { Background = 0, Mask = 1, } #[repr(C)] #[derive(Debug, Copy)] @@ -5793,9 +9719,6 @@ pub struct nsStyleImageLayers_Size { pub struct nsStyleImageLayers_Size_Dimension { pub _base: nsStyleCoord_CalcValue, } -impl ::std::clone::Clone for nsStyleImageLayers_Size_Dimension { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Size_Dimension>() , @@ -5803,8 +9726,11 @@ fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension() { assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Size_Dimension>() , 4usize); } +impl Clone for nsStyleImageLayers_Size_Dimension { + fn clone(&self) -> Self { *self } +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageLayers_Size_DimensionType { eContain = 0, eCover = 1, @@ -5812,29 +9738,30 @@ pub enum nsStyleImageLayers_Size_DimensionType { eLengthPercentage = 3, eDimensionType_COUNT = 4, } -impl ::std::clone::Clone for nsStyleImageLayers_Size { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Size() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Size>() , 28usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Size>() , 4usize); } +impl Clone for nsStyleImageLayers_Size { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] pub struct nsStyleImageLayers_Repeat { pub mXRepeat: u8, pub mYRepeat: u8, } -impl ::std::clone::Clone for nsStyleImageLayers_Repeat { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Repeat() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Repeat>() , 2usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Repeat>() , 1usize); } +impl Clone for nsStyleImageLayers_Repeat { + fn clone(&self) -> Self { *self } +} #[repr(C)] +#[derive(Debug)] pub struct nsStyleImageLayers_Layer { pub mImage: nsStyleImage, pub mSourceURI: FragmentOrURL, @@ -5853,20 +9780,22 @@ fn bindgen_test_layout_nsStyleImageLayers_Layer() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Layer>() , 120usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Layer>() , 8usize); } -#[test] -fn bindgen_test_layout_nsStyleImageLayers() { - assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 176usize); - assert_eq!(::std::mem::align_of::<nsStyleImageLayers>() , 8usize); -} extern "C" { #[link_name = "_ZN18nsStyleImageLayers21kBackgroundLayerTableE"] - pub static mut nsStyleImageLayers_consts_kBackgroundLayerTable: + pub static mut nsStyleImageLayers_kBackgroundLayerTable: *const nsCSSPropertyID; +} +extern "C" { #[link_name = "_ZN18nsStyleImageLayers15kMaskLayerTableE"] - pub static mut nsStyleImageLayers_consts_kMaskLayerTable: - *const nsCSSPropertyID; + pub static mut nsStyleImageLayers_kMaskLayerTable: *const nsCSSPropertyID; +} +#[test] +fn bindgen_test_layout_nsStyleImageLayers() { + assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 176usize); + assert_eq!(::std::mem::align_of::<nsStyleImageLayers>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleBackground { pub mImage: nsStyleImageLayers, pub mBackgroundColor: nscolor, @@ -5930,12 +9859,14 @@ pub struct nsCSSShadowArray { pub mLength: u32, pub mArray: [nsCSSShadowItem; 1usize], } +pub type nsCSSShadowArray_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsCSSShadowArray() { assert_eq!(::std::mem::size_of::<nsCSSShadowArray>() , 40usize); assert_eq!(::std::mem::align_of::<nsCSSShadowArray>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleBorder { pub mBorderColors: *mut *mut nsBorderColors, pub mBorderRadius: nsStyleCorners, @@ -5984,14 +9915,18 @@ fn bindgen_test_layout_nsStyleOutline() { #[derive(Debug)] pub struct nsStyleQuoteValues { pub mRefCnt: ThreadSafeAutoRefCnt, - pub mQuotePairs: nsTArray<pair<nsString, nsString>>, + pub mQuotePairs: nsStyleQuoteValues_QuotePairArray, } +pub type nsStyleQuoteValues_QuotePairArray = + nsTArray<pair<nsString, nsString>>; +pub type nsStyleQuoteValues_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsStyleQuoteValues() { assert_eq!(::std::mem::size_of::<nsStyleQuoteValues>() , 16usize); assert_eq!(::std::mem::align_of::<nsStyleQuoteValues>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleList { pub mListStylePosition: u8, pub mCounterStyle: RefPtr<CounterStyle>, @@ -5999,18 +9934,19 @@ pub struct nsStyleList { pub mQuotes: RefPtr<nsStyleQuoteValues>, pub mImageRegion: nsRect, } -#[test] -fn bindgen_test_layout_nsStyleList() { - assert_eq!(::std::mem::size_of::<nsStyleList>() , 48usize); - assert_eq!(::std::mem::align_of::<nsStyleList>() , 8usize); -} extern "C" { #[link_name = "_ZN11nsStyleList14sInitialQuotesE"] - pub static mut nsStyleList_consts_sInitialQuotes: + pub static mut nsStyleList_sInitialQuotes: StaticRefPtr<nsStyleQuoteValues>; +} +extern "C" { #[link_name = "_ZN11nsStyleList11sNoneQuotesE"] - pub static mut nsStyleList_consts_sNoneQuotes: - StaticRefPtr<nsStyleQuoteValues>; + pub static mut nsStyleList_sNoneQuotes: StaticRefPtr<nsStyleQuoteValues>; +} +#[test] +fn bindgen_test_layout_nsStyleList() { + assert_eq!(::std::mem::size_of::<nsStyleList>() , 48usize); + assert_eq!(::std::mem::align_of::<nsStyleList>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -6019,17 +9955,19 @@ pub struct nsStyleGridLine { pub mInteger: i32, pub mLineName: nsString, } +extern "C" { + #[link_name = "_ZN15nsStyleGridLine8kMinLineE"] + pub static nsStyleGridLine_kMinLine: i32; +} +extern "C" { + #[link_name = "_ZN15nsStyleGridLine8kMaxLineE"] + pub static nsStyleGridLine_kMaxLine: i32; +} #[test] fn bindgen_test_layout_nsStyleGridLine() { assert_eq!(::std::mem::size_of::<nsStyleGridLine>() , 24usize); assert_eq!(::std::mem::align_of::<nsStyleGridLine>() , 8usize); } -extern "C" { - #[link_name = "_ZN15nsStyleGridLine8kMinLineE"] - pub static nsStyleGridLine_consts_kMinLine: ::std::os::raw::c_int; - #[link_name = "_ZN15nsStyleGridLine8kMaxLineE"] - pub static nsStyleGridLine_consts_kMaxLine: ::std::os::raw::c_int; -} #[repr(C)] #[derive(Debug)] pub struct nsStyleGridTemplate { @@ -6041,34 +9979,36 @@ pub struct nsStyleGridTemplate { pub mRepeatAutoIndex: i16, pub _bitfield_1: u8, } +#[test] +fn bindgen_test_layout_nsStyleGridTemplate() { + assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize); + assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize); +} impl nsStyleGridTemplate { #[inline] - pub fn mIsAutoFill(&self) -> u8 { - (self._bitfield_1 & (1usize as u8)) >> 0usize + pub fn mIsAutoFill(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u8)) >> + 0u32) as u8) + } } #[inline] pub fn set_mIsAutoFill(&mut self, val: bool) { self._bitfield_1 &= !(1usize as u8); - self._bitfield_1 |= ((val as u8) << 0usize) & (1usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 0u32) & (1usize as u8); } #[inline] - pub fn mIsSubgrid(&self) -> u8 { - (self._bitfield_1 & (2usize as u8)) >> 1usize + pub fn mIsSubgrid(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u8)) >> + 1u32) as u8) + } } #[inline] pub fn set_mIsSubgrid(&mut self, val: bool) { self._bitfield_1 &= !(2usize as u8); - self._bitfield_1 |= ((val as u8) << 1usize) & (2usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } - #[inline] - pub fn new_bitfield_1(mIsAutoFill: bool, mIsSubgrid: bool) -> u8 { - 0 | ((mIsAutoFill as u8) << 0u32) | ((mIsSubgrid as u8) << 1u32) - } -} -#[test] -fn bindgen_test_layout_nsStyleGridTemplate() { - assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize); - assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -6186,121 +10126,109 @@ pub struct nsStyleText { pub mTextShadow: RefPtr<nsCSSShadowArray>, pub mTextEmphasisStyleString: nsString, } +#[test] +fn bindgen_test_layout_nsStyleText() { + assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize); + assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize); +} impl nsStyleText { #[inline] - pub fn mTextAlignTrue(&self) -> u8 { - (self._bitfield_1 & (1usize as u8)) >> 0usize + pub fn mTextAlignTrue(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u8)) >> + 0u32) as u8) + } } #[inline] pub fn set_mTextAlignTrue(&mut self, val: bool) { self._bitfield_1 &= !(1usize as u8); - self._bitfield_1 |= ((val as u8) << 0usize) & (1usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 0u32) & (1usize as u8); } #[inline] - pub fn mTextAlignLastTrue(&self) -> u8 { - (self._bitfield_1 & (2usize as u8)) >> 1usize + pub fn mTextAlignLastTrue(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u8)) >> + 1u32) as u8) + } } #[inline] pub fn set_mTextAlignLastTrue(&mut self, val: bool) { self._bitfield_1 &= !(2usize as u8); - self._bitfield_1 |= ((val as u8) << 1usize) & (2usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } #[inline] - pub fn mTextEmphasisColorForeground(&self) -> u8 { - (self._bitfield_1 & (4usize as u8)) >> 2usize + pub fn mTextEmphasisColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u8)) >> + 2u32) as u8) + } } #[inline] pub fn set_mTextEmphasisColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(4usize as u8); - self._bitfield_1 |= ((val as u8) << 2usize) & (4usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 2u32) & (4usize as u8); } #[inline] - pub fn mWebkitTextFillColorForeground(&self) -> u8 { - (self._bitfield_1 & (8usize as u8)) >> 3usize + pub fn mWebkitTextFillColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u8)) >> + 3u32) as u8) + } } #[inline] pub fn set_mWebkitTextFillColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(8usize as u8); - self._bitfield_1 |= ((val as u8) << 3usize) & (8usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 3u32) & (8usize as u8); } #[inline] - pub fn mWebkitTextStrokeColorForeground(&self) -> u8 { - (self._bitfield_1 & (16usize as u8)) >> 4usize + pub fn mWebkitTextStrokeColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u8)) >> + 4u32) as u8) + } } #[inline] pub fn set_mWebkitTextStrokeColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(16usize as u8); - self._bitfield_1 |= ((val as u8) << 4usize) & (16usize as u8); - } - #[inline] - pub fn new_bitfield_1(mTextAlignTrue: bool, mTextAlignLastTrue: bool, - mTextEmphasisColorForeground: bool, - mWebkitTextFillColorForeground: bool, - mWebkitTextStrokeColorForeground: bool) -> u8 { - 0 | ((mTextAlignTrue as u8) << 0u32) | - ((mTextAlignLastTrue as u8) << 1u32) | - ((mTextEmphasisColorForeground as u8) << 2u32) | - ((mWebkitTextFillColorForeground as u8) << 3u32) | - ((mWebkitTextStrokeColorForeground as u8) << 4u32) + self._bitfield_1 |= ((val as u8 as u8) << 4u32) & (16usize as u8); } } -#[test] -fn bindgen_test_layout_nsStyleText() { - assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize); - assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize); -} #[repr(C)] #[derive(Debug, Copy)] pub struct nsStyleImageOrientation { pub mOrientation: u8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageOrientation_Bits { ORIENTATION_MASK = 3, FLIP_MASK = 4, FROM_IMAGE_MASK = 8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageOrientation_Angles { ANGLE_0 = 0, ANGLE_90 = 1, ANGLE_180 = 2, ANGLE_270 = 3, } -impl ::std::clone::Clone for nsStyleImageOrientation { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageOrientation() { assert_eq!(::std::mem::size_of::<nsStyleImageOrientation>() , 1usize); assert_eq!(::std::mem::align_of::<nsStyleImageOrientation>() , 1usize); } -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleVisibility { - pub mImageOrientation: nsStyleImageOrientation, - pub mDirection: u8, - pub mVisible: u8, - pub mImageRendering: u8, - pub mWritingMode: u8, - pub mTextOrientation: u8, - pub mColorAdjust: u8, -} -#[test] -fn bindgen_test_layout_nsStyleVisibility() { - assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); - assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); +impl Clone for nsStyleImageOrientation { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] pub struct nsTimingFunction { pub mType: nsTimingFunction_Type, - pub nsTimingFunction_nsStyleStruct_h_unnamed_23: nsTimingFunction_nsStyleStruct_h_unnamed_23, + pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_213713, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsTimingFunction_Type { Ease = 0, Linear = 1, @@ -6312,75 +10240,60 @@ pub enum nsTimingFunction_Type { CubicBezier = 7, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23 { - pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>, - pub nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>, - pub _bindgen_data_: [u32; 4usize], -} -impl nsTimingFunction_nsStyleStruct_h_unnamed_23 { - pub unsafe fn mFunc(&mut self) - -> - *mut nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25(&mut self) - -> - *mut nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_23 { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23>() - , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23>() - , 4usize); +pub struct nsTimingFunction__bindgen_ty_bindgen_id_213713 { + pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>, + pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>, + pub bindgen_union_field: [u32; 4usize], } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { +pub struct nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714 { pub mX1: f32, pub mY1: f32, pub mX2: f32, pub mY2: f32, } -impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { - fn clone(&self) -> Self { *self } -} #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>() + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>() , 4usize); } +impl Clone for + nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714 + { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { +pub struct nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725 { pub mSteps: u32, } -impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { +#[test] +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>() + , 4usize); + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>() + , 4usize); +} +impl Clone for + nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725 + { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>() - , 4usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713>() + , 16usize); + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713>() , 4usize); } -impl ::std::clone::Clone for nsTimingFunction { +impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_213713 { fn clone(&self) -> Self { *self } } #[test] @@ -6388,6 +10301,9 @@ fn bindgen_test_layout_nsTimingFunction() { assert_eq!(::std::mem::size_of::<nsTimingFunction>() , 20usize); assert_eq!(::std::mem::align_of::<nsTimingFunction>() , 4usize); } +impl Clone for nsTimingFunction { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug)] pub struct StyleTransition { @@ -6429,6 +10345,7 @@ pub struct StyleBasicShape { pub mPosition: Position, pub mRadius: nsStyleCorners, } +pub type StyleBasicShape_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_StyleBasicShape() { assert_eq!(::std::mem::size_of::<StyleBasicShape>() , 120usize); @@ -6437,92 +10354,21 @@ fn bindgen_test_layout_StyleBasicShape() { #[repr(C)] #[derive(Debug)] pub struct StyleShapeSource<ReferenceBox> { - pub StyleShapeSource_nsStyleStruct_h_unnamed_26: StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox>, + pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_214096<ReferenceBox>, pub mType: StyleShapeSourceType, pub mReferenceBox: ReferenceBox, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox> { +pub struct StyleShapeSource__bindgen_ty_bindgen_id_214096<ReferenceBox> { pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>, - pub _bindgen_data_: u64, - pub _phantom0: ::std::marker::PhantomData<ReferenceBox>, -} -impl <ReferenceBox> StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox> - { - pub unsafe fn mBasicShape(&mut self) -> *mut *mut StyleBasicShape { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mURL(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>, } pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>; pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>; #[repr(C)] -pub struct nsStyleDisplay { - pub mBinding: RefPtr<URLValue>, - pub mDisplay: StyleDisplay, - pub mOriginalDisplay: StyleDisplay, - pub mContain: u8, - pub mAppearance: u8, - pub mPosition: u8, - pub mFloat: StyleFloat, - pub mOriginalFloat: StyleFloat, - pub mBreakType: StyleClear, - pub mBreakInside: u8, - pub mBreakBefore: bool, - pub mBreakAfter: bool, - pub mOverflowX: u8, - pub mOverflowY: u8, - pub mOverflowClipBox: u8, - pub mResize: u8, - pub mOrient: u8, - pub mIsolation: u8, - pub mTopLayer: u8, - pub mWillChangeBitField: u8, - pub mWillChange: nsTArray<nsString>, - pub mTouchAction: u8, - pub mScrollBehavior: u8, - pub mScrollSnapTypeX: u8, - pub mScrollSnapTypeY: u8, - pub mScrollSnapPointsX: nsStyleCoord, - pub mScrollSnapPointsY: nsStyleCoord, - pub mScrollSnapDestination: Position, - pub mScrollSnapCoordinate: nsTArray<Position>, - pub mBackfaceVisibility: u8, - pub mTransformStyle: u8, - pub mTransformBox: u8, - pub mSpecifiedTransform: RefPtr<nsCSSValueSharedList>, - pub mTransformOrigin: [nsStyleCoord; 3usize], - pub mChildPerspective: nsStyleCoord, - pub mPerspectiveOrigin: [nsStyleCoord; 2usize], - pub mVerticalAlign: nsStyleCoord, - pub mTransitions: nsStyleAutoArray<StyleTransition>, - pub mTransitionTimingFunctionCount: u32, - pub mTransitionDurationCount: u32, - pub mTransitionDelayCount: u32, - pub mTransitionPropertyCount: u32, - pub mAnimations: nsStyleAutoArray<StyleAnimation>, - pub mAnimationTimingFunctionCount: u32, - pub mAnimationDurationCount: u32, - pub mAnimationDelayCount: u32, - pub mAnimationNameCount: u32, - pub mAnimationDirectionCount: u32, - pub mAnimationFillModeCount: u32, - pub mAnimationPlayStateCount: u32, - pub mAnimationIterationCountCount: u32, - pub mShapeOutside: StyleShapeOutside, -} -#[test] -fn bindgen_test_layout_nsStyleDisplay() { - assert_eq!(::std::mem::size_of::<nsStyleDisplay>() , 424usize); - assert_eq!(::std::mem::align_of::<nsStyleDisplay>() , 8usize); -} -#[repr(C)] #[derive(Debug)] pub struct nsStyleTable { pub mLayoutStrategy: u8, @@ -6548,7 +10394,7 @@ fn bindgen_test_layout_nsStyleTableBorder() { assert_eq!(::std::mem::align_of::<nsStyleTableBorder>() , 4usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleContentType { eStyleContentType_String = 1, eStyleContentType_Image = 10, @@ -6566,41 +10412,27 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_27, + pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_214180, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleContentData_nsStyleStruct_h_unnamed_27 { - pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, +pub struct nsStyleContentData__bindgen_ty_bindgen_id_214180 { + pub mString: __BindgenUnionField<*mut u16>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>, - pub mCounters: __BindgenUnionField<*mut Array>, - pub _bindgen_data_: u64, -} -impl nsStyleContentData_nsStyleStruct_h_unnamed_27 { - pub unsafe fn mString(&mut self) -> *mut *mut ::std::os::raw::c_ushort { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mCounters(&mut self) -> *mut *mut Array { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_27 { - fn clone(&self) -> Self { *self } + pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_27() { - assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_27>() +fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_214180() { + assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_214180>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_27>() + assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_214180>() , 8usize); } +impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_214180 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleContentData() { assert_eq!(::std::mem::size_of::<nsStyleContentData>() , 24usize); @@ -6645,6 +10477,7 @@ fn bindgen_test_layout_nsStyleUIReset() { assert_eq!(::std::mem::align_of::<nsStyleUIReset>() , 1usize); } #[repr(C)] +#[derive(Debug)] pub struct nsCursorImage { pub mHaveHotspot: bool, pub mHotspotX: f32, @@ -6701,17 +10534,17 @@ pub struct nsStyleColumn { pub mColumnRuleWidth: nscoord, pub mTwipsPerPixel: nscoord, } +extern "C" { + #[link_name = "_ZN13nsStyleColumn15kMaxColumnCountE"] + pub static nsStyleColumn_kMaxColumnCount: u32; +} #[test] fn bindgen_test_layout_nsStyleColumn() { assert_eq!(::std::mem::size_of::<nsStyleColumn>() , 56usize); assert_eq!(::std::mem::align_of::<nsStyleColumn>() , 8usize); } -extern "C" { - #[link_name = "_ZN13nsStyleColumn15kMaxColumnCountE"] - pub static nsStyleColumn_consts_kMaxColumnCount: ::std::os::raw::c_uint; -} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleSVGPaintType { eStyleSVGPaintType_None = 1, eStyleSVGPaintType_Color = 2, @@ -6719,47 +10552,30 @@ pub enum nsStyleSVGPaintType { eStyleSVGPaintType_ContextFill = 4, eStyleSVGPaintType_ContextStroke = 5, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVGOpacitySource { - eStyleSVGOpacitySource_Normal = 0, - eStyleSVGOpacitySource_ContextFillOpacity = 1, - eStyleSVGOpacitySource_ContextStrokeOpacity = 2, -} #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_28, + pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_214579, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { +pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_214579 { pub mColor: __BindgenUnionField<nscolor>, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, - pub _bindgen_data_: u64, -} -impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { - pub unsafe fn mColor(&mut self) -> *mut nscolor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPaintServer(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { - fn clone(&self) -> Self { *self } + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_28() { - assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_28>() +fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_214579() { + assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_214579>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_28>() + assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_214579>() , 8usize); } +impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_214579 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleSVGPaint() { assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize); @@ -6791,8 +10607,8 @@ pub struct nsStyleSVG { pub mContextFlags: u8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVG_nsStyleStruct_h_unnamed_29 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleSVG__bindgen_ty_bindgen_id_214756 { FILL_OPACITY_SOURCE_MASK = 3, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -6811,41 +10627,32 @@ fn bindgen_test_layout_nsStyleSVG() { pub struct nsStyleFilter { pub mType: i32, pub mFilterParameter: nsStyleCoord, - pub nsStyleFilter_nsStyleStruct_h_unnamed_30: nsStyleFilter_nsStyleStruct_h_unnamed_30, + pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_214822, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleFilter_nsStyleStruct_h_unnamed_30 { +pub struct nsStyleFilter__bindgen_ty_bindgen_id_214822 { pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, - pub _bindgen_data_: u64, -} -impl nsStyleFilter_nsStyleStruct_h_unnamed_30 { - pub unsafe fn mURL(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mDropShadow(&mut self) -> *mut *mut nsCSSShadowArray { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_30 { - fn clone(&self) -> Self { *self } + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_30() { - assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_30>() +fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_214822() { + assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_214822>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_30>() + assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_214822>() , 8usize); } +impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_214822 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleFilter() { assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize); assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleSVGReset { pub mMask: nsStyleImageLayers, pub mClipPath: StyleClipPath, @@ -6864,6 +10671,7 @@ fn bindgen_test_layout_nsStyleSVGReset() { assert_eq!(::std::mem::align_of::<nsStyleSVGReset>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleVariables { pub mVariables: CSSVariableValues, } @@ -6888,19 +10696,77 @@ fn bindgen_test_layout_nsStyleEffects() { assert_eq!(::std::mem::align_of::<nsStyleEffects>() , 8usize); } /** - * <div rustbindgen="true" replaces="nsSize"> + * <div rustbindgen="true" replaces="nsMargin"> */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsSize { +pub struct nsMargin { + pub top: nscoord, + pub right: nscoord, + pub bottom: nscoord, + pub left: nscoord, +} +#[test] +fn bindgen_test_layout_nsMargin() { + assert_eq!(::std::mem::size_of::<nsMargin>() , 16usize); + assert_eq!(::std::mem::align_of::<nsMargin>() , 4usize); +} +impl Clone for nsMargin { + fn clone(&self) -> Self { *self } +} +/** + * <div rustbindgen="true" replaces="nsRect"> + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsRect { + pub x: nscoord, + pub y: nscoord, pub width: nscoord, pub height: nscoord, } -impl ::std::clone::Clone for nsSize { +#[test] +fn bindgen_test_layout_nsRect() { + assert_eq!(::std::mem::size_of::<nsRect>() , 16usize); + assert_eq!(::std::mem::align_of::<nsRect>() , 4usize); +} +impl Clone for nsRect { fn clone(&self) -> Self { *self } } +/** + * <div rustbindgen="true" replaces="nsSize"> + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsSize { + pub width: nscoord, + pub height: nscoord, +} #[test] fn bindgen_test_layout_nsSize() { assert_eq!(::std::mem::size_of::<nsSize>() , 8usize); assert_eq!(::std::mem::align_of::<nsSize>() , 4usize); } +impl Clone for nsSize { + fn clone(&self) -> Self { *self } +} +/** + * <div rustbindgen="true" replaces="UniquePtr"> + * + * TODO(Emilio): This is a workaround and we should be able to get rid of this + * one. + */ +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UniquePtr<T, Deleter> { + pub mPtr: *mut T, + pub _phantom_1: ::std::marker::PhantomData<Deleter>, +} +/** + * <div rustbindgen replaces="nsTArray"></div> + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsTArray<T> { + pub mBuffer: *mut T, +} diff --git a/ports/geckolib/gecko_bindings/structs_release.rs b/ports/geckolib/gecko_bindings/structs_release.rs index abbe9d32375..933032081be 100644 --- a/ports/geckolib/gecko_bindings/structs_release.rs +++ b/ports/geckolib/gecko_bindings/structs_release.rs @@ -1,6 +1,6 @@ /* automatically generated by rust-bindgen */ -#[derive(Copy, Debug)] +#[derive(Debug)] #[repr(C)] pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); impl <T> __BindgenUnionField<T> { @@ -19,6 +19,7 @@ impl <T> ::std::clone::Clone for __BindgenUnionField<T> { #[inline] fn clone(&self) -> Self { Self::new() } } +impl <T> ::std::marker::Copy for __BindgenUnionField<T> { } pub const NS_THEME_NONE: ::std::os::raw::c_uint = 0; pub const NS_THEME_BUTTON: ::std::os::raw::c_uint = 1; pub const NS_THEME_RADIO: ::std::os::raw::c_uint = 2; @@ -142,63 +143,9 @@ pub const NS_THEME_MAC_DISCLOSURE_BUTTON_OPEN: ::std::os::raw::c_uint = 245; pub const NS_THEME_MAC_DISCLOSURE_BUTTON_CLOSED: ::std::os::raw::c_uint = 246; pub const NS_THEME_GTK_INFO_BAR: ::std::os::raw::c_uint = 247; pub const NS_THEME_MAC_SOURCE_LIST: ::std::os::raw::c_uint = 248; -pub const NS_ERROR_MODULE_XPCOM: ::std::os::raw::c_uint = 1; -pub const NS_ERROR_MODULE_BASE: ::std::os::raw::c_uint = 2; -pub const NS_ERROR_MODULE_GFX: ::std::os::raw::c_uint = 3; -pub const NS_ERROR_MODULE_WIDGET: ::std::os::raw::c_uint = 4; -pub const NS_ERROR_MODULE_CALENDAR: ::std::os::raw::c_uint = 5; -pub const NS_ERROR_MODULE_NETWORK: ::std::os::raw::c_uint = 6; -pub const NS_ERROR_MODULE_PLUGINS: ::std::os::raw::c_uint = 7; -pub const NS_ERROR_MODULE_LAYOUT: ::std::os::raw::c_uint = 8; -pub const NS_ERROR_MODULE_HTMLPARSER: ::std::os::raw::c_uint = 9; -pub const NS_ERROR_MODULE_RDF: ::std::os::raw::c_uint = 10; -pub const NS_ERROR_MODULE_UCONV: ::std::os::raw::c_uint = 11; -pub const NS_ERROR_MODULE_REG: ::std::os::raw::c_uint = 12; -pub const NS_ERROR_MODULE_FILES: ::std::os::raw::c_uint = 13; -pub const NS_ERROR_MODULE_DOM: ::std::os::raw::c_uint = 14; -pub const NS_ERROR_MODULE_IMGLIB: ::std::os::raw::c_uint = 15; -pub const NS_ERROR_MODULE_MAILNEWS: ::std::os::raw::c_uint = 16; -pub const NS_ERROR_MODULE_EDITOR: ::std::os::raw::c_uint = 17; -pub const NS_ERROR_MODULE_XPCONNECT: ::std::os::raw::c_uint = 18; -pub const NS_ERROR_MODULE_PROFILE: ::std::os::raw::c_uint = 19; -pub const NS_ERROR_MODULE_LDAP: ::std::os::raw::c_uint = 20; -pub const NS_ERROR_MODULE_SECURITY: ::std::os::raw::c_uint = 21; -pub const NS_ERROR_MODULE_DOM_XPATH: ::std::os::raw::c_uint = 22; -pub const NS_ERROR_MODULE_URILOADER: ::std::os::raw::c_uint = 24; -pub const NS_ERROR_MODULE_CONTENT: ::std::os::raw::c_uint = 25; -pub const NS_ERROR_MODULE_PYXPCOM: ::std::os::raw::c_uint = 26; -pub const NS_ERROR_MODULE_XSLT: ::std::os::raw::c_uint = 27; -pub const NS_ERROR_MODULE_IPC: ::std::os::raw::c_uint = 28; -pub const NS_ERROR_MODULE_SVG: ::std::os::raw::c_uint = 29; -pub const NS_ERROR_MODULE_STORAGE: ::std::os::raw::c_uint = 30; -pub const NS_ERROR_MODULE_SCHEMA: ::std::os::raw::c_uint = 31; -pub const NS_ERROR_MODULE_DOM_FILE: ::std::os::raw::c_uint = 32; -pub const NS_ERROR_MODULE_DOM_INDEXEDDB: ::std::os::raw::c_uint = 33; -pub const NS_ERROR_MODULE_DOM_FILEHANDLE: ::std::os::raw::c_uint = 34; -pub const NS_ERROR_MODULE_SIGNED_JAR: ::std::os::raw::c_uint = 35; -pub const NS_ERROR_MODULE_DOM_FILESYSTEM: ::std::os::raw::c_uint = 36; -pub const NS_ERROR_MODULE_DOM_BLUETOOTH: ::std::os::raw::c_uint = 37; -pub const NS_ERROR_MODULE_SIGNED_APP: ::std::os::raw::c_uint = 38; -pub const NS_ERROR_MODULE_DOM_ANIM: ::std::os::raw::c_uint = 39; -pub const NS_ERROR_MODULE_DOM_PUSH: ::std::os::raw::c_uint = 40; -pub const NS_ERROR_MODULE_DOM_MEDIA: ::std::os::raw::c_uint = 41; -pub const NS_ERROR_MODULE_GENERAL: ::std::os::raw::c_uint = 51; -pub const NS_ERROR_SEVERITY_SUCCESS: ::std::os::raw::c_uint = 0; -pub const NS_ERROR_SEVERITY_ERROR: ::std::os::raw::c_uint = 1; -pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69; -pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1; -pub const NSID_LENGTH: ::std::os::raw::c_uint = 39; -pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2; -pub const NS_EVENT_STATE_HIGHEST_SERVO_BIT: ::std::os::raw::c_uint = 6; -pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1; -pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2; -pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20; -pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72; -pub const NS_ATTRNAME_NODEINFO_BIT: ::std::os::raw::c_uint = 1; -pub const NS_ATTRVALUE_MAX_STRINGLENGTH_ATOM: ::std::os::raw::c_uint = 12; -pub const NS_ATTRVALUE_INTEGERTYPE_BITS: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_SMALL_CAPS: ::std::os::raw::c_uint = 1; +pub const NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0; +pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1; +pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2; pub const NS_CORNER_TOP_LEFT_X: ::std::os::raw::c_uint = 0; pub const NS_CORNER_TOP_LEFT_Y: ::std::os::raw::c_uint = 1; pub const NS_CORNER_TOP_RIGHT_X: ::std::os::raw::c_uint = 2; @@ -451,31 +398,6 @@ pub const NS_STYLE_GRID_TRACK_BREADTH_MAX_CONTENT: ::std::os::raw::c_uint = 1; pub const NS_STYLE_GRID_TRACK_BREADTH_MIN_CONTENT: ::std::os::raw::c_uint = 2; pub const NS_STYLE_GRID_REPEAT_AUTO_FILL: ::std::os::raw::c_uint = 0; pub const NS_STYLE_GRID_REPEAT_AUTO_FIT: ::std::os::raw::c_uint = 1; -pub const NS_MATHML_DEFAULT_SCRIPT_MIN_SIZE_PT: ::std::os::raw::c_uint = 8; -pub const NS_MATHML_MATHVARIANT_NONE: ::std::os::raw::c_uint = 0; -pub const NS_MATHML_MATHVARIANT_NORMAL: ::std::os::raw::c_uint = 1; -pub const NS_MATHML_MATHVARIANT_BOLD: ::std::os::raw::c_uint = 2; -pub const NS_MATHML_MATHVARIANT_ITALIC: ::std::os::raw::c_uint = 3; -pub const NS_MATHML_MATHVARIANT_BOLD_ITALIC: ::std::os::raw::c_uint = 4; -pub const NS_MATHML_MATHVARIANT_SCRIPT: ::std::os::raw::c_uint = 5; -pub const NS_MATHML_MATHVARIANT_BOLD_SCRIPT: ::std::os::raw::c_uint = 6; -pub const NS_MATHML_MATHVARIANT_FRAKTUR: ::std::os::raw::c_uint = 7; -pub const NS_MATHML_MATHVARIANT_DOUBLE_STRUCK: ::std::os::raw::c_uint = 8; -pub const NS_MATHML_MATHVARIANT_BOLD_FRAKTUR: ::std::os::raw::c_uint = 9; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF: ::std::os::raw::c_uint = 10; -pub const NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF: ::std::os::raw::c_uint = 11; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC: ::std::os::raw::c_uint = - 12; -pub const NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC: ::std::os::raw::c_uint - = - 13; -pub const NS_MATHML_MATHVARIANT_MONOSPACE: ::std::os::raw::c_uint = 14; -pub const NS_MATHML_MATHVARIANT_INITIAL: ::std::os::raw::c_uint = 15; -pub const NS_MATHML_MATHVARIANT_TAILED: ::std::os::raw::c_uint = 16; -pub const NS_MATHML_MATHVARIANT_LOOPED: ::std::os::raw::c_uint = 17; -pub const NS_MATHML_MATHVARIANT_STRETCHED: ::std::os::raw::c_uint = 18; -pub const NS_MATHML_DISPLAYSTYLE_INLINE: ::std::os::raw::c_uint = 0; -pub const NS_MATHML_DISPLAYSTYLE_BLOCK: ::std::os::raw::c_uint = 1; pub const NS_STYLE_WIDTH_MAX_CONTENT: ::std::os::raw::c_uint = 0; pub const NS_STYLE_WIDTH_MIN_CONTENT: ::std::os::raw::c_uint = 1; pub const NS_STYLE_WIDTH_FIT_CONTENT: ::std::os::raw::c_uint = 2; @@ -847,44 +769,6 @@ 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 NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1; -pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2; -pub const NS_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400; -pub const NS_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700; -pub const NS_FONT_WEIGHT_THIN: ::std::os::raw::c_uint = 100; -pub const NS_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1; -pub const NS_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2; -pub const NS_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint = 3; -pub const NS_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint = 4; -pub const NS_FONT_SMOOTHING_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_SMOOTHING_GRAYSCALE: ::std::os::raw::c_uint = 1; -pub const NS_FONT_KERNING_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_KERNING_NONE: ::std::os::raw::c_uint = 1; -pub const NS_FONT_KERNING_NORMAL: ::std::os::raw::c_uint = 2; -pub const NS_FONT_SYNTHESIS_WEIGHT: ::std::os::raw::c_uint = 1; -pub const NS_FONT_SYNTHESIS_STYLE: ::std::os::raw::c_uint = 2; -pub const NS_FONT_DISPLAY_AUTO: ::std::os::raw::c_uint = 0; -pub const NS_FONT_DISPLAY_BLOCK: ::std::os::raw::c_uint = 1; -pub const NS_FONT_DISPLAY_SWAP: ::std::os::raw::c_uint = 2; -pub const NS_FONT_DISPLAY_FALLBACK: ::std::os::raw::c_uint = 3; -pub const NS_FONT_DISPLAY_OPTIONAL: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_CAPS_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_CAPS_SMALLCAPS: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_CAPS_ALLSMALL: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_CAPS_PETITECAPS: ::std::os::raw::c_uint = 3; -pub const NS_FONT_VARIANT_CAPS_ALLPETITE: ::std::os::raw::c_uint = 4; -pub const NS_FONT_VARIANT_CAPS_TITLING: ::std::os::raw::c_uint = 5; -pub const NS_FONT_VARIANT_CAPS_UNICASE: ::std::os::raw::c_uint = 6; -pub const NS_FONT_VARIANT_POSITION_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_POSITION_SUPER: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_POSITION_SUB: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_WIDTH_NORMAL: ::std::os::raw::c_uint = 0; -pub const NS_FONT_VARIANT_WIDTH_FULL: ::std::os::raw::c_uint = 1; -pub const NS_FONT_VARIANT_WIDTH_HALF: ::std::os::raw::c_uint = 2; -pub const NS_FONT_VARIANT_WIDTH_THIRD: ::std::os::raw::c_uint = 3; -pub const NS_FONT_VARIANT_WIDTH_QUARTER: ::std::os::raw::c_uint = 4; pub const NS_STYLE_INHERIT_MASK: ::std::os::raw::c_uint = 16777215; pub const NS_STYLE_HAS_TEXT_DECORATION_LINES: ::std::os::raw::c_uint = 16777216; @@ -906,20 +790,25 @@ pub const NS_STYLE_HAS_CHILD_THAT_USES_RESET_STYLE: pub const NS_STYLE_IS_TEXT_COMBINED: ::std::os::raw::c_ulonglong = 34359738368; pub const NS_STYLE_CONTEXT_TYPE_SHIFT: ::std::os::raw::c_uint = 36; -pub const NS_RULE_NODE_IS_ANIMATION_RULE: ::std::os::raw::c_uint = 16777216; -pub const NS_RULE_NODE_USED_DIRECTLY: ::std::os::raw::c_uint = 67108864; -pub const NS_RULE_NODE_IS_IMPORTANT: ::std::os::raw::c_uint = 134217728; -pub const NS_RULE_NODE_LEVEL_MASK: ::std::os::raw::c_uint = 4026531840; -pub const NS_RULE_NODE_LEVEL_SHIFT: ::std::os::raw::c_uint = 28; -pub const NS_RULE_NODE_HAS_ANIMATION_DATA: ::std::os::raw::c_uint = - 2147483648; pub const BORDER_COLOR_FOREGROUND: ::std::os::raw::c_uint = 32; -pub const OUTLINE_COLOR_INITIAL: ::std::os::raw::c_uint = 128; pub const BORDER_COLOR_SPECIAL: ::std::os::raw::c_uint = 160; pub const BORDER_STYLE_MASK: ::std::os::raw::c_uint = 31; -pub const NS_SPACING_MARGIN: ::std::os::raw::c_uint = 0; -pub const NS_SPACING_PADDING: ::std::os::raw::c_uint = 1; -pub const NS_SPACING_BORDER: ::std::os::raw::c_uint = 2; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct fallible_t { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_fallible_t() { + assert_eq!(::std::mem::size_of::<fallible_t>() , 1usize); + assert_eq!(::std::mem::align_of::<fallible_t>() , 1usize); +} +impl Clone for fallible_t { + fn clone(&self) -> Self { *self } +} +/** Convenient aliases. */ +pub type TrueType = u8; +pub type FalseType = u8; /** * MozRefCountType is Mozilla's reference count type. * @@ -931,179 +820,184 @@ pub const NS_SPACING_BORDER: ::std::os::raw::c_uint = 2; * usable for both C and C++ code. */ pub type MozRefCountType = usize; -pub type MozExternalRefCountType = u32; -pub const NS_ERROR_NO_INTERFACE: nsresult = nsresult::NS_NOINTERFACE; -pub const NS_ERROR_INVALID_ARG: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_ERROR_INVALID_POINTER: nsresult = +pub const nsresult_NS_ERROR_NO_INTERFACE: nsresult = nsresult::NS_NOINTERFACE; +pub const nsresult_NS_ERROR_INVALID_ARG: nsresult = + nsresult::NS_ERROR_ILLEGAL_VALUE; +pub const nsresult_NS_ERROR_INVALID_POINTER: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_ERROR_NULL_POINTER: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_BINDING_SUCCEEDED: nsresult = nsresult::NS_OK; -pub const NS_NET_STATUS_RESOLVING_HOST: nsresult = +pub const nsresult_NS_ERROR_NULL_POINTER: nsresult = + nsresult::NS_ERROR_ILLEGAL_VALUE; +pub const nsresult_NS_BINDING_SUCCEEDED: nsresult = nsresult::NS_OK; +pub const nsresult_NS_NET_STATUS_RESOLVING_HOST: nsresult = nsresult::NS_BINDING_REDIRECTED; -pub const NS_NET_STATUS_RESOLVED_HOST: nsresult = +pub const nsresult_NS_NET_STATUS_RESOLVED_HOST: nsresult = nsresult::NS_ERROR_ALREADY_CONNECTED; -pub const NS_NET_STATUS_CONNECTED_TO: nsresult = +pub const nsresult_NS_NET_STATUS_CONNECTED_TO: nsresult = nsresult::NS_BINDING_RETARGETED; -pub const NS_NET_STATUS_WAITING_FOR: nsresult = +pub const nsresult_NS_NET_STATUS_WAITING_FOR: nsresult = nsresult::NS_ERROR_MALFORMED_URI; -pub const NS_STATE_PROPERTY_EXISTS: nsresult = nsresult::NS_OK; -pub const NS_ERROR_HTMLPARSER_CONTINUE: nsresult = nsresult::NS_OK; -pub const NS_RDF_ASSERTION_ACCEPTED: nsresult = nsresult::NS_OK; -pub const NS_EXACT_LENGTH: nsresult = nsresult::NS_OK_UDEC_EXACTLENGTH; -pub const NS_PARTIAL_MORE_INPUT: nsresult = nsresult::NS_OK_UDEC_MOREINPUT; -pub const NS_PARTIAL_MORE_OUTPUT: nsresult = nsresult::NS_OK_UDEC_MOREOUTPUT; -pub const NS_ERROR_ILLEGAL_INPUT: nsresult = +pub const nsresult_NS_STATE_PROPERTY_EXISTS: nsresult = nsresult::NS_OK; +pub const nsresult_NS_ERROR_HTMLPARSER_CONTINUE: nsresult = nsresult::NS_OK; +pub const nsresult_NS_RDF_ASSERTION_ACCEPTED: nsresult = nsresult::NS_OK; +pub const nsresult_NS_EXACT_LENGTH: nsresult = + nsresult::NS_OK_UDEC_EXACTLENGTH; +pub const nsresult_NS_PARTIAL_MORE_INPUT: nsresult = + nsresult::NS_OK_UDEC_MOREINPUT; +pub const nsresult_NS_PARTIAL_MORE_OUTPUT: nsresult = + nsresult::NS_OK_UDEC_MOREOUTPUT; +pub const nsresult_NS_ERROR_ILLEGAL_INPUT: nsresult = nsresult::NS_ERROR_UDEC_ILLEGALINPUT; -pub const NS_ERROR_XPATH_INVALID_ARG: nsresult = +pub const nsresult_NS_ERROR_XPATH_INVALID_ARG: nsresult = nsresult::NS_ERROR_ILLEGAL_VALUE; -pub const NS_SUCCESS_RESTART_APP: nsresult = nsresult::NS_SUCCESS_DONT_FIXUP; -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub const nsresult_NS_SUCCESS_RESTART_APP: nsresult = + nsresult::NS_SUCCESS_DONT_FIXUP; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsresult { NS_OK = 0, - NS_ERROR_BASE = -1041039360, - NS_ERROR_NOT_INITIALIZED = -1041039359, - NS_ERROR_ALREADY_INITIALIZED = -1041039358, - NS_ERROR_NOT_IMPLEMENTED = -2147467263, - NS_NOINTERFACE = -2147467262, - NS_ERROR_ABORT = -2147467260, - NS_ERROR_FAILURE = -2147467259, - NS_ERROR_UNEXPECTED = -2147418113, - NS_ERROR_OUT_OF_MEMORY = -2147024882, - NS_ERROR_ILLEGAL_VALUE = -2147024809, - NS_ERROR_NO_AGGREGATION = -2147221232, - NS_ERROR_NOT_AVAILABLE = -2147221231, - NS_ERROR_FACTORY_NOT_REGISTERED = -2147221164, - NS_ERROR_FACTORY_REGISTER_AGAIN = -2147221163, - NS_ERROR_FACTORY_NOT_LOADED = -2147221000, - NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = -1041039103, - NS_ERROR_FACTORY_EXISTS = -1041039104, - NS_ERROR_CANNOT_CONVERT_DATA = -2142896127, - NS_ERROR_OBJECT_IS_IMMUTABLE = -2142896126, - NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = -2142896125, - NS_ERROR_NOT_SAME_THREAD = -2142896124, - NS_ERROR_ILLEGAL_DURING_SHUTDOWN = -2142896098, - NS_ERROR_SERVICE_NOT_AVAILABLE = -2142896106, + NS_ERROR_BASE = 3253927936, + NS_ERROR_NOT_INITIALIZED = 3253927937, + NS_ERROR_ALREADY_INITIALIZED = 3253927938, + NS_ERROR_NOT_IMPLEMENTED = 2147500033, + NS_NOINTERFACE = 2147500034, + NS_ERROR_ABORT = 2147500036, + NS_ERROR_FAILURE = 2147500037, + NS_ERROR_UNEXPECTED = 2147549183, + NS_ERROR_OUT_OF_MEMORY = 2147942414, + NS_ERROR_ILLEGAL_VALUE = 2147942487, + NS_ERROR_NO_AGGREGATION = 2147746064, + NS_ERROR_NOT_AVAILABLE = 2147746065, + NS_ERROR_FACTORY_NOT_REGISTERED = 2147746132, + NS_ERROR_FACTORY_REGISTER_AGAIN = 2147746133, + NS_ERROR_FACTORY_NOT_LOADED = 2147746296, + NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT = 3253928193, + NS_ERROR_FACTORY_EXISTS = 3253928192, + NS_ERROR_CANNOT_CONVERT_DATA = 2152071169, + NS_ERROR_OBJECT_IS_IMMUTABLE = 2152071170, + NS_ERROR_LOSS_OF_SIGNIFICANT_DATA = 2152071171, + NS_ERROR_NOT_SAME_THREAD = 2152071172, + NS_ERROR_ILLEGAL_DURING_SHUTDOWN = 2152071198, + NS_ERROR_SERVICE_NOT_AVAILABLE = 2152071190, NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA = 4587521, NS_SUCCESS_INTERRUPTED_TRAVERSE = 4587522, NS_ERROR_SERVICE_NOT_FOUND = 4587542, NS_ERROR_SERVICE_IN_USE = 4587543, - NS_BASE_STREAM_CLOSED = -2142830590, - NS_BASE_STREAM_OSERROR = -2142830589, - NS_BASE_STREAM_ILLEGAL_ARGS = -2142830588, - NS_BASE_STREAM_NO_CONVERTER = -2142830587, - NS_BASE_STREAM_BAD_CONVERSION = -2142830586, - NS_BASE_STREAM_WOULD_BLOCK = -2142830585, - NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = -2142765055, - NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = -2142765054, - NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = -2142765053, - NS_ERROR_GFX_PRINTER_STARTDOC = -2142765052, - NS_ERROR_GFX_PRINTER_ENDDOC = -2142765051, - NS_ERROR_GFX_PRINTER_STARTPAGE = -2142765050, - NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = -2142765049, - NS_ERROR_GFX_CMAP_MALFORMED = -2142765005, + NS_BASE_STREAM_CLOSED = 2152136706, + NS_BASE_STREAM_OSERROR = 2152136707, + NS_BASE_STREAM_ILLEGAL_ARGS = 2152136708, + NS_BASE_STREAM_NO_CONVERTER = 2152136709, + NS_BASE_STREAM_BAD_CONVERSION = 2152136710, + NS_BASE_STREAM_WOULD_BLOCK = 2152136711, + NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE = 2152202241, + NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND = 2152202242, + NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE = 2152202243, + NS_ERROR_GFX_PRINTER_STARTDOC = 2152202244, + NS_ERROR_GFX_PRINTER_ENDDOC = 2152202245, + NS_ERROR_GFX_PRINTER_STARTPAGE = 2152202246, + NS_ERROR_GFX_PRINTER_DOC_IS_BUSY = 2152202247, + NS_ERROR_GFX_CMAP_MALFORMED = 2152202291, NS_SUCCESS_EVENT_CONSUMED = 4784129, NS_SUCCESS_EVENT_HANDLED_ASYNCHRONOUSLY = 4784130, - NS_BINDING_FAILED = -2142568447, - NS_BINDING_ABORTED = -2142568446, - NS_BINDING_REDIRECTED = -2142568445, - NS_BINDING_RETARGETED = -2142568444, - NS_ERROR_MALFORMED_URI = -2142568438, - NS_ERROR_IN_PROGRESS = -2142568433, - NS_ERROR_NO_CONTENT = -2142568431, - NS_ERROR_UNKNOWN_PROTOCOL = -2142568430, - NS_ERROR_INVALID_CONTENT_ENCODING = -2142568421, - NS_ERROR_CORRUPTED_CONTENT = -2142568419, - NS_ERROR_INVALID_SIGNATURE = -2142568390, - NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = -2142568414, - NS_ERROR_ALREADY_OPENED = -2142568375, - NS_ERROR_ALREADY_CONNECTED = -2142568437, - NS_ERROR_NOT_CONNECTED = -2142568436, - NS_ERROR_CONNECTION_REFUSED = -2142568435, - NS_ERROR_NET_TIMEOUT = -2142568434, - NS_ERROR_OFFLINE = -2142568432, - NS_ERROR_PORT_ACCESS_NOT_ALLOWED = -2142568429, - NS_ERROR_NET_RESET = -2142568428, - NS_ERROR_NET_INTERRUPT = -2142568377, - NS_ERROR_PROXY_CONNECTION_REFUSED = -2142568376, - NS_ERROR_NET_PARTIAL_TRANSFER = -2142568372, - NS_ERROR_NET_INADEQUATE_SECURITY = -2142568366, - NS_ERROR_NOT_RESUMABLE = -2142568423, - NS_ERROR_REDIRECT_LOOP = -2142568417, - NS_ERROR_ENTITY_CHANGED = -2142568416, - NS_ERROR_UNSAFE_CONTENT_TYPE = -2142568374, - NS_ERROR_REMOTE_XUL = -2142568373, - NS_ERROR_LOAD_SHOWED_ERRORPAGE = -2142568371, - NS_ERROR_FTP_LOGIN = -2142568427, - NS_ERROR_FTP_CWD = -2142568426, - NS_ERROR_FTP_PASV = -2142568425, - NS_ERROR_FTP_PWD = -2142568424, - NS_ERROR_FTP_LIST = -2142568420, - NS_ERROR_UNKNOWN_HOST = -2142568418, - NS_ERROR_DNS_LOOKUP_QUEUE_FULL = -2142568415, - NS_ERROR_UNKNOWN_PROXY_HOST = -2142568406, - NS_ERROR_UNKNOWN_SOCKET_TYPE = -2142568397, - NS_ERROR_SOCKET_CREATE_FAILED = -2142568396, - NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = -2142568395, - NS_ERROR_SOCKET_ADDRESS_IN_USE = -2142568394, - NS_ERROR_CACHE_KEY_NOT_FOUND = -2142568387, - NS_ERROR_CACHE_DATA_IS_STREAM = -2142568386, - NS_ERROR_CACHE_DATA_IS_NOT_STREAM = -2142568385, - NS_ERROR_CACHE_WAIT_FOR_VALIDATION = -2142568384, - NS_ERROR_CACHE_ENTRY_DOOMED = -2142568383, - NS_ERROR_CACHE_READ_ACCESS_DENIED = -2142568382, - NS_ERROR_CACHE_WRITE_ACCESS_DENIED = -2142568381, - NS_ERROR_CACHE_IN_USE = -2142568380, - NS_ERROR_DOCUMENT_NOT_CACHED = -2142568378, - NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = -2142568368, - NS_ERROR_HOST_IS_IP_ADDRESS = -2142568367, + NS_BINDING_FAILED = 2152398849, + NS_BINDING_ABORTED = 2152398850, + NS_BINDING_REDIRECTED = 2152398851, + NS_BINDING_RETARGETED = 2152398852, + NS_ERROR_MALFORMED_URI = 2152398858, + NS_ERROR_IN_PROGRESS = 2152398863, + NS_ERROR_NO_CONTENT = 2152398865, + NS_ERROR_UNKNOWN_PROTOCOL = 2152398866, + NS_ERROR_INVALID_CONTENT_ENCODING = 2152398875, + NS_ERROR_CORRUPTED_CONTENT = 2152398877, + NS_ERROR_INVALID_SIGNATURE = 2152398906, + NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY = 2152398882, + NS_ERROR_ALREADY_OPENED = 2152398921, + NS_ERROR_ALREADY_CONNECTED = 2152398859, + NS_ERROR_NOT_CONNECTED = 2152398860, + NS_ERROR_CONNECTION_REFUSED = 2152398861, + NS_ERROR_NET_TIMEOUT = 2152398862, + NS_ERROR_OFFLINE = 2152398864, + NS_ERROR_PORT_ACCESS_NOT_ALLOWED = 2152398867, + NS_ERROR_NET_RESET = 2152398868, + NS_ERROR_NET_INTERRUPT = 2152398919, + NS_ERROR_PROXY_CONNECTION_REFUSED = 2152398920, + NS_ERROR_NET_PARTIAL_TRANSFER = 2152398924, + NS_ERROR_NET_INADEQUATE_SECURITY = 2152398930, + NS_ERROR_NOT_RESUMABLE = 2152398873, + NS_ERROR_REDIRECT_LOOP = 2152398879, + NS_ERROR_ENTITY_CHANGED = 2152398880, + NS_ERROR_UNSAFE_CONTENT_TYPE = 2152398922, + NS_ERROR_REMOTE_XUL = 2152398923, + NS_ERROR_LOAD_SHOWED_ERRORPAGE = 2152398925, + NS_ERROR_FTP_LOGIN = 2152398869, + NS_ERROR_FTP_CWD = 2152398870, + NS_ERROR_FTP_PASV = 2152398871, + NS_ERROR_FTP_PWD = 2152398872, + NS_ERROR_FTP_LIST = 2152398876, + NS_ERROR_UNKNOWN_HOST = 2152398878, + NS_ERROR_DNS_LOOKUP_QUEUE_FULL = 2152398881, + NS_ERROR_UNKNOWN_PROXY_HOST = 2152398890, + NS_ERROR_UNKNOWN_SOCKET_TYPE = 2152398899, + NS_ERROR_SOCKET_CREATE_FAILED = 2152398900, + NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED = 2152398901, + NS_ERROR_SOCKET_ADDRESS_IN_USE = 2152398902, + NS_ERROR_CACHE_KEY_NOT_FOUND = 2152398909, + NS_ERROR_CACHE_DATA_IS_STREAM = 2152398910, + NS_ERROR_CACHE_DATA_IS_NOT_STREAM = 2152398911, + NS_ERROR_CACHE_WAIT_FOR_VALIDATION = 2152398912, + NS_ERROR_CACHE_ENTRY_DOOMED = 2152398913, + NS_ERROR_CACHE_READ_ACCESS_DENIED = 2152398914, + NS_ERROR_CACHE_WRITE_ACCESS_DENIED = 2152398915, + NS_ERROR_CACHE_IN_USE = 2152398916, + NS_ERROR_DOCUMENT_NOT_CACHED = 2152398918, + NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS = 2152398928, + NS_ERROR_HOST_IS_IP_ADDRESS = 2152398929, NS_SUCCESS_ADOPTED_DATA = 4915290, NS_NET_STATUS_BEGIN_FTP_TRANSACTION = 4915227, NS_NET_STATUS_END_FTP_TRANSACTION = 4915228, NS_SUCCESS_AUTH_FINISHED = 4915240, - NS_NET_STATUS_READING = -2142568440, - NS_NET_STATUS_WRITING = -2142568439, - NS_NET_STATUS_CONNECTING_TO = -2142568441, - NS_NET_STATUS_SENDING_TO = -2142568443, - NS_NET_STATUS_RECEIVING_FROM = -2142568442, - NS_ERROR_INTERCEPTION_FAILED = -2142568348, - NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = -2142501912, - NS_ERROR_PLUGIN_DISABLED = -2142501911, - NS_ERROR_PLUGIN_BLOCKLISTED = -2142501910, - NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = -2142501909, - NS_ERROR_PLUGIN_CLICKTOPLAY = -2142501908, + NS_NET_STATUS_READING = 2152398856, + NS_NET_STATUS_WRITING = 2152398857, + NS_NET_STATUS_CONNECTING_TO = 2152398855, + NS_NET_STATUS_SENDING_TO = 2152398853, + NS_NET_STATUS_RECEIVING_FROM = 2152398854, + NS_ERROR_INTERCEPTION_FAILED = 2152398948, + NS_ERROR_PLUGINS_PLUGINSNOTCHANGED = 2152465384, + NS_ERROR_PLUGIN_DISABLED = 2152465385, + NS_ERROR_PLUGIN_BLOCKLISTED = 2152465386, + NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED = 2152465387, + NS_ERROR_PLUGIN_CLICKTOPLAY = 2152465388, NS_PLUGIN_INIT_PENDING = 4981741, NS_TABLELAYOUT_CELL_NOT_FOUND = 5046272, NS_POSITION_BEFORE_TABLE = 5046275, NS_STATE_PROPERTY_NOT_THERE = 5046277, - NS_ERROR_HTMLPARSER_EOF = -2142370840, - NS_ERROR_HTMLPARSER_UNKNOWN = -2142370839, - NS_ERROR_HTMLPARSER_CANTPROPAGATE = -2142370838, - NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = -2142370837, - NS_ERROR_HTMLPARSER_BADFILENAME = -2142370836, - NS_ERROR_HTMLPARSER_BADURL = -2142370835, - NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = -2142370834, - NS_ERROR_HTMLPARSER_INTERRUPTED = -2142370833, - NS_ERROR_HTMLPARSER_BLOCK = -2142370832, - NS_ERROR_HTMLPARSER_BADTOKENIZER = -2142370831, - NS_ERROR_HTMLPARSER_BADATTRIBUTE = -2142370830, - NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = -2142370829, - NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = -2142370828, - NS_ERROR_HTMLPARSER_BADDTD = -2142370827, - NS_ERROR_HTMLPARSER_BADCONTEXT = -2142370826, - NS_ERROR_HTMLPARSER_STOPPARSING = -2142370825, - NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = -2142370824, - NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = -2142370823, - NS_ERROR_HTMLPARSER_FAKE_ENDTAG = -2142370822, - NS_ERROR_HTMLPARSER_INVALID_COMMENT = -2142370821, + NS_ERROR_HTMLPARSER_EOF = 2152596456, + NS_ERROR_HTMLPARSER_UNKNOWN = 2152596457, + NS_ERROR_HTMLPARSER_CANTPROPAGATE = 2152596458, + NS_ERROR_HTMLPARSER_CONTEXTMISMATCH = 2152596459, + NS_ERROR_HTMLPARSER_BADFILENAME = 2152596460, + NS_ERROR_HTMLPARSER_BADURL = 2152596461, + NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT = 2152596462, + NS_ERROR_HTMLPARSER_INTERRUPTED = 2152596463, + NS_ERROR_HTMLPARSER_BLOCK = 2152596464, + NS_ERROR_HTMLPARSER_BADTOKENIZER = 2152596465, + NS_ERROR_HTMLPARSER_BADATTRIBUTE = 2152596466, + NS_ERROR_HTMLPARSER_UNRESOLVEDDTD = 2152596467, + NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT = 2152596468, + NS_ERROR_HTMLPARSER_BADDTD = 2152596469, + NS_ERROR_HTMLPARSER_BADCONTEXT = 2152596470, + NS_ERROR_HTMLPARSER_STOPPARSING = 2152596471, + NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL = 2152596472, + NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP = 2152596473, + NS_ERROR_HTMLPARSER_FAKE_ENDTAG = 2152596474, + NS_ERROR_HTMLPARSER_INVALID_COMMENT = 2152596475, NS_HTMLTOKENS_NOT_AN_ENTITY = 5113808, NS_HTMLPARSER_VALID_META_CHARSET = 5114808, NS_RDF_CURSOR_EMPTY = 5177345, NS_RDF_NO_VALUE = 5177346, NS_RDF_ASSERTION_REJECTED = 5177347, NS_RDF_STOP_VISIT = 5177348, - NS_ERROR_UCONV_NOCONV = -2142240767, - NS_ERROR_UDEC_ILLEGALINPUT = -2142240754, + NS_ERROR_UCONV_NOCONV = 2152726529, + NS_ERROR_UDEC_ILLEGALINPUT = 2152726542, NS_SUCCESS_USING_FALLBACK_LOCALE = 5242882, NS_OK_UDEC_EXACTLENGTH = 5242891, NS_OK_UDEC_MOREINPUT = 5242892, @@ -1113,185 +1007,185 @@ pub enum nsresult { NS_OK_UENC_MOREOUTPUT = 5242914, NS_ERROR_UENC_NOMAPPING = 5242915, NS_OK_UENC_MOREINPUT = 5242916, - NS_ERROR_FILE_UNRECOGNIZED_PATH = -2142109695, - NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = -2142109694, - NS_ERROR_FILE_EXECUTION_FAILED = -2142109693, - NS_ERROR_FILE_UNKNOWN_TYPE = -2142109692, - NS_ERROR_FILE_DESTINATION_NOT_DIR = -2142109691, - NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = -2142109690, - NS_ERROR_FILE_COPY_OR_MOVE_FAILED = -2142109689, - NS_ERROR_FILE_ALREADY_EXISTS = -2142109688, - NS_ERROR_FILE_INVALID_PATH = -2142109687, - NS_ERROR_FILE_DISK_FULL = -2142109686, - NS_ERROR_FILE_CORRUPTED = -2142109685, - NS_ERROR_FILE_NOT_DIRECTORY = -2142109684, - NS_ERROR_FILE_IS_DIRECTORY = -2142109683, - NS_ERROR_FILE_IS_LOCKED = -2142109682, - NS_ERROR_FILE_TOO_BIG = -2142109681, - NS_ERROR_FILE_NO_DEVICE_SPACE = -2142109680, - NS_ERROR_FILE_NAME_TOO_LONG = -2142109679, - NS_ERROR_FILE_NOT_FOUND = -2142109678, - NS_ERROR_FILE_READ_ONLY = -2142109677, - NS_ERROR_FILE_DIR_NOT_EMPTY = -2142109676, - NS_ERROR_FILE_ACCESS_DENIED = -2142109675, + NS_ERROR_FILE_UNRECOGNIZED_PATH = 2152857601, + NS_ERROR_FILE_UNRESOLVABLE_SYMLINK = 2152857602, + NS_ERROR_FILE_EXECUTION_FAILED = 2152857603, + NS_ERROR_FILE_UNKNOWN_TYPE = 2152857604, + NS_ERROR_FILE_DESTINATION_NOT_DIR = 2152857605, + NS_ERROR_FILE_TARGET_DOES_NOT_EXIST = 2152857606, + NS_ERROR_FILE_COPY_OR_MOVE_FAILED = 2152857607, + NS_ERROR_FILE_ALREADY_EXISTS = 2152857608, + NS_ERROR_FILE_INVALID_PATH = 2152857609, + NS_ERROR_FILE_DISK_FULL = 2152857610, + NS_ERROR_FILE_CORRUPTED = 2152857611, + NS_ERROR_FILE_NOT_DIRECTORY = 2152857612, + NS_ERROR_FILE_IS_DIRECTORY = 2152857613, + NS_ERROR_FILE_IS_LOCKED = 2152857614, + NS_ERROR_FILE_TOO_BIG = 2152857615, + NS_ERROR_FILE_NO_DEVICE_SPACE = 2152857616, + NS_ERROR_FILE_NAME_TOO_LONG = 2152857617, + NS_ERROR_FILE_NOT_FOUND = 2152857618, + NS_ERROR_FILE_READ_ONLY = 2152857619, + NS_ERROR_FILE_DIR_NOT_EMPTY = 2152857620, + NS_ERROR_FILE_ACCESS_DENIED = 2152857621, NS_SUCCESS_FILE_DIRECTORY_EMPTY = 5373953, NS_SUCCESS_AGGREGATE_RESULT = 5373954, - NS_ERROR_DOM_INDEX_SIZE_ERR = -2142044159, - NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = -2142044157, - NS_ERROR_DOM_WRONG_DOCUMENT_ERR = -2142044156, - NS_ERROR_DOM_INVALID_CHARACTER_ERR = -2142044155, - NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = -2142044153, - NS_ERROR_DOM_NOT_FOUND_ERR = -2142044152, - NS_ERROR_DOM_NOT_SUPPORTED_ERR = -2142044151, - NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = -2142044150, - NS_ERROR_DOM_INVALID_STATE_ERR = -2142044149, - NS_ERROR_DOM_SYNTAX_ERR = -2142044148, - NS_ERROR_DOM_INVALID_MODIFICATION_ERR = -2142044147, - NS_ERROR_DOM_NAMESPACE_ERR = -2142044146, - NS_ERROR_DOM_INVALID_ACCESS_ERR = -2142044145, - NS_ERROR_DOM_TYPE_MISMATCH_ERR = -2142044143, - NS_ERROR_DOM_SECURITY_ERR = -2142044142, - NS_ERROR_DOM_NETWORK_ERR = -2142044141, - NS_ERROR_DOM_ABORT_ERR = -2142044140, - NS_ERROR_DOM_URL_MISMATCH_ERR = -2142044139, - NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = -2142044138, - NS_ERROR_DOM_TIMEOUT_ERR = -2142044137, - NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = -2142044136, - NS_ERROR_DOM_DATA_CLONE_ERR = -2142044135, - NS_ERROR_TYPE_ERR = -2142044134, - NS_ERROR_RANGE_ERR = -2142044133, - NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = -2142044132, - NS_ERROR_DOM_INVALID_POINTER_ERR = -2142044131, - NS_ERROR_DOM_UNKNOWN_ERR = -2142044130, - NS_ERROR_DOM_DATA_ERR = -2142044129, - NS_ERROR_DOM_OPERATION_ERR = -2142044128, - NS_ERROR_DOM_NOT_ALLOWED_ERR = -2142044127, - NS_ERROR_DOM_SECMAN_ERR = -2142043159, - NS_ERROR_DOM_WRONG_TYPE_ERR = -2142043158, - NS_ERROR_DOM_NOT_OBJECT_ERR = -2142043157, - NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = -2142043156, - NS_ERROR_DOM_NOT_NUMBER_ERR = -2142043155, - NS_ERROR_DOM_NOT_BOOLEAN_ERR = -2142043154, - NS_ERROR_DOM_NOT_FUNCTION_ERR = -2142043153, - NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = -2142043152, - NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = -2142043151, - NS_ERROR_DOM_PROP_ACCESS_DENIED = -2142043150, - NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = -2142043149, - NS_ERROR_DOM_BAD_URI = -2142043148, - NS_ERROR_DOM_RETVAL_UNDEFINED = -2142043147, - NS_ERROR_DOM_QUOTA_REACHED = -2142043146, - NS_ERROR_DOM_JS_EXCEPTION = -2142043145, - NS_ERROR_UNCATCHABLE_EXCEPTION = -2142043144, - NS_ERROR_DOM_DOMEXCEPTION = -2142043143, - NS_ERROR_DOM_EXCEPTION_ON_JSCONTEXT = -2142043142, + NS_ERROR_DOM_INDEX_SIZE_ERR = 2152923137, + NS_ERROR_DOM_HIERARCHY_REQUEST_ERR = 2152923139, + NS_ERROR_DOM_WRONG_DOCUMENT_ERR = 2152923140, + NS_ERROR_DOM_INVALID_CHARACTER_ERR = 2152923141, + NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR = 2152923143, + NS_ERROR_DOM_NOT_FOUND_ERR = 2152923144, + NS_ERROR_DOM_NOT_SUPPORTED_ERR = 2152923145, + NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR = 2152923146, + NS_ERROR_DOM_INVALID_STATE_ERR = 2152923147, + NS_ERROR_DOM_SYNTAX_ERR = 2152923148, + NS_ERROR_DOM_INVALID_MODIFICATION_ERR = 2152923149, + NS_ERROR_DOM_NAMESPACE_ERR = 2152923150, + NS_ERROR_DOM_INVALID_ACCESS_ERR = 2152923151, + NS_ERROR_DOM_TYPE_MISMATCH_ERR = 2152923153, + NS_ERROR_DOM_SECURITY_ERR = 2152923154, + NS_ERROR_DOM_NETWORK_ERR = 2152923155, + NS_ERROR_DOM_ABORT_ERR = 2152923156, + NS_ERROR_DOM_URL_MISMATCH_ERR = 2152923157, + NS_ERROR_DOM_QUOTA_EXCEEDED_ERR = 2152923158, + NS_ERROR_DOM_TIMEOUT_ERR = 2152923159, + NS_ERROR_DOM_INVALID_NODE_TYPE_ERR = 2152923160, + NS_ERROR_DOM_DATA_CLONE_ERR = 2152923161, + NS_ERROR_TYPE_ERR = 2152923162, + NS_ERROR_RANGE_ERR = 2152923163, + NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR = 2152923164, + NS_ERROR_DOM_INVALID_POINTER_ERR = 2152923165, + NS_ERROR_DOM_UNKNOWN_ERR = 2152923166, + NS_ERROR_DOM_DATA_ERR = 2152923167, + NS_ERROR_DOM_OPERATION_ERR = 2152923168, + NS_ERROR_DOM_NOT_ALLOWED_ERR = 2152923169, + NS_ERROR_DOM_SECMAN_ERR = 2152924137, + NS_ERROR_DOM_WRONG_TYPE_ERR = 2152924138, + NS_ERROR_DOM_NOT_OBJECT_ERR = 2152924139, + NS_ERROR_DOM_NOT_XPC_OBJECT_ERR = 2152924140, + NS_ERROR_DOM_NOT_NUMBER_ERR = 2152924141, + NS_ERROR_DOM_NOT_BOOLEAN_ERR = 2152924142, + NS_ERROR_DOM_NOT_FUNCTION_ERR = 2152924143, + NS_ERROR_DOM_TOO_FEW_PARAMETERS_ERR = 2152924144, + NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN = 2152924145, + NS_ERROR_DOM_PROP_ACCESS_DENIED = 2152924146, + NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED = 2152924147, + NS_ERROR_DOM_BAD_URI = 2152924148, + NS_ERROR_DOM_RETVAL_UNDEFINED = 2152924149, + NS_ERROR_DOM_QUOTA_REACHED = 2152924150, + NS_ERROR_DOM_JS_EXCEPTION = 2152924151, + NS_ERROR_UNCATCHABLE_EXCEPTION = 2152924152, + NS_ERROR_DOM_DOMEXCEPTION = 2152924153, + NS_ERROR_DOM_EXCEPTION_ON_JSCONTEXT = 2152924154, NS_SUCCESS_DOM_NO_OPERATION = 5439489, NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW = 5439490, NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW_UNCATCHABLE = 5439491, NS_IMAGELIB_SUCCESS_LOAD_FINISHED = 5505024, NS_IMAGELIB_CHANGING_OWNER = 5505025, - NS_IMAGELIB_ERROR_FAILURE = -2141978619, - NS_IMAGELIB_ERROR_NO_DECODER = -2141978618, - NS_IMAGELIB_ERROR_NOT_FINISHED = -2141978617, - NS_IMAGELIB_ERROR_NO_ENCODER = -2141978615, - NS_ERROR_EDITOR_NO_SELECTION = -2141847551, - NS_ERROR_EDITOR_NO_TEXTNODE = -2141847550, - NS_FOUND_TARGET = -2141847549, + NS_IMAGELIB_ERROR_FAILURE = 2152988677, + NS_IMAGELIB_ERROR_NO_DECODER = 2152988678, + NS_IMAGELIB_ERROR_NOT_FINISHED = 2152988679, + NS_IMAGELIB_ERROR_NO_ENCODER = 2152988681, + NS_ERROR_EDITOR_NO_SELECTION = 2153119745, + NS_ERROR_EDITOR_NO_TEXTNODE = 2153119746, + NS_FOUND_TARGET = 2153119747, NS_EDITOR_ELEMENT_NOT_FOUND = 5636097, - NS_ERROR_XPC_NOT_ENOUGH_ARGS = -2141782015, - NS_ERROR_XPC_NEED_OUT_OBJECT = -2141782014, - NS_ERROR_XPC_CANT_SET_OUT_VAL = -2141782013, - NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = -2141782012, - NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = -2141782011, - NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = -2141782010, - NS_ERROR_XPC_CANT_GET_METHOD_INFO = -2141782009, - NS_ERROR_XPC_UNEXPECTED = -2141782008, - NS_ERROR_XPC_BAD_CONVERT_JS = -2141782007, - NS_ERROR_XPC_BAD_CONVERT_NATIVE = -2141782006, - NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = -2141782005, - NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = -2141782004, - NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = -2141782003, - NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = -2141782002, - NS_ERROR_XPC_CANT_WATCH_WN_STATIC = -2141782001, - NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = -2141782000, - NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = -2141781999, - NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = -2141781998, - NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = -2141781997, - NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = -2141781996, - NS_ERROR_XPC_CI_RETURNED_FAILURE = -2141781995, - NS_ERROR_XPC_GS_RETURNED_FAILURE = -2141781994, - NS_ERROR_XPC_BAD_CID = -2141781993, - NS_ERROR_XPC_BAD_IID = -2141781992, - NS_ERROR_XPC_CANT_CREATE_WN = -2141781991, - NS_ERROR_XPC_JS_THREW_EXCEPTION = -2141781990, - NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = -2141781989, - NS_ERROR_XPC_JS_THREW_JS_OBJECT = -2141781988, - NS_ERROR_XPC_JS_THREW_NULL = -2141781987, - NS_ERROR_XPC_JS_THREW_STRING = -2141781986, - NS_ERROR_XPC_JS_THREW_NUMBER = -2141781985, - NS_ERROR_XPC_JAVASCRIPT_ERROR = -2141781984, - NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = -2141781983, - NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = -2141781982, - NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = -2141781981, - NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = -2141781980, - NS_ERROR_XPC_CANT_GET_ARRAY_INFO = -2141781979, - NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = -2141781978, - NS_ERROR_XPC_SECURITY_MANAGER_VETO = -2141781977, - NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = -2141781976, - NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = -2141781975, - NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = -2141781974, - NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = -2141781973, - NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = -2141781972, - NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = -2141781971, - NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = -2141781970, - NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = -2141781969, - NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = -2141781968, - NS_ERROR_XPC_BAD_ID_STRING = -2141781967, - NS_ERROR_XPC_BAD_INITIALIZER_NAME = -2141781966, - NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = -2141781965, - NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = -2141781964, - NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = -2141781963, - NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = -2141781962, - NS_ERROR_LAUNCHED_CHILD_PROCESS = -2141716280, - NS_ERROR_CSP_FORM_ACTION_VIOLATION = -2141585310, - NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = -2141585309, - NS_ERROR_SRI_CORRUPT = -2141585208, - NS_ERROR_SRI_DISABLED = -2141585207, - NS_ERROR_SRI_NOT_ELIGIBLE = -2141585206, - NS_ERROR_CMS_VERIFY_NOT_SIGNED = -2141584384, - NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = -2141584383, - NS_ERROR_CMS_VERIFY_BAD_DIGEST = -2141584382, - NS_ERROR_CMS_VERIFY_NOCERT = -2141584380, - NS_ERROR_CMS_VERIFY_UNTRUSTED = -2141584379, - NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = -2141584377, - NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = -2141584376, - NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = -2141584375, - NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = -2141584374, - NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = -2141584373, - NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = -2141584372, - NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = -2141584371, - NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = -2141584370, - NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = -2141584369, - NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = -2141584368, - NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = -2141584352, - NS_ERROR_CMS_ENCRYPT_INCOMPLETE = -2141584351, - NS_ERROR_DOM_INVALID_EXPRESSION_ERR = -2141519821, - NS_ERROR_DOM_TYPE_ERR = -2141519820, - NS_ERROR_WONT_HANDLE_CONTENT = -2141388799, - NS_ERROR_MALWARE_URI = -2141388770, - NS_ERROR_PHISHING_URI = -2141388769, - NS_ERROR_TRACKING_URI = -2141388766, - NS_ERROR_UNWANTED_URI = -2141388765, - NS_ERROR_BLOCKED_URI = -2141388763, - NS_ERROR_SAVE_LINK_AS_TIMEOUT = -2141388768, - NS_ERROR_PARSED_DATA_CACHED = -2141388767, + NS_ERROR_XPC_NOT_ENOUGH_ARGS = 2153185281, + NS_ERROR_XPC_NEED_OUT_OBJECT = 2153185282, + NS_ERROR_XPC_CANT_SET_OUT_VAL = 2153185283, + NS_ERROR_XPC_NATIVE_RETURNED_FAILURE = 2153185284, + NS_ERROR_XPC_CANT_GET_INTERFACE_INFO = 2153185285, + NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO = 2153185286, + NS_ERROR_XPC_CANT_GET_METHOD_INFO = 2153185287, + NS_ERROR_XPC_UNEXPECTED = 2153185288, + NS_ERROR_XPC_BAD_CONVERT_JS = 2153185289, + NS_ERROR_XPC_BAD_CONVERT_NATIVE = 2153185290, + NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF = 2153185291, + NS_ERROR_XPC_BAD_OP_ON_WN_PROTO = 2153185292, + NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN = 2153185293, + NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN = 2153185294, + NS_ERROR_XPC_CANT_WATCH_WN_STATIC = 2153185295, + NS_ERROR_XPC_CANT_EXPORT_WN_STATIC = 2153185296, + NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED = 2153185297, + NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED = 2153185298, + NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE = 2153185299, + NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE = 2153185300, + NS_ERROR_XPC_CI_RETURNED_FAILURE = 2153185301, + NS_ERROR_XPC_GS_RETURNED_FAILURE = 2153185302, + NS_ERROR_XPC_BAD_CID = 2153185303, + NS_ERROR_XPC_BAD_IID = 2153185304, + NS_ERROR_XPC_CANT_CREATE_WN = 2153185305, + NS_ERROR_XPC_JS_THREW_EXCEPTION = 2153185306, + NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT = 2153185307, + NS_ERROR_XPC_JS_THREW_JS_OBJECT = 2153185308, + NS_ERROR_XPC_JS_THREW_NULL = 2153185309, + NS_ERROR_XPC_JS_THREW_STRING = 2153185310, + NS_ERROR_XPC_JS_THREW_NUMBER = 2153185311, + NS_ERROR_XPC_JAVASCRIPT_ERROR = 2153185312, + NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS = 2153185313, + NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY = 2153185314, + NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY = 2153185315, + NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY = 2153185316, + NS_ERROR_XPC_CANT_GET_ARRAY_INFO = 2153185317, + NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING = 2153185318, + NS_ERROR_XPC_SECURITY_MANAGER_VETO = 2153185319, + NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE = 2153185320, + NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS = 2153185321, + NS_ERROR_XPC_CANT_GET_JSOBJECT_OF_DOM_OBJECT = 2153185322, + NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT = 2153185323, + NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE = 2153185324, + NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD = 2153185325, + NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE = 2153185326, + NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED = 2153185327, + NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED = 2153185328, + NS_ERROR_XPC_BAD_ID_STRING = 2153185329, + NS_ERROR_XPC_BAD_INITIALIZER_NAME = 2153185330, + NS_ERROR_XPC_HAS_BEEN_SHUTDOWN = 2153185331, + NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN = 2153185332, + NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL = 2153185333, + NS_ERROR_XPC_CANT_PASS_CPOW_TO_NATIVE = 2153185334, + NS_ERROR_LAUNCHED_CHILD_PROCESS = 2153251016, + NS_ERROR_CSP_FORM_ACTION_VIOLATION = 2153381986, + NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION = 2153381987, + NS_ERROR_SRI_CORRUPT = 2153382088, + NS_ERROR_SRI_DISABLED = 2153382089, + NS_ERROR_SRI_NOT_ELIGIBLE = 2153382090, + NS_ERROR_CMS_VERIFY_NOT_SIGNED = 2153382912, + NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO = 2153382913, + NS_ERROR_CMS_VERIFY_BAD_DIGEST = 2153382914, + NS_ERROR_CMS_VERIFY_NOCERT = 2153382916, + NS_ERROR_CMS_VERIFY_UNTRUSTED = 2153382917, + NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED = 2153382919, + NS_ERROR_CMS_VERIFY_ERROR_PROCESSING = 2153382920, + NS_ERROR_CMS_VERIFY_BAD_SIGNATURE = 2153382921, + NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH = 2153382922, + NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO = 2153382923, + NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO = 2153382924, + NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE = 2153382925, + NS_ERROR_CMS_VERIFY_HEADER_MISMATCH = 2153382926, + NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED = 2153382927, + NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS = 2153382928, + NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG = 2153382944, + NS_ERROR_CMS_ENCRYPT_INCOMPLETE = 2153382945, + NS_ERROR_DOM_INVALID_EXPRESSION_ERR = 2153447475, + NS_ERROR_DOM_TYPE_ERR = 2153447476, + NS_ERROR_WONT_HANDLE_CONTENT = 2153578497, + NS_ERROR_MALWARE_URI = 2153578526, + NS_ERROR_PHISHING_URI = 2153578527, + NS_ERROR_TRACKING_URI = 2153578530, + NS_ERROR_UNWANTED_URI = 2153578531, + NS_ERROR_BLOCKED_URI = 2153578533, + NS_ERROR_SAVE_LINK_AS_TIMEOUT = 2153578528, + NS_ERROR_PARSED_DATA_CACHED = 2153578529, NS_REFRESHURI_HEADER_FOUND = 6094850, - NS_ERROR_IMAGE_SRC_CHANGED = -2141323260, - NS_ERROR_IMAGE_BLOCKED = -2141323259, - NS_ERROR_CONTENT_BLOCKED = -2141323258, - NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = -2141323257, - NS_PROPTABLE_PROP_NOT_THERE = -2141323254, - NS_ERROR_XBL_BLOCKED = -2141323249, - NS_ERROR_CONTENT_CRASHED = -2141323248, + NS_ERROR_IMAGE_SRC_CHANGED = 2153644036, + NS_ERROR_IMAGE_BLOCKED = 2153644037, + NS_ERROR_CONTENT_BLOCKED = 2153644038, + NS_ERROR_CONTENT_BLOCKED_SHOW_ALT = 2153644039, + NS_PROPTABLE_PROP_NOT_THERE = 2153644042, + NS_ERROR_XBL_BLOCKED = 2153644047, + NS_ERROR_CONTENT_CRASHED = 2153644048, NS_HTML_STYLE_PROPERTY_NOT_THERE = 6160386, NS_CONTENT_BLOCKED = 6160392, NS_CONTENT_BLOCKED_SHOW_ALT = 6160393, @@ -1299,141 +1193,162 @@ pub enum nsresult { NS_FINDBROADCASTER_NOT_FOUND = 6160396, NS_FINDBROADCASTER_FOUND = 6160397, NS_FINDBROADCASTER_AWAIT_OVERLAYS = 6160398, - NS_ERROR_XSLT_PARSE_FAILURE = -2141192191, - NS_ERROR_XPATH_PARSE_FAILURE = -2141192190, - NS_ERROR_XSLT_ALREADY_SET = -2141192189, - NS_ERROR_XSLT_EXECUTION_FAILURE = -2141192188, - NS_ERROR_XPATH_UNKNOWN_FUNCTION = -2141192187, - NS_ERROR_XSLT_BAD_RECURSION = -2141192186, - NS_ERROR_XSLT_BAD_VALUE = -2141192185, - NS_ERROR_XSLT_NODESET_EXPECTED = -2141192184, - NS_ERROR_XSLT_ABORTED = -2141192183, - NS_ERROR_XSLT_NETWORK_ERROR = -2141192182, - NS_ERROR_XSLT_WRONG_MIME_TYPE = -2141192181, - NS_ERROR_XSLT_LOAD_RECURSION = -2141192180, - NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = -2141192179, - NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = -2141192178, - NS_ERROR_XPATH_PAREN_EXPECTED = -2141192177, - NS_ERROR_XPATH_INVALID_AXIS = -2141192176, - NS_ERROR_XPATH_NO_NODE_TYPE_TEST = -2141192175, - NS_ERROR_XPATH_BRACKET_EXPECTED = -2141192174, - NS_ERROR_XPATH_INVALID_VAR_NAME = -2141192173, - NS_ERROR_XPATH_UNEXPECTED_END = -2141192172, - NS_ERROR_XPATH_OPERATOR_EXPECTED = -2141192171, - NS_ERROR_XPATH_UNCLOSED_LITERAL = -2141192170, - NS_ERROR_XPATH_BAD_COLON = -2141192169, - NS_ERROR_XPATH_BAD_BANG = -2141192168, - NS_ERROR_XPATH_ILLEGAL_CHAR = -2141192167, - NS_ERROR_XPATH_BINARY_EXPECTED = -2141192166, - NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = -2141192165, - NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = -2141192164, - NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = -2141192163, - NS_ERROR_XSLT_BAD_NODE_NAME = -2141192162, - NS_ERROR_XSLT_VAR_ALREADY_SET = -2141192161, - NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = -2141192160, + NS_ERROR_XSLT_PARSE_FAILURE = 2153775105, + NS_ERROR_XPATH_PARSE_FAILURE = 2153775106, + NS_ERROR_XSLT_ALREADY_SET = 2153775107, + NS_ERROR_XSLT_EXECUTION_FAILURE = 2153775108, + NS_ERROR_XPATH_UNKNOWN_FUNCTION = 2153775109, + NS_ERROR_XSLT_BAD_RECURSION = 2153775110, + NS_ERROR_XSLT_BAD_VALUE = 2153775111, + NS_ERROR_XSLT_NODESET_EXPECTED = 2153775112, + NS_ERROR_XSLT_ABORTED = 2153775113, + NS_ERROR_XSLT_NETWORK_ERROR = 2153775114, + NS_ERROR_XSLT_WRONG_MIME_TYPE = 2153775115, + NS_ERROR_XSLT_LOAD_RECURSION = 2153775116, + NS_ERROR_XPATH_BAD_ARGUMENT_COUNT = 2153775117, + NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION = 2153775118, + NS_ERROR_XPATH_PAREN_EXPECTED = 2153775119, + NS_ERROR_XPATH_INVALID_AXIS = 2153775120, + NS_ERROR_XPATH_NO_NODE_TYPE_TEST = 2153775121, + NS_ERROR_XPATH_BRACKET_EXPECTED = 2153775122, + NS_ERROR_XPATH_INVALID_VAR_NAME = 2153775123, + NS_ERROR_XPATH_UNEXPECTED_END = 2153775124, + NS_ERROR_XPATH_OPERATOR_EXPECTED = 2153775125, + NS_ERROR_XPATH_UNCLOSED_LITERAL = 2153775126, + NS_ERROR_XPATH_BAD_COLON = 2153775127, + NS_ERROR_XPATH_BAD_BANG = 2153775128, + NS_ERROR_XPATH_ILLEGAL_CHAR = 2153775129, + NS_ERROR_XPATH_BINARY_EXPECTED = 2153775130, + NS_ERROR_XSLT_LOAD_BLOCKED_ERROR = 2153775131, + NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED = 2153775132, + NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE = 2153775133, + NS_ERROR_XSLT_BAD_NODE_NAME = 2153775134, + NS_ERROR_XSLT_VAR_ALREADY_SET = 2153775135, + NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED = 2153775136, NS_XSLT_GET_NEW_HANDLER = 6291457, - NS_ERROR_TRANSPORT_INIT = -2141126655, - NS_ERROR_DUPLICATE_HANDLE = -2141126654, - NS_ERROR_BRIDGE_OPEN_PARENT = -2141126653, - NS_ERROR_BRIDGE_OPEN_CHILD = -2141126652, - NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = -2141061120, - NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = -2141061118, - NS_ERROR_STORAGE_BUSY = -2140995583, - NS_ERROR_STORAGE_IOERR = -2140995582, - NS_ERROR_STORAGE_CONSTRAINT = -2140995581, - NS_ERROR_DOM_FILE_NOT_FOUND_ERR = -2140864512, - NS_ERROR_DOM_FILE_NOT_READABLE_ERR = -2140864511, - NS_ERROR_DOM_FILE_ABORT_ERR = -2140864510, - NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = -2140798975, - NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = -2140798973, - NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = -2140798972, - NS_ERROR_DOM_INDEXEDDB_DATA_ERR = -2140798971, - NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = -2140798970, - NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = -2140798969, - NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = -2140798968, - NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = -2140798967, - NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = -2140798966, - NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = -2140798965, - NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = -2140798964, - NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = -2140797975, - NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = -2140733439, - NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = -2140733438, - NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = -2140733437, - NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = -2140733436, - NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = -2140733435, - NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = -2140733434, - NS_ERROR_SIGNED_JAR_NOT_SIGNED = -2140667903, - NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = -2140667902, - NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = -2140667901, - NS_ERROR_SIGNED_JAR_ENTRY_MISSING = -2140667900, - NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = -2140667899, - NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = -2140667898, - NS_ERROR_SIGNED_JAR_ENTRY_INVALID = -2140667897, - NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = -2140667896, - NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = -2140602367, - NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = -2140602366, - NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = -2140602365, - NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = -2140602364, - NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = -2140602363, - NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = -2140602362, - NS_ERROR_DOM_BLUETOOTH_FAIL = -2140536831, - NS_ERROR_DOM_BLUETOOTH_NOT_READY = -2140536830, - NS_ERROR_DOM_BLUETOOTH_NOMEM = -2140536829, - NS_ERROR_DOM_BLUETOOTH_BUSY = -2140536828, - NS_ERROR_DOM_BLUETOOTH_DONE = -2140536827, - NS_ERROR_DOM_BLUETOOTH_UNSUPPORTED = -2140536826, - NS_ERROR_DOM_BLUETOOTH_PARM_INVALID = -2140536825, - NS_ERROR_DOM_BLUETOOTH_UNHANDLED = -2140536824, - NS_ERROR_DOM_BLUETOOTH_AUTH_FAILURE = -2140536823, - NS_ERROR_DOM_BLUETOOTH_RMT_DEV_DOWN = -2140536822, - NS_ERROR_DOM_BLUETOOTH_AUTH_REJECTED = -2140536821, - NS_ERROR_SIGNED_APP_MANIFEST_INVALID = -2140471295, - NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = -2140405759, - NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = -2140340223, - NS_ERROR_DOM_PUSH_DENIED_ERR = -2140340222, - NS_ERROR_DOM_PUSH_ABORT_ERR = -2140340221, - NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = -2140340220, - NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = -2140340219, - NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = -2140340218, - NS_ERROR_DOM_MEDIA_ABORT_ERR = -2140274687, - NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = -2140274686, - NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = -2140274685, - NS_ERROR_DOWNLOAD_COMPLETE = -2139619327, - NS_ERROR_DOWNLOAD_NOT_PARTIAL = -2139619326, - NS_ERROR_UNORM_MOREOUTPUT = -2139619295, - NS_ERROR_DOCSHELL_REQUEST_REJECTED = -2139618327, - NS_ERROR_DOCUMENT_IS_PRINTMODE = -2139617327, + NS_ERROR_TRANSPORT_INIT = 2153840641, + NS_ERROR_DUPLICATE_HANDLE = 2153840642, + NS_ERROR_BRIDGE_OPEN_PARENT = 2153840643, + NS_ERROR_BRIDGE_OPEN_CHILD = 2153840644, + NS_ERROR_DOM_SVG_WRONG_TYPE_ERR = 2153906176, + NS_ERROR_DOM_SVG_MATRIX_NOT_INVERTABLE = 2153906178, + NS_ERROR_STORAGE_BUSY = 2153971713, + NS_ERROR_STORAGE_IOERR = 2153971714, + NS_ERROR_STORAGE_CONSTRAINT = 2153971715, + NS_ERROR_DOM_FILE_NOT_FOUND_ERR = 2154102784, + NS_ERROR_DOM_FILE_NOT_READABLE_ERR = 2154102785, + NS_ERROR_DOM_FILE_ABORT_ERR = 2154102786, + NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR = 2154168321, + NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR = 2154168323, + NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR = 2154168324, + NS_ERROR_DOM_INDEXEDDB_DATA_ERR = 2154168325, + NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR = 2154168326, + NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR = 2154168327, + NS_ERROR_DOM_INDEXEDDB_ABORT_ERR = 2154168328, + NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR = 2154168329, + NS_ERROR_DOM_INDEXEDDB_TIMEOUT_ERR = 2154168330, + NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR = 2154168331, + NS_ERROR_DOM_INDEXEDDB_VERSION_ERR = 2154168332, + NS_ERROR_DOM_INDEXEDDB_RECOVERABLE_ERR = 2154169321, + NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR = 2154233857, + NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR = 2154233858, + NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR = 2154233859, + NS_ERROR_DOM_FILEHANDLE_ABORT_ERR = 2154233860, + NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR = 2154233861, + NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR = 2154233862, + NS_ERROR_SIGNED_JAR_NOT_SIGNED = 2154299393, + NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY = 2154299394, + NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY = 2154299395, + NS_ERROR_SIGNED_JAR_ENTRY_MISSING = 2154299396, + NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE = 2154299397, + NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE = 2154299398, + NS_ERROR_SIGNED_JAR_ENTRY_INVALID = 2154299399, + NS_ERROR_SIGNED_JAR_MANIFEST_INVALID = 2154299400, + NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR = 2154364929, + NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR = 2154364930, + NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR = 2154364931, + NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR = 2154364932, + NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR = 2154364933, + NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR = 2154364934, + NS_ERROR_DOM_BLUETOOTH_FAIL = 2154430465, + NS_ERROR_DOM_BLUETOOTH_NOT_READY = 2154430466, + NS_ERROR_DOM_BLUETOOTH_NOMEM = 2154430467, + NS_ERROR_DOM_BLUETOOTH_BUSY = 2154430468, + NS_ERROR_DOM_BLUETOOTH_DONE = 2154430469, + NS_ERROR_DOM_BLUETOOTH_UNSUPPORTED = 2154430470, + NS_ERROR_DOM_BLUETOOTH_PARM_INVALID = 2154430471, + NS_ERROR_DOM_BLUETOOTH_UNHANDLED = 2154430472, + NS_ERROR_DOM_BLUETOOTH_AUTH_FAILURE = 2154430473, + NS_ERROR_DOM_BLUETOOTH_RMT_DEV_DOWN = 2154430474, + NS_ERROR_DOM_BLUETOOTH_AUTH_REJECTED = 2154430475, + NS_ERROR_SIGNED_APP_MANIFEST_INVALID = 2154496001, + NS_ERROR_DOM_ANIM_MISSING_PROPS_ERR = 2154561537, + NS_ERROR_DOM_PUSH_INVALID_REGISTRATION_ERR = 2154627073, + NS_ERROR_DOM_PUSH_DENIED_ERR = 2154627074, + NS_ERROR_DOM_PUSH_ABORT_ERR = 2154627075, + NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE = 2154627076, + NS_ERROR_DOM_PUSH_INVALID_KEY_ERR = 2154627077, + NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR = 2154627078, + NS_ERROR_DOM_MEDIA_ABORT_ERR = 2154692609, + NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR = 2154692610, + NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR = 2154692611, + NS_ERROR_DOM_MEDIA_DECODE_ERR = 2154692612, + NS_ERROR_DOM_MEDIA_FATAL_ERR = 2154692613, + NS_ERROR_DOM_MEDIA_METADATA_ERR = 2154692614, + NS_ERROR_DOM_MEDIA_OVERFLOW_ERR = 2154692615, + NS_ERROR_DOM_MEDIA_END_OF_STREAM = 2154692616, + NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA = 2154692617, + NS_ERROR_DOM_MEDIA_CANCELED = 2154692618, + NS_ERROR_DOM_MEDIA_MEDIASINK_ERR = 2154692619, + NS_ERROR_DOM_MEDIA_DEMUXER_ERR = 2154692620, + NS_ERROR_DOM_MEDIA_CDM_ERR = 2154692621, + NS_ERROR_DOWNLOAD_COMPLETE = 2155347969, + NS_ERROR_DOWNLOAD_NOT_PARTIAL = 2155347970, + NS_ERROR_UNORM_MOREOUTPUT = 2155348001, + NS_ERROR_DOCSHELL_REQUEST_REJECTED = 2155348969, + NS_ERROR_DOCUMENT_IS_PRINTMODE = 2155349969, NS_SUCCESS_DONT_FIXUP = 7864321, NS_SUCCESS_RESTART_APP_NOT_SAME_PROFILE = 7864323, NS_SUCCESS_UNORM_NOTFOUND = 7864337, - NS_ERROR_NOT_IN_TREE = -2139619290, + NS_ERROR_NOT_IN_TREE = 2155348006, NS_OK_NO_NAME_CLAUSE_HANDLED = 7864354, } pub type nsrefcnt = MozRefCountType; #[repr(C)] -#[derive(Debug, Copy)] -pub struct HasPointerTypeHelper; -impl ::std::clone::Clone for HasPointerTypeHelper { - fn clone(&self) -> Self { *self } +#[derive(Debug, Copy, Clone)] +pub struct AlignedStorage2<T> { + pub u: AlignedStorage2_U<T>, + pub _phantom_0: ::std::marker::PhantomData<T>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct PointerType<T, D> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<D>, +pub struct AlignedStorage2_U<T> { + pub mBytes: __BindgenUnionField<*mut ::std::os::raw::c_char>, + pub mDummy: __BindgenUnionField<u64>, + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<T>, } /** - * <div rustbindgen="true" replaces="UniquePtr"> + * Pair is the logical concatenation of an instance of A with an instance B. + * Space is conserved when possible. Neither A nor B may be a final class. * - * TODO(Emilio): This is a workaround and we should be able to get rid of this - * one. + * It's typically clearer to have individual A and B member fields. Except if + * you want the space-conserving qualities of Pair, you're probably better off + * not using this! + * + * No guarantees are provided about the memory layout of A and B, the order of + * initialization or destruction of A and B, and so on. (This is approximately + * required to optimize space usage.) The first/second names are merely + * conceptual! */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct UniquePtr<T, Deleter> { - pub mPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<Deleter>, +pub struct Pair<A, B> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<A>, + pub _phantom_1: ::std::marker::PhantomData<B>, } +pub type Pair_Base = [u8; 0usize]; /** * A default deletion policy using plain old operator delete. * @@ -1450,81 +1365,255 @@ pub struct UniquePtr<T, Deleter> { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct DefaultDelete<T> { - pub _phantom0: ::std::marker::PhantomData<T>, + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct UniqueSelector<T> { - pub _phantom0: ::std::marker::PhantomData<T>, +#[derive(Debug, Copy)] +pub struct JSContext { + pub _address: u8, +} +impl Clone for JSContext { + fn clone(&self) -> Self { *self } } -/** - * typedefs for backwards compatibility - */ -pub type nsSubstring = nsAString_internal; -pub type nsCSubstring = nsACString_internal; -pub type nsAFlatString = nsString; -pub type nsASingleFragmentString = nsSubstring; -pub type nsAFlatCString = nsCString; -pub type nsASingleFragmentCString = nsCSubstring; -/** - * @see nsTAString - */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsReadingIterator<CharT> { - pub mStart: *const CharT, - pub mEnd: *const CharT, - pub mPosition: *const CharT, +#[derive(Debug, Copy)] +pub struct JSObject { + pub _address: u8, +} +impl Clone for JSObject { + fn clone(&self) -> Self { *self } } /** - * @see nsTAString + * JS::Value is the interface for a single JavaScript Engine value. A few + * general notes on JS::Value: + * + * - JS::Value has setX() and isX() members for X in + * + * { Int32, Double, String, Symbol, Boolean, Undefined, Null, Object, Magic } + * + * JS::Value also contains toX() for each of the non-singleton types. + * + * - Magic is a singleton type whose payload contains either a JSWhyMagic "reason" for + * the magic value or a uint32_t value. By providing JSWhyMagic values when + * creating and checking for magic values, it is possible to assert, at + * runtime, that only magic values with the expected reason flow through a + * particular value. For example, if cx->exception has a magic value, the + * reason must be JS_GENERATOR_CLOSING. + * + * - The JS::Value operations are preferred. The JSVAL_* operations remain for + * compatibility; they may be removed at some point. These operations mostly + * provide similar functionality. But there are a few key differences. One + * is that JS::Value gives null a separate type. + * Also, to help prevent mistakenly boxing a nullable JSObject* as an object, + * Value::setObject takes a JSObject&. (Conversely, Value::toObject returns a + * JSObject&.) A convenience member Value::setObjectOrNull is provided. + * + * - JSVAL_VOID is the same as the singleton value of the Undefined type. + * + * - Note that JS::Value is 8 bytes on 32 and 64-bit architectures. Thus, on + * 32-bit user code should avoid copying jsval/JS::Value as much as possible, + * preferring to pass by const Value&. */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsWritingIterator<CharT> { - pub mStart: *mut CharT, - pub mEnd: *mut CharT, - pub mPosition: *mut CharT, +#[derive(Debug, Copy)] +pub struct Value { + pub data: jsval_layout, +} +#[test] +fn bindgen_test_layout_Value() { + assert_eq!(::std::mem::size_of::<Value>() , 8usize); + assert_eq!(::std::mem::align_of::<Value>() , 8usize); +} +impl Clone for Value { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStringComparator { - pub _vftable: *const _vftable_nsStringComparator, +pub struct JSCompartment { + pub _address: u8, +} +impl Clone for JSCompartment { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct _vftable_nsStringComparator { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug)] +pub struct atomic<_Tp> { + pub _M_i: _Tp, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FreePolicy { + pub _address: u8, } -impl ::std::clone::Clone for nsStringComparator { +#[test] +fn bindgen_test_layout_FreePolicy() { + assert_eq!(::std::mem::size_of::<FreePolicy>() , 1usize); + assert_eq!(::std::mem::align_of::<FreePolicy>() , 1usize); +} +impl Clone for FreePolicy { fn clone(&self) -> Self { *self } } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum JSValueTag { + JSVAL_TAG_MAX_DOUBLE = 131056, + JSVAL_TAG_INT32 = 131057, + JSVAL_TAG_UNDEFINED = 131058, + JSVAL_TAG_STRING = 131061, + JSVAL_TAG_SYMBOL = 131062, + JSVAL_TAG_BOOLEAN = 131059, + JSVAL_TAG_MAGIC = 131060, + JSVAL_TAG_NULL = 131064, + JSVAL_TAG_OBJECT = 131068, + JSVAL_TAG_PRIVATE_GCTHING = 131063, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum JSWhyMagic { + JS_ELEMENTS_HOLE = 0, + JS_NO_ITER_VALUE = 1, + JS_GENERATOR_CLOSING = 2, + JS_NO_CONSTANT = 3, + JS_THIS_POISON = 4, + JS_ARG_POISON = 5, + JS_SERIALIZE_NO_NODE = 6, + JS_LAZY_ARGUMENTS = 7, + JS_OPTIMIZED_ARGUMENTS = 8, + JS_IS_CONSTRUCTING = 9, + JS_BLOCK_NEEDS_CLONE = 10, + JS_HASH_KEY_EMPTY = 11, + JS_ION_ERROR = 12, + JS_ION_BAILOUT = 13, + JS_OPTIMIZED_OUT = 14, + JS_UNINITIALIZED_LEXICAL = 15, + JS_GENERIC_MAGIC = 16, + JS_WHY_MAGIC_COUNT = 17, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct jsval_layout { + pub asBits: __BindgenUnionField<u64>, + pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_60705>, + pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_60712>, + pub asDouble: __BindgenUnionField<f64>, + pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>, + pub asWord: __BindgenUnionField<usize>, + pub asUIntPtr: __BindgenUnionField<usize>, + pub bindgen_union_field: u64, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct jsval_layout__bindgen_ty_bindgen_id_60705 { + pub _bitfield_1: u64, +} #[test] -fn bindgen_test_layout_nsStringComparator() { - assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize); +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_60705() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60705>() + , 8usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60705>() + , 8usize); +} +impl Clone for jsval_layout__bindgen_ty_bindgen_id_60705 { + fn clone(&self) -> Self { *self } +} +impl jsval_layout__bindgen_ty_bindgen_id_60705 { + #[inline] + pub fn payload47(&self) -> u64 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (140737488355327usize as u64)) >> + 0u32) as u64) + } + } + #[inline] + pub fn set_payload47(&mut self, val: u64) { + self._bitfield_1 &= !(140737488355327usize as u64); + self._bitfield_1 |= + ((val as u64 as u64) << 0u32) & (140737488355327usize as u64); + } + #[inline] + pub fn tag(&self) -> JSValueTag { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (18446603336221196288usize as u64)) >> + 47u32) as u32) + } + } + #[inline] + pub fn set_tag(&mut self, val: JSValueTag) { + self._bitfield_1 &= !(18446603336221196288usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 47u32) & + (18446603336221196288usize as u64); + } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsDefaultStringComparator { - pub _base: nsStringComparator, +pub struct jsval_layout__bindgen_ty_bindgen_id_60712 { + pub payload: jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713, } #[repr(C)] -pub struct _vftable_nsDefaultStringComparator { - pub _base: _vftable_nsStringComparator, +#[derive(Debug, Copy)] +pub struct jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713 { + pub i32: __BindgenUnionField<i32>, + pub u32: __BindgenUnionField<u32>, + pub why: __BindgenUnionField<JSWhyMagic>, + pub bindgen_union_field: u32, +} +#[test] +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713>() + , 4usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713>() + , 4usize); +} +impl Clone for + jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713 { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_60712() { + assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60712>() + , 4usize); + assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60712>() + , 4usize); +} +impl Clone for jsval_layout__bindgen_ty_bindgen_id_60712 { + fn clone(&self) -> Self { *self } } -impl ::std::clone::Clone for nsDefaultStringComparator { +impl Clone for jsval_layout { fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] pub struct nsAString_internal { - pub mData: *mut ::std::os::raw::c_ushort, - pub mLength: ::std::os::raw::c_uint, + pub mData: *mut nsAString_internal_char_type, + pub mLength: nsAString_internal_size_type, pub mFlags: u32, } +pub type nsAString_internal_fallible_t = fallible_t; +pub type nsAString_internal_char_type = u16; +pub type nsAString_internal_char_traits = u8; +pub type nsAString_internal_incompatible_char_type = u8; +pub type nsAString_internal_self_type = nsAString_internal; +pub type nsAString_internal_abstract_string_type = + nsAString_internal_self_type; +pub type nsAString_internal_base_string_type = nsAString_internal_self_type; +pub type nsAString_internal_substring_type = nsAString_internal_self_type; +pub type nsAString_internal_substring_tuple_type = nsSubstringTuple; +pub type nsAString_internal_string_type = nsString; +pub type nsAString_internal_const_iterator = nsReadingIterator<u16>; +pub type nsAString_internal_iterator = nsWritingIterator<u16>; +pub type nsAString_internal_comparator_type = nsStringComparator; +pub type nsAString_internal_char_iterator = *mut nsAString_internal_char_type; +pub type nsAString_internal_const_char_iterator = + *const nsAString_internal_char_type; +pub type nsAString_internal_size_type = u32; +pub type nsAString_internal_index_type = u32; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAString_internal_nsTSubstring_h_unnamed_1 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAString_internal__bindgen_ty_bindgen_id_62550 { F_NONE = 0, F_TERMINATED = 1, F_VOIDED = 2, @@ -1541,43 +1630,99 @@ fn bindgen_test_layout_nsAString_internal() { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCStringComparator { - pub _vftable: *const _vftable_nsCStringComparator, +pub struct nsSubstringTuple { + pub mHead: *const nsSubstringTuple_self_type, + pub mFragA: *const nsSubstringTuple_base_string_type, + pub mFragB: *const nsSubstringTuple_base_string_type, +} +pub type nsSubstringTuple_char_type = u16; +pub type nsSubstringTuple_char_traits = nsCharTraits<u16>; +pub type nsSubstringTuple_self_type = nsSubstringTuple; +pub type nsSubstringTuple_substring_type = nsAString_internal; +pub type nsSubstringTuple_base_string_type = nsAString_internal; +pub type nsSubstringTuple_size_type = u32; +#[test] +fn bindgen_test_layout_nsSubstringTuple() { + assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize); + assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize); +} +impl Clone for nsSubstringTuple { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsString { + pub _base: nsAString_internal, } +pub type nsString_self_type = nsString; #[repr(C)] -pub struct _vftable_nsCStringComparator { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug, Copy)] +pub struct nsString_Segment { + pub mBegin: u32, + pub mLength: u32, } -impl ::std::clone::Clone for nsCStringComparator { +#[test] +fn bindgen_test_layout_nsString_Segment() { + assert_eq!(::std::mem::size_of::<nsString_Segment>() , 8usize); + assert_eq!(::std::mem::align_of::<nsString_Segment>() , 4usize); +} +impl Clone for nsString_Segment { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCStringComparator() { - assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize); +fn bindgen_test_layout_nsString() { + assert_eq!(::std::mem::size_of::<nsString>() , 16usize); + assert_eq!(::std::mem::align_of::<nsString>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsDefaultCStringComparator { - pub _base: nsCStringComparator, +pub struct bindgen_vtable__bindgen_id_63160 { } #[repr(C)] -pub struct _vftable_nsDefaultCStringComparator { - pub _base: _vftable_nsCStringComparator, +#[derive(Debug, Copy)] +pub struct nsStringComparator { + pub vtable_: *const bindgen_vtable__bindgen_id_63160, } -impl ::std::clone::Clone for nsDefaultCStringComparator { +pub type nsStringComparator_char_type = u16; +#[test] +fn bindgen_test_layout_nsStringComparator() { + assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize); +} +impl Clone for nsStringComparator { fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] pub struct nsACString_internal { - pub mData: *mut ::std::os::raw::c_char, - pub mLength: ::std::os::raw::c_uint, + pub mData: *mut nsACString_internal_char_type, + pub mLength: nsACString_internal_size_type, pub mFlags: u32, } +pub type nsACString_internal_fallible_t = fallible_t; +pub type nsACString_internal_char_type = ::std::os::raw::c_char; +pub type nsACString_internal_char_traits = u8; +pub type nsACString_internal_incompatible_char_type = u16; +pub type nsACString_internal_self_type = nsACString_internal; +pub type nsACString_internal_abstract_string_type = + nsACString_internal_self_type; +pub type nsACString_internal_base_string_type = nsACString_internal_self_type; +pub type nsACString_internal_substring_type = nsACString_internal_self_type; +pub type nsACString_internal_substring_tuple_type = nsCSubstringTuple; +pub type nsACString_internal_string_type = nsCString; +pub type nsACString_internal_const_iterator = + nsReadingIterator<::std::os::raw::c_char>; +pub type nsACString_internal_iterator = + nsWritingIterator<::std::os::raw::c_char>; +pub type nsACString_internal_comparator_type = nsCStringComparator; +pub type nsACString_internal_char_iterator = + *mut nsACString_internal_char_type; +pub type nsACString_internal_const_char_iterator = + *const nsACString_internal_char_type; +pub type nsACString_internal_size_type = u32; +pub type nsACString_internal_index_type = u32; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsACString_internal_nsTSubstring_h_unnamed_2 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsACString_internal__bindgen_ty_bindgen_id_64390 { F_NONE = 0, F_TERMINATED = 1, F_VOIDED = 2, @@ -1592,977 +1737,3217 @@ fn bindgen_test_layout_nsACString_internal() { assert_eq!(::std::mem::size_of::<nsACString_internal>() , 16usize); assert_eq!(::std::mem::align_of::<nsACString_internal>() , 8usize); } -/** - * ASCII case-insensitive comparator. (for Unicode case-insensitive - * comparision, see nsUnicharUtils.h) - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCaseInsensitiveCStringComparator { - pub _base: nsCStringComparator, +pub struct nsCSubstringTuple { + pub mHead: *const nsCSubstringTuple_self_type, + pub mFragA: *const nsCSubstringTuple_base_string_type, + pub mFragB: *const nsCSubstringTuple_base_string_type, } -#[repr(C)] -pub struct _vftable_nsCaseInsensitiveCStringComparator { - pub _base: _vftable_nsCStringComparator, +pub type nsCSubstringTuple_char_type = ::std::os::raw::c_char; +pub type nsCSubstringTuple_char_traits = nsCharTraits<::std::os::raw::c_char>; +pub type nsCSubstringTuple_self_type = nsCSubstringTuple; +pub type nsCSubstringTuple_substring_type = nsACString_internal; +pub type nsCSubstringTuple_base_string_type = nsACString_internal; +pub type nsCSubstringTuple_size_type = u32; +#[test] +fn bindgen_test_layout_nsCSubstringTuple() { + assert_eq!(::std::mem::size_of::<nsCSubstringTuple>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSubstringTuple>() , 8usize); } -impl ::std::clone::Clone for nsCaseInsensitiveCStringComparator { +impl Clone for nsCSubstringTuple { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCaseInsensitiveCStringArrayComparator; -impl ::std::clone::Clone for nsCaseInsensitiveCStringArrayComparator { - fn clone(&self) -> Self { *self } +#[derive(Debug)] +pub struct nsCString { + pub _base: nsACString_internal, } +pub type nsCString_self_type = nsCString; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsSubstringTuple { - pub mHead: *const nsSubstringTuple, - pub mFragA: *const nsAString_internal, - pub mFragB: *const nsAString_internal, +pub struct nsCString_Segment { + pub mBegin: u32, + pub mLength: u32, +} +#[test] +fn bindgen_test_layout_nsCString_Segment() { + assert_eq!(::std::mem::size_of::<nsCString_Segment>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCString_Segment>() , 4usize); } -impl ::std::clone::Clone for nsSubstringTuple { +impl Clone for nsCString_Segment { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsSubstringTuple() { - assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize); - assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize); +fn bindgen_test_layout_nsCString() { + assert_eq!(::std::mem::size_of::<nsCString>() , 16usize); + assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCSubstringTuple { - pub mHead: *const nsCSubstringTuple, - pub mFragA: *const nsACString_internal, - pub mFragB: *const nsACString_internal, +pub struct bindgen_vtable__bindgen_id_64942 { } -impl ::std::clone::Clone for nsCSubstringTuple { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCStringComparator { + pub vtable_: *const bindgen_vtable__bindgen_id_64942, } +pub type nsCStringComparator_char_type = ::std::os::raw::c_char; #[test] -fn bindgen_test_layout_nsCSubstringTuple() { - assert_eq!(::std::mem::size_of::<nsCSubstringTuple>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSubstringTuple>() , 8usize); +fn bindgen_test_layout_nsCStringComparator() { + assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize); +} +impl Clone for nsCStringComparator { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsString { - pub _base: nsAString_internal, +pub struct bindgen_vtable__bindgen_id_65245 { } +/** + * Basic component object model interface. Objects which implement + * this interface support runtime interface discovery (QueryInterface) + * and a reference counted memory model (AddRef/Release). This is + * modelled after the win32 IUnknown API. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsString_Segment { - pub mBegin: u32, - pub mLength: u32, +pub struct nsISupports { + pub vtable_: *const bindgen_vtable__bindgen_id_65245, } -impl ::std::clone::Clone for nsString_Segment { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISupports_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsString_Segment() { - assert_eq!(::std::mem::size_of::<nsString_Segment>() , 8usize); - assert_eq!(::std::mem::align_of::<nsString_Segment>() , 4usize); +fn bindgen_test_layout_nsISupports() { + assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize); } -#[test] -fn bindgen_test_layout_nsString() { - assert_eq!(::std::mem::size_of::<nsString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsString>() , 8usize); +impl Clone for nsISupports { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsFixedString { - pub _base: nsString, - pub mFixedCapacity: ::std::os::raw::c_uint, - pub mFixedBuf: *mut ::std::os::raw::c_ushort, +pub struct bindgen_vtable__bindgen_id_65528 { +} +/** + * Participant implementation classes + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCycleCollectionParticipant { + pub vtable_: *const bindgen_vtable__bindgen_id_65528, + pub mMightSkip: bool, } #[test] -fn bindgen_test_layout_nsFixedString() { - assert_eq!(::std::mem::size_of::<nsFixedString>() , 32usize); - assert_eq!(::std::mem::align_of::<nsFixedString>() , 8usize); +fn bindgen_test_layout_nsCycleCollectionParticipant() { + assert_eq!(::std::mem::size_of::<nsCycleCollectionParticipant>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsCycleCollectionParticipant>() , + 8usize); +} +impl Clone for nsCycleCollectionParticipant { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsAutoString { - pub _base: nsFixedString, - pub mStorage: [::std::os::raw::c_ushort; 64usize], +#[derive(Debug, Copy)] +pub struct nsCycleCollectingAutoRefCnt { + pub mRefCntAndFlags: usize, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAutoString_nsTString_h_unnamed_3 { kDefaultStorageSize = 64, } #[test] -fn bindgen_test_layout_nsAutoString() { - assert_eq!(::std::mem::size_of::<nsAutoString>() , 160usize); - assert_eq!(::std::mem::align_of::<nsAutoString>() , 8usize); +fn bindgen_test_layout_nsCycleCollectingAutoRefCnt() { + assert_eq!(::std::mem::size_of::<nsCycleCollectingAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCycleCollectingAutoRefCnt>() , + 8usize); } +impl Clone for nsCycleCollectingAutoRefCnt { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsCharTraits<CharT> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CharT>, +} +/** + * @see nsTAString + */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct Dont_Instantiate_nsTArray_of<A> { - pub _phantom0: ::std::marker::PhantomData<A>, +pub struct nsReadingIterator<CharT> { + pub mStart: *mut CharT, + pub mEnd: *mut CharT, + pub mPosition: *mut CharT, } +pub type nsReadingIterator_self_type<CharT> = nsReadingIterator<CharT>; +pub type nsReadingIterator_difference_type = isize; +pub type nsReadingIterator_value_type<CharT> = CharT; +pub type nsReadingIterator_pointer<CharT> = *mut CharT; +pub type nsReadingIterator_reference = [u8; 0usize]; +/** + * @see nsTAString + */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct Instead_Use_nsTArray_of<A> { - pub _phantom0: ::std::marker::PhantomData<A>, +pub struct nsWritingIterator<CharT> { + pub mStart: *mut CharT, + pub mEnd: *mut CharT, + pub mPosition: *mut CharT, } +pub type nsWritingIterator_self_type<CharT> = nsWritingIterator<CharT>; +pub type nsWritingIterator_difference_type = isize; +pub type nsWritingIterator_value_type<CharT> = CharT; +pub type nsWritingIterator_pointer<CharT> = *mut CharT; +pub type nsWritingIterator_reference = [u8; 0usize]; +pub type PRUint32 = ::std::os::raw::c_uint; +pub type PRUintn = ::std::os::raw::c_uint; +/************************************************************************ +** TYPES: PRSize +** DESCRIPTION: +** A type for representing the size of objects. +************************************************************************/ +pub type PRSize = usize; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayElementTraits; -impl ::std::clone::Clone for nsTArrayElementTraits { +pub struct PLHashEntry { + pub next: *mut PLHashEntry, + pub keyHash: PLHashNumber, + pub key: *const ::std::os::raw::c_void, + pub value: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_PLHashEntry() { + assert_eq!(::std::mem::size_of::<PLHashEntry>() , 32usize); + assert_eq!(::std::mem::align_of::<PLHashEntry>() , 8usize); +} +impl Clone for PLHashEntry { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsXPIDLString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct PLHashTable { + pub buckets: *mut *mut PLHashEntry, + pub nentries: PRUint32, + pub shift: PRUint32, + pub keyHash: PLHashFunction, + pub keyCompare: PLHashComparator, + pub valueCompare: PLHashComparator, + pub allocOps: *const PLHashAllocOps, + pub allocPriv: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_PLHashTable() { + assert_eq!(::std::mem::size_of::<PLHashTable>() , 56usize); + assert_eq!(::std::mem::align_of::<PLHashTable>() , 8usize); +} +impl Clone for PLHashTable { + fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsXPIDLString() { - assert_eq!(::std::mem::size_of::<nsXPIDLString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsXPIDLString>() , 8usize); +pub type PLHashNumber = PRUint32; +pub type PLHashFunction = + ::std::option::Option<unsafe extern "C" fn(key: + *const ::std::os::raw::c_void) + -> ::std::os::raw::c_uint>; +pub type PLHashComparator = + ::std::option::Option<unsafe extern "C" fn(v1: + *const ::std::os::raw::c_void, + v2: + *const ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLHashAllocOps { + pub allocTable: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + size: PRSize) + -> *mut ::std::os::raw::c_void>, + pub freeTable: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + item: + *mut ::std::os::raw::c_void)>, + pub allocEntry: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + key: + *const ::std::os::raw::c_void) + -> *mut PLHashEntry>, + pub freeEntry: ::std::option::Option<unsafe extern "C" fn(pool: + *mut ::std::os::raw::c_void, + he: + *mut PLHashEntry, + flag: PRUintn)>, +} +#[test] +fn bindgen_test_layout_PLHashAllocOps() { + assert_eq!(::std::mem::size_of::<PLHashAllocOps>() , 32usize); + assert_eq!(::std::mem::align_of::<PLHashAllocOps>() , 8usize); +} +impl Clone for PLHashAllocOps { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct nsGetterCopies { - pub mString: *mut nsAString_internal, - pub mData: *mut ::std::os::raw::c_ushort, +pub struct OwningNonNull<T> { + pub mPtr: RefPtr<T>, } -#[test] -fn bindgen_test_layout_nsGetterCopies() { - assert_eq!(::std::mem::size_of::<nsGetterCopies>() , 16usize); - assert_eq!(::std::mem::align_of::<nsGetterCopies>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct StaticRefPtr<T> { + pub mRawPtr: *mut T, } #[repr(C)] #[derive(Debug)] -pub struct nsAdoptingString { - pub _base: nsXPIDLString, +pub struct RefPtr<T> { + pub mRawPtr: *mut T, } -#[test] -fn bindgen_test_layout_nsAdoptingString() { - assert_eq!(::std::mem::size_of::<nsAdoptingString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAdoptingString>() , 8usize); +pub type RefPtr_element_type<T> = T; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct RefPtr_Proxy<T, R, Args> { + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<R>, + pub _phantom_2: ::std::marker::PhantomData<Args>, } +pub type RefPtr_Proxy_member_function = [u8; 0usize]; #[repr(C)] -#[derive(Debug)] -pub struct nsCString { - pub _base: nsACString_internal, +#[derive(Debug, Copy, Clone)] +pub struct RefPtr_ConstRemovingRefPtrTraits<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCString_Segment { - pub mBegin: u32, - pub mLength: u32, -} -impl ::std::clone::Clone for nsCString_Segment { - fn clone(&self) -> Self { *self } +pub struct nsAutoOwningThread { + pub mThread: *mut ::std::os::raw::c_void, } #[test] -fn bindgen_test_layout_nsCString_Segment() { - assert_eq!(::std::mem::size_of::<nsCString_Segment>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCString_Segment>() , 4usize); +fn bindgen_test_layout_nsAutoOwningThread() { + assert_eq!(::std::mem::size_of::<nsAutoOwningThread>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAutoOwningThread>() , 8usize); } -#[test] -fn bindgen_test_layout_nsCString() { - assert_eq!(::std::mem::size_of::<nsCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCString>() , 8usize); +impl Clone for nsAutoOwningThread { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsFixedCString { - pub _base: nsCString, - pub mFixedCapacity: ::std::os::raw::c_uint, - pub mFixedBuf: *mut ::std::os::raw::c_char, +#[derive(Debug, Copy)] +pub struct nsAutoRefCnt { + pub mValue: nsrefcnt, +} +extern "C" { + #[link_name = "_ZN12nsAutoRefCnt12isThreadSafeE"] + pub static nsAutoRefCnt_isThreadSafe: bool; } #[test] -fn bindgen_test_layout_nsFixedCString() { - assert_eq!(::std::mem::size_of::<nsFixedCString>() , 32usize); - assert_eq!(::std::mem::align_of::<nsFixedCString>() , 8usize); +fn bindgen_test_layout_nsAutoRefCnt() { + assert_eq!(::std::mem::size_of::<nsAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAutoRefCnt>() , 8usize); +} +impl Clone for nsAutoRefCnt { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsAutoCString { - pub _base: nsFixedCString, - pub mStorage: [::std::os::raw::c_char; 64usize], +#[derive(Debug, Copy)] +pub struct ThreadSafeAutoRefCnt { + pub mValue: u64, +} +extern "C" { + #[link_name = "_ZN7mozilla20ThreadSafeAutoRefCnt12isThreadSafeE"] + pub static ThreadSafeAutoRefCnt_isThreadSafe: bool; } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAutoCString_nsTString_h_unnamed_4 { kDefaultStorageSize = 64, } #[test] -fn bindgen_test_layout_nsAutoCString() { - assert_eq!(::std::mem::size_of::<nsAutoCString>() , 96usize); - assert_eq!(::std::mem::align_of::<nsAutoCString>() , 8usize); +fn bindgen_test_layout_ThreadSafeAutoRefCnt() { + assert_eq!(::std::mem::size_of::<ThreadSafeAutoRefCnt>() , 8usize); + assert_eq!(::std::mem::align_of::<ThreadSafeAutoRefCnt>() , 8usize); } +impl Clone for ThreadSafeAutoRefCnt { + fn clone(&self) -> Self { *self } +} +pub type nscoord = i32; #[repr(C)] -#[derive(Debug)] -pub struct nsXPIDLCString { - pub _base: nsCString, +#[derive(Debug, Copy)] +pub struct nsTArrayHeader { + pub mLength: u32, + pub _bitfield_1: u32, +} +extern "C" { + #[link_name = "_ZN14nsTArrayHeader9sEmptyHdrE"] + pub static mut nsTArrayHeader_sEmptyHdr: nsTArrayHeader; } #[test] -fn bindgen_test_layout_nsXPIDLCString() { - assert_eq!(::std::mem::size_of::<nsXPIDLCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsXPIDLCString>() , 8usize); +fn bindgen_test_layout_nsTArrayHeader() { + assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize); + assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize); } -#[repr(C)] -#[derive(Debug)] -pub struct nsCGetterCopies { - pub mString: *mut nsACString_internal, - pub mData: *mut ::std::os::raw::c_char, +impl Clone for nsTArrayHeader { + fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsCGetterCopies() { - assert_eq!(::std::mem::size_of::<nsCGetterCopies>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCGetterCopies>() , 8usize); +impl nsTArrayHeader { + #[inline] + pub fn mCapacity(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483647usize as u32)) >> 0u32) as + u32) + } + } + #[inline] + pub fn set_mCapacity(&mut self, val: u32) { + self._bitfield_1 &= !(2147483647usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 0u32) & (2147483647usize as u32); + } + #[inline] + pub fn mIsAutoArray(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u32)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mIsAutoArray(&mut self, val: u32) { + self._bitfield_1 &= !(2147483648usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 31u32) & (2147483648usize as u32); + } } #[repr(C)] #[derive(Debug)] -pub struct nsAdoptingCString { - pub _base: nsXPIDLCString, -} -#[test] -fn bindgen_test_layout_nsAdoptingCString() { - assert_eq!(::std::mem::size_of::<nsAdoptingCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAdoptingCString>() , 8usize); +pub struct nsCOMPtr<T> { + pub _base: nsCOMPtr_base, + pub _phantom_0: ::std::marker::PhantomData<T>, } +pub type nsCOMPtr_element_type<T> = T; /** - * A helper class that converts a UTF-16 string to ASCII in a lossy manner + * Factors implementation for all template versions of nsCOMPtr. + * + * Here's the way people normally do things like this: + * + * template<class T> class Foo { ... }; + * template<> class Foo<void*> { ... }; + * template<class T> class Foo<T*> : private Foo<void*> { ... }; */ #[repr(C)] -pub struct NS_LossyConvertUTF16toASCII { - pub _base: nsAutoCString, -} -#[test] -fn bindgen_test_layout_NS_LossyConvertUTF16toASCII() { - assert_eq!(::std::mem::size_of::<NS_LossyConvertUTF16toASCII>() , - 96usize); - assert_eq!(::std::mem::align_of::<NS_LossyConvertUTF16toASCII>() , - 8usize); +#[derive(Debug)] +pub struct nsCOMPtr_base { + pub mRawPtr: *mut nsISupports, } #[repr(C)] -pub struct NS_ConvertASCIItoUTF16 { - pub _base: nsAutoString, +#[derive(Debug)] +pub struct ErrorResult { + pub _base: TErrorResult<AssertAndSuppressCleanupPolicy>, } +pub type ErrorResult_BaseErrorResult = + TErrorResult<AssertAndSuppressCleanupPolicy>; #[test] -fn bindgen_test_layout_NS_ConvertASCIItoUTF16() { - assert_eq!(::std::mem::size_of::<NS_ConvertASCIItoUTF16>() , 160usize); - assert_eq!(::std::mem::align_of::<NS_ConvertASCIItoUTF16>() , 8usize); +fn bindgen_test_layout_ErrorResult() { + assert_eq!(::std::mem::size_of::<ErrorResult>() , 16usize); + assert_eq!(::std::mem::align_of::<ErrorResult>() , 8usize); } /** - * A helper class that converts a UTF-16 string to UTF-8 + * Templated implementation class for various ErrorResult-like things. The + * instantiations differ only in terms of their cleanup policies (used in the + * destructor), which they can specify via the template argument. Note that + * this means it's safe to reinterpret_cast between the instantiations unless + * you plan to invoke the destructor through such a cast pointer. + * + * A cleanup policy consists of two booleans: whether to assert that we've been + * reported or suppressed, and whether to then go ahead and suppress the + * exception. */ #[repr(C)] -pub struct NS_ConvertUTF16toUTF8 { - pub _base: nsAutoCString, -} -#[test] -fn bindgen_test_layout_NS_ConvertUTF16toUTF8() { - assert_eq!(::std::mem::size_of::<NS_ConvertUTF16toUTF8>() , 96usize); - assert_eq!(::std::mem::align_of::<NS_ConvertUTF16toUTF8>() , 8usize); +#[derive(Debug)] +pub struct TErrorResult<CleanupPolicy> { + pub mResult: nsresult, + pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_70167<CleanupPolicy>, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } #[repr(C)] -pub struct NS_ConvertUTF8toUTF16 { - pub _base: nsAutoString, +#[derive(Debug, Copy, Clone)] +pub struct TErrorResult_Message<CleanupPolicy> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } -#[test] -fn bindgen_test_layout_NS_ConvertUTF8toUTF16() { - assert_eq!(::std::mem::size_of::<NS_ConvertUTF8toUTF16>() , 160usize); - assert_eq!(::std::mem::align_of::<NS_ConvertUTF8toUTF16>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } -pub type nsVoidableString = nsAutoString; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct RefPtrTraits<U> { - pub _phantom0: ::std::marker::PhantomData<U>, +pub struct TErrorResult__bindgen_ty_bindgen_id_70167<CleanupPolicy> { + pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>, + pub mJSException: __BindgenUnionField<Value>, + pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>, + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>, } #[repr(C)] -#[derive(Debug)] -pub struct RefPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct AssertAndSuppressCleanupPolicy { + pub _address: u8, +} +extern "C" { + #[link_name = + "_ZN7mozilla14binding_danger30AssertAndSuppressCleanupPolicy13assertHandledE"] + pub static AssertAndSuppressCleanupPolicy_assertHandled: bool; +} +extern "C" { + #[link_name = + "_ZN7mozilla14binding_danger30AssertAndSuppressCleanupPolicy8suppressE"] + pub static AssertAndSuppressCleanupPolicy_suppress: bool; +} +#[test] +fn bindgen_test_layout_AssertAndSuppressCleanupPolicy() { + assert_eq!(::std::mem::size_of::<AssertAndSuppressCleanupPolicy>() , + 1usize); + assert_eq!(::std::mem::align_of::<AssertAndSuppressCleanupPolicy>() , + 1usize); +} +impl Clone for AssertAndSuppressCleanupPolicy { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct RefPtr_Proxy<T, R, Args> { +pub struct nsAutoPtr<T> { pub mRawPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<R>, - pub _phantom1: ::std::marker::PhantomData<Args>, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct RefPtr_ConstRemovingRefPtrTraits<T, U> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<U>, +pub struct nsAutoPtr_Ptr<T> { + pub mPtr: *mut T, } +pub type nsAutoPtr_element_type<T> = T; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct RefPtrGetterAddRefs<T> { - pub mTargetSmartPtr: *mut RefPtr<T>, +pub struct nsAutoPtr_Proxy<T, R, Args> { + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<R>, + pub _phantom_2: ::std::marker::PhantomData<Args>, } +pub type nsAutoPtr_Proxy_member_function = [u8; 0usize]; /** - * A "unique identifier". This is modeled after OSF DCE UUIDs. + * This structure precedes the string buffers "we" allocate. It may be the + * case that nsTAString::mData does not point to one of these special + * buffers. The mFlags member variable distinguishes the buffer type. + * + * When this header is in use, it enables reference counting, and capacity + * tracking. NOTE: A string buffer can be modified only if its reference + * count is 1. */ #[repr(C)] -#[derive(Debug)] -pub struct nsID { - pub m0: u32, - pub m1: u16, - pub m2: u16, - pub m3: [u8; 8usize], +#[derive(Debug, Copy)] +pub struct nsStringBuffer { + pub mRefCount: u32, + pub mStorageSize: u32, } #[test] -fn bindgen_test_layout_nsID() { - assert_eq!(::std::mem::size_of::<nsID>() , 16usize); - assert_eq!(::std::mem::align_of::<nsID>() , 4usize); +fn bindgen_test_layout_nsStringBuffer() { + assert_eq!(::std::mem::size_of::<nsStringBuffer>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStringBuffer>() , 4usize); +} +impl Clone for nsStringBuffer { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIAtom { + pub _base: nsISupports, + pub _bitfield_1: u32, + pub mHash: u32, + /** + * WARNING! There is an invisible constraint on |mString|: the chars it + * points to must belong to an nsStringBuffer. This is so that the + * nsStringBuffer::FromData() calls above are valid. + */ + pub mString: *mut u16, } -/** - * A stack helper class to convert a nsID to a string. Useful - * for printing nsIDs. For example: - * nsID aID = ...; - * printf("%s", nsIDToCString(aID).get()); - */ #[repr(C)] -#[derive(Copy)] -pub struct nsIDToCString { - pub mStringBytes: [::std::os::raw::c_char; 39usize], +#[derive(Debug, Copy, Clone)] +pub struct nsIAtom_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsIDToCString { +#[test] +fn bindgen_test_layout_nsIAtom() { + assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize); +} +impl Clone for nsIAtom { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsIDToCString() { - assert_eq!(::std::mem::size_of::<nsIDToCString>() , 39usize); - assert_eq!(::std::mem::align_of::<nsIDToCString>() , 1usize); +impl nsIAtom { + #[inline] + pub fn mLength(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483647usize as u32)) >> 0u32) as + u32) + } + } + #[inline] + pub fn set_mLength(&mut self, val: u32) { + self._bitfield_1 &= !(2147483647usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 0u32) & (2147483647usize as u32); + } + #[inline] + pub fn mIsStatic(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u32)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mIsStatic(&mut self, val: u32) { + self._bitfield_1 &= !(2147483648usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 31u32) & (2147483648usize as u32); + } } -pub type nsCID = nsID; -/** - * An "interface id" which can be used to uniquely identify a given - * interface. - */ -pub type nsIID = nsID; #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct COMTypeInfo<T, U> { - pub _phantom0: ::std::marker::PhantomData<T>, - pub _phantom1: ::std::marker::PhantomData<U>, +pub struct bindgen_vtable__bindgen_id_70938 { } /** - * Basic component object model interface. Objects which implement - * this interface support runtime interface discovery (QueryInterface) - * and a reference counted memory model (AddRef/Release). This is - * modelled after the win32 IUnknown API. + * Class to store the wrapper for an object. This can only be used with objects + * that only have one non-security wrapper at a time (for an XPCWrappedNative + * this is usually ensured by setting an explicit parent in the PreCreate hook + * for the class). + * + * An instance of nsWrapperCache can be gotten from an object that implements + * a wrapper cache by calling QueryInterface on it. Note that this breaks XPCOM + * rules a bit (this object doesn't derive from nsISupports). + * + * The cache can store objects other than wrappers. We allow wrappers to use a + * separate JSObject to store their state (mostly expandos). If the wrapper is + * collected and we want to preserve this state we actually store the state + * object in the cache. + * + * The cache can store 2 types of objects: + * + * If WRAPPER_IS_NOT_DOM_BINDING is set (IsDOMBinding() returns false): + * - the JSObject of an XPCWrappedNative wrapper + * + * If WRAPPER_IS_NOT_DOM_BINDING is not set (IsDOMBinding() returns true): + * - a DOM binding object (regular JS object or proxy) + * + * The finalizer for the wrapper clears the cache. + * + * A compacting GC can move the wrapper object. Pointers to moved objects are + * usually found and updated by tracing the heap, however non-preserved wrappers + * are weak references and are not traced, so another approach is + * necessary. Instead a class hook (objectMovedOp) is provided that is called + * when an object is moved and is responsible for ensuring pointers are + * updated. It does this by calling UpdateWrapper() on the wrapper + * cache. SetWrapper() asserts that the hook is implemented for any wrapper set. + * + * A number of the methods are implemented in nsWrapperCacheInlines.h because we + * have to include some JS headers that don't play nicely with the rest of the + * codebase. Include nsWrapperCacheInlines.h if you need to call those methods. */ #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsISupports { - pub _vftable: *const _vftable_nsISupports, +#[derive(Debug)] +pub struct nsWrapperCache { + pub vtable_: *const bindgen_vtable__bindgen_id_70938, + pub mWrapper: *mut JSObject, + pub mFlags: nsWrapperCache_FlagsType, } #[repr(C)] -pub struct _vftable_nsISupports { - pub _bindgen_empty_ctype_warning_fix: u64, +#[derive(Debug, Copy, Clone)] +pub struct nsWrapperCache_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsISupports { - fn clone(&self) -> Self { *self } +pub type nsWrapperCache_FlagsType = u32; +#[repr(u32)] +/** + * If this bit is set then we're preserving the wrapper, which in effect ties + * the lifetime of the JS object stored in the cache to the lifetime of the + * native object. We rely on the cycle collector to break the cycle that this + * causes between the native object and the JS object, so it is important that + * any native object that supports preserving of its wrapper + * traces/traverses/unlinks the cached JS object (see + * NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER, + * NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS and + * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER). + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsWrapperCache__bindgen_ty_bindgen_id_71134 { + WRAPPER_BIT_PRESERVED = 1, } #[test] -fn bindgen_test_layout_nsISupports() { - assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize); - assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize); +fn bindgen_test_layout_nsWrapperCache() { + assert_eq!(::std::mem::size_of::<nsWrapperCache>() , 24usize); + assert_eq!(::std::mem::align_of::<nsWrapperCache>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsAutoOwningThread { - pub mThread: *mut ::std::os::raw::c_void, +pub struct AllOwningUnionBase { + pub _address: u8, } -impl ::std::clone::Clone for nsAutoOwningThread { +#[test] +fn bindgen_test_layout_AllOwningUnionBase() { + assert_eq!(::std::mem::size_of::<AllOwningUnionBase>() , 1usize); + assert_eq!(::std::mem::align_of::<AllOwningUnionBase>() , 1usize); +} +impl Clone for AllOwningUnionBase { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct GlobalObject { + pub mGlobalJSObject: [u64; 3usize], + pub mCx: *mut JSContext, + pub mGlobalObject: *mut nsISupports, +} #[test] -fn bindgen_test_layout_nsAutoOwningThread() { - assert_eq!(::std::mem::size_of::<nsAutoOwningThread>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAutoOwningThread>() , 8usize); +fn bindgen_test_layout_GlobalObject() { + assert_eq!(::std::mem::size_of::<GlobalObject>() , 40usize); + assert_eq!(::std::mem::align_of::<GlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCycleCollectingAutoRefCnt { - pub mRefCntAndFlags: usize, -} -impl ::std::clone::Clone for nsCycleCollectingAutoRefCnt { - fn clone(&self) -> Self { *self } +pub struct nsScriptObjectTracer { + pub _base: nsCycleCollectionParticipant, } #[test] -fn bindgen_test_layout_nsCycleCollectingAutoRefCnt() { - assert_eq!(::std::mem::size_of::<nsCycleCollectingAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCycleCollectingAutoRefCnt>() , - 8usize); +fn bindgen_test_layout_nsScriptObjectTracer() { + assert_eq!(::std::mem::size_of::<nsScriptObjectTracer>() , 16usize); + assert_eq!(::std::mem::align_of::<nsScriptObjectTracer>() , 8usize); +} +impl Clone for nsScriptObjectTracer { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsAutoRefCnt { - pub mValue: nsrefcnt, +pub struct nsXPCOMCycleCollectionParticipant { + pub _base: nsScriptObjectTracer, } -impl ::std::clone::Clone for nsAutoRefCnt { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsXPCOMCycleCollectionParticipant_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsAutoRefCnt() { - assert_eq!(::std::mem::size_of::<nsAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAutoRefCnt>() , 8usize); +fn bindgen_test_layout_nsXPCOMCycleCollectionParticipant() { + assert_eq!(::std::mem::size_of::<nsXPCOMCycleCollectionParticipant>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsXPCOMCycleCollectionParticipant>() , + 8usize); } -extern "C" { - #[link_name = "_ZN12nsAutoRefCnt12isThreadSafeE"] - pub static nsAutoRefCnt_consts_isThreadSafe: bool; +impl Clone for nsXPCOMCycleCollectionParticipant { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct ThreadSafeAutoRefCnt { - pub mValue: u64, -} -#[test] -fn bindgen_test_layout_ThreadSafeAutoRefCnt() { - assert_eq!(::std::mem::size_of::<ThreadSafeAutoRefCnt>() , 8usize); - assert_eq!(::std::mem::align_of::<ThreadSafeAutoRefCnt>() , 8usize); +#[derive(Debug, Copy, Clone)] +pub struct pair<_T1, _T2> { + pub first: _T1, + pub second: _T2, } -extern "C" { - #[link_name = "_ZN7mozilla20ThreadSafeAutoRefCnt12isThreadSafeE"] - pub static ThreadSafeAutoRefCnt_consts_isThreadSafe: bool; +pub type pair_first_type<_T1> = _T1; +pub type pair_second_type<_T2> = _T2; +#[repr(C)] +pub struct bindgen_vtable__bindgen_id_87955 { } /** - * There are two ways of implementing QueryInterface, and we use both: + * A class of objects that return source code on demand. * - * Table-driven QueryInterface uses a static table of IID->offset mappings - * and a shared helper function. Using it tends to reduce codesize and improve - * runtime performance (due to processor cache hits). - * - * Macro-driven QueryInterface generates a QueryInterface function directly - * using common macros. This is necessary if special QueryInterface features - * are being used (such as tearoffs and conditional interfaces). - * - * These methods can be combined into a table-driven function call followed - * by custom code for tearoffs and conditionals. + * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't + * retain the source code (and doesn't do lazy bytecode generation). If we ever + * need the source code, say, in response to a call to Function.prototype. + * toSource or Debugger.Source.prototype.text, then we call the 'load' member + * function of the instance of this class that has hopefully been registered + * with the runtime, passing the code's URL, and hope that it will be able to + * find the source. */ #[repr(C)] +#[derive(Debug)] +pub struct SourceHook { + pub vtable_: *const bindgen_vtable__bindgen_id_87955, +} +#[test] +fn bindgen_test_layout_SourceHook() { + assert_eq!(::std::mem::size_of::<SourceHook>() , 8usize); + assert_eq!(::std::mem::align_of::<SourceHook>() , 8usize); +} +#[repr(C)] #[derive(Debug, Copy)] -pub struct QITableEntry { - pub iid: *const nsIID, - pub offset: i32, +pub struct nsIPrincipal { + pub _base: nsISerializable, } -impl ::std::clone::Clone for QITableEntry { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIPrincipal_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPrincipal__bindgen_ty_bindgen_id_93396 { + APP_STATUS_NOT_INSTALLED = 0, + APP_STATUS_INSTALLED = 1, + APP_STATUS_PRIVILEGED = 2, + APP_STATUS_CERTIFIED = 3, } #[test] -fn bindgen_test_layout_QITableEntry() { - assert_eq!(::std::mem::size_of::<QITableEntry>() , 16usize); - assert_eq!(::std::mem::align_of::<QITableEntry>() , 8usize); +fn bindgen_test_layout_nsIPrincipal() { + assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIPrincipal>() , 8usize); +} +impl Clone for nsIPrincipal { + fn clone(&self) -> Self { *self } } -pub enum TileClient { } -pub enum SerializedStructuredCloneBuffer { } -pub enum StructuredCloneData { } -pub enum ClonedMessageData { } -pub enum MessagePortMessage { } -pub enum StructuredCloneReadInfo { } -pub enum SerializedStructuredCloneReadInfo { } -pub enum ObjectStoreCursorResponse { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayFallibleResult { - pub mResult: bool, +pub struct nsISerializable { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISerializable_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsTArrayFallibleResult { +#[test] +fn bindgen_test_layout_nsISerializable() { + assert_eq!(::std::mem::size_of::<nsISerializable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISerializable>() , 8usize); +} +impl Clone for nsISerializable { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct nsIGlobalObject { + pub _base: nsISupports, + pub mHostObjectURIs: nsTArray<nsCString>, + pub mIsDying: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIGlobalObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} #[test] -fn bindgen_test_layout_nsTArrayFallibleResult() { - assert_eq!(::std::mem::size_of::<nsTArrayFallibleResult>() , 1usize); - assert_eq!(::std::mem::align_of::<nsTArrayFallibleResult>() , 1usize); +fn bindgen_test_layout_nsIGlobalObject() { + assert_eq!(::std::mem::size_of::<nsIGlobalObject>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIGlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayInfallibleResult; -impl ::std::clone::Clone for nsTArrayInfallibleResult { - fn clone(&self) -> Self { *self } +pub struct nsIURI { + pub _base: nsISupports, } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayFallibleAllocatorBase; -impl ::std::clone::Clone for nsTArrayFallibleAllocatorBase { +#[derive(Debug, Copy, Clone)] +pub struct nsIURI_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIURI() { + assert_eq!(::std::mem::size_of::<nsIURI>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIURI>() , 8usize); +} +impl Clone for nsIURI { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayInfallibleAllocatorBase; -impl ::std::clone::Clone for nsTArrayInfallibleAllocatorBase { - fn clone(&self) -> Self { *self } +#[derive(Debug)] +pub struct nsPIDOMWindowInner { + pub _base: [u64; 27usize], } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsTArrayFallibleAllocator { - pub _base: nsTArrayFallibleAllocatorBase, +#[derive(Debug, Copy, Clone)] +pub struct nsPIDOMWindowInner_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -impl ::std::clone::Clone for nsTArrayFallibleAllocator { - fn clone(&self) -> Self { *self } +#[test] +fn bindgen_test_layout_nsPIDOMWindowInner() { + assert_eq!(::std::mem::size_of::<nsPIDOMWindowInner>() , 216usize); + assert_eq!(::std::mem::align_of::<nsPIDOMWindowInner>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument { + pub _base: nsINode, + pub mDeprecationWarnedAbout: u64, + pub mDocWarningWarnedAbout: u64, + pub mSelectorCache: [u64; 15usize], + pub mReferrer: nsCString, + pub mLastModified: nsString, + pub mDocumentURI: nsCOMPtr<nsIURI>, + pub mOriginalURI: nsCOMPtr<nsIURI>, + pub mChromeXHRDocURI: nsCOMPtr<nsIURI>, + pub mDocumentBaseURI: nsCOMPtr<nsIURI>, + pub mChromeXHRDocBaseURI: nsCOMPtr<nsIURI>, + pub mDocumentLoadGroup: nsWeakPtr, + pub mReferrerPolicySet: bool, + pub mReferrerPolicy: nsIDocument_ReferrerPolicyEnum, + pub mBlockAllMixedContent: bool, + pub mBlockAllMixedContentPreloads: bool, + pub mUpgradeInsecureRequests: bool, + pub mUpgradeInsecurePreloads: bool, + pub mDocumentContainer: u64, + pub mCharacterSet: nsCString, + pub mCharacterSetSource: i32, + pub mParentDocument: *mut nsIDocument, + pub mCachedRootElement: *mut Element, + pub mNodeInfoManager: *mut nsNodeInfoManager, + pub mCSSLoader: RefPtr<Loader>, + pub mStyleImageLoader: RefPtr<ImageLoader>, + pub mAttrStyleSheet: RefPtr<nsHTMLStyleSheet>, + pub mStyleAttrStyleSheet: RefPtr<nsHTMLCSSStyleSheet>, + pub mSVGAttrAnimationRuleProcessor: RefPtr<SVGAttrAnimationRuleProcessor>, + pub mActivityObservers: nsAutoPtr<()>, + pub mLinksToUpdate: [u64; 5usize], + pub mAnimationController: RefPtr<nsSMILAnimationController>, + pub mPropertyTable: nsPropertyTable, + pub mExtraPropertyTables: nsTArray<nsAutoPtr<nsPropertyTable>>, + pub mChildrenCollection: nsCOMPtr<nsIHTMLCollection>, + pub mFontFaceSet: RefPtr<FontFaceSet>, + pub mCompatMode: nsCompatibility, + pub mReadyState: nsIDocument_ReadyState, + pub mVisibilityState: VisibilityState, + pub mStyleBackendType: StyleBackendType, + pub _bitfield_1: u64, + pub mType: nsIDocument_Type, + pub mDefaultElementType: u8, + pub mAllowXULXBL: nsIDocument_Tri, + pub mScriptGlobalObject: nsCOMPtr<nsIScriptGlobalObject>, + pub mOriginalDocument: nsCOMPtr<nsIDocument>, + pub mBidiOptions: u32, + pub mSandboxFlags: u32, + pub mContentLanguage: nsCString, + pub mChannel: nsCOMPtr<nsIChannel>, + pub mContentType: nsCString, + pub mId: nsString, + pub mSecurityInfo: nsCOMPtr<nsISupports>, + pub mFailedChannel: nsCOMPtr<nsIChannel>, + pub mPartID: u32, + pub mMarkedCCGeneration: u32, + pub mPresShell: *mut nsIPresShell, + pub mSubtreeModifiedTargets: nsCOMArray<nsINode>, + pub mSubtreeModifiedDepth: u32, + pub mDisplayDocument: nsCOMPtr<nsIDocument>, + pub mEventsSuppressed: u32, + pub mAnimationsPaused: u32, + /** + * The number number of external scripts (ones with the src attribute) that + * have this document as their owner and that are being evaluated right now. + */ + pub mExternalScriptsBeingEvaluated: u32, + /** + * The current frame request callback handle + */ + pub mFrameRequestCallbackCounter: i32, + pub mStaticCloneCount: u32, + pub mBlockedTrackingNodes: nsTArray<nsCOMPtr<nsIWeakReference>>, + pub mWindow: *mut nsPIDOMWindowInner, + pub mCachedEncoder: nsCOMPtr<nsIDocumentEncoder>, + pub mFrameRequestCallbacks: nsTArray<nsIDocument_FrameRequest>, + pub mBFCacheEntry: *mut nsIBFCacheEntry, + pub mBaseTarget: nsString, + pub mStateObjectContainer: nsCOMPtr<nsIStructuredCloneContainer>, + pub mStateObjectCached: nsCOMPtr<nsIVariant>, + pub mInSyncOperationCount: u32, + pub mXPathEvaluator: RefPtr<XPathEvaluator>, + pub mAnonymousContents: nsTArray<RefPtr<AnonymousContent>>, + pub mBlockDOMContentLoaded: u32, + pub _bitfield_2: u8, + pub mDOMMediaQueryLists: PRCList, + pub mUseCounters: [u64; 2usize], + pub mChildDocumentUseCounters: [u64; 2usize], + pub mNotifiedPageForUseCounter: [u64; 2usize], + pub mUserHasInteracted: bool, +} +pub type nsIDocument_GlobalObject = GlobalObject; +pub type nsIDocument_ReferrerPolicyEnum = ReferrerPolicy; +pub type nsIDocument_Element = Element; +pub type nsIDocument_FullscreenRequest = FullscreenRequest; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIDocument_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +/** + * This gets fired when the element that an id refers to changes. + * This fires at difficult times. It is generally not safe to do anything + * which could modify the DOM in any way. Use + * nsContentUtils::AddScriptRunner. + * @return true to keep the callback in the callback set, false + * to remove it. + */ +pub type nsIDocument_IDTargetObserver = + ::std::option::Option<unsafe extern "C" fn(aOldElement: + *mut nsIDocument_Element, + aNewelement: + *mut nsIDocument_Element, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_SelectorCacheKey { + pub mKey: nsString, + pub mState: nsExpirationState, +} +#[test] +fn bindgen_test_layout_nsIDocument_SelectorCacheKey() { + assert_eq!(::std::mem::size_of::<nsIDocument_SelectorCacheKey>() , + 24usize); + assert_eq!(::std::mem::align_of::<nsIDocument_SelectorCacheKey>() , + 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayInfallibleAllocator { - pub _base: nsTArrayInfallibleAllocatorBase, +pub struct nsIDocument_SelectorCacheKeyDeleter { + pub _address: u8, } -impl ::std::clone::Clone for nsTArrayInfallibleAllocator { +impl Clone for nsIDocument_SelectorCacheKeyDeleter { fn clone(&self) -> Self { *self } } #[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_SelectorCache { + pub _bindgen_opaque_blob: [u64; 15usize], +} +#[test] +fn bindgen_test_layout_nsIDocument_SelectorCache() { + assert_eq!(::std::mem::size_of::<nsIDocument_SelectorCache>() , 120usize); + assert_eq!(::std::mem::align_of::<nsIDocument_SelectorCache>() , 8usize); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_additionalSheetType { + eAgentSheet = 0, + eUserSheet = 1, + eAuthorSheet = 2, + AdditionalSheetTypeCount = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ReadyState { + READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4, +} +/** + * Enumerate all subdocuments. + * The enumerator callback should return true to continue enumerating, or + * false to stop. This will never get passed a null aDocument. + */ +pub type nsIDocument_nsSubDocEnumFunc = + ::std::option::Option<unsafe extern "C" fn(aDocument: *mut nsIDocument, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ElementsFromPointFlags { + IGNORE_ROOT_SCROLL_FRAME = 1, + FLUSH_LAYOUT = 2, + IS_ELEMENT_FROM_POINT = 4, +} +/** + * A class that represents an external resource load that has begun but + * doesn't have a document yet. Observers can be registered on this object, + * and will be notified after the document is created. Observers registered + * after the document has been created will NOT be notified. When observers + * are notified, the subject will be the newly-created document, the topic + * will be "external-resource-document-created", and the data will be null. + * If document creation fails for some reason, observers will still be + * notified, with a null document pointer. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIDocument_ExternalResourceLoad { + pub _base: nsISupports, + pub mObservers: [u64; 10usize], +} +#[test] +fn bindgen_test_layout_nsIDocument_ExternalResourceLoad() { + assert_eq!(::std::mem::size_of::<nsIDocument_ExternalResourceLoad>() , + 88usize); + assert_eq!(::std::mem::align_of::<nsIDocument_ExternalResourceLoad>() , + 8usize); +} +pub type nsIDocument_ActivityObserverEnumerator = + ::std::option::Option<unsafe extern "C" fn(arg1: *mut nsISupports, + arg2: + *mut ::std::os::raw::c_void)>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_SuppressionType { eAnimationsOnly = 1, eEvents = 3, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DocumentTheme { + Doc_Theme_Uninitialized = 0, + Doc_Theme_None = 1, + Doc_Theme_Neutral = 2, + Doc_Theme_Dark = 3, + Doc_Theme_Bright = 4, +} +pub type nsIDocument_FrameRequestCallbackList = + nsTArray<RefPtr<FrameRequestCallback>>; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument__bindgen_ty_bindgen_id_102082 { REQUEST_DISCARD = 1, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DeprecatedOperations { + eGetAttributeNode = 0, + eSetAttributeNode = 1, + eGetAttributeNodeNS = 2, + eSetAttributeNodeNS = 3, + eRemoveAttributeNode = 4, + eCreateAttribute = 5, + eCreateAttributeNS = 6, + eNodeValue = 7, + eTextContent = 8, + eEnablePrivilege = 9, + eDOMExceptionCode = 10, + eNoExposedProps = 11, + eMutationEvent = 12, + eComponents = 13, + ePrefixedVisibilityAPI = 14, + eNodeIteratorDetach = 15, + eLenientThis = 16, + eGetPreventDefault = 17, + eGetSetUserData = 18, + eMozGetAsFile = 19, + eUseOfCaptureEvents = 20, + eUseOfReleaseEvents = 21, + eUseOfDOM3LoadMethod = 22, + eShowModalDialog = 23, + eWindow_Content = 24, + eSyncXMLHttpRequest = 25, + eDataContainerEvent = 26, + eWindow_Controllers = 27, + eImportXULIntoContent = 28, + ePannerNodeDoppler = 29, + eNavigatorGetUserMedia = 30, + eWebrtcDeprecatedPrefix = 31, + eRTCPeerConnectionGetStreams = 32, + eAppCache = 33, + ePrefixedImageSmoothingEnabled = 34, + ePrefixedFullscreenAPI = 35, + eLenientSetter = 36, + eFileLastModifiedDate = 37, + eDeprecatedOperationCount = 38, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_DocumentWarnings { + eIgnoringWillChangeOverBudget = 0, + ePreventDefaultFromPassiveListener = 1, + eDocumentWarningCount = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_ElementCallbackType { + eCreated = 0, + eAttached = 1, + eDetached = 2, + eAttributeChanged = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_Type { + eUnknown = 0, + eHTML = 1, + eXHTML = 2, + eGenericXML = 3, + eSVG = 4, + eXUL = 5, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDocument_Tri { eTriUnset = 0, eTriFalse = 1, eTriTrue = 2, } +#[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArrayHeader { - pub mLength: u32, - pub _bitfield_1: u32, +pub struct nsIDocument_FrameRequest { + pub _address: u8, } -impl nsTArrayHeader { +impl Clone for nsIDocument_FrameRequest { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsIDocument() { + assert_eq!(::std::mem::size_of::<nsIDocument>() , 896usize); + assert_eq!(::std::mem::align_of::<nsIDocument>() , 8usize); +} +impl nsIDocument { #[inline] - pub fn mCapacity(&self) -> u32 { - (self._bitfield_1 & (2147483647usize as u32)) >> 0usize + pub fn mBidiEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u64)) >> + 0u32) as u8) + } } #[inline] - pub fn set_mCapacity(&mut self, val: u32) { - self._bitfield_1 &= !(2147483647usize as u32); + pub fn set_mBidiEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(1usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 0u32) & (1usize as u64); + } + #[inline] + pub fn mMathMLEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u64)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mMathMLEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(2usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 1u32) & (2usize as u64); + } + #[inline] + pub fn mIsInitialDocumentInWindow(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u64)) >> + 2u32) as u8) + } + } + #[inline] + pub fn set_mIsInitialDocumentInWindow(&mut self, val: bool) { + self._bitfield_1 &= !(4usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 2u32) & (4usize as u64); + } + #[inline] + pub fn mLoadedAsData(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u64)) >> + 3u32) as u8) + } + } + #[inline] + pub fn set_mLoadedAsData(&mut self, val: bool) { + self._bitfield_1 &= !(8usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 3u32) & (8usize as u64); + } + #[inline] + pub fn mLoadedAsInteractiveData(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u64)) >> + 4u32) as u8) + } + } + #[inline] + pub fn set_mLoadedAsInteractiveData(&mut self, val: bool) { + self._bitfield_1 &= !(16usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 4u32) & (16usize as u64); + } + #[inline] + pub fn mMayStartLayout(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u64)) >> + 5u32) as u8) + } + } + #[inline] + pub fn set_mMayStartLayout(&mut self, val: bool) { + self._bitfield_1 &= !(32usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 5u32) & (32usize as u64); + } + #[inline] + pub fn mHaveFiredTitleChange(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u64)) >> + 6u32) as u8) + } + } + #[inline] + pub fn set_mHaveFiredTitleChange(&mut self, val: bool) { + self._bitfield_1 &= !(64usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 6u32) & (64usize as u64); + } + #[inline] + pub fn mIsShowing(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u64)) >> + 7u32) as u8) + } + } + #[inline] + pub fn set_mIsShowing(&mut self, val: bool) { + self._bitfield_1 &= !(128usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 7u32) & (128usize as u64); + } + #[inline] + pub fn mVisible(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u64)) >> + 8u32) as u8) + } + } + #[inline] + pub fn set_mVisible(&mut self, val: bool) { + self._bitfield_1 &= !(256usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 8u32) & (256usize as u64); + } + #[inline] + pub fn mRemovedFromDocShell(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u64)) >> + 9u32) as u8) + } + } + #[inline] + pub fn set_mRemovedFromDocShell(&mut self, val: bool) { + self._bitfield_1 &= !(512usize as u64); + self._bitfield_1 |= ((val as u8 as u64) << 9u32) & (512usize as u64); + } + #[inline] + pub fn mAllowDNSPrefetch(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u64)) >> + 10u32) as u8) + } + } + #[inline] + pub fn set_mAllowDNSPrefetch(&mut self, val: bool) { + self._bitfield_1 &= !(1024usize as u64); self._bitfield_1 |= - ((val as u32) << 0usize) & (2147483647usize as u32); + ((val as u8 as u64) << 10u32) & (1024usize as u64); } #[inline] - pub fn mIsAutoArray(&self) -> u32 { - (self._bitfield_1 & (2147483648usize as u32)) >> 31usize + pub fn mIsStaticDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u64)) >> + 11u32) as u8) + } } #[inline] - pub fn set_mIsAutoArray(&mut self, val: bool) { - self._bitfield_1 &= !(2147483648usize as u32); + pub fn set_mIsStaticDocument(&mut self, val: bool) { + self._bitfield_1 &= !(2048usize as u64); self._bitfield_1 |= - ((val as u32) << 31usize) & (2147483648usize as u32); + ((val as u8 as u64) << 11u32) & (2048usize as u64); } #[inline] - pub fn new_bitfield_1(mCapacity: u32, mIsAutoArray: bool) -> u32 { - 0 | ((mCapacity as u32) << 0u32) | ((mIsAutoArray as u32) << 31u32) + pub fn mCreatingStaticClone(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u64)) >> + 12u32) as u8) + } + } + #[inline] + pub fn set_mCreatingStaticClone(&mut self, val: bool) { + self._bitfield_1 &= !(4096usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 12u32) & (4096usize as u64); + } + #[inline] + pub fn mInUnlinkOrDeletion(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u64)) >> + 13u32) as u8) + } + } + #[inline] + pub fn set_mInUnlinkOrDeletion(&mut self, val: bool) { + self._bitfield_1 &= !(8192usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 13u32) & (8192usize as u64); + } + #[inline] + pub fn mHasHadScriptHandlingObject(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16384usize as u64)) >> + 14u32) as u8) + } + } + #[inline] + pub fn set_mHasHadScriptHandlingObject(&mut self, val: bool) { + self._bitfield_1 &= !(16384usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 14u32) & (16384usize as u64); + } + #[inline] + pub fn mIsBeingUsedAsImage(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32768usize as u64)) >> + 15u32) as u8) + } + } + #[inline] + pub fn set_mIsBeingUsedAsImage(&mut self, val: bool) { + self._bitfield_1 &= !(32768usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 15u32) & (32768usize as u64); + } + #[inline] + pub fn mIsSyntheticDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (65536usize as u64)) >> + 16u32) as u8) + } + } + #[inline] + pub fn set_mIsSyntheticDocument(&mut self, val: bool) { + self._bitfield_1 &= !(65536usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 16u32) & (65536usize as u64); + } + #[inline] + pub fn mHasLinksToUpdate(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (131072usize as u64)) + >> 17u32) as u8) + } + } + #[inline] + pub fn set_mHasLinksToUpdate(&mut self, val: bool) { + self._bitfield_1 &= !(131072usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 17u32) & (131072usize as u64); + } + #[inline] + pub fn mNeedLayoutFlush(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (262144usize as u64)) + >> 18u32) as u8) + } + } + #[inline] + pub fn set_mNeedLayoutFlush(&mut self, val: bool) { + self._bitfield_1 &= !(262144usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 18u32) & (262144usize as u64); + } + #[inline] + pub fn mNeedStyleFlush(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (524288usize as u64)) + >> 19u32) as u8) + } + } + #[inline] + pub fn set_mNeedStyleFlush(&mut self, val: bool) { + self._bitfield_1 &= !(524288usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 19u32) & (524288usize as u64); + } + #[inline] + pub fn mMayHaveDOMMutationObservers(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1048576usize as u64)) + >> 20u32) as u8) + } + } + #[inline] + pub fn set_mMayHaveDOMMutationObservers(&mut self, val: bool) { + self._bitfield_1 &= !(1048576usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 20u32) & (1048576usize as u64); + } + #[inline] + pub fn mMayHaveAnimationObservers(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2097152usize as u64)) + >> 21u32) as u8) + } + } + #[inline] + pub fn set_mMayHaveAnimationObservers(&mut self, val: bool) { + self._bitfield_1 &= !(2097152usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 21u32) & (2097152usize as u64); + } + #[inline] + pub fn mHasMixedActiveContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4194304usize as u64)) + >> 22u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedActiveContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(4194304usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 22u32) & (4194304usize as u64); + } + #[inline] + pub fn mHasMixedActiveContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8388608usize as u64)) + >> 23u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedActiveContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(8388608usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 23u32) & (8388608usize as u64); + } + #[inline] + pub fn mHasMixedDisplayContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16777216usize as u64)) + >> 24u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedDisplayContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(16777216usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 24u32) & (16777216usize as u64); + } + #[inline] + pub fn mHasMixedDisplayContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (33554432usize as u64)) + >> 25u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedDisplayContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(33554432usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 25u32) & (33554432usize as u64); + } + #[inline] + pub fn mHasMixedContentObjectSubrequest(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (67108864usize as u64)) + >> 26u32) as u8) + } + } + #[inline] + pub fn set_mHasMixedContentObjectSubrequest(&mut self, val: bool) { + self._bitfield_1 &= !(67108864usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 26u32) & (67108864usize as u64); + } + #[inline] + pub fn mHasCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (134217728usize as u64)) >> 27u32) as + u8) + } + } + #[inline] + pub fn set_mHasCSP(&mut self, val: bool) { + self._bitfield_1 &= !(134217728usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 27u32) & (134217728usize as u64); + } + #[inline] + pub fn mHasUnsafeEvalCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (268435456usize as u64)) >> 28u32) as + u8) + } + } + #[inline] + pub fn set_mHasUnsafeEvalCSP(&mut self, val: bool) { + self._bitfield_1 &= !(268435456usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 28u32) & (268435456usize as u64); + } + #[inline] + pub fn mHasUnsafeInlineCSP(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (536870912usize as u64)) >> 29u32) as + u8) + } + } + #[inline] + pub fn set_mHasUnsafeInlineCSP(&mut self, val: bool) { + self._bitfield_1 &= !(536870912usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 29u32) & (536870912usize as u64); + } + #[inline] + pub fn mHasTrackingContentBlocked(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1073741824usize as u64)) >> 30u32) as + u8) + } + } + #[inline] + pub fn set_mHasTrackingContentBlocked(&mut self, val: bool) { + self._bitfield_1 &= !(1073741824usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 30u32) & (1073741824usize as u64); + } + #[inline] + pub fn mHasTrackingContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u64)) >> 31u32) as + u8) + } + } + #[inline] + pub fn set_mHasTrackingContentLoaded(&mut self, val: bool) { + self._bitfield_1 &= !(2147483648usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 31u32) & (2147483648usize as u64); + } + #[inline] + pub fn mBFCacheDisallowed(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967296usize as u64)) >> 32u32) as + u8) + } + } + #[inline] + pub fn set_mBFCacheDisallowed(&mut self, val: bool) { + self._bitfield_1 &= !(4294967296usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 32u32) & (4294967296usize as u64); + } + #[inline] + pub fn mHasHadDefaultView(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8589934592usize as u64)) >> 33u32) as + u8) + } + } + #[inline] + pub fn set_mHasHadDefaultView(&mut self, val: bool) { + self._bitfield_1 &= !(8589934592usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 33u32) & (8589934592usize as u64); + } + #[inline] + pub fn mStyleSheetChangeEventsEnabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17179869184usize as u64)) >> 34u32) + as u8) + } + } + #[inline] + pub fn set_mStyleSheetChangeEventsEnabled(&mut self, val: bool) { + self._bitfield_1 &= !(17179869184usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 34u32) & (17179869184usize as u64); + } + #[inline] + pub fn mIsSrcdocDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (34359738368usize as u64)) >> 35u32) + as u8) + } + } + #[inline] + pub fn set_mIsSrcdocDocument(&mut self, val: bool) { + self._bitfield_1 &= !(34359738368usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 35u32) & (34359738368usize as u64); + } + #[inline] + pub fn mDidDocumentOpen(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (68719476736usize as u64)) >> 36u32) + as u8) + } + } + #[inline] + pub fn set_mDidDocumentOpen(&mut self, val: bool) { + self._bitfield_1 &= !(68719476736usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 36u32) & (68719476736usize as u64); + } + #[inline] + pub fn mHasDisplayDocument(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (137438953472usize as u64)) >> 37u32) + as u8) + } + } + #[inline] + pub fn set_mHasDisplayDocument(&mut self, val: bool) { + self._bitfield_1 &= !(137438953472usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 37u32) & (137438953472usize as u64); + } + #[inline] + pub fn mFontFaceSetDirty(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (274877906944usize as u64)) >> 38u32) + as u8) + } + } + #[inline] + pub fn set_mFontFaceSetDirty(&mut self, val: bool) { + self._bitfield_1 &= !(274877906944usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 38u32) & (274877906944usize as u64); + } + #[inline] + pub fn mGetUserFontSetCalled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (549755813888usize as u64)) >> 39u32) + as u8) + } + } + #[inline] + pub fn set_mGetUserFontSetCalled(&mut self, val: bool) { + self._bitfield_1 &= !(549755813888usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 39u32) & (549755813888usize as u64); + } + #[inline] + pub fn mPostedFlushUserFontSet(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1099511627776usize as u64)) >> 40u32) + as u8) + } + } + #[inline] + pub fn set_mPostedFlushUserFontSet(&mut self, val: bool) { + self._bitfield_1 &= !(1099511627776usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 40u32) & (1099511627776usize as u64); + } + #[inline] + pub fn mEverInForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2199023255552usize as u64)) >> 41u32) + as u8) + } + } + #[inline] + pub fn set_mEverInForeground(&mut self, val: bool) { + self._bitfield_1 &= !(2199023255552usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 41u32) & (2199023255552usize as u64); + } + #[inline] + pub fn mMayHavePluginFramesForPrinting(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4398046511104usize as u64)) >> 42u32) + as u8) + } + } + #[inline] + pub fn set_mMayHavePluginFramesForPrinting(&mut self, val: bool) { + self._bitfield_1 &= !(4398046511104usize as u64); + self._bitfield_1 |= + ((val as u8 as u64) << 42u32) & (4398046511104usize as u64); + } + #[inline] + pub fn mDidFireDOMContentLoaded(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_2 & (1usize as u8)) >> + 0u32) as u8) + } + } + #[inline] + pub fn set_mDidFireDOMContentLoaded(&mut self, val: bool) { + self._bitfield_2 &= !(1usize as u8); + self._bitfield_2 |= ((val as u8 as u8) << 0u32) & (1usize as u8); + } + #[inline] + pub fn mHasScrollLinkedEffect(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_2 & (2usize as u8)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mHasScrollLinkedEffect(&mut self, val: bool) { + self._bitfield_2 &= !(2usize as u8); + self._bitfield_2 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } } -impl ::std::clone::Clone for nsTArrayHeader { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsTArrayHeader() { - assert_eq!(::std::mem::size_of::<nsTArrayHeader>() , 8usize); - assert_eq!(::std::mem::align_of::<nsTArrayHeader>() , 4usize); -} -extern "C" { - #[link_name = "_ZN14nsTArrayHeader9sEmptyHdrE"] - pub static mut nsTArrayHeader_consts_sEmptyHdr: nsTArrayHeader; -} +/** + * An internal interface that abstracts some DOMNode-related parts that both + * nsIContent and nsIDocument share. An instance of this interface has a list + * of nsIContent children and provides access to them. + */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_SafeElementAtHelper<E, Derived> { - pub _phantom0: ::std::marker::PhantomData<E>, - pub _phantom1: ::std::marker::PhantomData<Derived>, -} +#[derive(Debug)] +pub struct nsINode { + pub _base: EventTarget, + pub mNodeInfo: RefPtr<NodeInfo>, + pub mParent: *mut nsINode, + pub mBoolFlags: u32, + pub mNextSibling: *mut nsIContent, + pub mPreviousSibling: *mut nsIContent, + pub mFirstChild: *mut nsIContent, + pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_98796, + pub mSlots: *mut nsINode_nsSlots, + pub mServoNodeData: UniquePtr<ServoNodeData, + DefaultDelete<ServoNodeData>>, +} +pub type nsINode_BoxQuadOptions = BoxQuadOptions; +pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions; +pub type nsINode_DOMPoint = DOMPoint; +pub type nsINode_DOMPointInit = DOMPointInit; +pub type nsINode_DOMQuad = DOMQuad; +pub type nsINode_DOMRectReadOnly = DOMRectReadOnly; +pub type nsINode_OwningNodeOrString = OwningNodeOrString; +pub type nsINode_TextOrElementOrDocument = TextOrElementOrDocument; +pub type nsINode_ErrorResult = ErrorResult; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsTArray_SafeElementAtSmartPtrHelper<E, Derived> { - pub _phantom0: ::std::marker::PhantomData<E>, - pub _phantom1: ::std::marker::PhantomData<Derived>, +pub struct nsINode_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +/** + * Bit-flags to pass (or'ed together) to IsNodeOfType() + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsINode__bindgen_ty_bindgen_id_94940 { + eCONTENT = 1, + eDOCUMENT = 2, + eATTRIBUTE = 4, + eTEXT = 8, + ePROCESSING_INSTRUCTION = 16, + eCOMMENT = 32, + eHTML_FORM_CONTROL = 64, + eDOCUMENT_FRAGMENT = 128, + eDATA_NODE = 256, + eMEDIA = 512, + eANIMATION = 1024, + eFILTER = 2048, } #[repr(C)] -#[derive(Debug)] -pub struct nsTArray_base<Alloc, Copy> { - pub mHdr: *mut nsTArrayHeader, - pub _phantom0: ::std::marker::PhantomData<Alloc>, - pub _phantom1: ::std::marker::PhantomData<Copy>, +pub struct bindgen_vtable__bindgen_id_95709 { } #[repr(C)] #[derive(Debug)] -pub struct nsTArray_base_IsAutoArrayRestorer<Alloc, Copy> { - pub mArray: *mut nsTArray_base<Alloc, Copy>, - pub mElemAlign: usize, - pub mIsAuto: bool, - pub _phantom0: ::std::marker::PhantomData<Copy>, +pub struct nsINode_nsSlots { + pub vtable_: *const bindgen_vtable__bindgen_id_95709, + /** + * A list of mutation observers + */ + pub mMutationObservers: [u64; 2usize], + /** + * An object implementing nsIDOMNodeList for this content (childNodes) + * @see nsIDOMNodeList + * @see nsGenericHTMLElement::GetChildNodes + */ + pub mChildNodes: RefPtr<nsChildContentList>, + /** + * Weak reference to this node. This is cleared by the destructor of + * nsNodeWeakReference. + */ + pub mWeakReference: *mut nsNodeWeakReference, + /** + * Number of descendant nodes in the uncomposed document that have been + * explicitly set as editable. + */ + pub mEditableDescendantCount: u32, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsDefaultComparator<A, B> { - pub _phantom0: ::std::marker::PhantomData<A>, - pub _phantom1: ::std::marker::PhantomData<B>, +#[test] +fn bindgen_test_layout_nsINode_nsSlots() { + assert_eq!(::std::mem::size_of::<nsINode_nsSlots>() , 48usize); + assert_eq!(::std::mem::align_of::<nsINode_nsSlots>() , 8usize); +} +#[repr(u32)] +/** + * Boolean flags + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsINode_BooleanFlag { + NodeHasRenderingObservers = 0, + IsInDocument = 1, + ParentIsContent = 2, + NodeIsElement = 3, + ElementHasID = 4, + ElementMayHaveStyle = 5, + ElementHasName = 6, + ElementMayHaveContentEditableAttr = 7, + NodeIsCommonAncestorForRangeInSelection = 8, + NodeIsDescendantOfCommonAncestorForRangeInSelection = 9, + NodeIsCCMarkedRoot = 10, + NodeIsCCBlackTree = 11, + NodeIsPurpleRoot = 12, + NodeHasExplicitBaseURI = 13, + ElementHasLockedStyleStates = 14, + ElementHasPointerLock = 15, + NodeMayHaveDOMMutationObserver = 16, + NodeIsContent = 17, + ElementHasAnimations = 18, + NodeHasValidDirAttribute = 19, + NodeHasFixedDir = 20, + NodeHasDirAutoSet = 21, + NodeHasTextNodeDirectionalityMap = 22, + NodeHasDirAuto = 23, + NodeAncestorHasDirAuto = 24, + ElementIsInStyleScope = 25, + ElementIsScopedStyleRoot = 26, + NodeHandlingClick = 27, + NodeHasRelevantHoverRules = 28, + ElementHasWeirdParserInsertionMode = 29, + ParserHasNotified = 30, + MayBeApzAware = 31, + BooleanFlagCount = 32, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTArray_CopyWithMemutils; -impl ::std::clone::Clone for nsTArray_CopyWithMemutils { +pub struct nsINode__bindgen_ty_bindgen_id_98796 { + pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>, + pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_98796() { + assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_98796>() , + 8usize); + assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_98796>() + , 8usize); +} +impl Clone for nsINode__bindgen_ty_bindgen_id_98796 { fn clone(&self) -> Self { *self } } -extern "C" { - #[link_name = "_ZN25nsTArray_CopyWithMemutils12allowReallocE"] - pub static nsTArray_CopyWithMemutils_consts_allowRealloc: bool; +#[test] +fn bindgen_test_layout_nsINode() { + assert_eq!(::std::mem::size_of::<nsINode>() , 104usize); + assert_eq!(::std::mem::align_of::<nsINode>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_CopyWithConstructors<ElemType> { - pub _phantom0: ::std::marker::PhantomData<ElemType>, +#[derive(Debug)] +pub struct EventTarget { + pub _base: nsIDOMEventTarget, + pub _base_1: nsWrapperCache, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsTArray_CopyChooser<E> { - pub _phantom0: ::std::marker::PhantomData<E>, +pub struct EventTarget_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct nsTArray_TypedBase<E, Derived> { - pub _base: nsTArray_SafeElementAtHelper<E, Derived>, - pub _phantom0: ::std::marker::PhantomData<Derived>, +#[test] +fn bindgen_test_layout_EventTarget() { + assert_eq!(::std::mem::size_of::<EventTarget>() , 32usize); + assert_eq!(::std::mem::align_of::<EventTarget>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ItemComparatorEq<Item, Comparator> { - pub mItem: *const Item, - pub mComp: *const Comparator, +#[derive(Debug, Copy)] +pub struct nsIDOMEventTarget { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ItemComparatorFirstElementGT<Item, Comparator> { - pub mItem: *const Item, - pub mComp: *const Comparator, +pub struct nsIDOMEventTarget_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMEventTarget() { + assert_eq!(::std::mem::size_of::<nsIDOMEventTarget>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMEventTarget>() , 8usize); +} +impl Clone for nsIDOMEventTarget { + fn clone(&self) -> Self { *self } } /** - * <div rustbindgen replaces="nsTArray"></div> + * Smart pointer class that can hold a pointer to either an nsStyleSet + * or a ServoStyleSet. */ #[repr(C)] -#[derive(Debug)] -pub struct nsTArray<T> { - pub mBuffer: *mut T, +#[derive(Debug, Copy)] +pub struct StyleSetHandle { + pub mPtr: StyleSetHandle_Ptr, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCOMPtr_helper { - pub _vftable: *const _vftable_nsCOMPtr_helper, +pub struct StyleSetHandle_Ptr { + pub mValue: usize, } -#[repr(C)] -pub struct _vftable_nsCOMPtr_helper { - pub _bindgen_empty_ctype_warning_fix: u64, +#[test] +fn bindgen_test_layout_StyleSetHandle_Ptr() { + assert_eq!(::std::mem::size_of::<StyleSetHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSetHandle_Ptr>() , 8usize); } -impl ::std::clone::Clone for nsCOMPtr_helper { +impl Clone for StyleSetHandle_Ptr { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCOMPtr_helper() { - assert_eq!(::std::mem::size_of::<nsCOMPtr_helper>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCOMPtr_helper>() , 8usize); +fn bindgen_test_layout_StyleSetHandle() { + assert_eq!(::std::mem::size_of::<StyleSetHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSetHandle>() , 8usize); +} +impl Clone for StyleSetHandle { + fn clone(&self) -> Self { *self } +} +#[repr(i32)] +/** + * Enumeration that represents one of the two supported style system backends. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum StyleBackendType { Gecko = 1, Servo = 2, } +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SheetType { + Agent = 0, + User = 1, + PresHint = 2, + SVGAttrAnimation = 3, + Doc = 4, + ScopedDoc = 5, + StyleAttr = 6, + Override = 7, + Animation = 8, + Transition = 9, + Count = 10, + Unknown = 255, } +/** + * Smart pointer class that can hold a pointer to either a CSSStyleSheet + * or a ServoStyleSheet. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsQueryInterface { - pub mRawPtr: *mut nsISupports, +pub struct StyleSheetHandle { + pub mPtr: StyleSheetHandle_Ptr, } -impl ::std::clone::Clone for nsQueryInterface { +pub type StyleSheetHandle_RefPtr = HandleRefPtr<StyleSheetHandle>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct StyleSheetHandle_Ptr { + pub mValue: usize, +} +#[test] +fn bindgen_test_layout_StyleSheetHandle_Ptr() { + assert_eq!(::std::mem::size_of::<StyleSheetHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSheetHandle_Ptr>() , 8usize); +} +impl Clone for StyleSheetHandle_Ptr { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsQueryInterface() { - assert_eq!(::std::mem::size_of::<nsQueryInterface>() , 8usize); - assert_eq!(::std::mem::align_of::<nsQueryInterface>() , 8usize); +fn bindgen_test_layout_StyleSheetHandle() { + assert_eq!(::std::mem::size_of::<StyleSheetHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<StyleSheetHandle>() , 8usize); +} +impl Clone for StyleSheetHandle { + fn clone(&self) -> Self { *self } +} +pub const ReferrerPolicy_RP_Default: ReferrerPolicy = + ReferrerPolicy::RP_No_Referrer_When_Downgrade; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum ReferrerPolicy { + RP_No_Referrer = 1, + RP_Origin = 2, + RP_No_Referrer_When_Downgrade = 0, + RP_Origin_When_Crossorigin = 3, + RP_Unsafe_URL = 4, + RP_Unset = 4294967295, } +/** + * EventStates is the class used to represent the event states of nsIContent + * instances. These states are calculated by IntrinsicState() and + * ContentStatesChanged() has to be called when one of them changes thus + * informing the layout/style engine of the change. + * Event states are associated with pseudo-classes. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsQueryInterfaceWithError { - pub mRawPtr: *mut nsISupports, - pub mErrorPtr: *mut nsresult, +pub struct EventStates { + pub mStates: EventStates_InternalType, } -impl ::std::clone::Clone for nsQueryInterfaceWithError { +pub type EventStates_InternalType = u64; +pub type EventStates_ServoType = u8; +#[test] +fn bindgen_test_layout_EventStates() { + assert_eq!(::std::mem::size_of::<EventStates>() , 8usize); + assert_eq!(::std::mem::align_of::<EventStates>() , 8usize); +} +impl Clone for EventStates { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsQueryInterfaceWithError() { - assert_eq!(::std::mem::size_of::<nsQueryInterfaceWithError>() , 16usize); - assert_eq!(::std::mem::align_of::<nsQueryInterfaceWithError>() , 8usize); +#[repr(u32)] +/** + * |nsRestyleHint| is a bitfield for the result of + * |HasStateDependentStyle| and |HasAttributeDependentStyle|. When no + * restyling is necessary, use |nsRestyleHint(0)|. + * + * Without eRestyle_Force or eRestyle_ForceDescendants, the restyling process + * can stop processing at a frame when it detects no style changes and it is + * known that the styles of the subtree beneath it will not change, leaving + * the old style context on the frame. eRestyle_Force can be used to skip this + * optimization on a frame, and to force its new style context to be used. + * + * Similarly, eRestyle_ForceDescendants will cause the frame and all of its + * descendants to be traversed and for the new style contexts that are created + * to be set on the frames. + * + * NOTE: When adding new restyle hints, please also add them to + * RestyleManager::RestyleHintToString. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsRestyleHint { + eRestyle_Self = 1, + eRestyle_SomeDescendants = 2, + eRestyle_Subtree = 4, + eRestyle_LaterSiblings = 8, + eRestyle_CSSTransitions = 16, + eRestyle_CSSAnimations = 32, + eRestyle_SVGAttrAnimations = 64, + eRestyle_StyleAttribute = 128, + eRestyle_StyleAttribute_Animations = 256, + eRestyle_Force = 512, + eRestyle_ForceDescendants = 1024, + eRestyle_AllHintsWithAnimations = 368, } -//////////////////////////////////////////////////////////////////////////// #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByCID { - pub mCID: *const nsCID, +pub struct nsIObserver { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsGetServiceByCID { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIObserver_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByCID() { - assert_eq!(::std::mem::size_of::<nsGetServiceByCID>() , 8usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByCID>() , 8usize); +fn bindgen_test_layout_nsIObserver() { + assert_eq!(::std::mem::size_of::<nsIObserver>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIObserver>() , 8usize); +} +impl Clone for nsIObserver { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsCompatibility { + eCompatibility_FullStandards = 1, + eCompatibility_AlmostStandards = 2, + eCompatibility_NavQuirks = 3, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum VisibilityState { + Hidden = 0, + Visible = 1, + Prerender = 2, + EndGuard_ = 3, +} +/** + * The global object which keeps a script context for each supported script + * language. This often used to store per-window global state. + * This is a heavyweight interface implemented only by DOM globals, and + * it might go away some time in the future. + */ #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsGetServiceByCIDWithError { - pub mCID: *const nsCID, - pub mErrorPtr: *mut nsresult, +#[derive(Debug)] +pub struct nsIScriptGlobalObject { + pub _base: nsIGlobalObject, } -impl ::std::clone::Clone for nsGetServiceByCIDWithError { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIScriptGlobalObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByCIDWithError() { - assert_eq!(::std::mem::size_of::<nsGetServiceByCIDWithError>() , 16usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByCIDWithError>() , 8usize); +fn bindgen_test_layout_nsIScriptGlobalObject() { + assert_eq!(::std::mem::size_of::<nsIScriptGlobalObject>() , 24usize); + assert_eq!(::std::mem::align_of::<nsIScriptGlobalObject>() , 8usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByContractID { - pub mContractID: *const ::std::os::raw::c_char, +pub struct ShortcutKeyCandidate { + pub _address: u8, } -impl ::std::clone::Clone for nsGetServiceByContractID { +impl Clone for ShortcutKeyCandidate { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIVariant { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIVariant_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} #[test] -fn bindgen_test_layout_nsGetServiceByContractID() { - assert_eq!(::std::mem::size_of::<nsGetServiceByContractID>() , 8usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByContractID>() , 8usize); +fn bindgen_test_layout_nsIVariant() { + assert_eq!(::std::mem::size_of::<nsIVariant>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIVariant>() , 8usize); +} +impl Clone for nsIVariant { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsGetServiceByContractIDWithError { - pub mContractID: *const ::std::os::raw::c_char, - pub mErrorPtr: *mut nsresult, +pub struct nsIRunnable { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsGetServiceByContractIDWithError { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIRunnable_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsGetServiceByContractIDWithError() { - assert_eq!(::std::mem::size_of::<nsGetServiceByContractIDWithError>() , - 16usize); - assert_eq!(::std::mem::align_of::<nsGetServiceByContractIDWithError>() , - 8usize); +fn bindgen_test_layout_nsIRunnable() { + assert_eq!(::std::mem::size_of::<nsIRunnable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIRunnable>() , 8usize); +} +impl Clone for nsIRunnable { + fn clone(&self) -> Self { *self } } -/** - * Factors implementation for all template versions of nsCOMPtr. - * - * Here's the way people normally do things like this: - * - * template<class T> class Foo { ... }; - * template<> class Foo<void*> { ... }; - * template<class T> class Foo<T*> : private Foo<void*> { ... }; - */ #[repr(C)] #[derive(Debug)] -pub struct nsCOMPtr_base { - pub mRawPtr: *mut nsISupports, +pub struct Runnable { + pub _base: nsIRunnable, + pub mRefCnt: ThreadSafeAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type Runnable_HasThreadSafeRefCnt = TrueType; #[test] -fn bindgen_test_layout_nsCOMPtr_base() { - assert_eq!(::std::mem::size_of::<nsCOMPtr_base>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCOMPtr_base>() , 8usize); +fn bindgen_test_layout_Runnable() { + assert_eq!(::std::mem::size_of::<Runnable>() , 24usize); + assert_eq!(::std::mem::align_of::<Runnable>() , 8usize); } #[repr(C)] -#[derive(Debug)] -pub struct nsCOMPtr<T> { - pub _base: nsCOMPtr_base, - pub _phantom0: ::std::marker::PhantomData<T>, +#[derive(Debug, Copy)] +pub struct nsIDOMAttr { + pub _base: nsIDOMNode, } -/** - * This class is designed to be used for anonymous temporary objects in the - * argument list of calls that return COM interface pointers, e.g., - * - * nsCOMPtr<IFoo> fooP; - * ...->QueryInterface(iid, getter_AddRefs(fooP)) - * - * DO NOT USE THIS TYPE DIRECTLY IN YOUR CODE. Use |getter_AddRefs()| instead. - * - * When initialized with a |nsCOMPtr|, as in the example above, it returns - * a |void**|, a |T**|, or an |nsISupports**| as needed, that the outer call - * (|QueryInterface| in this case) can fill in. - * - * This type should be a nested class inside |nsCOMPtr<T>|. - */ #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsGetterAddRefs<T> { - pub mTargetSmartPtr: *mut nsCOMPtr<T>, +pub struct nsIDOMAttr_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMAttr() { + assert_eq!(::std::mem::size_of::<nsIDOMAttr>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMAttr>() , 8usize); +} +impl Clone for nsIDOMAttr { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsAutoPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct nsIDOMNode { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsAutoPtr_Ptr<T> { - pub mPtr: *mut T, +pub struct nsIDOMNode_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIDOMNode__bindgen_ty_bindgen_id_107063 { + ELEMENT_NODE = 1, + ATTRIBUTE_NODE = 2, + TEXT_NODE = 3, + CDATA_SECTION_NODE = 4, + ENTITY_REFERENCE_NODE = 5, + ENTITY_NODE = 6, + PROCESSING_INSTRUCTION_NODE = 7, + COMMENT_NODE = 8, + DOCUMENT_NODE = 9, + DOCUMENT_TYPE_NODE = 10, + DOCUMENT_FRAGMENT_NODE = 11, + NOTATION_NODE = 12, +} +#[test] +fn bindgen_test_layout_nsIDOMNode() { + assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize); +} +impl Clone for nsIDOMNode { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug)] -pub struct nsAutoPtr_Proxy<T, R, Args> { - pub mRawPtr: *mut T, - pub _phantom0: ::std::marker::PhantomData<R>, - pub _phantom1: ::std::marker::PhantomData<Args>, +#[derive(Debug, Copy)] +pub struct nsIDOMHTMLCollection { + pub _base: nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct nsAutoPtrGetterTransfers<T> { - pub mTargetSmartPtr: *mut nsAutoPtr<T>, +pub struct nsIDOMHTMLCollection_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMHTMLCollection() { + assert_eq!(::std::mem::size_of::<nsIDOMHTMLCollection>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMHTMLCollection>() , 8usize); +} +impl Clone for nsIDOMHTMLCollection { + fn clone(&self) -> Self { *self } } -/** - * This structure precedes the string buffers "we" allocate. It may be the - * case that nsTAString::mData does not point to one of these special - * buffers. The mFlags member variable distinguishes the buffer type. - * - * When this header is in use, it enables reference counting, and capacity - * tracking. NOTE: A string buffer can be modified only if its reference - * count is 1. - */ #[repr(C)] -#[derive(Debug)] -pub struct nsStringBuffer { - pub mRefCount: u32, - pub mStorageSize: u32, +#[derive(Debug, Copy)] +pub struct nsIControllers { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStringBuffer() { - assert_eq!(::std::mem::size_of::<nsStringBuffer>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStringBuffer>() , 4usize); +impl Clone for nsIControllers { + fn clone(&self) -> Self { *self } } #[repr(C)] +#[derive(Debug)] +pub struct nsPresContext { + pub _base: nsIObserver, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mType: nsPresContext_nsPresContextType, + pub mShell: *mut nsIPresShell, + pub mDocument: nsCOMPtr<nsIDocument>, + pub mDeviceContext: RefPtr<nsDeviceContext>, + pub mEventManager: RefPtr<EventStateManager>, + pub mRefreshDriver: RefPtr<nsRefreshDriver>, + pub mEffectCompositor: RefPtr<EffectCompositor>, + pub mTransitionManager: RefPtr<nsTransitionManager>, + pub mAnimationManager: RefPtr<nsAnimationManager>, + pub mRestyleManager: RestyleManagerHandle_RefPtr, + pub mCounterStyleManager: RefPtr<CounterStyleManager>, + pub mMedium: *mut nsIAtom, + pub mMediaEmulated: nsCOMPtr<nsIAtom>, + pub mLinkHandler: *mut nsILinkHandler, + pub mLanguage: nsCOMPtr<nsIAtom>, + pub mInflationDisabledForShrinkWrap: bool, + pub mContainer: u64, + pub mBaseMinFontSize: i32, + pub mTextZoom: f32, + pub mFullZoom: f32, + pub mOverrideDPPX: f32, + pub mLastFontInflationScreenSize: [u64; 2usize], + pub mCurAppUnitsPerDevPixel: i32, + pub mAutoQualityMinFontSizePixelsPref: i32, + pub mTheme: nsCOMPtr<nsITheme>, + pub mLangService: nsCOMPtr<nsILanguageAtomService>, + pub mPrintSettings: nsCOMPtr<nsIPrintSettings>, + pub mPrefChangedTimer: nsCOMPtr<nsITimer>, + pub mPropertyTable: nsPresContext_FramePropertyTable, + pub mInvalidateRequestsSinceLastPaint: nsInvalidateRequestList, + pub mUndeliveredInvalidateRequestsBeforeLastPaint: nsInvalidateRequestList, + pub mTextPerf: nsAutoPtr<gfxTextPerfMetrics>, + pub mMissingFonts: nsAutoPtr<gfxMissingFontRecorder>, + pub mVisibleArea: nsRect, + pub mPageSize: nsSize, + pub mPageScale: f32, + pub mPPScale: f32, + pub mDefaultColor: nscolor, + pub mBackgroundColor: nscolor, + pub mLinkColor: nscolor, + pub mActiveLinkColor: nscolor, + pub mVisitedLinkColor: nscolor, + pub mFocusBackgroundColor: nscolor, + pub mFocusTextColor: nscolor, + pub mBodyTextColor: nscolor, + pub mViewportStyleScrollbar: nsPresContext_ScrollbarStyles, + pub mFocusRingWidth: u8, + pub mExistThrottledUpdates: bool, + pub mImageAnimationMode: u16, + pub mImageAnimationModePref: u16, + pub mLangGroupFontPrefs: nsPresContext_LangGroupFontPrefs, + pub mBorderWidthTable: [nscoord; 3usize], + pub mInterruptChecksToSkip: u32, + pub mElementsRestyled: u64, + pub mFramesConstructed: u64, + pub mFramesReflowed: u64, + pub mReflowStartTime: TimeStamp, + pub mLastStyleUpdateForAllAnimations: TimeStamp, + pub _bitfield_1: u64, +} +pub type nsPresContext_FramePropertyTable = FramePropertyTable; +pub type nsPresContext_LangGroupFontPrefs = LangGroupFontPrefs; +pub type nsPresContext_ScrollbarStyles = ScrollbarStyles; +pub type nsPresContext_StaticPresData = StaticPresData; +pub type nsPresContext_HasThreadSafeRefCnt = FalseType; +#[repr(C)] #[derive(Debug, Copy)] -pub struct nsIAtom { - pub _base: nsISupports, - pub _bitfield_1: u32, - pub mHash: u32, - /** - * WARNING! There is an invisible constraint on |mString|: the chars it - * points to must belong to an nsStringBuffer. This is so that the - * nsStringBuffer::FromData() calls above are valid. - */ - pub mString: *mut ::std::os::raw::c_ushort, +pub struct nsPresContext_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsPresContext_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsPresContext_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsPresContext_cycleCollection>() , + 8usize); +} +impl Clone for nsPresContext_cycleCollection { + fn clone(&self) -> Self { *self } } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPresContext_nsPresContextType { + eContext_Galley = 0, + eContext_PrintPreview = 1, + eContext_Print = 2, + eContext_PageLayout = 3, +} +/** + * A class that can be used to temporarily disable reflow interruption. + */ #[repr(C)] -pub struct _vftable_nsIAtom { - pub _base: _vftable_nsISupports, +#[derive(Debug)] +pub struct nsPresContext_InterruptPreventer { + pub mCtx: *mut nsPresContext, + pub mInterruptsEnabled: bool, + pub mHasPendingInterrupt: bool, } -impl nsIAtom { +#[test] +fn bindgen_test_layout_nsPresContext_InterruptPreventer() { + assert_eq!(::std::mem::size_of::<nsPresContext_InterruptPreventer>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsPresContext_InterruptPreventer>() , + 8usize); +} +extern "C" { + #[link_name = "_ZN13nsPresContext21_cycleCollectorGlobalE"] + pub static mut nsPresContext__cycleCollectorGlobal: + nsPresContext_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsPresContext() { + assert_eq!(::std::mem::size_of::<nsPresContext>() , 1160usize); + assert_eq!(::std::mem::align_of::<nsPresContext>() , 8usize); +} +impl nsPresContext { #[inline] - pub fn mLength(&self) -> u32 { - (self._bitfield_1 & (2147483647usize as u32)) >> 0usize + pub fn mHasPendingInterrupt(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u64)) >> + 0u32) as u32) + } } #[inline] - pub fn set_mLength(&mut self, val: u32) { - self._bitfield_1 &= !(2147483647usize as u32); + pub fn set_mHasPendingInterrupt(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 0u32) & (1usize as u64); + } + #[inline] + pub fn mPendingInterruptFromTest(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u64)) >> + 1u32) as u32) + } + } + #[inline] + pub fn set_mPendingInterruptFromTest(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 1u32) & (2usize as u64); + } + #[inline] + pub fn mInterruptsEnabled(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u64)) >> + 2u32) as u32) + } + } + #[inline] + pub fn set_mInterruptsEnabled(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 2u32) & (4usize as u64); + } + #[inline] + pub fn mUseDocumentFonts(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u64)) >> + 3u32) as u32) + } + } + #[inline] + pub fn set_mUseDocumentFonts(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 3u32) & (8usize as u64); + } + #[inline] + pub fn mUseDocumentColors(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u64)) >> + 4u32) as u32) + } + } + #[inline] + pub fn set_mUseDocumentColors(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 4u32) & (16usize as u64); + } + #[inline] + pub fn mUnderlineLinks(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u64)) >> + 5u32) as u32) + } + } + #[inline] + pub fn set_mUnderlineLinks(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(32usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 5u32) & (32usize as u64); + } + #[inline] + pub fn mSendAfterPaintToContent(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u64)) >> + 6u32) as u32) + } + } + #[inline] + pub fn set_mSendAfterPaintToContent(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(64usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 6u32) & (64usize as u64); + } + #[inline] + pub fn mUseFocusColors(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u64)) >> + 7u32) as u32) + } + } + #[inline] + pub fn set_mUseFocusColors(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(128usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 7u32) & (128usize as u64); + } + #[inline] + pub fn mFocusRingOnAnything(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u64)) >> + 8u32) as u32) + } + } + #[inline] + pub fn set_mFocusRingOnAnything(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(256usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 8u32) & (256usize as u64); + } + #[inline] + pub fn mFocusRingStyle(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u64)) >> + 9u32) as u32) + } + } + #[inline] + pub fn set_mFocusRingStyle(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(512usize as u64); + self._bitfield_1 |= ((val as u32 as u64) << 9u32) & (512usize as u64); + } + #[inline] + pub fn mDrawImageBackground(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u64)) >> + 10u32) as u32) + } + } + #[inline] + pub fn set_mDrawImageBackground(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1024usize as u64); self._bitfield_1 |= - ((val as u32) << 0usize) & (2147483647usize as u32); + ((val as u32 as u64) << 10u32) & (1024usize as u64); } #[inline] - pub fn mIsStatic(&self) -> u32 { - (self._bitfield_1 & (2147483648usize as u32)) >> 31usize + pub fn mDrawColorBackground(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u64)) >> + 11u32) as u32) + } } #[inline] - pub fn set_mIsStatic(&mut self, val: bool) { - self._bitfield_1 &= !(2147483648usize as u32); + pub fn set_mDrawColorBackground(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2048usize as u64); self._bitfield_1 |= - ((val as u32) << 31usize) & (2147483648usize as u32); + ((val as u32 as u64) << 11u32) & (2048usize as u64); } #[inline] - pub fn new_bitfield_1(mLength: u32, mIsStatic: bool) -> u32 { - 0 | ((mLength as u32) << 0u32) | ((mIsStatic as u32) << 31u32) + pub fn mNeverAnimate(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u64)) >> + 12u32) as u32) + } + } + #[inline] + pub fn set_mNeverAnimate(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4096usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 12u32) & (4096usize as u64); + } + #[inline] + pub fn mIsRenderingOnlySelection(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u64)) >> + 13u32) as u32) + } + } + #[inline] + pub fn set_mIsRenderingOnlySelection(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8192usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 13u32) & (8192usize as u64); + } + #[inline] + pub fn mPaginated(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16384usize as u64)) >> + 14u32) as u32) + } + } + #[inline] + pub fn set_mPaginated(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16384usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 14u32) & (16384usize as u64); + } + #[inline] + pub fn mCanPaginatedScroll(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32768usize as u64)) >> + 15u32) as u32) + } + } + #[inline] + pub fn set_mCanPaginatedScroll(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(32768usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 15u32) & (32768usize as u64); + } + #[inline] + pub fn mDoScaledTwips(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (65536usize as u64)) >> + 16u32) as u32) + } + } + #[inline] + pub fn set_mDoScaledTwips(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(65536usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 16u32) & (65536usize as u64); + } + #[inline] + pub fn mIsRootPaginatedDocument(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (131072usize as u64)) + >> 17u32) as u32) + } + } + #[inline] + pub fn set_mIsRootPaginatedDocument(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(131072usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 17u32) & (131072usize as u64); + } + #[inline] + pub fn mPrefBidiDirection(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (262144usize as u64)) + >> 18u32) as u32) + } + } + #[inline] + pub fn set_mPrefBidiDirection(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(262144usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 18u32) & (262144usize as u64); + } + #[inline] + pub fn mPrefScrollbarSide(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1572864usize as u64)) + >> 19u32) as u32) + } + } + #[inline] + pub fn set_mPrefScrollbarSide(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1572864usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 19u32) & (1572864usize as u64); + } + #[inline] + pub fn mPendingSysColorChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2097152usize as u64)) + >> 21u32) as u32) + } + } + #[inline] + pub fn set_mPendingSysColorChanged(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2097152usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 21u32) & (2097152usize as u64); + } + #[inline] + pub fn mPendingThemeChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4194304usize as u64)) + >> 22u32) as u32) + } + } + #[inline] + pub fn set_mPendingThemeChanged(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4194304usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 22u32) & (4194304usize as u64); + } + #[inline] + pub fn mPendingUIResolutionChanged(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8388608usize as u64)) + >> 23u32) as u32) + } + } + #[inline] + pub fn set_mPendingUIResolutionChanged(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8388608usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 23u32) & (8388608usize as u64); + } + #[inline] + pub fn mPendingMediaFeatureValuesChanged(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16777216usize as u64)) + >> 24u32) as u32) + } + } + #[inline] + pub fn set_mPendingMediaFeatureValuesChanged(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(16777216usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 24u32) & (16777216usize as u64); + } + #[inline] + pub fn mPrefChangePendingNeedsReflow(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (33554432usize as u64)) + >> 25u32) as u32) + } + } + #[inline] + pub fn set_mPrefChangePendingNeedsReflow(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(33554432usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 25u32) & (33554432usize as u64); + } + #[inline] + pub fn mIsEmulatingMedia(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (67108864usize as u64)) + >> 26u32) as u32) + } + } + #[inline] + pub fn set_mIsEmulatingMedia(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(67108864usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 26u32) & (67108864usize as u64); + } + #[inline] + pub fn mAllInvalidated(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (134217728usize as u64)) >> 27u32) as + u32) + } + } + #[inline] + pub fn set_mAllInvalidated(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(134217728usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 27u32) & (134217728usize as u64); + } + #[inline] + pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (268435456usize as u64)) >> 28u32) as + u32) + } + } + #[inline] + pub fn set_mIsGlyph(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(268435456usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 28u32) & (268435456usize as u64); + } + #[inline] + pub fn mUsesRootEMUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (536870912usize as u64)) >> 29u32) as + u32) + } + } + #[inline] + pub fn set_mUsesRootEMUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(536870912usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 29u32) & (536870912usize as u64); + } + #[inline] + pub fn mUsesExChUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1073741824usize as u64)) >> 30u32) as + u32) + } + } + #[inline] + pub fn set_mUsesExChUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1073741824usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 30u32) & (1073741824usize as u64); + } + #[inline] + pub fn mUsesViewportUnits(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2147483648usize as u64)) >> 31u32) as + u32) + } + } + #[inline] + pub fn set_mUsesViewportUnits(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2147483648usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 31u32) & (2147483648usize as u64); + } + #[inline] + pub fn mPendingViewportChange(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967296usize as u64)) >> 32u32) as + u32) + } + } + #[inline] + pub fn set_mPendingViewportChange(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4294967296usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 32u32) & (4294967296usize as u64); + } + #[inline] + pub fn mCounterStylesDirty(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8589934592usize as u64)) >> 33u32) as + u32) + } + } + #[inline] + pub fn set_mCounterStylesDirty(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8589934592usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 33u32) & (8589934592usize as u64); + } + #[inline] + pub fn mPostedFlushCounterStyles(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17179869184usize as u64)) >> 34u32) + as u32) + } + } + #[inline] + pub fn set_mPostedFlushCounterStyles(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(17179869184usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 34u32) & (17179869184usize as u64); + } + #[inline] + pub fn mSuppressResizeReflow(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (34359738368usize as u64)) >> 35u32) + as u32) + } + } + #[inline] + pub fn set_mSuppressResizeReflow(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(34359738368usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 35u32) & (34359738368usize as u64); + } + #[inline] + pub fn mIsVisual(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (68719476736usize as u64)) >> 36u32) + as u32) + } + } + #[inline] + pub fn set_mIsVisual(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(68719476736usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 36u32) & (68719476736usize as u64); + } + #[inline] + pub fn mFireAfterPaintEvents(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (137438953472usize as u64)) >> 37u32) + as u32) + } + } + #[inline] + pub fn set_mFireAfterPaintEvents(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(137438953472usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 37u32) & (137438953472usize as u64); + } + #[inline] + pub fn mIsChrome(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (274877906944usize as u64)) >> 38u32) + as u32) + } + } + #[inline] + pub fn set_mIsChrome(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(274877906944usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 38u32) & (274877906944usize as u64); + } + #[inline] + pub fn mIsChromeOriginImage(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (549755813888usize as u64)) >> 39u32) + as u32) + } + } + #[inline] + pub fn set_mIsChromeOriginImage(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(549755813888usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 39u32) & (549755813888usize as u64); + } + #[inline] + pub fn mPaintFlashing(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (1099511627776usize as u64)) >> 40u32) + as u32) + } + } + #[inline] + pub fn set_mPaintFlashing(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(1099511627776usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 40u32) & (1099511627776usize as u64); + } + #[inline] + pub fn mPaintFlashingInitialized(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (2199023255552usize as u64)) >> 41u32) + as u32) + } + } + #[inline] + pub fn set_mPaintFlashingInitialized(&mut self, + val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(2199023255552usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 41u32) & (2199023255552usize as u64); + } + #[inline] + pub fn mHasWarnedAboutPositionedTableParts(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4398046511104usize as u64)) >> 42u32) + as u32) + } + } + #[inline] + pub fn set_mHasWarnedAboutPositionedTableParts(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(4398046511104usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 42u32) & (4398046511104usize as u64); + } + #[inline] + pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius(&self) + -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (8796093022208usize as u64)) >> 43u32) + as u32) + } + } + #[inline] + pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius(&mut self, + val: + ::std::os::raw::c_uint) { + self._bitfield_1 &= !(8796093022208usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 43u32) & (8796093022208usize as u64); + } + #[inline] + pub fn mQuirkSheetAdded(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (17592186044416usize as u64)) >> + 44u32) as u32) + } + } + #[inline] + pub fn set_mQuirkSheetAdded(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(17592186044416usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 44u32) & (17592186044416usize as u64); + } + #[inline] + pub fn mNeedsPrefUpdate(&self) -> ::std::os::raw::c_uint { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (35184372088832usize as u64)) >> + 45u32) as u32) + } + } + #[inline] + pub fn set_mNeedsPrefUpdate(&mut self, val: ::std::os::raw::c_uint) { + self._bitfield_1 &= !(35184372088832usize as u64); + self._bitfield_1 |= + ((val as u32 as u64) << 45u32) & (35184372088832usize as u64); } } -impl ::std::clone::Clone for nsIAtom { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsIAtom() { - assert_eq!(::std::mem::size_of::<nsIAtom>() , 24usize); - assert_eq!(::std::mem::align_of::<nsIAtom>() , 8usize); +/** + * Smart pointer class that can hold a pointer to either a RestyleManager + * or a ServoRestyleManager. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct RestyleManagerHandle { + pub mPtr: RestyleManagerHandle_Ptr, } +pub type RestyleManagerHandle_RefPtr = HandleRefPtr<RestyleManagerHandle>; #[repr(C)] -#[derive(Debug)] -pub struct nsAtomString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct RestyleManagerHandle_Ptr { + pub mValue: usize, } #[test] -fn bindgen_test_layout_nsAtomString() { - assert_eq!(::std::mem::size_of::<nsAtomString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAtomString>() , 8usize); +fn bindgen_test_layout_RestyleManagerHandle_Ptr() { + assert_eq!(::std::mem::size_of::<RestyleManagerHandle_Ptr>() , 8usize); + assert_eq!(::std::mem::align_of::<RestyleManagerHandle_Ptr>() , 8usize); } -#[repr(C)] -#[derive(Debug)] -pub struct nsAtomCString { - pub _base: nsCString, +impl Clone for RestyleManagerHandle_Ptr { + fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsAtomCString() { - assert_eq!(::std::mem::size_of::<nsAtomCString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAtomCString>() , 8usize); +fn bindgen_test_layout_RestyleManagerHandle() { + assert_eq!(::std::mem::size_of::<RestyleManagerHandle>() , 8usize); + assert_eq!(::std::mem::align_of::<RestyleManagerHandle>() , 8usize); } -#[repr(C)] -pub struct nsDependentAtomString { - pub _base: [u64; 2usize], -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct piecewise_construct_t; -impl ::std::clone::Clone for piecewise_construct_t { +impl Clone for RestyleManagerHandle { fn clone(&self) -> Self { *self } } -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pair<_T1, _T2> { - pub first: _T1, - pub second: _T2, +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsChangeHint { + nsChangeHint_RepaintFrame = 1, + nsChangeHint_NeedReflow = 2, + nsChangeHint_ClearAncestorIntrinsics = 4, + nsChangeHint_ClearDescendantIntrinsics = 8, + nsChangeHint_NeedDirtyReflow = 16, + nsChangeHint_SyncFrameView = 32, + nsChangeHint_UpdateCursor = 64, + nsChangeHint_UpdateEffects = 128, + nsChangeHint_UpdateOpacityLayer = 256, + nsChangeHint_UpdateTransformLayer = 512, + nsChangeHint_ReconstructFrame = 1024, + nsChangeHint_UpdateOverflow = 2048, + nsChangeHint_UpdateSubtreeOverflow = 4096, + nsChangeHint_UpdatePostTransformOverflow = 8192, + nsChangeHint_UpdateParentOverflow = 16384, + nsChangeHint_ChildrenOnlyTransform = 32768, + nsChangeHint_RecomputePosition = 65536, + nsChangeHint_UpdateContainingBlock = 131072, + nsChangeHint_BorderStyleNoneChange = 262144, + nsChangeHint_UpdateTextPath = 524288, + nsChangeHint_SchedulePaint = 1048576, + nsChangeHint_NeutralChange = 2097152, + nsChangeHint_InvalidateRenderingObservers = 4194304, + nsChangeHint_ReflowChangesSizeOrPosition = 8388608, + nsChangeHint_UpdateComputedBSize = 16777216, + nsChangeHint_UpdateUsesOpacity = 33554432, + nsChangeHint_UpdateBackgroundPosition = 67108864, + nsChangeHint_AllHints = 134217727, +} +pub type nscolor = u32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum Side { + eSideTop = 0, + eSideRight = 1, + eSideBottom = 2, + eSideLeft = 3, } -pub enum nsIContentSecurityPolicy { } -pub enum nsIDOMDocument { } #[repr(C)] -pub struct nsIPrincipal { - pub _bindgen_opaque_blob: u64, +#[derive(Debug)] +pub struct CallbackFunction { + pub _base: CallbackObject, } #[test] -fn bindgen_test_layout_nsIPrincipal() { - assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize); - assert_eq!(::std::mem::align_of::<nsIPrincipal>() , 8usize); +fn bindgen_test_layout_CallbackFunction() { + assert_eq!(::std::mem::size_of::<CallbackFunction>() , 56usize); + assert_eq!(::std::mem::align_of::<CallbackFunction>() , 8usize); } #[repr(C)] -#[derive(Debug, Copy)] -pub struct nsIExpandedPrincipal { +#[derive(Debug)] +pub struct CallbackObject { pub _base: nsISupports, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mCallback: u64, + pub mCreationStack: u64, + pub mIncumbentGlobal: nsCOMPtr<nsIGlobalObject>, + pub mIncumbentJSGlobal: u64, } #[repr(C)] -pub struct _vftable_nsIExpandedPrincipal { - pub _base: _vftable_nsISupports, -} -impl ::std::clone::Clone for nsIExpandedPrincipal { - fn clone(&self) -> Self { *self } +#[derive(Debug, Copy, Clone)] +pub struct CallbackObject_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } +pub type CallbackObject_HasThreadSafeRefCnt = FalseType; #[repr(C)] #[derive(Debug, Copy)] -pub struct nsIURI { - pub _base: nsISupports, +pub struct CallbackObject_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, } -#[repr(C)] -pub struct _vftable_nsIURI { - pub _base: _vftable_nsISupports, +#[test] +fn bindgen_test_layout_CallbackObject_cycleCollection() { + assert_eq!(::std::mem::size_of::<CallbackObject_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<CallbackObject_cycleCollection>() , + 8usize); } -impl ::std::clone::Clone for nsIURI { +impl Clone for CallbackObject_cycleCollection { fn clone(&self) -> Self { *self } } -pub type PLDHashNumber = u32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum CallbackObject_ExceptionHandling { + eReportExceptions = 0, + eRethrowContentExceptions = 1, + eRethrowExceptions = 2, +} #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashEntryHdr { - pub mKeyHash: PLDHashNumber, +pub struct CallbackObject_FastCallbackConstructor { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_CallbackObject_FastCallbackConstructor() { + assert_eq!(::std::mem::size_of::<CallbackObject_FastCallbackConstructor>() + , 1usize); + assert_eq!(::std::mem::align_of::<CallbackObject_FastCallbackConstructor>() + , 1usize); } -impl ::std::clone::Clone for PLDHashEntryHdr { +impl Clone for CallbackObject_FastCallbackConstructor { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct CallbackObject_CallSetup { + pub mCx: *mut JSContext, + pub mCompartment: *mut JSCompartment, + pub mAutoEntryScript: [u64; 19usize], + pub mAutoIncumbentScript: [u64; 5usize], + pub mRootedCallable: [u64; 4usize], + pub mAsyncStack: [u64; 4usize], + pub mAsyncStackSetter: [u64; 7usize], + pub mAc: [u64; 3usize], + pub mErrorResult: *mut ErrorResult, + pub mExceptionHandling: CallbackObject_ExceptionHandling, + pub mIsMainThread: bool, +} +#[test] +fn bindgen_test_layout_CallbackObject_CallSetup() { + assert_eq!(::std::mem::size_of::<CallbackObject_CallSetup>() , 368usize); + assert_eq!(::std::mem::align_of::<CallbackObject_CallSetup>() , 8usize); +} +extern "C" { + #[link_name = "_ZN7mozilla3dom14CallbackObject21_cycleCollectorGlobalE"] + pub static mut CallbackObject__cycleCollectorGlobal: + CallbackObject_cycleCollection; +} #[test] -fn bindgen_test_layout_PLDHashEntryHdr() { - assert_eq!(::std::mem::size_of::<PLDHashEntryHdr>() , 4usize); - assert_eq!(::std::mem::align_of::<PLDHashEntryHdr>() , 4usize); +fn bindgen_test_layout_CallbackObject() { + assert_eq!(::std::mem::size_of::<CallbackObject>() , 56usize); + assert_eq!(::std::mem::align_of::<CallbackObject>() , 8usize); } +pub type PLDHashNumber = u32; #[repr(C)] +#[derive(Debug)] pub struct PLDHashTable { pub mOps: *const PLDHashTableOps, pub mHashShift: i16, pub mEntrySize: u32, pub mEntryCount: u32, pub mRemovedCount: u32, - pub mEntryStore: [u64; 2usize], + pub mEntryStore: PLDHashTable_EntryStore, } #[repr(C)] +#[derive(Debug)] pub struct PLDHashTable_EntryStore { - pub _bindgen_opaque_blob: [u64; 2usize], + pub mEntryStore: *mut ::std::os::raw::c_char, + pub mGeneration: u32, } #[test] fn bindgen_test_layout_PLDHashTable_EntryStore() { @@ -2586,34 +4971,75 @@ fn bindgen_test_layout_PLDHashTable_Iterator() { assert_eq!(::std::mem::align_of::<PLDHashTable_Iterator>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum PLDHashTable_SearchReason { ForSearchOrRemove = 0, ForAdd = 1, } -#[test] -fn bindgen_test_layout_PLDHashTable() { - assert_eq!(::std::mem::size_of::<PLDHashTable>() , 40usize); - assert_eq!(::std::mem::align_of::<PLDHashTable>() , 8usize); -} extern "C" { #[link_name = "_ZN12PLDHashTable12kMaxCapacityE"] - pub static PLDHashTable_consts_kMaxCapacity: ::std::os::raw::c_uint; + pub static PLDHashTable_kMaxCapacity: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable12kMinCapacityE"] - pub static PLDHashTable_consts_kMinCapacity: ::std::os::raw::c_uint; + pub static PLDHashTable_kMinCapacity: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable17kMaxInitialLengthE"] - pub static PLDHashTable_consts_kMaxInitialLength: ::std::os::raw::c_uint; + pub static PLDHashTable_kMaxInitialLength: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable21kDefaultInitialLengthE"] - pub static PLDHashTable_consts_kDefaultInitialLength: - ::std::os::raw::c_uint; + pub static PLDHashTable_kDefaultInitialLength: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable9kHashBitsE"] - pub static PLDHashTable_consts_kHashBits: ::std::os::raw::c_uint; + pub static PLDHashTable_kHashBits: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable12kGoldenRatioE"] - pub static PLDHashTable_consts_kGoldenRatio: ::std::os::raw::c_uint; + pub static PLDHashTable_kGoldenRatio: u32; +} +extern "C" { #[link_name = "_ZN12PLDHashTable14kCollisionFlagE"] - pub static PLDHashTable_consts_kCollisionFlag: ::std::os::raw::c_uint; + pub static PLDHashTable_kCollisionFlag: PLDHashNumber; +} +#[test] +fn bindgen_test_layout_PLDHashTable() { + assert_eq!(::std::mem::size_of::<PLDHashTable>() , 40usize); + assert_eq!(::std::mem::align_of::<PLDHashTable>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLDHashTableOps { + pub hashKey: PLDHashHashKey, + pub matchEntry: PLDHashMatchEntry, + pub moveEntry: PLDHashMoveEntry, + pub clearEntry: PLDHashClearEntry, + pub initEntry: PLDHashInitEntry, +} +#[test] +fn bindgen_test_layout_PLDHashTableOps() { + assert_eq!(::std::mem::size_of::<PLDHashTableOps>() , 40usize); + assert_eq!(::std::mem::align_of::<PLDHashTableOps>() , 8usize); +} +impl Clone for PLDHashTableOps { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PLDHashEntryHdr { + pub mKeyHash: PLDHashNumber, +} +#[test] +fn bindgen_test_layout_PLDHashEntryHdr() { + assert_eq!(::std::mem::size_of::<PLDHashEntryHdr>() , 4usize); + assert_eq!(::std::mem::align_of::<PLDHashEntryHdr>() , 4usize); +} +impl Clone for PLDHashEntryHdr { + fn clone(&self) -> Self { *self } } pub type PLDHashHashKey = ::std::option::Option<unsafe extern "C" fn(aKey: *const ::std::os::raw::c_void) - -> PLDHashNumber>; + -> ::std::os::raw::c_uint>; pub type PLDHashMatchEntry = ::std::option::Option<unsafe extern "C" fn(aEntry: *const PLDHashEntryHdr, aKey: @@ -2630,122 +5056,403 @@ pub type PLDHashInitEntry = ::std::option::Option<unsafe extern "C" fn(aEntry: *mut PLDHashEntryHdr, aKey: *const ::std::os::raw::c_void)>; +/** + * hashkey wrapper using T* KeyType + * + * @see nsTHashtable::EntryType for specification + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsPtrHashKey<T> { + pub _base: PLDHashEntryHdr, + pub mKey: *mut T, +} +pub type nsPtrHashKey_KeyType<T> = *mut T; +pub type nsPtrHashKey_KeyTypePointer<T> = *mut T; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPtrHashKey__bindgen_ty_bindgen_id_111637 { ALLOW_MEMMOVE = 0, } +/** + * A node of content in a document's content model. This interface + * is supported by all content objects. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIContent { + pub _base: nsINode, +} +pub type nsIContent_IMEState = IMEState; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIContent_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIContent__bindgen_ty_bindgen_id_112977 { + eAllChildren = 0, + eAllButXBL = 1, + eSkipPlaceholderContent = 2, +} +/** + * Check whether this content node's given attribute has one of a given + * list of values. If there is a match, we return the index in the list + * of the first matching value. If there was no attribute at all, then + * we return ATTR_MISSING. If there was an attribute but it didn't + * match, we return ATTR_VALUE_NO_MATCH. A non-negative result always + * indicates a match. + * + * @param aNameSpaceID The namespace ID of the attribute. Must not + * be kNameSpaceID_Unknown. + * @param aName The name atom of the attribute. Must not be null. + * @param aValues a nullptr-terminated array of pointers to atom values to test + * against. + * @param aCaseSensitive Whether to do a case-sensitive compare on the values. + * @return ATTR_MISSING, ATTR_VALUE_NO_MATCH or the non-negative index + * indicating the first value of aValues that matched + */ +pub type nsIContent_AttrValuesArray = *const *mut nsIAtom; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIContent_ETabFocusType { + eTabFocus_formElementsMask = 2, + eTabFocus_linksMask = 4, + eTabFocus_any = 7, +} +extern "C" { + #[link_name = "_ZN10nsIContent14sTabFocusModelE"] + pub static mut nsIContent_sTabFocusModel: i32; +} +extern "C" { + #[link_name = "_ZN10nsIContent26sTabFocusModelAppliesToXULE"] + pub static mut nsIContent_sTabFocusModelAppliesToXUL: bool; +} +#[test] +fn bindgen_test_layout_nsIContent() { + assert_eq!(::std::mem::size_of::<nsIContent>() , 104usize); + assert_eq!(::std::mem::align_of::<nsIContent>() , 8usize); +} +/** + * Struct that stores info on an attribute. The name and value must either both + * be null or both be non-null. + * + * Note that, just as the pointers returned by GetAttrNameAt, the pointers that + * this struct hold are only valid until the element or its attributes are + * mutated (directly or via script). + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashTableOps { - pub hashKey: PLDHashHashKey, - pub matchEntry: PLDHashMatchEntry, - pub moveEntry: PLDHashMoveEntry, - pub clearEntry: PLDHashClearEntry, - pub initEntry: PLDHashInitEntry, +pub struct BorrowedAttrInfo { + pub mName: *const nsAttrName, + pub mValue: *const nsAttrValue, +} +#[test] +fn bindgen_test_layout_BorrowedAttrInfo() { + assert_eq!(::std::mem::size_of::<BorrowedAttrInfo>() , 16usize); + assert_eq!(::std::mem::align_of::<BorrowedAttrInfo>() , 8usize); } -impl ::std::clone::Clone for PLDHashTableOps { +impl Clone for BorrowedAttrInfo { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_PLDHashTableOps() { - assert_eq!(::std::mem::size_of::<PLDHashTableOps>() , 40usize); - assert_eq!(::std::mem::align_of::<PLDHashTableOps>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsICSSDeclaration { + pub _address: u8, +} +impl Clone for nsICSSDeclaration { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct PLDHashEntryStub { - pub _base: PLDHashEntryHdr, - pub key: *const ::std::os::raw::c_void, +pub struct AudioContext { + pub _address: u8, +} +impl Clone for AudioContext { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct Element { + pub _base: FragmentOrElement, + pub mState: EventStates, } -impl ::std::clone::Clone for PLDHashEntryStub { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct Element_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Element_MappedAttributeEntry { + pub attribute: *mut *mut nsIAtom, +} +#[test] +fn bindgen_test_layout_Element_MappedAttributeEntry() { + assert_eq!(::std::mem::size_of::<Element_MappedAttributeEntry>() , + 8usize); + assert_eq!(::std::mem::align_of::<Element_MappedAttributeEntry>() , + 8usize); +} +impl Clone for Element_MappedAttributeEntry { fn clone(&self) -> Self { *self } } +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element18kFireMutationEventE"] + pub static Element_kFireMutationEvent: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element22kDontFireMutationEventE"] + pub static Element_kDontFireMutationEvent: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element24kNotifyDocumentObserversE"] + pub static Element_kNotifyDocumentObservers: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element28kDontNotifyDocumentObserversE"] + pub static Element_kDontNotifyDocumentObservers: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element17kCallAfterSetAttrE"] + pub static Element_kCallAfterSetAttr: bool; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom7Element21kDontCallAfterSetAttrE"] + pub static Element_kDontCallAfterSetAttr: bool; +} #[test] -fn bindgen_test_layout_PLDHashEntryStub() { - assert_eq!(::std::mem::size_of::<PLDHashEntryStub>() , 16usize); - assert_eq!(::std::mem::align_of::<PLDHashEntryStub>() , 8usize); +fn bindgen_test_layout_Element() { + assert_eq!(::std::mem::size_of::<Element>() , 136usize); + assert_eq!(::std::mem::align_of::<Element>() , 8usize); } -/** - * a base class for templated hashtables. - * - * Clients will rarely need to use this class directly. Check the derived - * classes first, to see if they will meet your needs. - * - * @param EntryType the templated entry-type class that is managed by the - * hashtable. <code>EntryType</code> must extend the following declaration, - * and <strong>must not declare any virtual functions or derive from classes - * with virtual functions.</strong> Any vtable pointer would break the - * PLDHashTable code. - *<pre> class EntryType : public PLDHashEntryHdr - * { - * public: or friend nsTHashtable<EntryType>; - * // KeyType is what we use when Get()ing or Put()ing this entry - * // this should either be a simple datatype (uint32_t, nsISupports*) or - * // a const reference (const nsAString&) - * typedef something KeyType; - * // KeyTypePointer is the pointer-version of KeyType, because - * // PLDHashTable.h requires keys to cast to <code>const void*</code> - * typedef const something* KeyTypePointer; - * - * EntryType(KeyTypePointer aKey); - * - * // A copy or C++11 Move constructor must be defined, even if - * // AllowMemMove() == true, otherwise you will cause link errors. - * EntryType(const EntryType& aEnt); // Either this... - * EntryType(EntryType&& aEnt); // ...or this - * - * // the destructor must be defined... or you will cause link errors! - * ~EntryType(); - * - * // KeyEquals(): does this entry match this key? - * bool KeyEquals(KeyTypePointer aKey) const; - * - * // KeyToPointer(): Convert KeyType to KeyTypePointer - * static KeyTypePointer KeyToPointer(KeyType aKey); - * - * // HashKey(): calculate the hash number - * static PLDHashNumber HashKey(KeyTypePointer aKey); - * - * // ALLOW_MEMMOVE can we move this class with memmove(), or do we have - * // to use the copy constructor? - * enum { ALLOW_MEMMOVE = true/false }; - * }</pre> - * - * @see nsInterfaceHashtable - * @see nsDataHashtable - * @see nsClassHashtable - * @author "Benjamin Smedberg <bsmedberg@covad.net>" - */ #[repr(C)] -pub struct nsTHashtable<EntryType> { - pub mTable: PLDHashTable, - pub _phantom0: ::std::marker::PhantomData<EntryType>, +#[derive(Debug)] +pub struct FragmentOrElement { + pub _base: nsIContent, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + /** + * Array containing all attributes and children for this element + */ + pub mAttrsAndChildren: nsAttrAndChildArray, +} +pub type FragmentOrElement_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FragmentOrElement_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_FragmentOrElement_cycleCollection() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_cycleCollection>() , + 8usize); +} +impl Clone for FragmentOrElement_cycleCollection { + fn clone(&self) -> Self { *self } } +/** + * There are a set of DOM- and scripting-specific instance variables + * that may only be instantiated when a content object is accessed + * through the DOM. Rather than burn actual slots in the content + * objects for each of these instance variables, we put them off + * in a side structure that's only allocated when the content is + * accessed through the DOM. + */ #[repr(C)] #[derive(Debug)] -pub struct nsTHashtable_Iterator<EntryType> { - pub _base: PLDHashTable_Iterator, - pub _phantom0: ::std::marker::PhantomData<EntryType>, +pub struct FragmentOrElement_nsDOMSlots { + pub _base: nsINode_nsSlots, + /** + * The .style attribute (an interface that forwards to the actual + * style rules) + * @see nsGenericHTMLElement::GetStyle + */ + pub mStyle: nsCOMPtr<nsICSSDeclaration>, + /** + * The .dataset attribute. + * @see nsGenericHTMLElement::GetDataset + */ + pub mDataset: *mut nsDOMStringMap, + /** + * The .undoManager property. + * @see nsGenericHTMLElement::GetUndoManager + */ + pub mUndoManager: RefPtr<UndoManager>, + /** + * SMIL Overridde style rules (for SMIL animation of CSS properties) + * @see nsIContent::GetSMILOverrideStyle + */ + pub mSMILOverrideStyle: nsCOMPtr<nsICSSDeclaration>, + /** + * Holds any SMIL override style declaration for this element. + */ + pub mSMILOverrideStyleDeclaration: RefPtr<Declaration>, + /** + * An object implementing nsIDOMMozNamedAttrMap for this content (attributes) + * @see FragmentOrElement::GetAttributes + */ + pub mAttributeMap: RefPtr<nsDOMAttributeMap>, + pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307, + /** + * An object implementing the .children property for this element. + */ + pub mChildrenList: RefPtr<nsContentList>, + /** + * An object implementing the .classList property for this element. + */ + pub mClassList: RefPtr<nsDOMTokenList>, + /** + * ShadowRoot bound to the element. + */ + pub mShadowRoot: RefPtr<ShadowRoot>, + /** + * The root ShadowRoot of this element if it is in a shadow tree. + */ + pub mContainingShadow: RefPtr<ShadowRoot>, + /** + * An array of web component insertion points to which this element + * is distributed. + */ + pub mDestInsertionPoints: nsTArray<*mut nsIContent>, + /** + * XBL binding installed on the element. + */ + pub mXBLBinding: RefPtr<nsXBLBinding>, + /** + * XBL binding installed on the lement. + */ + pub mXBLInsertionParent: nsCOMPtr<nsIContent>, + /** + * Web components custom element data. + */ + pub mCustomElementData: RefPtr<CustomElementData>, } #[repr(C)] #[derive(Debug, Copy)] -pub struct VoidPtrHashKey { - pub _base: [u64; 2usize], +pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307 { + /** + * The nearest enclosing content node with a binding that created us. + * @see FragmentOrElement::GetBindingParent + */ + pub mBindingParent: __BindgenUnionField<*mut nsIContent>, + /** + * The controllers of the XUL Element. + */ + pub mControllers: __BindgenUnionField<*mut nsIControllers>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307>() + , 8usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307>() + , 8usize); } -impl ::std::clone::Clone for VoidPtrHashKey { +impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307 { fn clone(&self) -> Self { *self } } +#[test] +fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() { + assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() , + 168usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() , + 8usize); +} +extern "C" { + #[link_name = + "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"] + pub static mut FragmentOrElement__cycleCollectorGlobal: + FragmentOrElement_cycleCollection; +} +#[test] +fn bindgen_test_layout_FragmentOrElement() { + assert_eq!(::std::mem::size_of::<FragmentOrElement>() , 128usize); + assert_eq!(::std::mem::align_of::<FragmentOrElement>() , 8usize); +} #[repr(C)] -pub struct nsDataHashtable; -pub type nsLoadFlags = u32; +#[derive(Debug, Copy)] +pub struct nsIWeakReference { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIWeakReference_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIWeakReference() { + assert_eq!(::std::mem::size_of::<nsIWeakReference>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIWeakReference>() , 8usize); +} +impl Clone for nsIWeakReference { + fn clone(&self) -> Self { *self } +} +pub type nsWeakPtr = nsCOMPtr<nsIWeakReference>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PrefSetting { + pub _address: u8, +} +impl Clone for PrefSetting { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIChannel { + pub _base: nsIRequest, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIChannel_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIChannel__bindgen_ty_bindgen_id_129733 { + LOAD_DOCUMENT_URI = 65536, + LOAD_RETARGETED_DOCUMENT_URI = 131072, + LOAD_REPLACE = 262144, + LOAD_INITIAL_DOCUMENT_URI = 524288, + LOAD_TARGETED = 1048576, + LOAD_CALL_CONTENT_SNIFFERS = 2097152, + LOAD_CLASSIFY_URI = 4194304, + LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE = 8388608, + LOAD_EXPLICIT_CREDENTIALS = 16777216, + LOAD_BYPASS_SERVICE_WORKER = 33554432, +} +#[test] +fn bindgen_test_layout_nsIChannel() { + assert_eq!(::std::mem::size_of::<nsIChannel>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIChannel>() , 8usize); +} +impl Clone for nsIChannel { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] pub struct nsIRequest { pub _base: nsISupports, } #[repr(C)] -pub struct _vftable_nsIRequest { - pub _base: _vftable_nsISupports, +#[derive(Debug, Copy, Clone)] +pub struct nsIRequest_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsIRequest_nsIRequest_h_unnamed_7 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIRequest__bindgen_ty_bindgen_id_129571 { LOAD_REQUESTMASK = 65535, LOAD_NORMAL = 0, LOAD_BACKGROUND = 1, @@ -2760,29 +5467,91 @@ pub enum nsIRequest_nsIRequest_h_unnamed_7 { LOAD_ANONYMOUS = 16384, LOAD_FRESH_CONNECTION = 32768, } -impl ::std::clone::Clone for nsIRequest { +#[test] +fn bindgen_test_layout_nsIRequest() { + assert_eq!(::std::mem::size_of::<nsIRequest>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIRequest>() , 8usize); +} +impl Clone for nsIRequest { fn clone(&self) -> Self { *self } } -/** - * EventStates is the class used to represent the event states of nsIContent - * instances. These states are calculated by IntrinsicState() and - * ContentStatesChanged() has to be called when one of them changes thus - * informing the layout/style engine of the change. - * Event states are associated with pseudo-classes. - */ +pub type nsLoadFlags = u32; #[repr(C)] #[derive(Debug, Copy)] -pub struct EventStates { - pub mStates: ::std::os::raw::c_ulonglong, +pub struct nsILoadGroup { + pub _base: nsIRequest, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILoadGroup_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsILoadGroup() { + assert_eq!(::std::mem::size_of::<nsILoadGroup>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILoadGroup>() , 8usize); +} +impl Clone for nsILoadGroup { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsCOMArray_base { + pub mArray: nsTArray<*mut nsISupports>, +} +pub type nsCOMArray_base_nsBaseArrayEnumFunc = + ::std::option::Option<unsafe extern "C" fn(aElement: + *mut ::std::os::raw::c_void, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +pub type nsCOMArray_base_nsBaseArrayComparatorFunc = + ::std::option::Option<unsafe extern "C" fn(aElement1: *mut nsISupports, + aElement2: *mut nsISupports, + aData: + *mut ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCOMArray_base_nsCOMArrayComparatorContext { + pub mComparatorFunc: nsCOMArray_base_nsBaseArrayComparatorFunc, + pub mData: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_nsCOMArray_base_nsCOMArrayComparatorContext() { + assert_eq!(::std::mem::size_of::<nsCOMArray_base_nsCOMArrayComparatorContext>() + , 16usize); + assert_eq!(::std::mem::align_of::<nsCOMArray_base_nsCOMArrayComparatorContext>() + , 8usize); } -impl ::std::clone::Clone for EventStates { +impl Clone for nsCOMArray_base_nsCOMArrayComparatorContext { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_EventStates() { - assert_eq!(::std::mem::size_of::<EventStates>() , 8usize); - assert_eq!(::std::mem::align_of::<EventStates>() , 8usize); +fn bindgen_test_layout_nsCOMArray_base() { + assert_eq!(::std::mem::size_of::<nsCOMArray_base>() , 8usize); + assert_eq!(::std::mem::align_of::<nsCOMArray_base>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsCOMArray<T> { + pub _base: nsCOMArray_base, + pub _phantom_0: ::std::marker::PhantomData<T>, } +pub type nsCOMArray_nsCOMArrayEnumFunc<T> = + ::std::option::Option<unsafe extern "C" fn(aElement: *mut T, + aData: + *mut ::std::os::raw::c_void) + -> bool>; +pub type nsCOMArray_nsCOMArrayComparatorFunc<T> = + ::std::option::Option<unsafe extern "C" fn(aElement1: *mut T, + aElement2: *mut T, + aData: + *mut ::std::os::raw::c_void) + -> ::std::os::raw::c_int>; +#[repr(u32)] /** * Enum defining the mode in which a sheet is to be parsed. This is * usually, but not always, the same as the cascade level at which the @@ -2804,8 +5573,7 @@ fn bindgen_test_layout_EventStates() { * styling of anonymous box pseudo-elements can violate layout * invariants. */ -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum SheetParsingMode { eAuthorSheetFeatures = 0, eUserSheetFeatures = 1, @@ -2823,38 +5591,907 @@ pub enum SheetParsingMode { pub struct HandleRefPtr<T> { pub mHandle: T, } -pub enum nsAttrAndChildArray { } -pub enum nsChildContentList { } -pub enum nsCSSSelectorList { } -pub enum nsDOMAttributeMap { } -pub enum nsIAnimationObserver { } -pub enum nsIDOMElement { } -pub enum nsIDOMNodeList { } -pub enum nsIEditor { } -pub enum nsIFrame { } -pub enum nsINodeList { } -pub enum nsNodeSupportsWeakRefTearoff { } -pub enum nsNodeWeakReference { } -pub enum nsDOMMutationObserver { } -pub enum ServoNodeData { } -pub enum EventListenerManager { } -pub enum AccessibleNode { } -pub enum BoxQuadOptions { } -pub enum ConvertCoordinateOptions { } -pub enum DOMPoint { } -pub enum DOMQuad { } -pub enum DOMRectReadOnly { } -pub enum Element { } -pub enum Text { } -pub enum TextOrElementOrDocument { } -pub enum DOMPointInit { } -pub const NODE_IS_DIRTY_FOR_SERVO: nsINode_h_unnamed_8 = - nsINode_h_unnamed_8::NODE_SHARED_RESTYLE_BIT_1; -pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: nsINode_h_unnamed_8 = - nsINode_h_unnamed_8::NODE_SHARED_RESTYLE_BIT_2; +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrValue { + pub mBits: usize, +} +pub type nsAttrValue_AtomArray = nsTArray<nsCOMPtr<nsIAtom>>; +pub const nsAttrValue_ValueType_eSVGTypesBegin: nsAttrValue_ValueType = + nsAttrValue_ValueType::eSVGAngle; +pub const nsAttrValue_ValueType_eSVGTypesEnd: nsAttrValue_ValueType = + nsAttrValue_ValueType::eSVGViewBox; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAttrValue_ValueType { + eString = 0, + eAtom = 2, + eInteger = 3, + eColor = 7, + eEnum = 11, + ePercent = 15, + eGeckoCSSDeclaration = 16, + eServoCSSDeclaration = 17, + eURL = 18, + eImage = 19, + eAtomArray = 20, + eDoubleValue = 21, + eIntMarginValue = 22, + eSVGAngle = 23, + eSVGIntegerPair = 24, + eSVGLength = 25, + eSVGLengthList = 26, + eSVGNumberList = 27, + eSVGNumberPair = 28, + eSVGPathData = 29, + eSVGPointList = 30, + eSVGPreserveAspectRatio = 31, + eSVGStringList = 32, + eSVGTransformList = 33, + eSVGViewBox = 34, +} +/** + * Structure for a mapping from int (enum) values to strings. When you use + * it you generally create an array of them. + * Instantiate like this: + * EnumTable myTable[] = { + * { "string1", 1 }, + * { "string2", 2 }, + * { nullptr, 0 } + * } + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAttrValue_EnumTable { + /** The string the value maps to */ + pub tag: *const ::std::os::raw::c_char, + /** The enum value that maps to this string */ + pub value: i16, +} +#[test] +fn bindgen_test_layout_nsAttrValue_EnumTable() { + assert_eq!(::std::mem::size_of::<nsAttrValue_EnumTable>() , 16usize); + assert_eq!(::std::mem::align_of::<nsAttrValue_EnumTable>() , 8usize); +} +impl Clone for nsAttrValue_EnumTable { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsAttrValue_ValueBaseType { + eStringBase = 0, + eOtherBase = 1, + eAtomBase = 2, + eIntegerBase = 3, +} +extern "C" { + #[link_name = "_ZN11nsAttrValue15sEnumTableArrayE"] + pub static mut nsAttrValue_sEnumTableArray: + *mut nsTArray<*const nsAttrValue_EnumTable>; +} +#[test] +fn bindgen_test_layout_nsAttrValue() { + assert_eq!(::std::mem::size_of::<nsAttrValue>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAttrValue>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsNodeInfoManager { + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mNodeInfoHash: *mut PLHashTable, + pub mDocument: *mut nsIDocument, + pub mNonDocumentNodeInfos: u32, + pub mPrincipal: nsCOMPtr<nsIPrincipal>, + pub mDefaultPrincipal: nsCOMPtr<nsIPrincipal>, + pub mTextNodeInfo: *mut NodeInfo, + pub mCommentNodeInfo: *mut NodeInfo, + pub mDocumentNodeInfo: *mut NodeInfo, + pub mBindingManager: RefPtr<nsBindingManager>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsNodeInfoManager_cycleCollection { + pub _base: nsCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsNodeInfoManager_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsNodeInfoManager_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsNodeInfoManager_cycleCollection>() , + 8usize); +} +impl Clone for nsNodeInfoManager_cycleCollection { + fn clone(&self) -> Self { *self } +} +pub type nsNodeInfoManager_HasThreadSafeRefCnt = FalseType; +extern "C" { + #[link_name = "_ZN17nsNodeInfoManager21_cycleCollectorGlobalE"] + pub static mut nsNodeInfoManager__cycleCollectorGlobal: + nsNodeInfoManager_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsNodeInfoManager() { + assert_eq!(::std::mem::size_of::<nsNodeInfoManager>() , 88usize); + assert_eq!(::std::mem::align_of::<nsNodeInfoManager>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct NodeInfo { + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mDocument: *mut nsIDocument, + pub mInner: NodeInfo_NodeInfoInner, + pub mOwnerManager: RefPtr<nsNodeInfoManager>, + pub mQualifiedName: nsString, + pub mNodeName: nsString, + pub mLocalName: nsString, +} +pub type NodeInfo_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct NodeInfo_cycleCollection { + pub _base: nsCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_NodeInfo_cycleCollection() { + assert_eq!(::std::mem::size_of::<NodeInfo_cycleCollection>() , 16usize); + assert_eq!(::std::mem::align_of::<NodeInfo_cycleCollection>() , 8usize); +} +impl Clone for NodeInfo_cycleCollection { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct NodeInfo_NodeInfoInner { + pub mName: nsCOMPtr<nsIAtom>, + pub mPrefix: nsCOMPtr<nsIAtom>, + pub mNamespaceID: i32, + pub mNodeType: u16, + pub mNameString: *const nsAString_internal, + pub mExtraName: nsCOMPtr<nsIAtom>, +} +#[test] +fn bindgen_test_layout_NodeInfo_NodeInfoInner() { + assert_eq!(::std::mem::size_of::<NodeInfo_NodeInfoInner>() , 40usize); + assert_eq!(::std::mem::align_of::<NodeInfo_NodeInfoInner>() , 8usize); +} +extern "C" { + #[link_name = "_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE"] + pub static mut NodeInfo__cycleCollectorGlobal: NodeInfo_cycleCollection; +} +#[test] +fn bindgen_test_layout_NodeInfo() { + assert_eq!(::std::mem::size_of::<NodeInfo>() , 120usize); + assert_eq!(::std::mem::align_of::<NodeInfo>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsBindingManager { + pub _address: u8, +} +impl Clone for nsBindingManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIFrame { + pub _address: u8, +} +impl Clone for nsIFrame { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsPropertyTable { + pub mPropertyList: *mut nsPropertyTable_PropertyList, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsPropertyTable_PropertyList { + pub _address: u8, +} +impl Clone for nsPropertyTable_PropertyList { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsPropertyTable() { + assert_eq!(::std::mem::size_of::<nsPropertyTable>() , 8usize); + assert_eq!(::std::mem::align_of::<nsPropertyTable>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrAndChildArray { + pub mImpl: *mut nsAttrAndChildArray_Impl, +} +pub type nsAttrAndChildArray_BorrowedAttrInfo = BorrowedAttrInfo; +#[repr(C)] +#[derive(Debug)] +pub struct nsAttrAndChildArray_InternalAttr { + pub mName: nsAttrName, + pub mValue: nsAttrValue, +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray_InternalAttr() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray_InternalAttr>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray_InternalAttr>() , + 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAttrAndChildArray_Impl { + pub mAttrAndChildCount: u32, + pub mBufferSize: u32, + pub mMappedAttrs: *mut nsMappedAttributes, + pub mBuffer: [*mut ::std::os::raw::c_void; 1usize], +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray_Impl() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray_Impl>() , 24usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray_Impl>() , 8usize); +} +impl Clone for nsAttrAndChildArray_Impl { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsAttrAndChildArray() { + assert_eq!(::std::mem::size_of::<nsAttrAndChildArray>() , 8usize); + assert_eq!(::std::mem::align_of::<nsAttrAndChildArray>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsChildContentList { + pub _address: u8, +} +impl Clone for nsChildContentList { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsDOMAttributeMap { + pub _base: nsIDOMMozNamedAttrMap, + pub _base_1: nsWrapperCache, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mContent: nsCOMPtr<Element>, + /** + * Cache of Attrs. + */ + pub mAttributeCache: nsDOMAttributeMap_AttrCache, +} +pub type nsDOMAttributeMap_Attr = Attr; +pub type nsDOMAttributeMap_Element = Element; +pub type nsDOMAttributeMap_ErrorResult = ErrorResult; +pub type nsDOMAttributeMap_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMAttributeMap_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_nsDOMAttributeMap_cycleCollection() { + assert_eq!(::std::mem::size_of::<nsDOMAttributeMap_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<nsDOMAttributeMap_cycleCollection>() , + 8usize); +} +impl Clone for nsDOMAttributeMap_cycleCollection { + fn clone(&self) -> Self { *self } +} +pub type nsDOMAttributeMap_AttrCache = [u64; 5usize]; +extern "C" { + #[link_name = "_ZN17nsDOMAttributeMap21_cycleCollectorGlobalE"] + pub static mut nsDOMAttributeMap__cycleCollectorGlobal: + nsDOMAttributeMap_cycleCollection; +} +#[test] +fn bindgen_test_layout_nsDOMAttributeMap() { + assert_eq!(::std::mem::size_of::<nsDOMAttributeMap>() , 96usize); + assert_eq!(::std::mem::align_of::<nsDOMAttributeMap>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIDOMMozNamedAttrMap { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIDOMMozNamedAttrMap_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsIDOMMozNamedAttrMap() { + assert_eq!(::std::mem::size_of::<nsIDOMMozNamedAttrMap>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIDOMMozNamedAttrMap>() , 8usize); +} +impl Clone for nsIDOMMozNamedAttrMap { + fn clone(&self) -> Self { *self } +} +/** + * Presentation shell interface. Presentation shells are the + * controlling point for managing the presentation of a document. The + * presentation shell holds a live reference to the document, the + * presentation context, the style manager, the style set and the root + * frame. <p> + * + * When this object is Release'd, it will release the document, the + * presentation context, the style manager, the style set and the root + * frame. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsIPresShell { + pub _base: nsISupports, + pub mDocument: nsCOMPtr<nsIDocument>, + pub mPresContext: RefPtr<nsPresContext>, + pub mStyleSet: StyleSetHandle, + pub mFrameConstructor: *mut nsCSSFrameConstructor, + pub mViewManager: *mut nsViewManager, + pub mFrameArena: nsPresArena, + pub mSelection: RefPtr<nsFrameSelection>, + pub mFrameManager: *mut nsFrameManagerBase, + pub mForwardingContainer: u64, + pub mHiddenInvalidationObserverRefreshDriver: *mut nsRefreshDriver, + pub mDocAccessible: *mut DocAccessible, + pub mReflowContinueTimer: nsCOMPtr<nsITimer>, + pub mPaintCount: u64, + pub mScrollPositionClampingScrollPortSize: nsSize, + pub mWeakFrames: *mut nsWeakFrame, + pub mCanvasBackgroundColor: nscolor, + pub mResolution: [u64; 2usize], + pub mSelectionFlags: i16, + pub mRenderFlags: nsIPresShell_RenderFlags, + pub _bitfield_1: u16, + pub mPresShellId: u32, + pub mChangedScopeStyleRoots: [u64; 3usize], + pub mFontSizeInflationEmPerLine: u32, + pub mFontSizeInflationMinTwips: u32, + pub mFontSizeInflationLineThreshold: u32, + pub mFontSizeInflationForceEnabled: bool, + pub mFontSizeInflationDisabledInMasterProcess: bool, + pub mFontSizeInflationEnabled: bool, + pub mPaintingIsFrozen: bool, + pub mFontSizeInflationEnabledIsDirty: bool, + pub mIsNeverPainting: bool, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIPresShell_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +pub type nsIPresShell_LayerManager = LayerManager; +pub type nsIPresShell_SourceSurface = SourceSurface; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_eRenderFlag { + STATE_IGNORING_VIEWPORT_SCROLLING = 1, + STATE_DRAWWINDOW_NOT_FLUSHING = 2, +} +pub type nsIPresShell_RenderFlags = u8; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_ScrollDirection { + eHorizontal = 0, + eVertical = 1, + eEither = 2, +} +#[repr(u32)] +/** + * Tell the pres shell that a frame needs to be marked dirty and needs + * Reflow. It's OK if this is an ancestor of the frame needing reflow as + * long as the ancestor chain between them doesn't cross a reflow root. + * + * The bit to add should be NS_FRAME_IS_DIRTY, NS_FRAME_HAS_DIRTY_CHILDREN + * or nsFrameState(0); passing 0 means that dirty bits won't be set on the + * frame or its ancestors/descendants, but that intrinsic widths will still + * be marked dirty. Passing aIntrinsicDirty = eResize and aBitToAdd = 0 + * would result in no work being done, so don't do that. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_IntrinsicDirty { + eResize = 0, + eTreeChange = 1, + eStyleChange = 2, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_ReflowRootHandling { + ePositionOrSizeChange = 0, + eNoPositionOrSizeChange = 1, + eInferFromBitToAdd = 2, +} +pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_148842 = + nsIPresShell__bindgen_ty_bindgen_id_148842::SCROLL_TOP; +pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_148842 = + nsIPresShell__bindgen_ty_bindgen_id_148842::SCROLL_BOTTOM; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell__bindgen_ty_bindgen_id_148842 { + SCROLL_TOP = 0, + SCROLL_BOTTOM = 100, + SCROLL_CENTER = 50, + SCROLL_MINIMUM = -1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_WhenToScroll { + SCROLL_ALWAYS = 0, + SCROLL_IF_NOT_VISIBLE = 1, + SCROLL_IF_NOT_FULLY_VISIBLE = 2, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPresShell_ScrollAxis { + pub _bindgen_opaque_blob: u32, +} +#[test] +fn bindgen_test_layout_nsIPresShell_ScrollAxis() { + assert_eq!(::std::mem::size_of::<nsIPresShell_ScrollAxis>() , 4usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_ScrollAxis>() , 4usize); +} +impl Clone for nsIPresShell_ScrollAxis { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsIPresShell_PointerCaptureInfo { + pub mPendingContent: nsCOMPtr<nsIContent>, + pub mOverrideContent: nsCOMPtr<nsIContent>, + pub mPrimaryState: bool, +} +#[test] +fn bindgen_test_layout_nsIPresShell_PointerCaptureInfo() { + assert_eq!(::std::mem::size_of::<nsIPresShell_PointerCaptureInfo>() , + 24usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_PointerCaptureInfo>() , + 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPresShell_PointerInfo { + pub mActiveState: bool, + pub mPointerType: u16, + pub mPrimaryState: bool, +} +#[test] +fn bindgen_test_layout_nsIPresShell_PointerInfo() { + assert_eq!(::std::mem::size_of::<nsIPresShell_PointerInfo>() , 6usize); + assert_eq!(::std::mem::align_of::<nsIPresShell_PointerInfo>() , 2usize); +} +impl Clone for nsIPresShell_PointerInfo { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_PaintFlags { + PAINT_LAYERS = 1, + PAINT_COMPOSITE = 2, + PAINT_SYNC_DECODE_IMAGES = 4, +} +#[repr(u32)] +/** + * Ensures that the refresh driver is running, and schedules a view + * manager flush on the next tick. + * + * @param aType PAINT_DELAYED_COMPRESS : Schedule a paint to be executed after a delay, and + * put FrameLayerBuilder in 'compressed' mode that avoids short cut optimizations. + */ +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsIPresShell_PaintType { + PAINT_DEFAULT = 0, + PAINT_DELAYED_COMPRESS = 1, +} +extern "C" { + #[link_name = "_ZN12nsIPresShell12gCaptureInfoE"] + pub static mut nsIPresShell_gCaptureInfo: CapturingContentInfo; +} +extern "C" { + #[link_name = "_ZN12nsIPresShell19gPointerCaptureListE"] + pub static mut nsIPresShell_gPointerCaptureList: *mut [u64; 5usize]; +} +extern "C" { + #[link_name = "_ZN12nsIPresShell18gActivePointersIdsE"] + pub static mut nsIPresShell_gActivePointersIds: *mut (); +} +extern "C" { + #[link_name = "_ZN12nsIPresShell14gKeyDownTargetE"] + pub static mut nsIPresShell_gKeyDownTarget: *mut nsIContent; +} +#[test] +fn bindgen_test_layout_nsIPresShell() { + assert_eq!(::std::mem::size_of::<nsIPresShell>() , 344usize); + assert_eq!(::std::mem::align_of::<nsIPresShell>() , 8usize); +} +impl nsIPresShell { + #[inline] + pub fn mStylesHaveChanged(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u16)) >> + 0u32) as u8) + } + } + #[inline] + pub fn set_mStylesHaveChanged(&mut self, val: bool) { + self._bitfield_1 &= !(1usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 0u32) & (1usize as u16); + } + #[inline] + pub fn mDidInitialize(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u16)) >> + 1u32) as u8) + } + } + #[inline] + pub fn set_mDidInitialize(&mut self, val: bool) { + self._bitfield_1 &= !(2usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 1u32) & (2usize as u16); + } + #[inline] + pub fn mIsDestroying(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u16)) >> + 2u32) as u8) + } + } + #[inline] + pub fn set_mIsDestroying(&mut self, val: bool) { + self._bitfield_1 &= !(4usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 2u32) & (4usize as u16); + } + #[inline] + pub fn mIsZombie(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u16)) >> + 3u32) as u8) + } + } + #[inline] + pub fn set_mIsZombie(&mut self, val: bool) { + self._bitfield_1 &= !(8usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 3u32) & (8usize as u16); + } + #[inline] + pub fn mIsReflowing(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u16)) >> + 4u32) as u8) + } + } + #[inline] + pub fn set_mIsReflowing(&mut self, val: bool) { + self._bitfield_1 &= !(16usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 4u32) & (16usize as u16); + } + #[inline] + pub fn mPaintingSuppressed(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (32usize as u16)) >> + 5u32) as u8) + } + } + #[inline] + pub fn set_mPaintingSuppressed(&mut self, val: bool) { + self._bitfield_1 &= !(32usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 5u32) & (32usize as u16); + } + #[inline] + pub fn mIsThemeSupportDisabled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (64usize as u16)) >> + 6u32) as u8) + } + } + #[inline] + pub fn set_mIsThemeSupportDisabled(&mut self, val: bool) { + self._bitfield_1 &= !(64usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 6u32) & (64usize as u16); + } + #[inline] + pub fn mIsActive(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (128usize as u16)) >> + 7u32) as u8) + } + } + #[inline] + pub fn set_mIsActive(&mut self, val: bool) { + self._bitfield_1 &= !(128usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 7u32) & (128usize as u16); + } + #[inline] + pub fn mFrozen(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (256usize as u16)) >> + 8u32) as u8) + } + } + #[inline] + pub fn set_mFrozen(&mut self, val: bool) { + self._bitfield_1 &= !(256usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 8u32) & (256usize as u16); + } + #[inline] + pub fn mIsFirstPaint(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (512usize as u16)) >> + 9u32) as u8) + } + } + #[inline] + pub fn set_mIsFirstPaint(&mut self, val: bool) { + self._bitfield_1 &= !(512usize as u16); + self._bitfield_1 |= ((val as u8 as u16) << 9u32) & (512usize as u16); + } + #[inline] + pub fn mObservesMutationsForPrint(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1024usize as u16)) >> + 10u32) as u8) + } + } + #[inline] + pub fn set_mObservesMutationsForPrint(&mut self, val: bool) { + self._bitfield_1 &= !(1024usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 10u32) & (1024usize as u16); + } + #[inline] + pub fn mReflowScheduled(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2048usize as u16)) >> + 11u32) as u8) + } + } + #[inline] + pub fn set_mReflowScheduled(&mut self, val: bool) { + self._bitfield_1 &= !(2048usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 11u32) & (2048usize as u16); + } + #[inline] + pub fn mSuppressInterruptibleReflows(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4096usize as u16)) >> + 12u32) as u8) + } + } + #[inline] + pub fn set_mSuppressInterruptibleReflows(&mut self, val: bool) { + self._bitfield_1 &= !(4096usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 12u32) & (4096usize as u16); + } + #[inline] + pub fn mScrollPositionClampingScrollPortSizeSet(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8192usize as u16)) >> + 13u32) as u8) + } + } + #[inline] + pub fn set_mScrollPositionClampingScrollPortSizeSet(&mut self, + val: bool) { + self._bitfield_1 &= !(8192usize as u16); + self._bitfield_1 |= + ((val as u8 as u16) << 13u32) & (8192usize as u16); + } +} +/** + * A class that implements nsIWeakReference + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsNodeWeakReference { + pub _base: nsIWeakReference, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mNode: *mut nsINode, +} +pub type nsNodeWeakReference_HasThreadSafeRefCnt = FalseType; +#[test] +fn bindgen_test_layout_nsNodeWeakReference() { + assert_eq!(::std::mem::size_of::<nsNodeWeakReference>() , 32usize); + assert_eq!(::std::mem::align_of::<nsNodeWeakReference>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMMutationObserver { + pub _address: u8, +} +impl Clone for nsDOMMutationObserver { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ServoNodeData { + pub _address: u8, +} +impl Clone for ServoNodeData { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct BoxQuadOptions { + pub _address: u8, +} +impl Clone for BoxQuadOptions { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ConvertCoordinateOptions { + pub _address: u8, +} +impl Clone for ConvertCoordinateOptions { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMPoint { + pub _address: u8, +} +impl Clone for DOMPoint { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMQuad { + pub _address: u8, +} +impl Clone for DOMQuad { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct DOMRectReadOnly { + pub _base: nsISupports, + pub _base_1: nsWrapperCache, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mParent: nsCOMPtr<nsISupports>, +} +pub type DOMRectReadOnly_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMRectReadOnly_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, +} +#[test] +fn bindgen_test_layout_DOMRectReadOnly_cycleCollection() { + assert_eq!(::std::mem::size_of::<DOMRectReadOnly_cycleCollection>() , + 16usize); + assert_eq!(::std::mem::align_of::<DOMRectReadOnly_cycleCollection>() , + 8usize); +} +impl Clone for DOMRectReadOnly_cycleCollection { + fn clone(&self) -> Self { *self } +} +extern "C" { + #[link_name = "_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE"] + pub static mut DOMRectReadOnly__cycleCollectorGlobal: + DOMRectReadOnly_cycleCollection; +} +#[test] +fn bindgen_test_layout_DOMRectReadOnly() { + assert_eq!(::std::mem::size_of::<DOMRectReadOnly>() , 56usize); + assert_eq!(::std::mem::align_of::<DOMRectReadOnly>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct OwningNodeOrString { + pub mType: OwningNodeOrString_Type, + pub mValue: OwningNodeOrString_Value, +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsINode_h_unnamed_8 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum OwningNodeOrString_Type { + eUninitialized = 0, + eNode = 1, + eString = 2, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct OwningNodeOrString_Value { + pub mNode: __BindgenUnionField<UnionMember<OwningNonNull<nsINode>>>, + pub mString: __BindgenUnionField<UnionMember<nsString>>, + pub bindgen_union_field: [u64; 2usize], +} +#[test] +fn bindgen_test_layout_OwningNodeOrString_Value() { + assert_eq!(::std::mem::size_of::<OwningNodeOrString_Value>() , 16usize); + assert_eq!(::std::mem::align_of::<OwningNodeOrString_Value>() , 8usize); +} +impl Clone for OwningNodeOrString_Value { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_OwningNodeOrString() { + assert_eq!(::std::mem::size_of::<OwningNodeOrString>() , 24usize); + assert_eq!(::std::mem::align_of::<OwningNodeOrString>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct TextOrElementOrDocument { + pub _address: u8, +} +impl Clone for TextOrElementOrDocument { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DOMPointInit { + pub _address: u8, +} +impl Clone for DOMPointInit { + fn clone(&self) -> Self { *self } +} +pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_LISTENERMANAGER; +pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_PROPERTIES; +pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_ANONYMOUS_ROOT; +pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; +pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_NATIVE_ANONYMOUS_ROOT; +pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_FORCE_XBL_BINDINGS; +pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_MAY_BE_IN_BINDING_MNGR; +pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_EDITABLE; +pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_MAY_HAVE_CLASS; +pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_IN_SHADOW_TREE; +pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_EMPTY_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_SLOW_SELECTOR; +pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_EDGE_CHILD_SELECTOR; +pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_150829 + = + _bindgen_ty_bindgen_id_150829::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; +pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_ALL_SELECTOR_FLAGS; +pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_NEEDS_FRAME; +pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_DESCENDANTS_NEED_FRAMES; +pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_ACCESSKEY; +pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_DIRECTION_RTL; +pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_HAS_DIRECTION_LTR; +pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_ALL_DIRECTION_FLAGS; +pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_CHROME_ONLY_ACCESS; +pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; +pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_1; +pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_150829 + = + _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_2; +pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_150829 = + _bindgen_ty_bindgen_id_150829::NODE_TYPE_SPECIFIC_BITS_OFFSET; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum _bindgen_ty_bindgen_id_150829 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -2882,388 +6519,379 @@ pub enum nsINode_h_unnamed_8 { NODE_SHARED_RESTYLE_BIT_2 = 16777216, NODE_TYPE_SPECIFIC_BITS_OFFSET = 23, } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsContentList { + pub _address: u8, +} +impl Clone for nsContentList { + fn clone(&self) -> Self { *self } +} /** - * Class used to detect unexpected mutations. To use the class create an - * nsMutationGuard on the stack before unexpected mutations could occur. - * You can then at any time call Mutated to check if any unexpected mutations - * have occurred. + * The signature of the timer callback function passed to initWithFuncCallback. + * This is the function that will get called when the timer expires if the + * timer is initialized via initWithFuncCallback. + * + * @param aTimer the timer which has expired + * @param aClosure opaque parameter passed to initWithFuncCallback */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsMutationGuard { - pub mStartingGeneration: u64, +pub struct nsITimer { + pub _base: nsISupports, } -impl ::std::clone::Clone for nsMutationGuard { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsITimer_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsITimer__bindgen_ty_bindgen_id_167235 { + TYPE_ONE_SHOT = 0, + TYPE_REPEATING_SLACK = 1, + TYPE_REPEATING_PRECISE = 2, + TYPE_REPEATING_PRECISE_CAN_SKIP = 3, } #[test] -fn bindgen_test_layout_nsMutationGuard() { - assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize); - assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize); +fn bindgen_test_layout_nsITimer() { + assert_eq!(::std::mem::size_of::<nsITimer>() , 8usize); + assert_eq!(::std::mem::align_of::<nsITimer>() , 8usize); } -extern "C" { - #[link_name = "_ZN15nsMutationGuard11sGenerationE"] - pub static mut nsMutationGuard_consts_sGeneration: - ::std::os::raw::c_ulonglong; -} -pub type Float = f32; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SurfaceType { - DATA = 0, - D2D1_BITMAP = 1, - D2D1_DRAWTARGET = 2, - CAIRO = 3, - CAIRO_IMAGE = 4, - COREGRAPHICS_IMAGE = 5, - COREGRAPHICS_CGCONTEXT = 6, - SKIA = 7, - DUAL_DT = 8, - D2D1_1_IMAGE = 9, - RECORDING = 10, - TILED = 11, -} -pub const A8R8G8B8_UINT32: SurfaceFormat = SurfaceFormat::B8G8R8A8; -pub const X8R8G8B8_UINT32: SurfaceFormat = SurfaceFormat::B8G8R8X8; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SurfaceFormat { - B8G8R8A8 = 0, - B8G8R8X8 = 1, - R8G8B8A8 = 2, - R8G8B8X8 = 3, - A8R8G8B8 = 4, - X8R8G8B8 = 5, - R8G8B8 = 6, - B8G8R8 = 7, - R5G6B5_UINT16 = 8, - A8 = 9, - YUV = 10, - NV12 = 11, - YUV422 = 12, - HSV = 13, - Lab = 14, - Depth = 15, - UNKNOWN = 16, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FilterType { - BLEND = 0, - TRANSFORM = 1, - MORPHOLOGY = 2, - COLOR_MATRIX = 3, - FLOOD = 4, - TILE = 5, - TABLE_TRANSFER = 6, - DISCRETE_TRANSFER = 7, - LINEAR_TRANSFER = 8, - GAMMA_TRANSFER = 9, - CONVOLVE_MATRIX = 10, - DISPLACEMENT_MAP = 11, - TURBULENCE = 12, - ARITHMETIC_COMBINE = 13, - COMPOSITE = 14, - DIRECTIONAL_BLUR = 15, - GAUSSIAN_BLUR = 16, - POINT_DIFFUSE = 17, - POINT_SPECULAR = 18, - SPOT_DIFFUSE = 19, - SPOT_SPECULAR = 20, - DISTANT_DIFFUSE = 21, - DISTANT_SPECULAR = 22, - CROP = 23, - PREMULTIPLY = 24, - UNPREMULTIPLY = 25, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum DrawTargetType { - SOFTWARE_RASTER = 0, - HARDWARE_RASTER = 1, - VECTOR = 2, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum BackendType { - NONE = 0, - DIRECT2D = 1, - COREGRAPHICS = 2, - COREGRAPHICS_ACCELERATED = 3, - CAIRO = 4, - SKIA = 5, - RECORDING = 6, - DIRECT2D1_1 = 7, - BACKEND_LAST = 8, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontType { - DWRITE = 0, - GDI = 1, - MAC = 2, - SKIA = 3, - CAIRO = 4, - COREGRAPHICS = 5, - FONTCONFIG = 6, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum NativeSurfaceType { - D3D10_TEXTURE = 0, - CAIRO_CONTEXT = 1, - CGCONTEXT = 2, - CGCONTEXT_ACCELERATED = 3, - OPENGL_TEXTURE = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum NativeFontType { - DWRITE_FONT_FACE = 0, - GDI_FONT_FACE = 1, - MAC_FONT_FACE = 2, - SKIA_FONT_FACE = 3, - CAIRO_FONT_FACE = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontStyle { NORMAL = 0, ITALIC = 1, BOLD = 2, BOLD_ITALIC = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FontHinting { NONE = 0, LIGHT = 1, NORMAL = 2, FULL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum CompositionOp { - OP_OVER = 0, - OP_ADD = 1, - OP_ATOP = 2, - OP_OUT = 3, - OP_IN = 4, - OP_SOURCE = 5, - OP_DEST_IN = 6, - OP_DEST_OUT = 7, - OP_DEST_OVER = 8, - OP_DEST_ATOP = 9, - OP_XOR = 10, - OP_MULTIPLY = 11, - OP_SCREEN = 12, - OP_OVERLAY = 13, - OP_DARKEN = 14, - OP_LIGHTEN = 15, - OP_COLOR_DODGE = 16, - OP_COLOR_BURN = 17, - OP_HARD_LIGHT = 18, - OP_SOFT_LIGHT = 19, - OP_DIFFERENCE = 20, - OP_EXCLUSION = 21, - OP_HUE = 22, - OP_SATURATION = 23, - OP_COLOR = 24, - OP_LUMINOSITY = 25, - OP_COUNT = 26, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum Axis { X_AXIS = 0, Y_AXIS = 1, BOTH = 2, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum ExtendMode { - CLAMP = 0, - REPEAT = 1, - REPEAT_X = 2, - REPEAT_Y = 3, - REFLECT = 4, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum FillRule { FILL_WINDING = 0, FILL_EVEN_ODD = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum AntialiasMode { NONE = 0, GRAY = 1, SUBPIXEL = 2, DEFAULT = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SamplingFilter { GOOD = 0, LINEAR = 1, POINT = 2, SENTINEL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum PatternType { - COLOR = 0, - SURFACE = 1, - LINEAR_GRADIENT = 2, - RADIAL_GRADIENT = 3, -} -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum JoinStyle { BEVEL = 0, ROUND = 1, MITER = 2, MITER_OR_BEVEL = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum CapStyle { BUTT = 0, ROUND = 1, SQUARE = 2, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SamplingBounds { UNBOUNDED = 0, BOUNDED = 1, } -#[repr(C)] -#[derive(Debug, Copy)] -pub struct Color { - pub r: Float, - pub g: Float, - pub b: Float, - pub a: Float, -} -impl ::std::clone::Clone for Color { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_Color() { - assert_eq!(::std::mem::size_of::<Color>() , 16usize); - assert_eq!(::std::mem::align_of::<Color>() , 4usize); -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct GradientStop { - pub offset: Float, - pub color: Color, -} -impl ::std::clone::Clone for GradientStop { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_GradientStop() { - assert_eq!(::std::mem::size_of::<GradientStop>() , 20usize); - assert_eq!(::std::mem::align_of::<GradientStop>() , 4usize); +impl Clone for nsITimer { + fn clone(&self) -> Self { *self } } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum JobStatus { Complete = 0, Wait = 1, Yield = 2, Error = 3, } -pub type gfxImageFormat = SurfaceFormat; +/** + * Data used to track the expiration state of an object. We promise that this + * is 32 bits so that objects that includes this as a field can pad and align + * efficiently. + */ #[repr(C)] #[derive(Debug, Copy)] -pub struct RectCorner; +pub struct nsExpirationState { + pub _bitfield_1: u32, +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum RectCorner_Types_h_unnamed_11 { - TopLeft = 0, - TopRight = 1, - BottomRight = 2, - BottomLeft = 3, - Count = 4, +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsExpirationState__bindgen_ty_bindgen_id_167711 { + NOT_TRACKED = 15, + MAX_INDEX_IN_GENERATION = 268435455, +} +#[test] +fn bindgen_test_layout_nsExpirationState() { + assert_eq!(::std::mem::size_of::<nsExpirationState>() , 4usize); + assert_eq!(::std::mem::align_of::<nsExpirationState>() , 4usize); } -impl ::std::clone::Clone for RectCorner { +impl Clone for nsExpirationState { fn clone(&self) -> Self { *self } } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum Side { - eSideTop = 0, - eSideRight = 1, - eSideBottom = 2, - eSideLeft = 3, +impl nsExpirationState { + #[inline] + pub fn mGeneration(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (15usize as u32)) >> + 0u32) as u32) + } + } + #[inline] + pub fn set_mGeneration(&mut self, val: u32) { + self._bitfield_1 &= !(15usize as u32); + self._bitfield_1 |= ((val as u32 as u32) << 0u32) & (15usize as u32); + } + #[inline] + pub fn mIndexInGeneration(&self) -> u32 { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & + (4294967280usize as u32)) >> 4u32) as + u32) + } + } + #[inline] + pub fn set_mIndexInGeneration(&mut self, val: u32) { + self._bitfield_1 &= !(4294967280usize as u32); + self._bitfield_1 |= + ((val as u32 as u32) << 4u32) & (4294967280usize as u32); + } } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SideBits { - eSideBitsNone = 0, - eSideBitsTop = 1, - eSideBitsRight = 2, - eSideBitsBottom = 4, - eSideBitsLeft = 8, - eSideBitsTopBottom = 5, - eSideBitsLeftRight = 10, - eSideBitsAll = 15, +#[repr(C)] +#[derive(Debug, Copy)] +pub struct PRCListStr { + pub next: *mut PRCList, + pub prev: *mut PRCList, +} +#[test] +fn bindgen_test_layout_PRCListStr() { + assert_eq!(::std::mem::size_of::<PRCListStr>() , 16usize); + assert_eq!(::std::mem::align_of::<PRCListStr>() , 8usize); +} +impl Clone for PRCListStr { + fn clone(&self) -> Self { *self } +} +pub type PRCList = PRCListStr; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UnionMember<T> { + pub mStorage: AlignedStorage2<T>, } -pub type nscoord = i32; #[repr(C)] -pub struct nsIntPoint { - pub _bindgen_opaque_blob: [u32; 2usize], +#[derive(Debug, Copy)] +pub struct imgIRequest { + pub _base: nsIRequest, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imgIRequest_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum imgIRequest__bindgen_ty_bindgen_id_169133 { + STATUS_NONE = 0, + STATUS_SIZE_AVAILABLE = 1, + STATUS_LOAD_COMPLETE = 2, + STATUS_ERROR = 4, + STATUS_FRAME_COMPLETE = 8, + STATUS_DECODE_COMPLETE = 16, + STATUS_IS_ANIMATED = 32, + STATUS_HAS_TRANSPARENCY = 64, } #[test] -fn bindgen_test_layout_nsIntPoint() { - assert_eq!(::std::mem::size_of::<nsIntPoint>() , 8usize); - assert_eq!(::std::mem::align_of::<nsIntPoint>() , 4usize); +fn bindgen_test_layout_imgIRequest() { + assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize); + assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize); +} +impl Clone for imgIRequest { + fn clone(&self) -> Self { *self } } -/** - * These *_Simple types are used to map Gecko types to layout-equivalent but - * simpler Rust types, to aid Rust binding generation. - * - * If something in this types or the assertions below needs to change, ask - * bholley, heycam or emilio before! - * - * <div rustbindgen="true" replaces="nsPoint"> - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsPoint { - pub x: nscoord, - pub y: nscoord, +pub struct nsHTMLCSSStyleSheet { + pub _address: u8, } -impl ::std::clone::Clone for nsPoint { +impl Clone for nsHTMLCSSStyleSheet { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsPoint() { - assert_eq!(::std::mem::size_of::<nsPoint>() , 8usize); - assert_eq!(::std::mem::align_of::<nsPoint>() , 4usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsHTMLStyleSheet { + pub _address: u8, +} +impl Clone for nsHTMLStyleSheet { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIBFCacheEntry { + pub _address: u8, +} +impl Clone for nsIBFCacheEntry { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIDocumentEncoder { + pub _address: u8, +} +impl Clone for nsIDocumentEncoder { + fn clone(&self) -> Self { *self } } /** - * <div rustbindgen="true" replaces="nsMargin"> + * An internal interface */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsMargin { - pub top: nscoord, - pub right: nscoord, - pub bottom: nscoord, - pub left: nscoord, +pub struct nsIHTMLCollection { + pub _base: nsIDOMHTMLCollection, } -impl ::std::clone::Clone for nsMargin { - fn clone(&self) -> Self { *self } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIHTMLCollection_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsMargin() { - assert_eq!(::std::mem::size_of::<nsMargin>() , 16usize); - assert_eq!(::std::mem::align_of::<nsMargin>() , 4usize); +fn bindgen_test_layout_nsIHTMLCollection() { + assert_eq!(::std::mem::size_of::<nsIHTMLCollection>() , 8usize); + assert_eq!(::std::mem::align_of::<nsIHTMLCollection>() , 8usize); +} +impl Clone for nsIHTMLCollection { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIObjectLoadingContent { + pub _address: u8, +} +impl Clone for nsIObjectLoadingContent { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIStructuredCloneContainer { + pub _address: u8, +} +impl Clone for nsIStructuredCloneContainer { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsViewManager { + pub _address: u8, +} +impl Clone for nsViewManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsSMILAnimationController { + pub _address: u8, +} +impl Clone for nsSMILAnimationController { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct SVGAttrAnimationRuleProcessor { + pub _address: u8, +} +impl Clone for SVGAttrAnimationRuleProcessor { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Loader { + pub _address: u8, +} +impl Clone for Loader { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ImageLoader { + pub _address: u8, +} +impl Clone for ImageLoader { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Animation { + pub _address: u8, +} +impl Clone for Animation { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct AnonymousContent { + pub _address: u8, +} +impl Clone for AnonymousContent { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct Attr { + pub _base: nsIAttribute, + pub _base_1: nsIDOMAttr, + pub mRefCnt: nsCycleCollectingAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mValue: nsString, } +pub type Attr_HasThreadSafeRefCnt = FalseType; #[repr(C)] -pub struct nsIntMargin { - pub _bindgen_opaque_blob: [u32; 4usize], +#[derive(Debug, Copy)] +pub struct Attr_cycleCollection { + pub _base: nsXPCOMCycleCollectionParticipant, } #[test] -fn bindgen_test_layout_nsIntMargin() { - assert_eq!(::std::mem::size_of::<nsIntMargin>() , 16usize); - assert_eq!(::std::mem::align_of::<nsIntMargin>() , 4usize); +fn bindgen_test_layout_Attr_cycleCollection() { + assert_eq!(::std::mem::size_of::<Attr_cycleCollection>() , 16usize); + assert_eq!(::std::mem::align_of::<Attr_cycleCollection>() , 8usize); +} +impl Clone for Attr_cycleCollection { + fn clone(&self) -> Self { *self } +} +extern "C" { + #[link_name = "_ZN7mozilla3dom4Attr21_cycleCollectorGlobalE"] + pub static mut Attr__cycleCollectorGlobal: Attr_cycleCollection; +} +extern "C" { + #[link_name = "_ZN7mozilla3dom4Attr12sInitializedE"] + pub static mut Attr_sInitialized: bool; +} +#[test] +fn bindgen_test_layout_Attr() { + assert_eq!(::std::mem::size_of::<Attr>() , 152usize); + assert_eq!(::std::mem::align_of::<Attr>() , 8usize); } #[repr(C)] -pub struct nsIntRect { - pub _bindgen_opaque_blob: [u32; 4usize], +#[derive(Debug)] +pub struct nsIAttribute { + pub _base: nsINode, + pub mAttrMap: RefPtr<nsDOMAttributeMap>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsIAttribute_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsIntRect() { - assert_eq!(::std::mem::size_of::<nsIntRect>() , 16usize); - assert_eq!(::std::mem::align_of::<nsIntRect>() , 4usize); +fn bindgen_test_layout_nsIAttribute() { + assert_eq!(::std::mem::size_of::<nsIAttribute>() , 112usize); + assert_eq!(::std::mem::align_of::<nsIAttribute>() , 8usize); } -/** - * <div rustbindgen="true" replaces="nsRect"> - */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsRect { - pub x: nscoord, - pub y: nscoord, - pub width: nscoord, - pub height: nscoord, +pub struct FontFaceSet { + pub _address: u8, } -impl ::std::clone::Clone for nsRect { +impl Clone for FontFaceSet { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct FrameRequestCallback { + pub _base: CallbackFunction, +} #[test] -fn bindgen_test_layout_nsRect() { - assert_eq!(::std::mem::size_of::<nsRect>() , 16usize); - assert_eq!(::std::mem::align_of::<nsRect>() , 4usize); +fn bindgen_test_layout_FrameRequestCallback() { + assert_eq!(::std::mem::size_of::<FrameRequestCallback>() , 56usize); + assert_eq!(::std::mem::align_of::<FrameRequestCallback>() , 8usize); } -pub enum AnimationEffectReadOnly { } -pub enum AnimationEffectReadOnlyAtoms { } -pub enum AnimationEffectTimingPropertiesAtoms { } -pub enum ComputedTimingPropertiesAtoms { } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FullscreenRequest { + pub _address: u8, +} +impl Clone for FullscreenRequest { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct UndoManager { + pub _address: u8, +} +impl Clone for UndoManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct XPathEvaluator { + pub _address: u8, +} +impl Clone for XPathEvaluator { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum FillMode { None = 0, Forwards = 1, @@ -3272,8 +6900,8 @@ pub enum FillMode { Auto = 4, EndGuard_ = 5, } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum PlaybackDirection { Normal = 0, Reverse = 1, @@ -3281,7 +6909,6 @@ pub enum PlaybackDirection { Alternate_reverse = 3, EndGuard_ = 4, } -pub type NativeType = AnimationEffectReadOnly; #[repr(C)] #[derive(Debug)] pub struct nsAttrName { @@ -3292,199 +6919,55 @@ fn bindgen_test_layout_nsAttrName() { assert_eq!(::std::mem::size_of::<nsAttrName>() , 8usize); assert_eq!(::std::mem::align_of::<nsAttrName>() , 8usize); } -pub type nscolor = u32; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsHexColorType { NoAlpha = 0, AllowAlpha = 1, } -pub enum nsStyledElement { } -pub enum MiscContainer { } -pub enum ServoDeclarationBlock { } -pub enum Declaration { } -/** - * A class used to construct a nsString from a nsStringBuffer (we might - * want to move this to nsString at some point). - * - * WARNING: Note that nsCheapString doesn't take an explicit length -- it - * assumes the string is maximally large, given the nsStringBuffer's storage - * size. This means the given string buffer *must* be sized exactly correctly - * for the string it contains (including one byte for a null terminator). If - * it has any unused storage space, then that will result in bogus characters - * at the end of our nsCheapString. - */ #[repr(C)] -#[derive(Debug)] -pub struct nsCheapString { - pub _base: nsString, +#[derive(Debug, Copy)] +pub struct Declaration { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsCheapString() { - assert_eq!(::std::mem::size_of::<nsCheapString>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCheapString>() , 8usize); +impl Clone for Declaration { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct nsAttrValue { - pub mBits: usize, -} -pub const eSVGTypesBegin: nsAttrValue_ValueType = - nsAttrValue_ValueType::eSVGAngle; -pub const eSVGTypesEnd: nsAttrValue_ValueType = - nsAttrValue_ValueType::eSVGViewBox; -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAttrValue_ValueType { - eString = 0, - eAtom = 2, - eInteger = 3, - eColor = 7, - eEnum = 11, - ePercent = 15, - eGeckoCSSDeclaration = 16, - eServoCSSDeclaration = 17, - eURL = 18, - eImage = 19, - eAtomArray = 20, - eDoubleValue = 21, - eIntMarginValue = 22, - eSVGAngle = 23, - eSVGIntegerPair = 24, - eSVGLength = 25, - eSVGLengthList = 26, - eSVGNumberList = 27, - eSVGNumberPair = 28, - eSVGPathData = 29, - eSVGPointList = 30, - eSVGPreserveAspectRatio = 31, - eSVGStringList = 32, - eSVGTransformList = 33, - eSVGViewBox = 34, -} -/** - * Structure for a mapping from int (enum) values to strings. When you use - * it you generally create an array of them. - * Instantiate like this: - * EnumTable myTable[] = { - * { "string1", 1 }, - * { "string2", 2 }, - * { nullptr, 0 } - * } - */ -#[repr(C)] -#[derive(Debug, Copy)] -pub struct nsAttrValue_EnumTable { - /** The string the value maps to */ - pub tag: *const ::std::os::raw::c_char, - /** The enum value that maps to this string */ - pub value: i16, -} -impl ::std::clone::Clone for nsAttrValue_EnumTable { - fn clone(&self) -> Self { *self } +pub struct URLValue { + pub _base: URLValueData, + pub mRefCnt: ThreadSafeAutoRefCnt, } +pub type URLValue_HasThreadSafeRefCnt = TrueType; #[test] -fn bindgen_test_layout_nsAttrValue_EnumTable() { - assert_eq!(::std::mem::size_of::<nsAttrValue_EnumTable>() , 16usize); - assert_eq!(::std::mem::align_of::<nsAttrValue_EnumTable>() , 8usize); +fn bindgen_test_layout_URLValue() { + assert_eq!(::std::mem::size_of::<URLValue>() , 56usize); + assert_eq!(::std::mem::align_of::<URLValue>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsAttrValue_ValueBaseType { - eStringBase = 0, - eOtherBase = 1, - eAtomBase = 2, - eIntegerBase = 3, +#[repr(C)] +#[derive(Debug)] +pub struct URLValueData { + pub mURI: nsMainThreadPtrHandle<nsIURI>, + pub mBaseURI: nsMainThreadPtrHandle<nsIURI>, + pub mString: RefPtr<nsStringBuffer>, + pub mReferrer: nsMainThreadPtrHandle<nsIURI>, + pub mOriginPrincipal: nsMainThreadPtrHandle<nsIPrincipal>, + pub mURIResolved: bool, + pub mLocalURLFlag: bool, } #[test] -fn bindgen_test_layout_nsAttrValue() { - assert_eq!(::std::mem::size_of::<nsAttrValue>() , 8usize); - assert_eq!(::std::mem::align_of::<nsAttrValue>() , 8usize); -} -extern "C" { - #[link_name = "_ZN11nsAttrValue15sEnumTableArrayE"] - pub static mut nsAttrValue_consts_sEnumTableArray: - nsTArray<*const nsAttrValue_EnumTable>; -} -pub enum nsCSSSelector { } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsChangeHint { - nsChangeHint_RepaintFrame = 1, - nsChangeHint_NeedReflow = 2, - nsChangeHint_ClearAncestorIntrinsics = 4, - nsChangeHint_ClearDescendantIntrinsics = 8, - nsChangeHint_NeedDirtyReflow = 16, - nsChangeHint_SyncFrameView = 32, - nsChangeHint_UpdateCursor = 64, - nsChangeHint_UpdateEffects = 128, - nsChangeHint_UpdateOpacityLayer = 256, - nsChangeHint_UpdateTransformLayer = 512, - nsChangeHint_ReconstructFrame = 1024, - nsChangeHint_UpdateOverflow = 2048, - nsChangeHint_UpdateSubtreeOverflow = 4096, - nsChangeHint_UpdatePostTransformOverflow = 8192, - nsChangeHint_UpdateParentOverflow = 16384, - nsChangeHint_ChildrenOnlyTransform = 32768, - nsChangeHint_RecomputePosition = 65536, - nsChangeHint_UpdateContainingBlock = 131072, - nsChangeHint_BorderStyleNoneChange = 262144, - nsChangeHint_UpdateTextPath = 524288, - nsChangeHint_SchedulePaint = 1048576, - nsChangeHint_NeutralChange = 2097152, - nsChangeHint_InvalidateRenderingObservers = 4194304, - nsChangeHint_ReflowChangesSizeOrPosition = 8388608, - nsChangeHint_UpdateComputedBSize = 16777216, - nsChangeHint_UpdateUsesOpacity = 33554432, - nsChangeHint_UpdateBackgroundPosition = 67108864, - nsChangeHint_AllHints = 134217727, -} -pub type nsChangeHint_size_t = ::std::os::raw::c_int; -/** - * |nsRestyleHint| is a bitfield for the result of - * |HasStateDependentStyle| and |HasAttributeDependentStyle|. When no - * restyling is necessary, use |nsRestyleHint(0)|. - * - * Without eRestyle_Force or eRestyle_ForceDescendants, the restyling process - * can stop processing at a frame when it detects no style changes and it is - * known that the styles of the subtree beneath it will not change, leaving - * the old style context on the frame. eRestyle_Force can be used to skip this - * optimization on a frame, and to force its new style context to be used. - * - * Similarly, eRestyle_ForceDescendants will cause the frame and all of its - * descendants to be traversed and for the new style contexts that are created - * to be set on the frames. - * - * NOTE: When adding new restyle hints, please also add them to - * RestyleManager::RestyleHintToString. - */ -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsRestyleHint { - eRestyle_Self = 1, - eRestyle_SomeDescendants = 2, - eRestyle_Subtree = 4, - eRestyle_LaterSiblings = 8, - eRestyle_CSSTransitions = 16, - eRestyle_CSSAnimations = 32, - eRestyle_SVGAttrAnimations = 64, - eRestyle_StyleAttribute = 128, - eRestyle_StyleAttribute_Animations = 256, - eRestyle_Force = 512, - eRestyle_ForceDescendants = 1024, - eRestyle_AllHintsWithAnimations = 368, +fn bindgen_test_layout_URLValueData() { + assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize); + assert_eq!(::std::mem::align_of::<URLValueData>() , 8usize); } -pub type nsRestyleHint_size_t = ::std::os::raw::c_int; -/** - * Additional data used in conjunction with an nsRestyleHint to control the - * restyle process. - */ #[repr(C)] #[derive(Debug)] -pub struct RestyleHintData { - pub mSelectorsForDescendants: nsTArray<*mut nsCSSSelector>, +pub struct ImageValue { + pub _base: URLValueData, + pub mRequests: [u64; 5usize], + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type ImageValue_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_RestyleHintData() { - assert_eq!(::std::mem::size_of::<RestyleHintData>() , 8usize); - assert_eq!(::std::mem::align_of::<RestyleHintData>() , 8usize); +fn bindgen_test_layout_ImageValue() { + assert_eq!(::std::mem::size_of::<ImageValue>() , 104usize); + assert_eq!(::std::mem::align_of::<ImageValue>() , 8usize); } /** * A structure representing a single attribute name and value. @@ -3502,12 +6985,12 @@ fn bindgen_test_layout_ServoAttrSnapshot() { assert_eq!(::std::mem::size_of::<ServoAttrSnapshot>() , 16usize); assert_eq!(::std::mem::align_of::<ServoAttrSnapshot>() , 8usize); } +#[repr(u8)] /** * A bitflags enum class used to determine what data does a ServoElementSnapshot * contains. */ -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum ServoElementSnapshotFlags { State = 1, Attributes = 2, All = 3, } /** * This class holds all non-tree-structural state of an element that might be @@ -3519,268 +7002,304 @@ pub enum ServoElementSnapshotFlags { State = 1, Attributes = 2, All = 3, } #[repr(C)] #[derive(Debug)] pub struct ServoElementSnapshot { - pub mContains: ServoElementSnapshotFlags, + pub mContains: ServoElementSnapshot_Flags, pub mAttrs: nsTArray<ServoAttrSnapshot>, - pub mState: ::std::os::raw::c_uchar, + pub mState: ServoElementSnapshot_ServoStateType, pub mExplicitRestyleHint: nsRestyleHint, pub mExplicitChangeHint: nsChangeHint, pub mIsHTMLElementInHTMLDocument: bool, pub mIsInChromeDocument: bool, } +pub type ServoElementSnapshot_BorrowedAttrInfo = BorrowedAttrInfo; +pub type ServoElementSnapshot_Element = Element; +pub type ServoElementSnapshot_ServoStateType = EventStates_ServoType; +pub type ServoElementSnapshot_Flags = ServoElementSnapshotFlags; #[test] fn bindgen_test_layout_ServoElementSnapshot() { assert_eq!(::std::mem::size_of::<ServoElementSnapshot>() , 32usize); assert_eq!(::std::mem::align_of::<ServoElementSnapshot>() , 8usize); } -pub enum ErrorReporter { } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSTokenType { - eCSSToken_Whitespace = 0, - eCSSToken_Comment = 1, - eCSSToken_Ident = 2, - eCSSToken_Function = 3, - eCSSToken_AtKeyword = 4, - eCSSToken_ID = 5, - eCSSToken_Hash = 6, - eCSSToken_Number = 7, - eCSSToken_Dimension = 8, - eCSSToken_Percentage = 9, - eCSSToken_String = 10, - eCSSToken_Bad_String = 11, - eCSSToken_URL = 12, - eCSSToken_Bad_URL = 13, - eCSSToken_Symbol = 14, - eCSSToken_Includes = 15, - eCSSToken_Dashmatch = 16, - eCSSToken_Beginsmatch = 17, - eCSSToken_Endsmatch = 18, - eCSSToken_Containsmatch = 19, - eCSSToken_URange = 20, - eCSSToken_HTMLComment = 21, +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsMappedAttributes { + pub _address: u8, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSTokenSerializationType { - eCSSTokenSerialization_Nothing = 0, - eCSSTokenSerialization_Whitespace = 1, - eCSSTokenSerialization_AtKeyword_or_Hash = 2, - eCSSTokenSerialization_Number = 3, - eCSSTokenSerialization_Dimension = 4, - eCSSTokenSerialization_Percentage = 5, - eCSSTokenSerialization_URange = 6, - eCSSTokenSerialization_URL_or_BadURL = 7, - eCSSTokenSerialization_Function = 8, - eCSSTokenSerialization_Ident = 9, - eCSSTokenSerialization_CDC = 10, - eCSSTokenSerialization_DashMatch = 11, - eCSSTokenSerialization_ContainsMatch = 12, - eCSSTokenSerialization_Symbol_Hash = 13, - eCSSTokenSerialization_Symbol_At = 14, - eCSSTokenSerialization_Symbol_Dot_or_Plus = 15, - eCSSTokenSerialization_Symbol_Minus = 16, - eCSSTokenSerialization_Symbol_OpenParen = 17, - eCSSTokenSerialization_Symbol_Question = 18, - eCSSTokenSerialization_Symbol_Assorted = 19, - eCSSTokenSerialization_Symbol_Equals = 20, - eCSSTokenSerialization_Symbol_Bar = 21, - eCSSTokenSerialization_Symbol_Slash = 22, - eCSSTokenSerialization_Symbol_Asterisk = 23, - eCSSTokenSerialization_Other = 24, +impl Clone for nsMappedAttributes { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct nsCSSToken { - pub mIdent: nsAutoString, - pub mNumber: f32, - pub mInteger: i32, - pub mInteger2: i32, - pub mType: nsCSSTokenType, - pub mSymbol: ::std::os::raw::c_ushort, - pub mIntegerValid: bool, - pub mHasSign: bool, +#[derive(Debug, Copy)] +pub struct nsXBLBinding { + pub _address: u8, +} +impl Clone for nsXBLBinding { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct ShadowRoot { + pub _address: u8, +} +impl Clone for ShadowRoot { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct CustomElementData { + pub _address: u8, +} +impl Clone for CustomElementData { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct IMEState { + pub _address: u8, +} +impl Clone for IMEState { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMTokenList { + pub _address: u8, +} +impl Clone for nsDOMTokenList { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDOMStringMap { + pub _address: u8, +} +impl Clone for nsDOMStringMap { + fn clone(&self) -> Self { *self } +} +/** + * Interface used for handling clicks on links + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsILinkHandler { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILinkHandler_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, } #[test] -fn bindgen_test_layout_nsCSSToken() { - assert_eq!(::std::mem::size_of::<nsCSSToken>() , 184usize); - assert_eq!(::std::mem::align_of::<nsCSSToken>() , 8usize); +fn bindgen_test_layout_nsILinkHandler() { + assert_eq!(::std::mem::size_of::<nsILinkHandler>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILinkHandler>() , 8usize); +} +impl Clone for nsILinkHandler { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSScannerPosition { - pub mOffset: u32, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mTokenLineNumber: u32, - pub mTokenLineOffset: u32, - pub mTokenOffset: u32, - pub mInitialized: bool, +pub struct nsStyleContext { + pub _address: u8, } -impl ::std::clone::Clone for nsCSSScannerPosition { +impl Clone for nsStyleContext { fn clone(&self) -> Self { *self } } +#[repr(C)] +#[derive(Debug)] +pub struct nsFrameManagerBase { + pub mPresShell: *mut nsIPresShell, + pub mRootFrame: *mut nsIFrame, + pub mPlaceholderMap: PLDHashTable, + pub mUndisplayedMap: *mut nsFrameManagerBase_UndisplayedMap, + pub mDisplayContentsMap: *mut nsFrameManagerBase_UndisplayedMap, + pub mIsDestroyingFrames: bool, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsFrameManagerBase_UndisplayedMap { + pub _address: u8, +} +impl Clone for nsFrameManagerBase_UndisplayedMap { + fn clone(&self) -> Self { *self } +} +extern "C" { + #[link_name = "_ZN18nsFrameManagerBase23sGlobalGenerationNumberE"] + pub static mut nsFrameManagerBase_sGlobalGenerationNumber: u32; +} #[test] -fn bindgen_test_layout_nsCSSScannerPosition() { - assert_eq!(::std::mem::size_of::<nsCSSScannerPosition>() , 28usize); - assert_eq!(::std::mem::align_of::<nsCSSScannerPosition>() , 4usize); +fn bindgen_test_layout_nsFrameManagerBase() { + assert_eq!(::std::mem::size_of::<nsFrameManagerBase>() , 80usize); + assert_eq!(::std::mem::align_of::<nsFrameManagerBase>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSScannerExclude { - eCSSScannerExclude_None = 0, - eCSSScannerExclude_Comments = 1, - eCSSScannerExclude_WhitespaceAndComments = 2, +#[repr(C)] +#[derive(Debug)] +pub struct nsPresArena { + pub mFreeLists: [u64; 5usize], + pub mPool: [u64; 7usize], + pub mArenaRefPtrs: [u64; 5usize], } #[repr(C)] #[derive(Debug)] -pub struct nsCSSScanner { - pub mBuffer: *const ::std::os::raw::c_ushort, - pub mOffset: u32, - pub mCount: u32, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mTokenLineNumber: u32, - pub mTokenLineOffset: u32, - pub mTokenOffset: u32, - pub mRecordStartOffset: u32, - pub mEOFCharacters: nsCSSScanner_EOFCharacters, - pub mReporter: *mut ErrorReporter, - pub mSVGMode: bool, - pub mRecording: bool, - pub mSeenBadToken: bool, - pub mSeenVariableReference: bool, +pub struct nsPresArena_FreeList { + pub _base: PLDHashEntryHdr, + pub mEntries: nsTArray<*mut ::std::os::raw::c_void>, + pub mEntrySize: usize, + pub mEntriesEverAllocated: usize, + pub mKey: nsPresArena_FreeList_KeyTypePointer, } +pub type nsPresArena_FreeList_KeyType = u32; +pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void; #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSScanner_EOFCharacters { - eEOFCharacters_None = 0, - eEOFCharacters_DropBackslash = 1, - eEOFCharacters_ReplacementChar = 2, - eEOFCharacters_Asterisk = 4, - eEOFCharacters_Slash = 8, - eEOFCharacters_DoubleQuote = 16, - eEOFCharacters_SingleQuote = 32, - eEOFCharacters_CloseParen = 64, +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_189570 { + ALLOW_MEMMOVE = 0, +} +#[test] +fn bindgen_test_layout_nsPresArena_FreeList() { + assert_eq!(::std::mem::size_of::<nsPresArena_FreeList>() , 40usize); + assert_eq!(::std::mem::align_of::<nsPresArena_FreeList>() , 8usize); } #[test] -fn bindgen_test_layout_nsCSSScanner() { - assert_eq!(::std::mem::size_of::<nsCSSScanner>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSScanner>() , 8usize); +fn bindgen_test_layout_nsPresArena() { + assert_eq!(::std::mem::size_of::<nsPresArena>() , 136usize); + assert_eq!(::std::mem::align_of::<nsPresArena>() , 8usize); } #[repr(C)] -pub struct nsCSSGridTemplateAreaToken { - pub mName: nsAutoString, - pub isTrash: bool, +#[derive(Debug, Copy)] +pub struct imgINotificationObserver { + pub _base: nsISupports, } -#[test] -fn bindgen_test_layout_nsCSSGridTemplateAreaToken() { - assert_eq!(::std::mem::size_of::<nsCSSGridTemplateAreaToken>() , - 168usize); - assert_eq!(::std::mem::align_of::<nsCSSGridTemplateAreaToken>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct imgINotificationObserver_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum imgINotificationObserver__bindgen_ty_bindgen_id_189717 { + SIZE_AVAILABLE = 1, + FRAME_UPDATE = 2, + FRAME_COMPLETE = 3, + LOAD_COMPLETE = 4, + DECODE_COMPLETE = 5, + DISCARD = 6, + UNLOCKED_DRAW = 7, + IS_ANIMATED = 8, + HAS_TRANSPARENCY = 9, +} +#[test] +fn bindgen_test_layout_imgINotificationObserver() { + assert_eq!(::std::mem::size_of::<imgINotificationObserver>() , 8usize); + assert_eq!(::std::mem::align_of::<imgINotificationObserver>() , 8usize); +} +impl Clone for imgINotificationObserver { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSGridTemplateAreaScanner { - pub mBuffer: *const ::std::os::raw::c_ushort, - pub mOffset: u32, - pub mCount: u32, +pub struct nsFrameSelection { + pub _address: u8, } -impl ::std::clone::Clone for nsCSSGridTemplateAreaScanner { +impl Clone for nsFrameSelection { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsCSSGridTemplateAreaScanner() { - assert_eq!(::std::mem::size_of::<nsCSSGridTemplateAreaScanner>() , - 16usize); - assert_eq!(::std::mem::align_of::<nsCSSGridTemplateAreaScanner>() , - 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsCSSFrameConstructor { + pub _address: u8, +} +impl Clone for nsCSSFrameConstructor { + fn clone(&self) -> Self { *self } } -pub enum CSSVariableResolver { } #[repr(C)] -pub struct CSSVariableValues { - pub mVariableIDs: [u64; 5usize], - /** - * Array of variables, indexed by variable ID. - */ - pub mVariables: nsTArray<CSSVariableValues_Variable>, +#[derive(Debug, Copy)] +pub struct nsWeakFrame { + pub _address: u8, +} +impl Clone for nsWeakFrame { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] -pub struct CSSVariableValues_Variable { - pub mVariableName: nsString, - pub mValue: nsString, - pub mFirstToken: nsCSSTokenSerializationType, - pub mLastToken: nsCSSTokenSerializationType, +pub struct ScrollbarStyles { + pub mHorizontal: u8, + pub mVertical: u8, + pub mScrollBehavior: u8, + pub mScrollSnapTypeX: u8, + pub mScrollSnapTypeY: u8, + pub mScrollSnapPointsX: nsStyleCoord, + pub mScrollSnapPointsY: nsStyleCoord, + pub mScrollSnapDestinationX: nsStyleCoord_CalcValue, + pub mScrollSnapDestinationY: nsStyleCoord_CalcValue, } #[test] -fn bindgen_test_layout_CSSVariableValues_Variable() { - assert_eq!(::std::mem::size_of::<CSSVariableValues_Variable>() , 40usize); - assert_eq!(::std::mem::align_of::<CSSVariableValues_Variable>() , 8usize); +fn bindgen_test_layout_ScrollbarStyles() { + assert_eq!(::std::mem::size_of::<ScrollbarStyles>() , 64usize); + assert_eq!(::std::mem::align_of::<ScrollbarStyles>() , 8usize); } -#[test] -fn bindgen_test_layout_CSSVariableValues() { - assert_eq!(::std::mem::size_of::<CSSVariableValues>() , 48usize); - assert_eq!(::std::mem::align_of::<CSSVariableValues>() , 8usize); +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsRefreshDriver { + pub _address: u8, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum SheetType { - Agent = 0, - User = 1, - PresHint = 2, - SVGAttrAnimation = 3, - Doc = 4, - ScopedDoc = 5, - StyleAttr = 6, - Override = 7, - Animation = 8, - Transition = 9, - Count = 10, - Unknown = -1, +impl Clone for nsRefreshDriver { + fn clone(&self) -> Self { *self } } -/** - * StaticAutoPtr and StaticRefPtr are like nsAutoPtr and nsRefPtr, except they - * are suitable for use as global variables. - * - * In particular, a global instance of Static{Auto,Ref}Ptr doesn't cause the - * compiler to emit a static initializer (in release builds, anyway). - * - * In order to accomplish this, Static{Auto,Ref}Ptr must have a trivial - * constructor and destructor. As a consequence, it cannot initialize its raw - * pointer to 0 on construction, and it cannot delete/release its raw pointer - * upon destruction. - * - * Since the compiler guarantees that all global variables are initialized to - * 0, these trivial constructors are safe. Since we rely on this, the clang - * plugin, run as part of our "static analysis" builds, makes it a compile-time - * error to use Static{Auto,Ref}Ptr as anything except a global variable. - * - * Static{Auto,Ref}Ptr have a limited interface as compared to ns{Auto,Ref}Ptr; - * this is intentional, since their range of acceptable uses is smaller. - */ #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StaticAutoPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct DocAccessible { + pub _address: u8, +} +impl Clone for DocAccessible { + fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct StaticRefPtr<T> { - pub mRawPtr: *mut T, +#[derive(Debug, Copy)] +pub struct LayerManager { + pub _address: u8, } -pub enum Zero { } -pub const eFamily_generic_first: FontFamilyType = +impl Clone for LayerManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct SourceSurface { + pub _address: u8, +} +impl Clone for SourceSurface { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct CapturingContentInfo { + pub mAllowed: bool, + pub mPointerLock: bool, + pub mRetargetToElement: bool, + pub mPreventDrag: bool, + pub mContent: StaticRefPtr<nsIContent>, +} +#[test] +fn bindgen_test_layout_CapturingContentInfo() { + assert_eq!(::std::mem::size_of::<CapturingContentInfo>() , 16usize); + assert_eq!(::std::mem::align_of::<CapturingContentInfo>() , 8usize); +} +pub const FontFamilyType_eFamily_generic_first: FontFamilyType = FontFamilyType::eFamily_serif; -pub const eFamily_generic_last: FontFamilyType = +pub const FontFamilyType_eFamily_generic_last: FontFamilyType = FontFamilyType::eFamily_fantasy; -pub const eFamily_generic_count: FontFamilyType = +pub const FontFamilyType_eFamily_generic_count: FontFamilyType = FontFamilyType::eFamily_monospace; +#[repr(u32)] /** * type of font family name, either a name (e.g. Helvetica) or a * generic (e.g. serif, sans-serif), with the ability to distinguish * between unquoted and quoted names for serializaiton */ -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum FontFamilyType { eFamily_none = 0, eFamily_named = 1, @@ -3793,9 +7312,6 @@ pub enum FontFamilyType { eFamily_moz_variable = 8, eFamily_moz_fixed = 9, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum QuotedName { eQuotedName = 0, eUnquotedName = 1, } /** * font family name, a string for the name if not a generic and * a font type indicated named family or which generic family @@ -3833,14 +7349,14 @@ pub struct gfxFontFeature { pub mTag: u32, pub mValue: u32, } -impl ::std::clone::Clone for gfxFontFeature { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_gfxFontFeature() { assert_eq!(::std::mem::size_of::<gfxFontFeature>() , 8usize); assert_eq!(::std::mem::align_of::<gfxFontFeature>() , 4usize); } +impl Clone for gfxFontFeature { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug)] pub struct gfxAlternateValue { @@ -3853,22 +7369,84 @@ fn bindgen_test_layout_gfxAlternateValue() { assert_eq!(::std::mem::align_of::<gfxAlternateValue>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct gfxFontFeatureValueSet { - pub _bindgen_opaque_blob: [u64; 7usize], + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mFontFeatureValues: [u64; 5usize], +} +pub type gfxFontFeatureValueSet_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_ValueList { + pub name: nsString, + pub featureSelectors: nsTArray<::std::os::raw::c_uint>, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_ValueList() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_ValueList>() , + 24usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_ValueList>() , + 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValues { + pub alternate: u32, + pub valuelist: nsTArray<gfxFontFeatureValueSet_ValueList>, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValues() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValues>() , + 16usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValues>() + , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValueHashKey { + pub mFamily: nsString, + pub mPropVal: u32, + pub mName: nsString, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashKey() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashKey>() + , 40usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashKey>() + , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct gfxFontFeatureValueSet_FeatureValueHashEntry { + pub _base: PLDHashEntryHdr, + pub mKey: gfxFontFeatureValueSet_FeatureValueHashKey, + pub mValues: nsTArray<::std::os::raw::c_uint>, +} +pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType = + *const gfxFontFeatureValueSet_FeatureValueHashKey; +pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer = + *const gfxFontFeatureValueSet_FeatureValueHashKey; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_190955 + { + ALLOW_MEMMOVE = 1, +} +#[test] +fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry() { + assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>() + , 56usize); + assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>() + , 8usize); } #[test] fn bindgen_test_layout_gfxFontFeatureValueSet() { assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet>() , 56usize); assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet>() , 8usize); } -pub enum gfxFontStyle { } -pub type nsFontFamilyEnumFunc = - ::std::option::Option<unsafe extern "C" fn(aFamily: *const nsString, - aGeneric: bool, - aData: - *mut ::std::os::raw::c_void) - -> bool>; #[repr(C)] +#[derive(Debug)] pub struct nsFont { pub fontlist: FontFamilyList, pub style: u8, @@ -3897,16 +7475,192 @@ fn bindgen_test_layout_nsFont() { assert_eq!(::std::mem::size_of::<nsFont>() , 88usize); assert_eq!(::std::mem::align_of::<nsFont>() , 8usize); } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub type TimeStampValue = u64; +/** + * Instances of this class represent moments in time, or a special + * "null" moment. We do not use the non-monotonic system clock or + * local time, since they can be reset, causing apparent backward + * travel in time, which can confuse algorithms. Instead we measure + * elapsed time according to the system. This time can never go + * backwards (i.e. it never wraps around, at least not in less than + * five million years of system elapsed time). It might not advance + * while the system is sleeping. If TimeStamp::SetNow() is not called + * at all for hours or days, we might not notice the passage of some + * of that time. + * + * We deliberately do not expose a way to convert TimeStamps to some + * particular unit. All you can do is compute a difference between two + * TimeStamps to get a TimeDuration. You can also add a TimeDuration + * to a TimeStamp to get a new TimeStamp. You can't do something + * meaningless like add two TimeStamps. + * + * Internally this is implemented as either a wrapper around + * - high-resolution, monotonic, system clocks if they exist on this + * platform + * - PRIntervalTime otherwise. We detect wraparounds of + * PRIntervalTime and work around them. + * + * This class is similar to C++11's time_point, however it is + * explicitly nullable and provides an IsNull() method. time_point + * is initialized to the clock's epoch and provides a + * time_since_epoch() method that functions similiarly. i.e. + * t.IsNull() is equivalent to t.time_since_epoch() == decltype(t)::duration::zero(); + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct TimeStamp { + /** + * When built with PRIntervalTime, a value of 0 means this instance + * is "null". Otherwise, the low 32 bits represent a PRIntervalTime, + * and the high 32 bits represent a counter of the number of + * rollovers of PRIntervalTime that we've seen. This counter starts + * at 1 to avoid a real time colliding with the "null" value. + * + * PR_INTERVAL_MAX is set at 100,000 ticks per second. So the minimum + * time to wrap around is about 2^64/100000 seconds, i.e. about + * 5,849,424 years. + * + * When using a system clock, a value is system dependent. + */ + pub mValue: TimeStampValue, +} +#[test] +fn bindgen_test_layout_TimeStamp() { + assert_eq!(::std::mem::size_of::<TimeStamp>() , 8usize); + assert_eq!(::std::mem::align_of::<TimeStamp>() , 8usize); +} +impl Clone for TimeStamp { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyDescriptorUntyped { + pub mDestructor: FramePropertyDescriptorUntyped_UntypedDestructor, + pub mDestructorWithFrame: FramePropertyDescriptorUntyped_UntypedDestructorWithFrame, +} +/** + * mDestructor will be called if it's non-null. + */ +pub type FramePropertyDescriptorUntyped_UntypedDestructor = + ::std::option::Option<unsafe extern "C" fn(aPropertyValue: + *mut ::std::os::raw::c_void)>; +/** + * mDestructorWithFrame will be called if it's non-null and mDestructor + * is null. WARNING: The frame passed to mDestructorWithFrame may + * be a dangling frame pointer, if this is being called during + * presshell teardown. Do not use it except to compare against + * other frame pointers. No frame will have been allocated with + * the same address yet. + */ +pub type FramePropertyDescriptorUntyped_UntypedDestructorWithFrame = + ::std::option::Option<unsafe extern "C" fn(aFrame: *const nsIFrame, + aPropertyValue: + *mut ::std::os::raw::c_void)>; +#[test] +fn bindgen_test_layout_FramePropertyDescriptorUntyped() { + assert_eq!(::std::mem::size_of::<FramePropertyDescriptorUntyped>() , + 16usize); + assert_eq!(::std::mem::align_of::<FramePropertyDescriptorUntyped>() , + 8usize); +} +impl Clone for FramePropertyDescriptorUntyped { + fn clone(&self) -> Self { *self } +} +/** + * The FramePropertyTable is optimized for storing 0 or 1 properties on + * a given frame. Storing very large numbers of properties on a single + * frame will not be efficient. + * + * Property values are passed as void* but do not actually have to be + * valid pointers. You can use NS_INT32_TO_PTR/NS_PTR_TO_INT32 to + * store int32_t values. Null/zero values can be stored and retrieved. + * Of course, the destructor function (if any) must handle such values + * correctly. + */ +#[repr(C)] +#[derive(Debug)] +pub struct FramePropertyTable { + pub mEntries: [u64; 5usize], + pub mLastFrame: *const nsIFrame, + pub mLastEntry: *mut FramePropertyTable_Entry, +} +pub type FramePropertyTable_UntypedDescriptor = + *const FramePropertyDescriptorUntyped; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct FramePropertyTable_ReinterpretHelper<T> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, +} +/** + * Stores a property descriptor/value pair. It can also be used to + * store an nsTArray of PropertyValues. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyTable_PropertyValue { + pub mProperty: FramePropertyTable_UntypedDescriptor, + pub mValue: *mut ::std::os::raw::c_void, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_PropertyValue() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_PropertyValue>() , + 16usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_PropertyValue>() , + 8usize); +} +impl Clone for FramePropertyTable_PropertyValue { + fn clone(&self) -> Self { *self } +} +/** + * Used with an array of PropertyValues to allow lookups that compare + * only on the FramePropertyDescriptor. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct FramePropertyTable_PropertyComparator { + pub _address: u8, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_PropertyComparator() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_PropertyComparator>() + , 1usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_PropertyComparator>() + , 1usize); +} +impl Clone for FramePropertyTable_PropertyComparator { + fn clone(&self) -> Self { *self } +} +/** + * Our hashtable entry. The key is an nsIFrame*, the value is a + * PropertyValue representing one or more property/value pairs. + */ +#[repr(C)] +#[derive(Debug)] +pub struct FramePropertyTable_Entry { + pub _base: nsPtrHashKey<nsIFrame>, + pub mProp: FramePropertyTable_PropertyValue, +} +#[test] +fn bindgen_test_layout_FramePropertyTable_Entry() { + assert_eq!(::std::mem::size_of::<FramePropertyTable_Entry>() , 32usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable_Entry>() , 8usize); +} +#[test] +fn bindgen_test_layout_FramePropertyTable() { + assert_eq!(::std::mem::size_of::<FramePropertyTable>() , 56usize); + assert_eq!(::std::mem::align_of::<FramePropertyTable>() , 8usize); +} +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBasicShapeType { Polygon = 0, Circle = 1, Ellipse = 2, Inset = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxAlign { Stretch = 0, Start = 1, @@ -3914,26 +7668,23 @@ pub enum StyleBoxAlign { Baseline = 3, End = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxDecorationBreak { Slice = 0, Clone = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxDirection { Normal = 0, Reverse = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxOrient { Horizontal = 0, Vertical = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxPack { Start = 0, Center = 1, End = 2, Justify = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleBoxSizing { Content = 0, Border = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum StyleBoxShadowType { Inset = 0, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleClear { None = 0, Left = 1, @@ -3944,8 +7695,8 @@ pub enum StyleClear { Line = 8, Max = 13, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleClipPathGeometryBox { NoBox = 0, Content = 1, @@ -3956,11 +7707,11 @@ pub enum StyleClipPathGeometryBox { Stroke = 6, View = 7, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFillRule { Nonzero = 0, Evenodd = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFloat { None = 0, Left = 1, @@ -3968,11 +7719,11 @@ pub enum StyleFloat { InlineStart = 3, InlineEnd = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleFloatEdge { ContentBox = 0, MarginBox = 1, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleShapeOutsideShapeBox { NoBox = 0, Content = 1, @@ -3980,11 +7731,11 @@ pub enum StyleShapeOutsideShapeBox { Border = 3, Margin = 4, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleShapeSourceType { None = 0, URL = 1, Shape = 2, Box = 3, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleUserFocus { None = 0, Ignore = 1, @@ -3995,8 +7746,8 @@ pub enum StyleUserFocus { SelectSame = 6, SelectMenu = 7, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleUserSelect { None = 0, Text = 1, @@ -4009,8 +7760,8 @@ pub enum StyleUserSelect { MozAll = 8, MozText = 9, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum StyleDisplay { None = 0, Block = 1, @@ -4051,20 +7802,504 @@ pub enum StyleDisplay { Groupbox = 36, Popup = 37, } -pub const eCSSProperty_COUNT_DUMMY: nsCSSPropertyID = +pub const nsStyleUnit_eStyleUnit_MAX: nsStyleUnit = + nsStyleUnit::eStyleUnit_Calc; +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleUnit { + eStyleUnit_Null = 0, + eStyleUnit_Normal = 1, + eStyleUnit_Auto = 2, + eStyleUnit_None = 3, + eStyleUnit_Percent = 10, + eStyleUnit_Factor = 11, + eStyleUnit_Degree = 12, + eStyleUnit_Grad = 13, + eStyleUnit_Radian = 14, + eStyleUnit_Turn = 15, + eStyleUnit_FlexFraction = 16, + eStyleUnit_Coord = 20, + eStyleUnit_Integer = 30, + eStyleUnit_Enumerated = 32, + eStyleUnit_Calc = 40, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct _bindgen_ty_bindgen_id_191700 { + pub mInt: __BindgenUnionField<i32>, + pub mFloat: __BindgenUnionField<f32>, + pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, + pub bindgen_union_field: u64, +} +#[test] +fn bindgen_test_layout__bindgen_ty_bindgen_id_191700() { + assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_191700>() , + 8usize); + assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_191700>() , + 8usize); +} +impl Clone for _bindgen_ty_bindgen_id_191700 { + fn clone(&self) -> Self { *self } +} +pub type nsStyleUnion = _bindgen_ty_bindgen_id_191700; +/** + * Class that hold a single size specification used by the style + * system. The size specification consists of two parts -- a number + * and a unit. The number is an integer, a floating point value, an + * nscoord, or undefined, and the unit is an nsStyleUnit. Checking + * the unit is a must before asking for the value in any particular + * form. + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCoord { + mUnit: nsStyleUnit, + mValue: nsStyleUnion, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsStyleCoord_CalcValue { + pub mLength: nscoord, + pub mPercent: f32, + pub mHasPercent: bool, +} +#[test] +fn bindgen_test_layout_nsStyleCoord_CalcValue() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_CalcValue>() , 12usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_CalcValue>() , 4usize); +} +impl Clone for nsStyleCoord_CalcValue { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCoord_Calc { + pub _base: nsStyleCoord_CalcValue, + pub mRefCnt: ThreadSafeAutoRefCnt, +} +pub type nsStyleCoord_Calc_HasThreadSafeRefCnt = TrueType; +#[test] +fn bindgen_test_layout_nsStyleCoord_Calc() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_Calc>() , 24usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_Calc>() , 8usize); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleCoord_CoordConstructorType { CoordConstructor = 0, } +#[test] +fn bindgen_test_layout_nsStyleCoord() { + assert_eq!(::std::mem::size_of::<nsStyleCoord>() , 16usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord>() , 8usize); +} +impl nsStyleCoord { + #[inline] + pub unsafe fn get_mUnit(&self) -> &nsStyleUnit { &self.mUnit } + #[inline] + pub unsafe fn get_mUnit_mut(&mut self) -> &mut nsStyleUnit { + &mut self.mUnit + } + #[inline] + pub unsafe fn get_mValue(&self) -> &nsStyleUnion { &self.mValue } + #[inline] + pub unsafe fn get_mValue_mut(&mut self) -> &mut nsStyleUnion { + &mut self.mValue + } +} +/** + * Class that represents a set of top/right/bottom/left nsStyleCoords. + * This is commonly used to hold the widths of the borders, margins, + * or paddings of a box. + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleSides { + mUnits: [nsStyleUnit; 4usize], + mValues: [nsStyleUnion; 4usize], +} +#[test] +fn bindgen_test_layout_nsStyleSides() { + assert_eq!(::std::mem::size_of::<nsStyleSides>() , 40usize); + assert_eq!(::std::mem::align_of::<nsStyleSides>() , 8usize); +} +impl nsStyleSides { + #[inline] + pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 4usize] { &self.mUnits } + #[inline] + pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 4usize] { + &mut self.mUnits + } + #[inline] + pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 4usize] { + &self.mValues + } + #[inline] + pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 4usize] { + &mut self.mValues + } +} +/** + * Class that represents a set of top-left/top-right/bottom-right/bottom-left + * nsStyleCoord pairs. This is used to hold the dimensions of the + * corners of a box (for, e.g., border-radius and outline-radius). + */ + /** <div rustbindgen private accessor="unsafe"></div> */ +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleCorners { + mUnits: [nsStyleUnit; 8usize], + mValues: [nsStyleUnion; 8usize], +} +#[test] +fn bindgen_test_layout_nsStyleCorners() { + assert_eq!(::std::mem::size_of::<nsStyleCorners>() , 72usize); + assert_eq!(::std::mem::align_of::<nsStyleCorners>() , 8usize); +} +impl nsStyleCorners { + #[inline] + pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 8usize] { &self.mUnits } + #[inline] + pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 8usize] { + &mut self.mUnits + } + #[inline] + pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 8usize] { + &self.mValues + } + #[inline] + pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 8usize] { + &mut self.mValues + } +} +#[repr(C)] +#[derive(Debug)] +pub struct nsStyleDisplay { + pub mBinding: RefPtr<URLValue>, + pub mDisplay: StyleDisplay, + pub mOriginalDisplay: StyleDisplay, + pub mContain: u8, + pub mAppearance: u8, + pub mPosition: u8, + pub mFloat: StyleFloat, + pub mOriginalFloat: StyleFloat, + pub mBreakType: StyleClear, + pub mBreakInside: u8, + pub mBreakBefore: bool, + pub mBreakAfter: bool, + pub mOverflowX: u8, + pub mOverflowY: u8, + pub mOverflowClipBox: u8, + pub mResize: u8, + pub mOrient: u8, + pub mIsolation: u8, + pub mTopLayer: u8, + pub mWillChangeBitField: u8, + pub mWillChange: nsTArray<nsString>, + pub mTouchAction: u8, + pub mScrollBehavior: u8, + pub mScrollSnapTypeX: u8, + pub mScrollSnapTypeY: u8, + pub mScrollSnapPointsX: nsStyleCoord, + pub mScrollSnapPointsY: nsStyleCoord, + pub mScrollSnapDestination: Position, + pub mScrollSnapCoordinate: nsTArray<Position>, + pub mBackfaceVisibility: u8, + pub mTransformStyle: u8, + pub mTransformBox: u8, + pub mSpecifiedTransform: RefPtr<nsCSSValueSharedList>, + pub mTransformOrigin: [nsStyleCoord; 3usize], + pub mChildPerspective: nsStyleCoord, + pub mPerspectiveOrigin: [nsStyleCoord; 2usize], + pub mVerticalAlign: nsStyleCoord, + pub mTransitions: nsStyleAutoArray<StyleTransition>, + pub mTransitionTimingFunctionCount: u32, + pub mTransitionDurationCount: u32, + pub mTransitionDelayCount: u32, + pub mTransitionPropertyCount: u32, + pub mAnimations: nsStyleAutoArray<StyleAnimation>, + pub mAnimationTimingFunctionCount: u32, + pub mAnimationDurationCount: u32, + pub mAnimationDelayCount: u32, + pub mAnimationNameCount: u32, + pub mAnimationDirectionCount: u32, + pub mAnimationFillModeCount: u32, + pub mAnimationPlayStateCount: u32, + pub mAnimationIterationCountCount: u32, + pub mShapeOutside: StyleShapeOutside, +} +#[test] +fn bindgen_test_layout_nsStyleDisplay() { + assert_eq!(::std::mem::size_of::<nsStyleDisplay>() , 424usize); + assert_eq!(::std::mem::align_of::<nsStyleDisplay>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsILanguageAtomService { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsILanguageAtomService_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsILanguageAtomService() { + assert_eq!(::std::mem::size_of::<nsILanguageAtomService>() , 8usize); + assert_eq!(::std::mem::align_of::<nsILanguageAtomService>() , 8usize); +} +impl Clone for nsILanguageAtomService { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct LangGroupFontPrefs { + pub mLangGroup: nsCOMPtr<nsIAtom>, + pub mMinimumFontSize: nscoord, + pub mDefaultVariableFont: nsFont, + pub mDefaultFixedFont: nsFont, + pub mDefaultSerifFont: nsFont, + pub mDefaultSansSerifFont: nsFont, + pub mDefaultMonospaceFont: nsFont, + pub mDefaultCursiveFont: nsFont, + pub mDefaultFantasyFont: nsFont, + pub mNext: nsAutoPtr<LangGroupFontPrefs>, +} +#[test] +fn bindgen_test_layout_LangGroupFontPrefs() { + assert_eq!(::std::mem::size_of::<LangGroupFontPrefs>() , 640usize); + assert_eq!(::std::mem::align_of::<LangGroupFontPrefs>() , 8usize); +} +/** + * Some functionality that has historically lived on nsPresContext does not + * actually need to be per-document. This singleton class serves as a host + * for that functionality. We delegate to it from nsPresContext where + * appropriate, and use it standalone in some cases as well. + */ +#[repr(C)] +#[derive(Debug)] +pub struct StaticPresData { + pub mLangService: nsCOMPtr<nsILanguageAtomService>, + pub mBorderWidthTable: [nscoord; 3usize], + pub mStaticLangGroupFontPrefs: LangGroupFontPrefs, +} +#[test] +fn bindgen_test_layout_StaticPresData() { + assert_eq!(::std::mem::size_of::<StaticPresData>() , 664usize); + assert_eq!(::std::mem::align_of::<StaticPresData>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsIPrintSettings { + pub _address: u8, +} +impl Clone for nsIPrintSettings { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsITheme { + pub _address: u8, +} +impl Clone for nsITheme { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct gfxTextPerfMetrics { + pub _address: u8, +} +impl Clone for gfxTextPerfMetrics { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsTransitionManager { + pub _address: u8, +} +impl Clone for nsTransitionManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsAnimationManager { + pub _address: u8, +} +impl Clone for nsAnimationManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsDeviceContext { + pub _address: u8, +} +impl Clone for nsDeviceContext { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct gfxMissingFontRecorder { + pub _address: u8, +} +impl Clone for gfxMissingFontRecorder { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct EffectCompositor { + pub _address: u8, +} +impl Clone for EffectCompositor { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct EventStateManager { + pub _address: u8, +} +impl Clone for EventStateManager { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug)] +pub struct CounterStyleManager { + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mPresContext: *mut nsPresContext, + pub mCacheTable: [u64; 5usize], +} +pub type CounterStyleManager_HasThreadSafeRefCnt = FalseType; +#[test] +fn bindgen_test_layout_CounterStyleManager() { + assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 64usize); + assert_eq!(::std::mem::align_of::<CounterStyleManager>() , 8usize); +} +#[repr(C)] +#[derive(Debug)] +pub struct nsInvalidateRequestList { + pub mRequests: nsTArray<nsInvalidateRequestList_Request>, +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsInvalidateRequestList_Request { + pub mRect: nsRect, + pub mFlags: u32, +} +#[test] +fn bindgen_test_layout_nsInvalidateRequestList_Request() { + assert_eq!(::std::mem::size_of::<nsInvalidateRequestList_Request>() , + 20usize); + assert_eq!(::std::mem::align_of::<nsInvalidateRequestList_Request>() , + 4usize); +} +impl Clone for nsInvalidateRequestList_Request { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsInvalidateRequestList() { + assert_eq!(::std::mem::size_of::<nsInvalidateRequestList>() , 8usize); + assert_eq!(::std::mem::align_of::<nsInvalidateRequestList>() , 8usize); +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct DisplayItemClip_RoundedRect { + pub mRect: nsRect, + pub mRadii: [nscoord; 8usize], +} +#[test] +fn bindgen_test_layout_DisplayItemClip_RoundedRect() { + assert_eq!(::std::mem::size_of::<DisplayItemClip_RoundedRect>() , + 48usize); + assert_eq!(::std::mem::align_of::<DisplayItemClip_RoundedRect>() , + 4usize); +} +impl Clone for DisplayItemClip_RoundedRect { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct Grid { + pub _address: u8, +} +impl Clone for Grid { + fn clone(&self) -> Self { *self } +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsCSSTokenSerializationType { + eCSSTokenSerialization_Nothing = 0, + eCSSTokenSerialization_Whitespace = 1, + eCSSTokenSerialization_AtKeyword_or_Hash = 2, + eCSSTokenSerialization_Number = 3, + eCSSTokenSerialization_Dimension = 4, + eCSSTokenSerialization_Percentage = 5, + eCSSTokenSerialization_URange = 6, + eCSSTokenSerialization_URL_or_BadURL = 7, + eCSSTokenSerialization_Function = 8, + eCSSTokenSerialization_Ident = 9, + eCSSTokenSerialization_CDC = 10, + eCSSTokenSerialization_DashMatch = 11, + eCSSTokenSerialization_ContainsMatch = 12, + eCSSTokenSerialization_Symbol_Hash = 13, + eCSSTokenSerialization_Symbol_At = 14, + eCSSTokenSerialization_Symbol_Dot_or_Plus = 15, + eCSSTokenSerialization_Symbol_Minus = 16, + eCSSTokenSerialization_Symbol_OpenParen = 17, + eCSSTokenSerialization_Symbol_Question = 18, + eCSSTokenSerialization_Symbol_Assorted = 19, + eCSSTokenSerialization_Symbol_Equals = 20, + eCSSTokenSerialization_Symbol_Bar = 21, + eCSSTokenSerialization_Symbol_Slash = 22, + eCSSTokenSerialization_Symbol_Asterisk = 23, + eCSSTokenSerialization_Other = 24, +} +#[repr(C)] +#[derive(Debug)] +pub struct CSSVariableValues { + /** + * Map of variable names to IDs. Variable IDs are indexes into + * mVariables. + */ + pub mVariableIDs: [u64; 5usize], + /** + * Array of variables, indexed by variable ID. + */ + pub mVariables: nsTArray<CSSVariableValues_Variable>, +} +#[repr(C)] +#[derive(Debug)] +pub struct CSSVariableValues_Variable { + pub mVariableName: nsString, + pub mValue: nsString, + pub mFirstToken: nsCSSTokenSerializationType, + pub mLastToken: nsCSSTokenSerializationType, +} +#[test] +fn bindgen_test_layout_CSSVariableValues_Variable() { + assert_eq!(::std::mem::size_of::<CSSVariableValues_Variable>() , 40usize); + assert_eq!(::std::mem::align_of::<CSSVariableValues_Variable>() , 8usize); +} +#[test] +fn bindgen_test_layout_CSSVariableValues() { + assert_eq!(::std::mem::size_of::<CSSVariableValues>() , 48usize); + assert_eq!(::std::mem::align_of::<CSSVariableValues>() , 8usize); +} +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_z_index; -pub const eCSSProperty_all: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_all: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT_no_shorthands; -pub const eCSSProperty_COUNT_DUMMY2: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY2: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_transition; -pub const eCSSPropertyAlias_WordWrap: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSPropertyAlias_WordWrap: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT; -pub const eCSSProperty_COUNT_DUMMY3: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSProperty_COUNT_DUMMY3: nsCSSPropertyID = nsCSSPropertyID::eCSSPropertyAlias_WebkitMaskSize; -pub const eCSSPropertyExtra_no_properties: nsCSSPropertyID = +pub const nsCSSPropertyID_eCSSPropertyExtra_no_properties: nsCSSPropertyID = nsCSSPropertyID::eCSSProperty_COUNT_with_aliases; #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsCSSPropertyID { eCSSProperty_UNKNOWN = -1, eCSSProperty_align_content = 0, @@ -4533,52 +8768,6 @@ pub enum nsCSSPropertyID { eCSSPropertyExtra_x_auto_value = 463, eCSSPropertyExtra_variable = 464, } -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSFontDesc { - eCSSFontDesc_UNKNOWN = -1, - eCSSFontDesc_Family = 0, - eCSSFontDesc_Style = 1, - eCSSFontDesc_Weight = 2, - eCSSFontDesc_Stretch = 3, - eCSSFontDesc_Src = 4, - eCSSFontDesc_UnicodeRange = 5, - eCSSFontDesc_FontFeatureSettings = 6, - eCSSFontDesc_FontLanguageOverride = 7, - eCSSFontDesc_Display = 8, - eCSSFontDesc_COUNT = 9, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSCounterDesc { - eCSSCounterDesc_UNKNOWN = -1, - eCSSCounterDesc_System = 0, - eCSSCounterDesc_Symbols = 1, - eCSSCounterDesc_AdditiveSymbols = 2, - eCSSCounterDesc_Negative = 3, - eCSSCounterDesc_Prefix = 4, - eCSSCounterDesc_Suffix = 5, - eCSSCounterDesc_Range = 6, - eCSSCounterDesc_Pad = 7, - eCSSCounterDesc_Fallback = 8, - eCSSCounterDesc_SpeakAs = 9, - eCSSCounterDesc_COUNT = 10, -} -#[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSPropertyLogicalGroup { - eCSSPropertyLogicalGroup_UNKNOWN = -1, - eCSSPropertyLogicalGroup_BorderColor = 0, - eCSSPropertyLogicalGroup_BorderStyle = 1, - eCSSPropertyLogicalGroup_BorderWidth = 2, - eCSSPropertyLogicalGroup_Margin = 3, - eCSSPropertyLogicalGroup_MaxSize = 4, - eCSSPropertyLogicalGroup_Offset = 5, - eCSSPropertyLogicalGroup_Padding = 6, - eCSSPropertyLogicalGroup_MinSize = 7, - eCSSPropertyLogicalGroup_Size = 8, - eCSSPropertyLogicalGroup_COUNT = 9, -} /** * Class to safely handle main-thread-only pointers off the main thread. * @@ -4624,38 +8813,152 @@ pub struct nsMainThreadPtrHolder<T> { pub mRawPtr: *mut T, pub mStrict: bool, } +pub type nsMainThreadPtrHolder_HasThreadSafeRefCnt = TrueType; #[repr(C)] #[derive(Debug)] pub struct nsMainThreadPtrHandle<T> { pub mPtr: RefPtr<T>, } -pub enum CSSStyleSheet { } #[repr(C)] -pub struct URLValueData { - pub _bindgen_opaque_blob: [u64; 6usize], +#[derive(Debug)] +pub struct imgRequestProxy { + pub _base: imgIRequest, + pub _base_1: IProgressObserver, + pub _base_2: nsISupportsPriority, + pub _base_3: nsISecurityInfoProvider, + pub _base_4: nsITimedChannel, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, + pub mBehaviour: UniquePtr<ProxyBehaviour, DefaultDelete<ProxyBehaviour>>, + pub mURI: RefPtr<ImageURL>, + pub mListener: *mut imgINotificationObserver, + pub mLoadGroup: nsCOMPtr<nsILoadGroup>, + pub mLoadFlags: nsLoadFlags, + pub mLockCount: u32, + pub mAnimationConsumers: u32, + pub mCanceled: bool, + pub mIsInLoadGroup: bool, + pub mListenerIsStrongRef: bool, + pub mDecodeRequested: bool, + pub mDeferNotifications: bool, +} +pub type imgRequestProxy_Image = Image; +pub type imgRequestProxy_ImageURL = ImageURL; +pub type imgRequestProxy_ProgressTracker = ProgressTracker; +pub type imgRequestProxy_HasThreadSafeRefCnt = FalseType; +#[repr(C)] +#[derive(Debug)] +pub struct imgRequestProxy_imgCancelRunnable { + pub _base: Runnable, + pub mOwner: RefPtr<imgRequestProxy>, + pub mStatus: nsresult, } #[test] -fn bindgen_test_layout_URLValueData() { - assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize); - assert_eq!(::std::mem::align_of::<URLValueData>() , 8usize); +fn bindgen_test_layout_imgRequestProxy_imgCancelRunnable() { + assert_eq!(::std::mem::size_of::<imgRequestProxy_imgCancelRunnable>() , + 40usize); + assert_eq!(::std::mem::align_of::<imgRequestProxy_imgCancelRunnable>() , + 8usize); +} +#[test] +fn bindgen_test_layout_imgRequestProxy() { + assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize); + assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); } #[repr(C)] -pub struct URLValue { - pub _bindgen_opaque_blob: [u64; 7usize], +pub struct bindgen_vtable__bindgen_id_200558 { +} +/** + * An interface for observing changes to image state, as reported by + * ProgressTracker. + * + * This is the ImageLib-internal version of imgINotificationObserver, + * essentially, with implementation details that code outside of ImageLib + * shouldn't see. + * + * XXX(seth): It's preferable to avoid adding anything to this interface if + * possible. In the long term, it would be ideal to get to a place where we can + * just use the imgINotificationObserver interface internally as well. + */ +#[repr(C)] +#[derive(Debug)] +pub struct IProgressObserver { + pub vtable_: *const bindgen_vtable__bindgen_id_200558, + pub _base: u64, } #[test] -fn bindgen_test_layout_URLValue() { - assert_eq!(::std::mem::size_of::<URLValue>() , 56usize); - assert_eq!(::std::mem::align_of::<URLValue>() , 8usize); +fn bindgen_test_layout_IProgressObserver() { + assert_eq!(::std::mem::size_of::<IProgressObserver>() , 16usize); + assert_eq!(::std::mem::align_of::<IProgressObserver>() , 8usize); } #[repr(C)] -pub struct ImageValue { - pub _bindgen_opaque_blob: [u64; 13usize], +#[derive(Debug, Copy)] +pub struct nsISupportsPriority { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISupportsPriority_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsISupportsPriority__bindgen_ty_bindgen_id_200634 { + PRIORITY_HIGHEST = -20, + PRIORITY_HIGH = -10, + PRIORITY_NORMAL = 0, + PRIORITY_LOW = 10, + PRIORITY_LOWEST = 20, } #[test] -fn bindgen_test_layout_ImageValue() { - assert_eq!(::std::mem::size_of::<ImageValue>() , 104usize); - assert_eq!(::std::mem::align_of::<ImageValue>() , 8usize); +fn bindgen_test_layout_nsISupportsPriority() { + assert_eq!(::std::mem::size_of::<nsISupportsPriority>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISupportsPriority>() , 8usize); +} +impl Clone for nsISupportsPriority { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsISecurityInfoProvider { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsISecurityInfoProvider_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsISecurityInfoProvider() { + assert_eq!(::std::mem::size_of::<nsISecurityInfoProvider>() , 8usize); + assert_eq!(::std::mem::align_of::<nsISecurityInfoProvider>() , 8usize); +} +impl Clone for nsISecurityInfoProvider { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsITimedChannel { + pub _base: nsISupports, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct nsITimedChannel_COMTypeInfo<T, U> { + pub _address: u8, + pub _phantom_0: ::std::marker::PhantomData<T>, + pub _phantom_1: ::std::marker::PhantomData<U>, +} +#[test] +fn bindgen_test_layout_nsITimedChannel() { + assert_eq!(::std::mem::size_of::<nsITimedChannel>() , 8usize); + assert_eq!(::std::mem::align_of::<nsITimedChannel>() , 8usize); +} +impl Clone for nsITimedChannel { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug)] @@ -4680,6 +8983,7 @@ pub struct GridTemplateAreasValue { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type GridTemplateAreasValue_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_GridTemplateAreasValue() { assert_eq!(::std::mem::size_of::<GridTemplateAreasValue>() , 40usize); @@ -4692,13 +8996,14 @@ pub struct FontFamilyListRefCnt { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type FontFamilyListRefCnt_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_FontFamilyListRefCnt() { assert_eq!(::std::mem::size_of::<FontFamilyListRefCnt>() , 32usize); assert_eq!(::std::mem::align_of::<FontFamilyListRefCnt>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsCSSUnit { eCSSUnit_Null = 0, eCSSUnit_Auto = 1, @@ -4787,184 +9092,71 @@ pub enum nsCSSUnit { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValue { - pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue_nsCSSValue_h_unnamed_13, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, } -#[repr(C)] -#[derive(Debug, Copy)] -pub struct nsCSSValue_nsCSSValue_h_unnamed_13 { - pub mInt: __BindgenUnionField<i32>, - pub mFloat: __BindgenUnionField<f32>, - pub mString: __BindgenUnionField<*mut nsStringBuffer>, - pub mColor: __BindgenUnionField<nscolor>, - pub mArray: __BindgenUnionField<*mut Array>, - pub mURL: __BindgenUnionField<*mut URLValue>, - pub mImage: __BindgenUnionField<*mut ImageValue>, - pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>, - pub mGradient: __BindgenUnionField<*mut nsCSSValueGradient>, - pub mTokenStream: __BindgenUnionField<*mut nsCSSValueTokenStream>, - pub mPair: __BindgenUnionField<*mut nsCSSValuePair_heap>, - pub mRect: __BindgenUnionField<*mut nsCSSRect_heap>, - pub mTriplet: __BindgenUnionField<*mut nsCSSValueTriplet_heap>, - pub mList: __BindgenUnionField<*mut nsCSSValueList_heap>, - pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>, - pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>, - pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>, - pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>, - pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>, - pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, - pub _bindgen_data_: u64, -} -impl nsCSSValue_nsCSSValue_h_unnamed_13 { - pub unsafe fn mInt(&mut self) -> *mut i32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloat(&mut self) -> *mut f32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mString(&mut self) -> *mut *mut nsStringBuffer { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mColor(&mut self) -> *mut nscolor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mArray(&mut self) -> *mut *mut Array { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mURL(&mut self) -> *mut *mut URLValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mImage(&mut self) -> *mut *mut ImageValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGridTemplateAreas(&mut self) - -> *mut *mut GridTemplateAreasValue { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGradient(&mut self) -> *mut *mut nsCSSValueGradient { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mTokenStream(&mut self) -> *mut *mut nsCSSValueTokenStream { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPair(&mut self) -> *mut *mut nsCSSValuePair_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mRect(&mut self) -> *mut *mut nsCSSRect_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mTriplet(&mut self) -> *mut *mut nsCSSValueTriplet_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mList(&mut self) -> *mut *mut nsCSSValueList_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mListDependent(&mut self) -> *mut *mut nsCSSValueList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mSharedList(&mut self) -> *mut *mut nsCSSValueSharedList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPairList(&mut self) -> *mut *mut nsCSSValuePairList_heap { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPairListDependent(&mut self) - -> *mut *mut nsCSSValuePairList { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloatColor(&mut self) -> *mut *mut nsCSSValueFloatColor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFontFamilyList(&mut self) - -> *mut *mut FontFamilyListRefCnt { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_13 { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_13() { - assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_13>() , - 8usize); - assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_13>() , - 8usize); -} -#[test] -fn bindgen_test_layout_nsCSSValue() { - assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize); - assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct Array { - pub mRefCnt: usize, - pub mCount: usize, - pub mArray: [nsCSSValue; 1usize], +pub struct nsCSSValueGradient { + pub mIsRadial: bool, + pub mIsRepeating: bool, + pub mIsLegacySyntax: bool, + pub mIsExplicitSize: bool, + pub mBgPos: nsCSSValuePair, + pub mAngle: nsCSSValue, + pub mRadialValues: [nsCSSValue; 2usize], + pub mStops: nsTArray<nsCSSValueGradientStop>, + pub mRefCnt: nsAutoRefCnt, + pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValueGradient_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_Array() { - assert_eq!(::std::mem::size_of::<Array>() , 32usize); - assert_eq!(::std::mem::align_of::<Array>() , 8usize); +fn bindgen_test_layout_nsCSSValueGradient() { + assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 112usize); + assert_eq!(::std::mem::align_of::<nsCSSValueGradient>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueList { - pub mValue: nsCSSValue, - pub mNext: *mut nsCSSValueList, +pub struct nsCSSValuePair { + pub mXValue: nsCSSValue, + pub mYValue: nsCSSValue, } #[test] -fn bindgen_test_layout_nsCSSValueList() { - assert_eq!(::std::mem::size_of::<nsCSSValueList>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSSValueList>() , 8usize); +fn bindgen_test_layout_nsCSSValuePair() { + assert_eq!(::std::mem::size_of::<nsCSSValuePair>() , 32usize); + assert_eq!(::std::mem::align_of::<nsCSSValuePair>() , 8usize); } +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum Serialization { eNormalized = 0, eAuthorSpecified = 1, } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueList_heap { - pub _base: nsCSSValueList, +pub struct nsCSSValuePair_heap { + pub _base: nsCSSValuePair, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValuePair_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueList_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 40usize); - assert_eq!(::std::mem::align_of::<nsCSSValueList_heap>() , 8usize); +fn bindgen_test_layout_nsCSSValuePair_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 48usize); + assert_eq!(::std::mem::align_of::<nsCSSValuePair_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueSharedList { +pub struct nsCSSValueTokenStream { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, - pub mHead: *mut nsCSSValueList, + pub mPropertyID: nsCSSPropertyID, + pub mShorthandPropertyID: nsCSSPropertyID, + pub mTokenStream: nsString, + pub mBaseURI: nsCOMPtr<nsIURI>, + pub mSheetURI: nsCOMPtr<nsIURI>, + pub mSheetPrincipal: nsCOMPtr<nsIPrincipal>, + pub mLineNumber: u32, + pub mLineOffset: u32, + pub mLevel: SheetType, } +pub type nsCSSValueTokenStream_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueSharedList() { - assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 24usize); - assert_eq!(::std::mem::align_of::<nsCSSValueSharedList>() , 8usize); +fn bindgen_test_layout_nsCSSValueTokenStream() { + assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 80usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTokenStream>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -4974,15 +9166,16 @@ pub struct nsCSSRect { pub mBottom: nsCSSValue, pub mLeft: nsCSSValue, } +pub type nsCSSRect_side_type = *mut nsCSSValue; +extern "C" { + #[link_name = "_ZN9nsCSSRect5sidesE"] + pub static mut nsCSSRect_sides: [nsCSSRect_side_type; 4usize]; +} #[test] fn bindgen_test_layout_nsCSSRect() { assert_eq!(::std::mem::size_of::<nsCSSRect>() , 64usize); assert_eq!(::std::mem::align_of::<nsCSSRect>() , 8usize); } -extern "C" { - #[link_name = "_ZN9nsCSSRect5sidesE"] - pub static mut nsCSSRect_consts_sides: [::std::os::raw::c_void; 4usize]; -} #[repr(C)] #[derive(Debug)] pub struct nsCSSRect_heap { @@ -4990,6 +9183,7 @@ pub struct nsCSSRect_heap { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSRect_heap_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSRect_heap() { assert_eq!(::std::mem::size_of::<nsCSSRect_heap>() , 80usize); @@ -4997,50 +9191,40 @@ fn bindgen_test_layout_nsCSSRect_heap() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValuePair { - pub mXValue: nsCSSValue, - pub mYValue: nsCSSValue, +pub struct nsCSSValueList { + pub mValue: nsCSSValue, + pub mNext: *mut nsCSSValueList, } #[test] -fn bindgen_test_layout_nsCSSValuePair() { - assert_eq!(::std::mem::size_of::<nsCSSValuePair>() , 32usize); - assert_eq!(::std::mem::align_of::<nsCSSValuePair>() , 8usize); +fn bindgen_test_layout_nsCSSValueList() { + assert_eq!(::std::mem::size_of::<nsCSSValueList>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSSValueList>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValuePair_heap { - pub _base: nsCSSValuePair, +pub struct nsCSSValueList_heap { + pub _base: nsCSSValueList, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValueList_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValuePair_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 48usize); - assert_eq!(::std::mem::align_of::<nsCSSValuePair_heap>() , 8usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct nsCSSValueTriplet { - pub mXValue: nsCSSValue, - pub mYValue: nsCSSValue, - pub mZValue: nsCSSValue, -} -#[test] -fn bindgen_test_layout_nsCSSValueTriplet() { - assert_eq!(::std::mem::size_of::<nsCSSValueTriplet>() , 48usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTriplet>() , 8usize); +fn bindgen_test_layout_nsCSSValueList_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 40usize); + assert_eq!(::std::mem::align_of::<nsCSSValueList_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueTriplet_heap { - pub _base: nsCSSValueTriplet, +pub struct nsCSSValueSharedList { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, + pub mHead: *mut nsCSSValueList, } +pub type nsCSSValueSharedList_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueTriplet_heap() { - assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTriplet_heap>() , 8usize); +fn bindgen_test_layout_nsCSSValueSharedList() { + assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 24usize); + assert_eq!(::std::mem::align_of::<nsCSSValueSharedList>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -5061,6 +9245,7 @@ pub struct nsCSSValuePairList_heap { pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, } +pub type nsCSSValuePairList_heap_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSValuePairList_heap() { assert_eq!(::std::mem::size_of::<nsCSSValuePairList_heap>() , 56usize); @@ -5068,53 +9253,28 @@ fn bindgen_test_layout_nsCSSValuePairList_heap() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueGradientStop { - pub mLocation: nsCSSValue, - pub mColor: nsCSSValue, - pub mIsInterpolationHint: bool, +pub struct nsCSSValueTriplet { + pub mXValue: nsCSSValue, + pub mYValue: nsCSSValue, + pub mZValue: nsCSSValue, } #[test] -fn bindgen_test_layout_nsCSSValueGradientStop() { - assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize); - assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); +fn bindgen_test_layout_nsCSSValueTriplet() { + assert_eq!(::std::mem::size_of::<nsCSSValueTriplet>() , 48usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTriplet>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct nsCSSValueGradient { - pub mIsRadial: bool, - pub mIsRepeating: bool, - pub mIsLegacySyntax: bool, - pub mIsExplicitSize: bool, - pub mBgPos: nsCSSValuePair, - pub mAngle: nsCSSValue, - pub mRadialValues: [nsCSSValue; 2usize], - pub mStops: nsTArray<nsCSSValueGradientStop>, - pub mRefCnt: nsAutoRefCnt, - pub _mOwningThread: nsAutoOwningThread, -} -#[test] -fn bindgen_test_layout_nsCSSValueGradient() { - assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 112usize); - assert_eq!(::std::mem::align_of::<nsCSSValueGradient>() , 8usize); -} -#[repr(C)] -pub struct nsCSSValueTokenStream { +pub struct nsCSSValueTriplet_heap { + pub _base: nsCSSValueTriplet, pub mRefCnt: nsAutoRefCnt, pub _mOwningThread: nsAutoOwningThread, - pub mPropertyID: nsCSSPropertyID, - pub mShorthandPropertyID: nsCSSPropertyID, - pub mTokenStream: nsString, - pub mBaseURI: nsCOMPtr<nsIURI>, - pub mSheetURI: nsCOMPtr<nsIURI>, - pub mSheetPrincipal: nsCOMPtr<nsIPrincipal>, - pub mLineNumber: u32, - pub mLineOffset: u32, - pub mLevel: SheetType, } +pub type nsCSSValueTriplet_heap_HasThreadSafeRefCnt = FalseType; #[test] -fn bindgen_test_layout_nsCSSValueTokenStream() { - assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 80usize); - assert_eq!(::std::mem::align_of::<nsCSSValueTokenStream>() , 8usize); +fn bindgen_test_layout_nsCSSValueTriplet_heap() { + assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 64usize); + assert_eq!(::std::mem::align_of::<nsCSSValueTriplet_heap>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -5126,6 +9286,7 @@ pub struct nsCSSValueFloatColor { pub mComponent3: f32, pub mAlpha: f32, } +pub type nsCSSValueFloatColor_HasThreadSafeRefCnt = FalseType; #[test] fn bindgen_test_layout_nsCSSValueFloatColor() { assert_eq!(::std::mem::size_of::<nsCSSValueFloatColor>() , 32usize); @@ -5133,420 +9294,161 @@ fn bindgen_test_layout_nsCSSValueFloatColor() { } #[repr(C)] #[derive(Debug)] -pub struct nsCSSCornerSizes { - pub mTopLeft: nsCSSValue, - pub mTopRight: nsCSSValue, - pub mBottomRight: nsCSSValue, - pub mBottomLeft: nsCSSValue, +pub struct nsCSSValue { + pub mUnit: nsCSSUnit, + pub mValue: nsCSSValue__bindgen_ty_bindgen_id_203528, +} +#[repr(C)] +#[derive(Debug)] +pub struct nsCSSValue_Array { + pub mRefCnt: usize, + pub mCount: usize, + pub mArray: [nsCSSValue; 1usize], } #[test] -fn bindgen_test_layout_nsCSSCornerSizes() { - assert_eq!(::std::mem::size_of::<nsCSSCornerSizes>() , 64usize); - assert_eq!(::std::mem::align_of::<nsCSSCornerSizes>() , 8usize); -} -extern "C" { - #[link_name = "_ZN16nsCSSCornerSizes7cornersE"] - pub static mut nsCSSCornerSizes_consts_corners: - [::std::os::raw::c_void; 4usize]; +fn bindgen_test_layout_nsCSSValue_Array() { + assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize); + assert_eq!(::std::mem::align_of::<nsCSSValue_Array>() , 8usize); } -pub enum WritingMode { } -pub type CounterValue = i32; -pub enum NegativeType { } -pub enum PadType { } #[repr(C)] #[derive(Debug, Copy)] -pub struct CounterStyle { - pub _vftable: *const _vftable_CounterStyle, - pub mStyle: i32, +pub struct nsCSSValue__bindgen_ty_bindgen_id_203528 { + pub mInt: __BindgenUnionField<i32>, + pub mFloat: __BindgenUnionField<f32>, + pub mString: __BindgenUnionField<*mut nsStringBuffer>, + pub mColor: __BindgenUnionField<nscolor>, + pub mArray: __BindgenUnionField<*mut nsCSSValue_Array>, + pub mURL: __BindgenUnionField<*mut URLValue>, + pub mImage: __BindgenUnionField<*mut ImageValue>, + pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>, + pub mGradient: __BindgenUnionField<*mut nsCSSValueGradient>, + pub mTokenStream: __BindgenUnionField<*mut nsCSSValueTokenStream>, + pub mPair: __BindgenUnionField<*mut nsCSSValuePair_heap>, + pub mRect: __BindgenUnionField<*mut nsCSSRect_heap>, + pub mTriplet: __BindgenUnionField<*mut nsCSSValueTriplet_heap>, + pub mList: __BindgenUnionField<*mut nsCSSValueList_heap>, + pub mListDependent: __BindgenUnionField<*mut nsCSSValueList>, + pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>, + pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>, + pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>, + pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>, + pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, + pub bindgen_union_field: u64, } -#[repr(C)] -pub struct _vftable_CounterStyle { - pub _bindgen_empty_ctype_warning_fix: u64, +#[test] +fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_203528() { + assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_203528>() + , 8usize); + assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_203528>() + , 8usize); } -impl ::std::clone::Clone for CounterStyle { +impl Clone for nsCSSValue__bindgen_ty_bindgen_id_203528 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_CounterStyle() { - assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize); - assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize); +fn bindgen_test_layout_nsCSSValue() { + assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize); + assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize); } #[repr(C)] #[derive(Debug)] -pub struct AnonymousCounterStyle { - pub _base: CounterStyle, - pub mRefCnt: nsAutoRefCnt, - pub _mOwningThread: nsAutoOwningThread, - pub mSingleString: bool, - pub mSystem: u8, - pub mSymbols: nsTArray<nsString>, -} -#[repr(C)] -pub struct _vftable_AnonymousCounterStyle { - pub _base: _vftable_CounterStyle, +pub struct nsCSSValueGradientStop { + pub mLocation: nsCSSValue, + pub mColor: nsCSSValue, + pub mIsInterpolationHint: bool, } #[test] -fn bindgen_test_layout_AnonymousCounterStyle() { - assert_eq!(::std::mem::size_of::<AnonymousCounterStyle>() , 48usize); - assert_eq!(::std::mem::align_of::<AnonymousCounterStyle>() , 8usize); +fn bindgen_test_layout_nsCSSValueGradientStop() { + assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize); + assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize); } #[repr(C)] -pub struct CounterStyleManager { - pub _bindgen_opaque_blob: [u64; 8usize], +pub struct bindgen_vtable__bindgen_id_203735 { } -#[test] -fn bindgen_test_layout_CounterStyleManager() { - assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 64usize); - assert_eq!(::std::mem::align_of::<CounterStyleManager>() , 8usize); -} -/** - * A class for holding strong references to nsPresArena-allocated - * objects. - * - * Since the arena's lifetime is not related to the refcounts - * of the objects allocated within it, it is possible to have a strong - * reference to an arena-allocated object that lives until the - * destruction of the arena. An ArenaRefPtr acts like a weak reference - * in that it will clear its referent if the arena is about to go away. - * - * T must be a class that has these two methods: - * - * static mozilla::ArenaObjectID ArenaObjectID(); - * U* Arena(); - * - * where U is a class that has these two methods: - * - * void RegisterArenaRefPtr(ArenaRefPtr<T>*); - * void DeregisterArenaRefPtr(ArenaRefPtr<T>*); - * - * Currently, both nsPresArena and nsIPresShell can be used as U. - * - * The ArenaObjectID method must return the mozilla::ArenaObjectID that - * uniquely identifies T, and the Arena method must return the nsPresArena - * (or a proxy for it) in which the object was allocated. - */ #[repr(C)] -#[derive(Debug)] -pub struct ArenaRefPtr<T> { - pub mPtr: RefPtr<T>, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_14 { - eFeatureAlternates_historical = 0, - eFeatureAlternates_stylistic = 1, - eFeatureAlternates_styleset = 2, - eFeatureAlternates_character_variant = 3, - eFeatureAlternates_swash = 4, - eFeatureAlternates_ornaments = 5, - eFeatureAlternates_annotation = 6, - eFeatureAlternates_numFeatures = 7, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_15 { - eFeatureEastAsian_jis78 = 0, - eFeatureEastAsian_jis83 = 1, - eFeatureEastAsian_jis90 = 2, - eFeatureEastAsian_jis04 = 3, - eFeatureEastAsian_simplified = 4, - eFeatureEastAsian_traditional = 5, - eFeatureEastAsian_full_width = 6, - eFeatureEastAsian_prop_width = 7, - eFeatureEastAsian_ruby = 8, - eFeatureEastAsian_numFeatures = 9, -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_16 { - eFeatureLigatures_none = 0, - eFeatureLigatures_common = 1, - eFeatureLigatures_no_common = 2, - eFeatureLigatures_discretionary = 3, - eFeatureLigatures_no_discretionary = 4, - eFeatureLigatures_historical = 5, - eFeatureLigatures_no_historical = 6, - eFeatureLigatures_contextual = 7, - eFeatureLigatures_no_contextual = 8, - eFeatureLigatures_numFeatures = 9, +#[derive(Debug, Copy)] +pub struct CounterStyle { + pub vtable_: *const bindgen_vtable__bindgen_id_203735, + pub mStyle: i32, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_17 { - eFeatureNumeric_lining = 0, - eFeatureNumeric_oldstyle = 1, - eFeatureNumeric_proportional = 2, - eFeatureNumeric_tabular = 3, - eFeatureNumeric_diagonal_fractions = 4, - eFeatureNumeric_stacked_fractions = 5, - eFeatureNumeric_slashedzero = 6, - eFeatureNumeric_ordinal = 7, - eFeatureNumeric_numFeatures = 8, -} -pub const eFontPrefLang_First: eFontPrefLang = - eFontPrefLang::eFontPrefLang_Western; -pub const eFontPrefLang_Last: eFontPrefLang = - eFontPrefLang::eFontPrefLang_Others; -pub const eFontPrefLang_Count: eFontPrefLang = - eFontPrefLang::eFontPrefLang_CJKSet; -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum eFontPrefLang { - eFontPrefLang_Western = 0, - eFontPrefLang_Japanese = 1, - eFontPrefLang_ChineseTW = 2, - eFontPrefLang_ChineseCN = 3, - eFontPrefLang_ChineseHK = 4, - eFontPrefLang_Korean = 5, - eFontPrefLang_Cyrillic = 6, - eFontPrefLang_Greek = 7, - eFontPrefLang_Thai = 8, - eFontPrefLang_Hebrew = 9, - eFontPrefLang_Arabic = 10, - eFontPrefLang_Devanagari = 11, - eFontPrefLang_Tamil = 12, - eFontPrefLang_Armenian = 13, - eFontPrefLang_Bengali = 14, - eFontPrefLang_Canadian = 15, - eFontPrefLang_Ethiopic = 16, - eFontPrefLang_Georgian = 17, - eFontPrefLang_Gujarati = 18, - eFontPrefLang_Gurmukhi = 19, - eFontPrefLang_Khmer = 20, - eFontPrefLang_Malayalam = 21, - eFontPrefLang_Mathematics = 22, - eFontPrefLang_Oriya = 23, - eFontPrefLang_Telugu = 24, - eFontPrefLang_Kannada = 25, - eFontPrefLang_Sinhala = 26, - eFontPrefLang_Tibetan = 27, - eFontPrefLang_Others = 28, - eFontPrefLang_CJKSet = 29, +#[test] +fn bindgen_test_layout_CounterStyle() { + assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize); + assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize); } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalAxis { eLogicalAxisBlock = 0, eLogicalAxisInline = 1, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalEdge { eLogicalEdgeStart = 0, eLogicalEdgeEnd = 1, } -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum LogicalSide { - eLogicalSideBStart = 0, - eLogicalSideBEnd = 1, - eLogicalSideIStart = 2, - eLogicalSideIEnd = 3, -} -pub const eStyleUnit_MAX: nsStyleUnit = nsStyleUnit::eStyleUnit_Calc; -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleUnit { - eStyleUnit_Null = 0, - eStyleUnit_Normal = 1, - eStyleUnit_Auto = 2, - eStyleUnit_None = 3, - eStyleUnit_Percent = 10, - eStyleUnit_Factor = 11, - eStyleUnit_Degree = 12, - eStyleUnit_Grad = 13, - eStyleUnit_Radian = 14, - eStyleUnit_Turn = 15, - eStyleUnit_FlexFraction = 16, - eStyleUnit_Coord = 20, - eStyleUnit_Integer = 30, - eStyleUnit_Enumerated = 32, - eStyleUnit_Calc = 40, +impl Clone for CounterStyle { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_h_unnamed_18 { - pub mInt: __BindgenUnionField<i32>, - pub mFloat: __BindgenUnionField<f32>, - pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, - pub _bindgen_data_: u64, -} -impl nsStyleCoord_h_unnamed_18 { - pub unsafe fn mInt(&mut self) -> *mut i32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mFloat(&mut self) -> *mut f32 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPointer(&mut self) -> *mut *mut ::std::os::raw::c_void { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleCoord_h_unnamed_18 { - fn clone(&self) -> Self { *self } +pub struct LookAndFeelInt { + pub id: i32, + pub value: i32, } #[test] -fn bindgen_test_layout_nsStyleCoord_h_unnamed_18() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_18>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_18>() , 8usize); -} -pub type nsStyleUnion = nsStyleCoord_h_unnamed_18; -/** - * Class that hold a single size specification used by the style - * system. The size specification consists of two parts -- a number - * and a unit. The number is an integer, a floating point value, an - * nscoord, or undefined, and the unit is an nsStyleUnit. Checking - * the unit is a must before asking for the value in any particular - * form. - */ - /** <div rustbindgen private accessor="unsafe"></div> */ -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleCoord { - mUnit: nsStyleUnit, - mValue: nsStyleUnion, +fn bindgen_test_layout_LookAndFeelInt() { + assert_eq!(::std::mem::size_of::<LookAndFeelInt>() , 8usize); + assert_eq!(::std::mem::align_of::<LookAndFeelInt>() , 4usize); } -impl nsStyleCoord { - #[inline] - pub unsafe fn get_mUnit(&self) -> &nsStyleUnit { &self.mUnit } - pub unsafe fn get_mUnit_mut(&mut self) -> &mut nsStyleUnit { - &mut self.mUnit - } - #[inline] - pub unsafe fn get_mValue(&self) -> &nsStyleUnion { &self.mValue } - pub unsafe fn get_mValue_mut(&mut self) -> &mut nsStyleUnion { - &mut self.mValue - } +impl Clone for LookAndFeelInt { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_CalcValue { - pub mLength: nscoord, - pub mPercent: f32, - pub mHasPercent: bool, +pub struct imgIContainer { + pub _address: u8, } -impl ::std::clone::Clone for nsStyleCoord_CalcValue { +impl Clone for imgIContainer { fn clone(&self) -> Self { *self } } -#[test] -fn bindgen_test_layout_nsStyleCoord_CalcValue() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_CalcValue>() , 12usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_CalcValue>() , 4usize); -} -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleCoord_Calc { - pub _base: nsStyleCoord_CalcValue, - pub mRefCnt: ThreadSafeAutoRefCnt, -} -#[test] -fn bindgen_test_layout_nsStyleCoord_Calc() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_Calc>() , 24usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_Calc>() , 8usize); -} -#[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleCoord_CoordConstructorType { CoordConstructor = 0, } -#[test] -fn bindgen_test_layout_nsStyleCoord() { - assert_eq!(::std::mem::size_of::<nsStyleCoord>() , 16usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord>() , 8usize); -} -/** - * Class that represents a set of top/right/bottom/left nsStyleCoords. - * This is commonly used to hold the widths of the borders, margins, - * or paddings of a box. - */ - /** <div rustbindgen private accessor="unsafe"></div> */ #[repr(C)] -#[derive(Debug)] -pub struct nsStyleSides { - mUnits: [nsStyleUnit; 4usize], - mValues: [nsStyleUnion; 4usize], -} -impl nsStyleSides { - #[inline] - pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 4usize] { &self.mUnits } - pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 4usize] { - &mut self.mUnits - } - #[inline] - pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 4usize] { - &self.mValues - } - pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 4usize] { - &mut self.mValues - } +#[derive(Debug, Copy)] +pub struct ImageURL { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStyleSides() { - assert_eq!(::std::mem::size_of::<nsStyleSides>() , 40usize); - assert_eq!(::std::mem::align_of::<nsStyleSides>() , 8usize); +impl Clone for ImageURL { + fn clone(&self) -> Self { *self } } -/** - * Class that represents a set of top-left/top-right/bottom-right/bottom-left - * nsStyleCoord pairs. This is used to hold the dimensions of the - * corners of a box (for, e.g., border-radius and outline-radius). - */ - /** <div rustbindgen private accessor="unsafe"></div> */ #[repr(C)] -#[derive(Debug)] -pub struct nsStyleCorners { - mUnits: [nsStyleUnit; 8usize], - mValues: [nsStyleUnion; 8usize], -} -impl nsStyleCorners { - #[inline] - pub unsafe fn get_mUnits(&self) -> &[nsStyleUnit; 8usize] { &self.mUnits } - pub unsafe fn get_mUnits_mut(&mut self) -> &mut [nsStyleUnit; 8usize] { - &mut self.mUnits - } - #[inline] - pub unsafe fn get_mValues(&self) -> &[nsStyleUnion; 8usize] { - &self.mValues - } - pub unsafe fn get_mValues_mut(&mut self) -> &mut [nsStyleUnion; 8usize] { - &mut self.mValues - } +#[derive(Debug, Copy)] +pub struct Image { + pub _address: u8, } -#[test] -fn bindgen_test_layout_nsStyleCorners() { - assert_eq!(::std::mem::size_of::<nsStyleCorners>() , 72usize); - assert_eq!(::std::mem::align_of::<nsStyleCorners>() , 8usize); +impl Clone for Image { + fn clone(&self) -> Self { *self } } -pub enum imgIContainer { } -pub enum imgINotificationObserver { } #[repr(C)] -pub struct imgIRequest { - pub _bindgen_opaque_blob: u64, +#[derive(Debug, Copy)] +pub struct ProgressTracker { + pub _address: u8, } -#[test] -fn bindgen_test_layout_imgIRequest() { - assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize); - assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize); +impl Clone for ProgressTracker { + fn clone(&self) -> Self { *self } } -pub enum imgStatusNotifyRunnable { } -pub enum ProxyBehaviour { } -pub enum Image { } -pub enum ImageURL { } -pub enum ProgressTracker { } #[repr(C)] -pub struct imgRequestProxy { - pub _bindgen_opaque_blob: [u64; 15usize], +#[derive(Debug, Copy)] +pub struct ProxyBehaviour { + pub _address: u8, } -#[test] -fn bindgen_test_layout_imgRequestProxy() { - assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize); - assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize); +impl Clone for ProxyBehaviour { + fn clone(&self) -> Self { *self } } #[repr(C)] -pub struct imgRequestProxyStatic { - pub _bindgen_opaque_blob: [u64; 16usize], +#[derive(Debug)] +pub struct nsStyleVisibility { + pub mImageOrientation: nsStyleImageOrientation, + pub mDirection: u8, + pub mVisible: u8, + pub mImageRendering: u8, + pub mWritingMode: u8, + pub mTextOrientation: u8, + pub mColorAdjust: u8, } #[test] -fn bindgen_test_layout_imgRequestProxyStatic() { - assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize); - assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize); +fn bindgen_test_layout_nsStyleVisibility() { + assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); + assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); } -pub enum nsStyleContext { } -pub enum nsTextFrame { } #[repr(C)] #[derive(Debug)] pub struct FragmentOrURL { @@ -5561,18 +9463,20 @@ fn bindgen_test_layout_FragmentOrURL() { #[repr(C)] #[derive(Debug, Copy)] pub struct Position { - pub mXPosition: nsStyleCoord_CalcValue, - pub mYPosition: nsStyleCoord_CalcValue, -} -impl ::std::clone::Clone for Position { - fn clone(&self) -> Self { *self } + pub mXPosition: Position_Coord, + pub mYPosition: Position_Coord, } +pub type Position_Coord = nsStyleCoord_CalcValue; #[test] fn bindgen_test_layout_Position() { assert_eq!(::std::mem::size_of::<Position>() , 24usize); assert_eq!(::std::mem::align_of::<Position>() , 4usize); } +impl Clone for Position { + fn clone(&self) -> Self { *self } +} #[repr(C)] +#[derive(Debug)] pub struct nsStyleFont { pub mFont: nsFont, pub mSize: nscoord, @@ -5620,13 +9524,14 @@ pub struct nsStyleGradient { pub mStops: nsTArray<nsStyleGradientStop>, pub mRefCnt: ThreadSafeAutoRefCnt, } +pub type nsStyleGradient_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsStyleGradient() { assert_eq!(::std::mem::size_of::<nsStyleGradient>() , 104usize); assert_eq!(::std::mem::align_of::<nsStyleGradient>() , 8usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageType { eStyleImageType_Null = 0, eStyleImageType_Image = 1, @@ -5634,9 +9539,10 @@ pub enum nsStyleImageType { eStyleImageType_Element = 3, } #[repr(C)] +#[derive(Debug)] pub struct CachedBorderImageData { pub mCachedSVGViewportSize: [u64; 2usize], - pub mSubImages: u64, + pub mSubImages: nsCOMArray<imgIContainer>, } #[test] fn bindgen_test_layout_CachedBorderImageData() { @@ -5654,46 +9560,32 @@ fn bindgen_test_layout_CachedBorderImageData() { * image of type (1)). */ #[repr(C)] +#[derive(Debug)] pub struct nsStyleImage { pub mCachedBIData: UniquePtr<CachedBorderImageData, DefaultDelete<CachedBorderImageData>>, pub mType: nsStyleImageType, - pub nsStyleImage_nsStyleStruct_h_unnamed_21: nsStyleImage_nsStyleStruct_h_unnamed_21, + pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_205690, pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleImage_nsStyleStruct_h_unnamed_21 { +pub struct nsStyleImage__bindgen_ty_bindgen_id_205690 { pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mGradient: __BindgenUnionField<*mut nsStyleGradient>, - pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, - pub _bindgen_data_: u64, -} -impl nsStyleImage_nsStyleStruct_h_unnamed_21 { - pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mGradient(&mut self) -> *mut *mut nsStyleGradient { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mElementId(&mut self) - -> *mut *mut ::std::os::raw::c_ushort { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_21 { - fn clone(&self) -> Self { *self } + pub mElementId: __BindgenUnionField<*mut u16>, + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_21() { - assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_21>() +fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_205690() { + assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_205690>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_21>() + assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_205690>() , 8usize); } +impl Clone for nsStyleImage__bindgen_ty_bindgen_id_205690 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleImage() { assert_eq!(::std::mem::size_of::<nsStyleImage>() , 32usize); @@ -5720,11 +9612,12 @@ pub struct nsStyleAutoArray<T> { pub mOtherElements: nsTArray<T>, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleAutoArray_WithSingleInitialElement { WITH_SINGLE_INITIAL_ELEMENT = 0, } #[repr(C)] +#[derive(Debug)] pub struct nsStyleImageLayers { pub mAttachmentCount: u32, pub mClipCount: u32, @@ -5740,8 +9633,8 @@ pub struct nsStyleImageLayers { pub mLayers: nsStyleAutoArray<nsStyleImageLayers_Layer>, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_22 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_205734 { shorthand = 0, color = 1, image = 2, @@ -5755,8 +9648,8 @@ pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_22 { maskMode = 10, composite = 11, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u8)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageLayers_LayerType { Background = 0, Mask = 1, } #[repr(C)] #[derive(Debug, Copy)] @@ -5771,9 +9664,6 @@ pub struct nsStyleImageLayers_Size { pub struct nsStyleImageLayers_Size_Dimension { pub _base: nsStyleCoord_CalcValue, } -impl ::std::clone::Clone for nsStyleImageLayers_Size_Dimension { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Size_Dimension>() , @@ -5781,8 +9671,11 @@ fn bindgen_test_layout_nsStyleImageLayers_Size_Dimension() { assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Size_Dimension>() , 4usize); } +impl Clone for nsStyleImageLayers_Size_Dimension { + fn clone(&self) -> Self { *self } +} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageLayers_Size_DimensionType { eContain = 0, eCover = 1, @@ -5790,29 +9683,30 @@ pub enum nsStyleImageLayers_Size_DimensionType { eLengthPercentage = 3, eDimensionType_COUNT = 4, } -impl ::std::clone::Clone for nsStyleImageLayers_Size { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Size() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Size>() , 28usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Size>() , 4usize); } +impl Clone for nsStyleImageLayers_Size { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] pub struct nsStyleImageLayers_Repeat { pub mXRepeat: u8, pub mYRepeat: u8, } -impl ::std::clone::Clone for nsStyleImageLayers_Repeat { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageLayers_Repeat() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Repeat>() , 2usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Repeat>() , 1usize); } +impl Clone for nsStyleImageLayers_Repeat { + fn clone(&self) -> Self { *self } +} #[repr(C)] +#[derive(Debug)] pub struct nsStyleImageLayers_Layer { pub mImage: nsStyleImage, pub mSourceURI: FragmentOrURL, @@ -5831,20 +9725,22 @@ fn bindgen_test_layout_nsStyleImageLayers_Layer() { assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Layer>() , 112usize); assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Layer>() , 8usize); } -#[test] -fn bindgen_test_layout_nsStyleImageLayers() { - assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 168usize); - assert_eq!(::std::mem::align_of::<nsStyleImageLayers>() , 8usize); -} extern "C" { #[link_name = "_ZN18nsStyleImageLayers21kBackgroundLayerTableE"] - pub static mut nsStyleImageLayers_consts_kBackgroundLayerTable: + pub static mut nsStyleImageLayers_kBackgroundLayerTable: *const nsCSSPropertyID; +} +extern "C" { #[link_name = "_ZN18nsStyleImageLayers15kMaskLayerTableE"] - pub static mut nsStyleImageLayers_consts_kMaskLayerTable: - *const nsCSSPropertyID; + pub static mut nsStyleImageLayers_kMaskLayerTable: *const nsCSSPropertyID; +} +#[test] +fn bindgen_test_layout_nsStyleImageLayers() { + assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 168usize); + assert_eq!(::std::mem::align_of::<nsStyleImageLayers>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleBackground { pub mImage: nsStyleImageLayers, pub mBackgroundColor: nscolor, @@ -5908,12 +9804,14 @@ pub struct nsCSSShadowArray { pub mLength: u32, pub mArray: [nsCSSShadowItem; 1usize], } +pub type nsCSSShadowArray_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsCSSShadowArray() { assert_eq!(::std::mem::size_of::<nsCSSShadowArray>() , 40usize); assert_eq!(::std::mem::align_of::<nsCSSShadowArray>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleBorder { pub mBorderColors: *mut *mut nsBorderColors, pub mBorderRadius: nsStyleCorners, @@ -5962,14 +9860,18 @@ fn bindgen_test_layout_nsStyleOutline() { #[derive(Debug)] pub struct nsStyleQuoteValues { pub mRefCnt: ThreadSafeAutoRefCnt, - pub mQuotePairs: nsTArray<pair<nsString, nsString>>, + pub mQuotePairs: nsStyleQuoteValues_QuotePairArray, } +pub type nsStyleQuoteValues_QuotePairArray = + nsTArray<pair<nsString, nsString>>; +pub type nsStyleQuoteValues_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_nsStyleQuoteValues() { assert_eq!(::std::mem::size_of::<nsStyleQuoteValues>() , 16usize); assert_eq!(::std::mem::align_of::<nsStyleQuoteValues>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleList { pub mListStylePosition: u8, pub mCounterStyle: RefPtr<CounterStyle>, @@ -5977,18 +9879,19 @@ pub struct nsStyleList { pub mQuotes: RefPtr<nsStyleQuoteValues>, pub mImageRegion: nsRect, } -#[test] -fn bindgen_test_layout_nsStyleList() { - assert_eq!(::std::mem::size_of::<nsStyleList>() , 48usize); - assert_eq!(::std::mem::align_of::<nsStyleList>() , 8usize); -} extern "C" { #[link_name = "_ZN11nsStyleList14sInitialQuotesE"] - pub static mut nsStyleList_consts_sInitialQuotes: + pub static mut nsStyleList_sInitialQuotes: StaticRefPtr<nsStyleQuoteValues>; +} +extern "C" { #[link_name = "_ZN11nsStyleList11sNoneQuotesE"] - pub static mut nsStyleList_consts_sNoneQuotes: - StaticRefPtr<nsStyleQuoteValues>; + pub static mut nsStyleList_sNoneQuotes: StaticRefPtr<nsStyleQuoteValues>; +} +#[test] +fn bindgen_test_layout_nsStyleList() { + assert_eq!(::std::mem::size_of::<nsStyleList>() , 48usize); + assert_eq!(::std::mem::align_of::<nsStyleList>() , 8usize); } #[repr(C)] #[derive(Debug)] @@ -5997,17 +9900,19 @@ pub struct nsStyleGridLine { pub mInteger: i32, pub mLineName: nsString, } +extern "C" { + #[link_name = "_ZN15nsStyleGridLine8kMinLineE"] + pub static nsStyleGridLine_kMinLine: i32; +} +extern "C" { + #[link_name = "_ZN15nsStyleGridLine8kMaxLineE"] + pub static nsStyleGridLine_kMaxLine: i32; +} #[test] fn bindgen_test_layout_nsStyleGridLine() { assert_eq!(::std::mem::size_of::<nsStyleGridLine>() , 24usize); assert_eq!(::std::mem::align_of::<nsStyleGridLine>() , 8usize); } -extern "C" { - #[link_name = "_ZN15nsStyleGridLine8kMinLineE"] - pub static nsStyleGridLine_consts_kMinLine: ::std::os::raw::c_int; - #[link_name = "_ZN15nsStyleGridLine8kMaxLineE"] - pub static nsStyleGridLine_consts_kMaxLine: ::std::os::raw::c_int; -} #[repr(C)] #[derive(Debug)] pub struct nsStyleGridTemplate { @@ -6019,35 +9924,37 @@ pub struct nsStyleGridTemplate { pub mRepeatAutoIndex: i16, pub _bitfield_1: u8, } +#[test] +fn bindgen_test_layout_nsStyleGridTemplate() { + assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize); + assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize); +} impl nsStyleGridTemplate { #[inline] - pub fn mIsAutoFill(&self) -> u8 { - (self._bitfield_1 & (1usize as u8)) >> 0usize + pub fn mIsAutoFill(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u8)) >> + 0u32) as u8) + } } #[inline] pub fn set_mIsAutoFill(&mut self, val: bool) { self._bitfield_1 &= !(1usize as u8); - self._bitfield_1 |= ((val as u8) << 0usize) & (1usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 0u32) & (1usize as u8); } #[inline] - pub fn mIsSubgrid(&self) -> u8 { - (self._bitfield_1 & (2usize as u8)) >> 1usize + pub fn mIsSubgrid(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u8)) >> + 1u32) as u8) + } } #[inline] pub fn set_mIsSubgrid(&mut self, val: bool) { self._bitfield_1 &= !(2usize as u8); - self._bitfield_1 |= ((val as u8) << 1usize) & (2usize as u8); - } - #[inline] - pub fn new_bitfield_1(mIsAutoFill: bool, mIsSubgrid: bool) -> u8 { - 0 | ((mIsAutoFill as u8) << 0u32) | ((mIsSubgrid as u8) << 1u32) + self._bitfield_1 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } } -#[test] -fn bindgen_test_layout_nsStyleGridTemplate() { - assert_eq!(::std::mem::size_of::<nsStyleGridTemplate>() , 48usize); - assert_eq!(::std::mem::align_of::<nsStyleGridTemplate>() , 8usize); -} #[repr(C)] #[derive(Debug)] pub struct nsStylePosition { @@ -6164,121 +10071,109 @@ pub struct nsStyleText { pub mTextShadow: RefPtr<nsCSSShadowArray>, pub mTextEmphasisStyleString: nsString, } +#[test] +fn bindgen_test_layout_nsStyleText() { + assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize); + assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize); +} impl nsStyleText { #[inline] - pub fn mTextAlignTrue(&self) -> u8 { - (self._bitfield_1 & (1usize as u8)) >> 0usize + pub fn mTextAlignTrue(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (1usize as u8)) >> + 0u32) as u8) + } } #[inline] pub fn set_mTextAlignTrue(&mut self, val: bool) { self._bitfield_1 &= !(1usize as u8); - self._bitfield_1 |= ((val as u8) << 0usize) & (1usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 0u32) & (1usize as u8); } #[inline] - pub fn mTextAlignLastTrue(&self) -> u8 { - (self._bitfield_1 & (2usize as u8)) >> 1usize + pub fn mTextAlignLastTrue(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (2usize as u8)) >> + 1u32) as u8) + } } #[inline] pub fn set_mTextAlignLastTrue(&mut self, val: bool) { self._bitfield_1 &= !(2usize as u8); - self._bitfield_1 |= ((val as u8) << 1usize) & (2usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 1u32) & (2usize as u8); } #[inline] - pub fn mTextEmphasisColorForeground(&self) -> u8 { - (self._bitfield_1 & (4usize as u8)) >> 2usize + pub fn mTextEmphasisColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (4usize as u8)) >> + 2u32) as u8) + } } #[inline] pub fn set_mTextEmphasisColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(4usize as u8); - self._bitfield_1 |= ((val as u8) << 2usize) & (4usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 2u32) & (4usize as u8); } #[inline] - pub fn mWebkitTextFillColorForeground(&self) -> u8 { - (self._bitfield_1 & (8usize as u8)) >> 3usize + pub fn mWebkitTextFillColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (8usize as u8)) >> + 3u32) as u8) + } } #[inline] pub fn set_mWebkitTextFillColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(8usize as u8); - self._bitfield_1 |= ((val as u8) << 3usize) & (8usize as u8); + self._bitfield_1 |= ((val as u8 as u8) << 3u32) & (8usize as u8); } #[inline] - pub fn mWebkitTextStrokeColorForeground(&self) -> u8 { - (self._bitfield_1 & (16usize as u8)) >> 4usize + pub fn mWebkitTextStrokeColorForeground(&self) -> bool { + unsafe { + ::std::mem::transmute(((self._bitfield_1 & (16usize as u8)) >> + 4u32) as u8) + } } #[inline] pub fn set_mWebkitTextStrokeColorForeground(&mut self, val: bool) { self._bitfield_1 &= !(16usize as u8); - self._bitfield_1 |= ((val as u8) << 4usize) & (16usize as u8); - } - #[inline] - pub fn new_bitfield_1(mTextAlignTrue: bool, mTextAlignLastTrue: bool, - mTextEmphasisColorForeground: bool, - mWebkitTextFillColorForeground: bool, - mWebkitTextStrokeColorForeground: bool) -> u8 { - 0 | ((mTextAlignTrue as u8) << 0u32) | - ((mTextAlignLastTrue as u8) << 1u32) | - ((mTextEmphasisColorForeground as u8) << 2u32) | - ((mWebkitTextFillColorForeground as u8) << 3u32) | - ((mWebkitTextStrokeColorForeground as u8) << 4u32) + self._bitfield_1 |= ((val as u8 as u8) << 4u32) & (16usize as u8); } } -#[test] -fn bindgen_test_layout_nsStyleText() { - assert_eq!(::std::mem::size_of::<nsStyleText>() , 136usize); - assert_eq!(::std::mem::align_of::<nsStyleText>() , 8usize); -} #[repr(C)] #[derive(Debug, Copy)] pub struct nsStyleImageOrientation { pub mOrientation: u8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageOrientation_Bits { ORIENTATION_MASK = 3, FLIP_MASK = 4, FROM_IMAGE_MASK = 8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleImageOrientation_Angles { ANGLE_0 = 0, ANGLE_90 = 1, ANGLE_180 = 2, ANGLE_270 = 3, } -impl ::std::clone::Clone for nsStyleImageOrientation { - fn clone(&self) -> Self { *self } -} #[test] fn bindgen_test_layout_nsStyleImageOrientation() { assert_eq!(::std::mem::size_of::<nsStyleImageOrientation>() , 1usize); assert_eq!(::std::mem::align_of::<nsStyleImageOrientation>() , 1usize); } -#[repr(C)] -#[derive(Debug)] -pub struct nsStyleVisibility { - pub mImageOrientation: nsStyleImageOrientation, - pub mDirection: u8, - pub mVisible: u8, - pub mImageRendering: u8, - pub mWritingMode: u8, - pub mTextOrientation: u8, - pub mColorAdjust: u8, -} -#[test] -fn bindgen_test_layout_nsStyleVisibility() { - assert_eq!(::std::mem::size_of::<nsStyleVisibility>() , 7usize); - assert_eq!(::std::mem::align_of::<nsStyleVisibility>() , 1usize); +impl Clone for nsStyleImageOrientation { + fn clone(&self) -> Self { *self } } #[repr(C)] #[derive(Debug, Copy)] pub struct nsTimingFunction { pub mType: nsTimingFunction_Type, - pub nsTimingFunction_nsStyleStruct_h_unnamed_23: nsTimingFunction_nsStyleStruct_h_unnamed_23, + pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_207493, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsTimingFunction_Type { Ease = 0, Linear = 1, @@ -6290,75 +10185,60 @@ pub enum nsTimingFunction_Type { CubicBezier = 7, } #[repr(i32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23 { - pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>, - pub nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>, - pub _bindgen_data_: [u32; 4usize], -} -impl nsTimingFunction_nsStyleStruct_h_unnamed_23 { - pub unsafe fn mFunc(&mut self) - -> - *mut nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25(&mut self) - -> - *mut nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_23 { - fn clone(&self) -> Self { *self } -} -#[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23>() - , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23>() - , 4usize); +pub struct nsTimingFunction__bindgen_ty_bindgen_id_207493 { + pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>, + pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>, + pub bindgen_union_field: [u32; 4usize], } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { +pub struct nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494 { pub mX1: f32, pub mY1: f32, pub mX2: f32, pub mY2: f32, } -impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24 { - fn clone(&self) -> Self { *self } -} #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_24>() + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>() , 4usize); } +impl Clone for + nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494 + { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { +pub struct nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505 { pub mSteps: u32, } -impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25 { +#[test] +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>() + , 4usize); + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>() + , 4usize); +} +impl Clone for + nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505 + { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>() - , 4usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_23_nsStyleStruct_h_unnamed_25>() +fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493() { + assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493>() + , 16usize); + assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493>() , 4usize); } -impl ::std::clone::Clone for nsTimingFunction { +impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_207493 { fn clone(&self) -> Self { *self } } #[test] @@ -6366,6 +10246,9 @@ fn bindgen_test_layout_nsTimingFunction() { assert_eq!(::std::mem::size_of::<nsTimingFunction>() , 20usize); assert_eq!(::std::mem::align_of::<nsTimingFunction>() , 4usize); } +impl Clone for nsTimingFunction { + fn clone(&self) -> Self { *self } +} #[repr(C)] #[derive(Debug)] pub struct StyleTransition { @@ -6407,6 +10290,7 @@ pub struct StyleBasicShape { pub mPosition: Position, pub mRadius: nsStyleCorners, } +pub type StyleBasicShape_HasThreadSafeRefCnt = TrueType; #[test] fn bindgen_test_layout_StyleBasicShape() { assert_eq!(::std::mem::size_of::<StyleBasicShape>() , 120usize); @@ -6415,92 +10299,21 @@ fn bindgen_test_layout_StyleBasicShape() { #[repr(C)] #[derive(Debug)] pub struct StyleShapeSource<ReferenceBox> { - pub StyleShapeSource_nsStyleStruct_h_unnamed_26: StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox>, + pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_207876<ReferenceBox>, pub mType: StyleShapeSourceType, pub mReferenceBox: ReferenceBox, } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox> { +pub struct StyleShapeSource__bindgen_ty_bindgen_id_207876<ReferenceBox> { pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>, pub mURL: __BindgenUnionField<*mut FragmentOrURL>, - pub _bindgen_data_: u64, - pub _phantom0: ::std::marker::PhantomData<ReferenceBox>, -} -impl <ReferenceBox> StyleShapeSource_nsStyleStruct_h_unnamed_26<ReferenceBox> - { - pub unsafe fn mBasicShape(&mut self) -> *mut *mut StyleBasicShape { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mURL(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } + pub bindgen_union_field: u64, + pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>, } pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>; pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>; #[repr(C)] -pub struct nsStyleDisplay { - pub mBinding: RefPtr<URLValue>, - pub mDisplay: StyleDisplay, - pub mOriginalDisplay: StyleDisplay, - pub mContain: u8, - pub mAppearance: u8, - pub mPosition: u8, - pub mFloat: StyleFloat, - pub mOriginalFloat: StyleFloat, - pub mBreakType: StyleClear, - pub mBreakInside: u8, - pub mBreakBefore: bool, - pub mBreakAfter: bool, - pub mOverflowX: u8, - pub mOverflowY: u8, - pub mOverflowClipBox: u8, - pub mResize: u8, - pub mOrient: u8, - pub mIsolation: u8, - pub mTopLayer: u8, - pub mWillChangeBitField: u8, - pub mWillChange: nsTArray<nsString>, - pub mTouchAction: u8, - pub mScrollBehavior: u8, - pub mScrollSnapTypeX: u8, - pub mScrollSnapTypeY: u8, - pub mScrollSnapPointsX: nsStyleCoord, - pub mScrollSnapPointsY: nsStyleCoord, - pub mScrollSnapDestination: Position, - pub mScrollSnapCoordinate: nsTArray<Position>, - pub mBackfaceVisibility: u8, - pub mTransformStyle: u8, - pub mTransformBox: u8, - pub mSpecifiedTransform: RefPtr<nsCSSValueSharedList>, - pub mTransformOrigin: [nsStyleCoord; 3usize], - pub mChildPerspective: nsStyleCoord, - pub mPerspectiveOrigin: [nsStyleCoord; 2usize], - pub mVerticalAlign: nsStyleCoord, - pub mTransitions: nsStyleAutoArray<StyleTransition>, - pub mTransitionTimingFunctionCount: u32, - pub mTransitionDurationCount: u32, - pub mTransitionDelayCount: u32, - pub mTransitionPropertyCount: u32, - pub mAnimations: nsStyleAutoArray<StyleAnimation>, - pub mAnimationTimingFunctionCount: u32, - pub mAnimationDurationCount: u32, - pub mAnimationDelayCount: u32, - pub mAnimationNameCount: u32, - pub mAnimationDirectionCount: u32, - pub mAnimationFillModeCount: u32, - pub mAnimationPlayStateCount: u32, - pub mAnimationIterationCountCount: u32, - pub mShapeOutside: StyleShapeOutside, -} -#[test] -fn bindgen_test_layout_nsStyleDisplay() { - assert_eq!(::std::mem::size_of::<nsStyleDisplay>() , 424usize); - assert_eq!(::std::mem::align_of::<nsStyleDisplay>() , 8usize); -} -#[repr(C)] #[derive(Debug)] pub struct nsStyleTable { pub mLayoutStrategy: u8, @@ -6526,7 +10339,7 @@ fn bindgen_test_layout_nsStyleTableBorder() { assert_eq!(::std::mem::align_of::<nsStyleTableBorder>() , 4usize); } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleContentType { eStyleContentType_String = 1, eStyleContentType_Image = 10, @@ -6544,40 +10357,26 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_27, + pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_207960, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleContentData_nsStyleStruct_h_unnamed_27 { - pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, +pub struct nsStyleContentData__bindgen_ty_bindgen_id_207960 { + pub mString: __BindgenUnionField<*mut u16>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>, - pub mCounters: __BindgenUnionField<*mut Array>, - pub _bindgen_data_: u64, -} -impl nsStyleContentData_nsStyleStruct_h_unnamed_27 { - pub unsafe fn mString(&mut self) -> *mut *mut ::std::os::raw::c_ushort { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mImage(&mut self) -> *mut *mut imgRequestProxy { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mCounters(&mut self) -> *mut *mut Array { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_27 { - fn clone(&self) -> Self { *self } + pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>, + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_27() { - assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_27>() +fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_207960() { + assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_207960>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_27>() + assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_207960>() , 8usize); } +impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_207960 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleContentData() { assert_eq!(::std::mem::size_of::<nsStyleContentData>() , 16usize); @@ -6622,6 +10421,7 @@ fn bindgen_test_layout_nsStyleUIReset() { assert_eq!(::std::mem::align_of::<nsStyleUIReset>() , 1usize); } #[repr(C)] +#[derive(Debug)] pub struct nsCursorImage { pub mHaveHotspot: bool, pub mHotspotX: f32, @@ -6678,17 +10478,17 @@ pub struct nsStyleColumn { pub mColumnRuleWidth: nscoord, pub mTwipsPerPixel: nscoord, } +extern "C" { + #[link_name = "_ZN13nsStyleColumn15kMaxColumnCountE"] + pub static nsStyleColumn_kMaxColumnCount: u32; +} #[test] fn bindgen_test_layout_nsStyleColumn() { assert_eq!(::std::mem::size_of::<nsStyleColumn>() , 56usize); assert_eq!(::std::mem::align_of::<nsStyleColumn>() , 8usize); } -extern "C" { - #[link_name = "_ZN13nsStyleColumn15kMaxColumnCountE"] - pub static nsStyleColumn_consts_kMaxColumnCount: ::std::os::raw::c_uint; -} #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsStyleSVGPaintType { eStyleSVGPaintType_None = 1, eStyleSVGPaintType_Color = 2, @@ -6696,47 +10496,30 @@ pub enum nsStyleSVGPaintType { eStyleSVGPaintType_ContextFill = 4, eStyleSVGPaintType_ContextStroke = 5, } -#[repr(i8)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVGOpacitySource { - eStyleSVGOpacitySource_Normal = 0, - eStyleSVGOpacitySource_ContextFillOpacity = 1, - eStyleSVGOpacitySource_ContextStrokeOpacity = 2, -} #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_28, + pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_208357, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { +pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_208357 { pub mColor: __BindgenUnionField<nscolor>, pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>, - pub _bindgen_data_: u64, -} -impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { - pub unsafe fn mColor(&mut self) -> *mut nscolor { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mPaintServer(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_28 { - fn clone(&self) -> Self { *self } + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_28() { - assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_28>() +fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_208357() { + assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_208357>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_28>() + assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_208357>() , 8usize); } +impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_208357 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleSVGPaint() { assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize); @@ -6768,8 +10551,8 @@ pub struct nsStyleSVG { pub mContextFlags: u8, } #[repr(u32)] -#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVG_nsStyleStruct_h_unnamed_29 { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum nsStyleSVG__bindgen_ty_bindgen_id_208534 { FILL_OPACITY_SOURCE_MASK = 3, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -6788,41 +10571,32 @@ fn bindgen_test_layout_nsStyleSVG() { pub struct nsStyleFilter { pub mType: i32, pub mFilterParameter: nsStyleCoord, - pub nsStyleFilter_nsStyleStruct_h_unnamed_30: nsStyleFilter_nsStyleStruct_h_unnamed_30, + pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_208600, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleFilter_nsStyleStruct_h_unnamed_30 { +pub struct nsStyleFilter__bindgen_ty_bindgen_id_208600 { pub mURL: __BindgenUnionField<*mut FragmentOrURL>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, - pub _bindgen_data_: u64, -} -impl nsStyleFilter_nsStyleStruct_h_unnamed_30 { - pub unsafe fn mURL(&mut self) -> *mut *mut FragmentOrURL { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } - pub unsafe fn mDropShadow(&mut self) -> *mut *mut nsCSSShadowArray { - let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); - ::std::mem::transmute(raw.offset(0)) - } -} -impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_30 { - fn clone(&self) -> Self { *self } + pub bindgen_union_field: u64, } #[test] -fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_30() { - assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_30>() +fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_208600() { + assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_208600>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_30>() + assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_208600>() , 8usize); } +impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_208600 { + fn clone(&self) -> Self { *self } +} #[test] fn bindgen_test_layout_nsStyleFilter() { assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize); assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleSVGReset { pub mMask: nsStyleImageLayers, pub mClipPath: StyleClipPath, @@ -6841,6 +10615,7 @@ fn bindgen_test_layout_nsStyleSVGReset() { assert_eq!(::std::mem::align_of::<nsStyleSVGReset>() , 8usize); } #[repr(C)] +#[derive(Debug)] pub struct nsStyleVariables { pub mVariables: CSSVariableValues, } @@ -6865,19 +10640,77 @@ fn bindgen_test_layout_nsStyleEffects() { assert_eq!(::std::mem::align_of::<nsStyleEffects>() , 8usize); } /** - * <div rustbindgen="true" replaces="nsSize"> + * <div rustbindgen="true" replaces="nsMargin"> */ #[repr(C)] #[derive(Debug, Copy)] -pub struct nsSize { +pub struct nsMargin { + pub top: nscoord, + pub right: nscoord, + pub bottom: nscoord, + pub left: nscoord, +} +#[test] +fn bindgen_test_layout_nsMargin() { + assert_eq!(::std::mem::size_of::<nsMargin>() , 16usize); + assert_eq!(::std::mem::align_of::<nsMargin>() , 4usize); +} +impl Clone for nsMargin { + fn clone(&self) -> Self { *self } +} +/** + * <div rustbindgen="true" replaces="nsRect"> + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsRect { + pub x: nscoord, + pub y: nscoord, pub width: nscoord, pub height: nscoord, } -impl ::std::clone::Clone for nsSize { +#[test] +fn bindgen_test_layout_nsRect() { + assert_eq!(::std::mem::size_of::<nsRect>() , 16usize); + assert_eq!(::std::mem::align_of::<nsRect>() , 4usize); +} +impl Clone for nsRect { fn clone(&self) -> Self { *self } } +/** + * <div rustbindgen="true" replaces="nsSize"> + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsSize { + pub width: nscoord, + pub height: nscoord, +} #[test] fn bindgen_test_layout_nsSize() { assert_eq!(::std::mem::size_of::<nsSize>() , 8usize); assert_eq!(::std::mem::align_of::<nsSize>() , 4usize); } +impl Clone for nsSize { + fn clone(&self) -> Self { *self } +} +/** + * <div rustbindgen="true" replaces="UniquePtr"> + * + * TODO(Emilio): This is a workaround and we should be able to get rid of this + * one. + */ +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct UniquePtr<T, Deleter> { + pub mPtr: *mut T, + pub _phantom_1: ::std::marker::PhantomData<Deleter>, +} +/** + * <div rustbindgen replaces="nsTArray"></div> + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsTArray<T> { + pub mBuffer: *mut T, +} diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 6241616746a..d6d8865363b 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -32,7 +32,7 @@ use std::sync::{Arc, Mutex}; use std::sync::atomic::{AtomicBool, AtomicPtr, Ordering}; use style::arc_ptr_eq; use style::context::{LocalStyleContextCreationInfo, ReflowGoal, SharedStyleContext}; -use style::dom::{TDocument, TElement, TNode}; +use style::dom::{NodeInfo, TDocument, TElement, TNode}; use style::error_reporting::StdoutErrorReporter; use style::gecko_selector_impl::{GeckoSelectorImpl, PseudoElement}; use style::parallel; @@ -121,16 +121,6 @@ pub extern "C" fn Servo_RestyleSubtree(node: RawGeckoNodeBorrowed, } #[no_mangle] -pub extern "C" fn Servo_RestyleDocument(doc: RawGeckoDocumentBorrowed, raw_data: RawServoStyleSetBorrowedMut) -> () { - let document = GeckoDocument(doc); - let node = match document.root_node() { - Some(x) => x, - None => return, - }; - restyle_subtree(node, raw_data); -} - -#[no_mangle] pub extern "C" fn Servo_StyleWorkerThreadCount() -> u32 { *NUM_THREADS as u32 } diff --git a/ports/geckolib/string_cache/lib.rs b/ports/geckolib/string_cache/lib.rs index 3515331c174..69f31d986e9 100644 --- a/ports/geckolib/string_cache/lib.rs +++ b/ports/geckolib/string_cache/lib.rs @@ -28,6 +28,7 @@ use std::ops::Deref; use std::slice; #[macro_use] +#[allow(improper_ctypes)] pub mod atom_macro; pub mod namespace; diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs index ed2da6f48b1..8255c13755c 100644 --- a/ports/geckolib/wrapper.rs +++ b/ports/geckolib/wrapper.rs @@ -39,8 +39,8 @@ use std::ops::BitOr; use std::ptr; use std::sync::Arc; use style::data::PrivateStyleData; +use style::dom::{LayoutIterator, NodeInfo, TDocument, TElement, TNode, TRestyleDamage, UnsafeNode}; use style::dom::{OpaqueNode, PresentationalHintsSynthetizer}; -use style::dom::{TDocument, TElement, TNode, TRestyleDamage, UnsafeNode}; use style::element_state::ElementState; use style::error_reporting::StdoutErrorReporter; use style::gecko_selector_impl::{GeckoSelectorImpl, NonTSPseudoClass, PseudoElement}; @@ -125,6 +125,19 @@ impl BitOr for GeckoRestyleDamage { } +impl<'ln> NodeInfo for GeckoNode<'ln> { + fn is_element(&self) -> bool { + unsafe { + Gecko_NodeIsElement(self.0) + } + } + + fn is_text_node(&self) -> bool { + unsafe { + Gecko_IsTextNode(self.0) + } + } +} impl<'ln> TNode for GeckoNode<'ln> { type ConcreteDocument = GeckoDocument<'ln>; @@ -140,18 +153,6 @@ impl<'ln> TNode for GeckoNode<'ln> { GeckoNode(&*(n.0 as *mut RawGeckoNode)) } - fn is_text_node(&self) -> bool { - unsafe { - Gecko_IsTextNode(self.0) - } - } - - fn is_element(&self) -> bool { - unsafe { - Gecko_NodeIsElement(self.0) - } - } - fn dump(self) { unimplemented!() } @@ -160,12 +161,12 @@ impl<'ln> TNode for GeckoNode<'ln> { unimplemented!() } - fn children(self) -> GeckoChildrenIterator<'ln> { + fn children(self) -> LayoutIterator<GeckoChildrenIterator<'ln>> { let maybe_iter = unsafe { Gecko_MaybeCreateStyleChildrenIterator(self.0) }; if let Some(iter) = maybe_iter.into_owned_opt() { - GeckoChildrenIterator::GeckoIterator(iter) + LayoutIterator(GeckoChildrenIterator::GeckoIterator(iter)) } else { - GeckoChildrenIterator::Current(self.first_child()) + LayoutIterator(GeckoChildrenIterator::Current(self.first_child())) } } diff --git a/resources/servo.css b/resources/servo.css index 858d59226c2..0c4bbeca12d 100644 --- a/resources/servo.css +++ b/resources/servo.css @@ -165,3 +165,7 @@ details[open]::-servo-details-summary { svg > * { display: none; } + +*|*::-servo-input-text { + margin: 0; +} diff --git a/rust-nightly-date b/rust-nightly-date index b9b22d99d6d..253cff71b29 100644 --- a/rust-nightly-date +++ b/rust-nightly-date @@ -1 +1 @@ -2016-09-15 +2016-09-21 diff --git a/tests/unit/style/properties/serialization.rs b/tests/unit/style/properties/serialization.rs index c43fc5e93c1..add62581f61 100644 --- a/tests/unit/style/properties/serialization.rs +++ b/tests/unit/style/properties/serialization.rs @@ -742,7 +742,7 @@ mod shorthand_serialization { let size = single_vec_variant_value!(size, size::single_value::SpecifiedValue::Explicit( - size::single_value::SpecifiedExplicitSize { + size::single_value::ExplicitSize { width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)), height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32)) } @@ -797,7 +797,7 @@ mod shorthand_serialization { let size = single_vec_variant_value!(size, size::single_value::SpecifiedValue::Explicit( - size::single_value::SpecifiedExplicitSize { + size::single_value::ExplicitSize { width: LengthOrPercentageOrAuto::Length(Length::from_px(70f32)), height: LengthOrPercentageOrAuto::Length(Length::from_px(50f32)) } diff --git a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-round.htm.ini b/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-round.htm.ini deleted file mode 100644 index 21ec9e6a448..00000000000 --- a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-round.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[background-repeat-round.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-space.htm.ini b/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-space.htm.ini deleted file mode 100644 index e861ddaea9d..00000000000 --- a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-repeat-space.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[background-repeat-space.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-size-025.htm.ini b/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-size-025.htm.ini deleted file mode 100644 index 6fec403d3b0..00000000000 --- a/tests/wpt/metadata-css/css-backgrounds-3_dev/html4/background-size-025.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[background-size-025.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flex-vertical-align-effect.htm.ini b/tests/wpt/metadata-css/css-flexbox-1_dev/html/flex-vertical-align-effect.htm.ini deleted file mode 100644 index 0d1de654630..00000000000 --- a/tests/wpt/metadata-css/css-flexbox-1_dev/html/flex-vertical-align-effect.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[flex-vertical-align-effect.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini index 9f6700111c5..99cce5caae3 100644 --- a/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini +++ b/tests/wpt/metadata/FileAPI/blob/Blob-constructor.html.ini @@ -16,10 +16,6 @@ expected: FAIL bug: https://github.com/servo/servo/issues/10911 - [Passing an platform object that supports indexed properties as the blobParts array should work (select).] - expected: FAIL - bug: https://github.com/servo/servo/issues/11763 - [Passing a FrozenArray as the blobParts array should work (FrozenArray<MessagePort>).] expected: FAIL bug: https://github.com/servo/servo/issues/7457 diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index ad6f50c06f5..93cdc730d5e 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -37505,6 +37505,18 @@ "path": "html/semantics/forms/the-input-element/minlength.html", "url": "/html/semantics/forms/the-input-element/minlength.html" } + ], + "html/semantics/scripting-1/the-script-element/script-crossorigin-network.html": [ + { + "path": "html/semantics/scripting-1/the-script-element/script-crossorigin-network.html", + "url": "/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html" + } + ], + "html/semantics/scripting-1/the-script-element/script-crossorigin.html": [ + { + "path": "html/semantics/scripting-1/the-script-element/script-crossorigin.html", + "url": "/html/semantics/scripting-1/the-script-element/script-crossorigin.html" + } ] } }, diff --git a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini index 896fdc48351..715e7fa9097 100644 --- a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini @@ -1,6 +1,242 @@ [digest.worker] type: testharness - expected: ERROR [SHA-1 with empty source data] - expected: NOTRUN + expected: FAIL + + [sha-1 with empty source data] + expected: FAIL + + [Sha-1 with empty source data] + expected: FAIL + + [SHA-1 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-256 with empty source data] + expected: FAIL + + [sha-256 with empty source data] + expected: FAIL + + [Sha-256 with empty source data] + expected: FAIL + + [SHA-256 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-384 with empty source data] + expected: FAIL + + [sha-384 with empty source data] + expected: FAIL + + [Sha-384 with empty source data] + expected: FAIL + + [SHA-384 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-512 with empty source data] + expected: FAIL + + [sha-512 with empty source data] + expected: FAIL + + [Sha-512 with empty source data] + expected: FAIL + + [SHA-512 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-1 with short source data] + expected: FAIL + + [sha-1 with short source data] + expected: FAIL + + [Sha-1 with short source data] + expected: FAIL + + [SHA-1 with short source data and altered buffer after call] + expected: FAIL + + [SHA-256 with short source data] + expected: FAIL + + [sha-256 with short source data] + expected: FAIL + + [Sha-256 with short source data] + expected: FAIL + + [SHA-256 with short source data and altered buffer after call] + expected: FAIL + + [SHA-384 with short source data] + expected: FAIL + + [sha-384 with short source data] + expected: FAIL + + [Sha-384 with short source data] + expected: FAIL + + [SHA-384 with short source data and altered buffer after call] + expected: FAIL + + [SHA-512 with short source data] + expected: FAIL + + [sha-512 with short source data] + expected: FAIL + + [Sha-512 with short source data] + expected: FAIL + + [SHA-512 with short source data and altered buffer after call] + expected: FAIL + + [SHA-1 with medium source data] + expected: FAIL + + [sha-1 with medium source data] + expected: FAIL + + [Sha-1 with medium source data] + expected: FAIL + + [SHA-1 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-256 with medium source data] + expected: FAIL + + [sha-256 with medium source data] + expected: FAIL + + [Sha-256 with medium source data] + expected: FAIL + + [SHA-256 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-384 with medium source data] + expected: FAIL + + [sha-384 with medium source data] + expected: FAIL + + [Sha-384 with medium source data] + expected: FAIL + + [SHA-384 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-512 with medium source data] + expected: FAIL + + [sha-512 with medium source data] + expected: FAIL + + [Sha-512 with medium source data] + expected: FAIL + + [SHA-512 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-1 with long source data] + expected: FAIL + + [sha-1 with long source data] + expected: FAIL + + [Sha-1 with long source data] + expected: FAIL + + [SHA-1 with long source data and altered buffer after call] + expected: FAIL + + [SHA-256 with long source data] + expected: FAIL + + [sha-256 with long source data] + expected: FAIL + + [Sha-256 with long source data] + expected: FAIL + + [SHA-256 with long source data and altered buffer after call] + expected: FAIL + + [SHA-384 with long source data] + expected: FAIL + + [sha-384 with long source data] + expected: FAIL + + [Sha-384 with long source data] + expected: FAIL + + [SHA-384 with long source data and altered buffer after call] + expected: FAIL + + [SHA-512 with long source data] + expected: FAIL + + [sha-512 with long source data] + expected: FAIL + + [Sha-512 with long source data] + expected: FAIL + + [SHA-512 with long source data and altered buffer after call] + expected: FAIL + + [AES-GCM with empty] + expected: FAIL + + [RSA-OAEP with empty] + expected: FAIL + + [PBKDF2 with empty] + expected: FAIL + + [AES-KW with empty] + expected: FAIL + + [AES-GCM with short] + expected: FAIL + + [RSA-OAEP with short] + expected: FAIL + + [PBKDF2 with short] + expected: FAIL + + [AES-KW with short] + expected: FAIL + + [AES-GCM with medium] + expected: FAIL + + [RSA-OAEP with medium] + expected: FAIL + + [PBKDF2 with medium] + expected: FAIL + + [AES-KW with medium] + expected: FAIL + + [AES-GCM with long] + expected: FAIL + + [RSA-OAEP with long] + expected: FAIL + + [PBKDF2 with long] + expected: FAIL + + [AES-KW with long] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/digest/test_digest.html.ini b/tests/wpt/metadata/WebCryptoAPI/digest/test_digest.html.ini index 5919ea90676..f62ab02d06e 100644 --- a/tests/wpt/metadata/WebCryptoAPI/digest/test_digest.html.ini +++ b/tests/wpt/metadata/WebCryptoAPI/digest/test_digest.html.ini @@ -1,6 +1,242 @@ [test_digest.html] type: testharness - expected: ERROR [SHA-1 with empty source data] - expected: NOTRUN + expected: FAIL + + [sha-1 with empty source data] + expected: FAIL + + [Sha-1 with empty source data] + expected: FAIL + + [SHA-1 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-256 with empty source data] + expected: FAIL + + [sha-256 with empty source data] + expected: FAIL + + [Sha-256 with empty source data] + expected: FAIL + + [SHA-256 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-384 with empty source data] + expected: FAIL + + [sha-384 with empty source data] + expected: FAIL + + [Sha-384 with empty source data] + expected: FAIL + + [SHA-384 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-512 with empty source data] + expected: FAIL + + [sha-512 with empty source data] + expected: FAIL + + [Sha-512 with empty source data] + expected: FAIL + + [SHA-512 with empty source data and altered buffer after call] + expected: FAIL + + [SHA-1 with short source data] + expected: FAIL + + [sha-1 with short source data] + expected: FAIL + + [Sha-1 with short source data] + expected: FAIL + + [SHA-1 with short source data and altered buffer after call] + expected: FAIL + + [SHA-256 with short source data] + expected: FAIL + + [sha-256 with short source data] + expected: FAIL + + [Sha-256 with short source data] + expected: FAIL + + [SHA-256 with short source data and altered buffer after call] + expected: FAIL + + [SHA-384 with short source data] + expected: FAIL + + [sha-384 with short source data] + expected: FAIL + + [Sha-384 with short source data] + expected: FAIL + + [SHA-384 with short source data and altered buffer after call] + expected: FAIL + + [SHA-512 with short source data] + expected: FAIL + + [sha-512 with short source data] + expected: FAIL + + [Sha-512 with short source data] + expected: FAIL + + [SHA-512 with short source data and altered buffer after call] + expected: FAIL + + [SHA-1 with medium source data] + expected: FAIL + + [sha-1 with medium source data] + expected: FAIL + + [Sha-1 with medium source data] + expected: FAIL + + [SHA-1 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-256 with medium source data] + expected: FAIL + + [sha-256 with medium source data] + expected: FAIL + + [Sha-256 with medium source data] + expected: FAIL + + [SHA-256 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-384 with medium source data] + expected: FAIL + + [sha-384 with medium source data] + expected: FAIL + + [Sha-384 with medium source data] + expected: FAIL + + [SHA-384 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-512 with medium source data] + expected: FAIL + + [sha-512 with medium source data] + expected: FAIL + + [Sha-512 with medium source data] + expected: FAIL + + [SHA-512 with medium source data and altered buffer after call] + expected: FAIL + + [SHA-1 with long source data] + expected: FAIL + + [sha-1 with long source data] + expected: FAIL + + [Sha-1 with long source data] + expected: FAIL + + [SHA-1 with long source data and altered buffer after call] + expected: FAIL + + [SHA-256 with long source data] + expected: FAIL + + [sha-256 with long source data] + expected: FAIL + + [Sha-256 with long source data] + expected: FAIL + + [SHA-256 with long source data and altered buffer after call] + expected: FAIL + + [SHA-384 with long source data] + expected: FAIL + + [sha-384 with long source data] + expected: FAIL + + [Sha-384 with long source data] + expected: FAIL + + [SHA-384 with long source data and altered buffer after call] + expected: FAIL + + [SHA-512 with long source data] + expected: FAIL + + [sha-512 with long source data] + expected: FAIL + + [Sha-512 with long source data] + expected: FAIL + + [SHA-512 with long source data and altered buffer after call] + expected: FAIL + + [AES-GCM with empty] + expected: FAIL + + [RSA-OAEP with empty] + expected: FAIL + + [PBKDF2 with empty] + expected: FAIL + + [AES-KW with empty] + expected: FAIL + + [AES-GCM with short] + expected: FAIL + + [RSA-OAEP with short] + expected: FAIL + + [PBKDF2 with short] + expected: FAIL + + [AES-KW with short] + expected: FAIL + + [AES-GCM with medium] + expected: FAIL + + [RSA-OAEP with medium] + expected: FAIL + + [PBKDF2 with medium] + expected: FAIL + + [AES-KW with medium] + expected: FAIL + + [AES-GCM with long] + expected: FAIL + + [RSA-OAEP with long] + expected: FAIL + + [PBKDF2 with long] + expected: FAIL + + [AES-KW with long] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini index d413cf5e6f6..b9c9b687623 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini @@ -1,6 +1,218 @@ [ec_importKey.worker] type: testharness - expected: ERROR [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini index c0066600d39..f70f7bf85af 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini @@ -1,6 +1,1442 @@ [rsa_importKey.worker] type: testharness - expected: ERROR [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini index a543f0fa40a..5d98517ad63 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini @@ -1,6 +1,704 @@ [symmetric_importKey.worker] type: testharness - expected: ERROR [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/test_ec_importKey.html.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/test_ec_importKey.html.ini index 569b894dae4..67e0e667500 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/test_ec_importKey.html.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/test_ec_importKey.html.ini @@ -1,6 +1,218 @@ [test_ec_importKey.html] type: testharness - expected: ERROR [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, true, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, true, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDSA, namedCurve: P-256}, false, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-256}, false, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, true, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, true, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDSA, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDSA, namedCurve: P-384}, false, [sign\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-384}, false, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, true, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, true, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDSA, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDSA, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDSA, namedCurve: P-521}, false, [sign\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDSA, namedCurve: P-521}, false, [sign\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (spki, buffer(91), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-256 bits (pkcs8, buffer(138), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-256 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (spki, buffer(120), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-384 bits (pkcs8, buffer(185), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-384 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (spki, buffer(158), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [Good parameters: P-521 bits (pkcs8, buffer(241), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/test_rsa_importKey.html.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/test_rsa_importKey.html.ini index a36b2da56a8..ec9d5a3900f 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/test_rsa_importKey.html.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/test_rsa_importKey.html.ini @@ -1,6 +1,1442 @@ [test_rsa_importKey.html] type: testharness - expected: ERROR [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey, encrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-OAEP}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey, decrypt\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-OAEP}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSA-PSS}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSA-PSS}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 1024 bits (pkcs8, buffer(636), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 1024 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (spki, buffer(294), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 2048 bits (pkcs8, buffer(1218), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 2048 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-1, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-256, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-384, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, true, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (spki, buffer(550), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [verify\])] + expected: FAIL + + [Good parameters: 4096 bits (pkcs8, buffer(2376), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL + + [Good parameters: 4096 bits (jwk, object(kty, n, e, d, p, q, dp, dq, qi), {hash: SHA-512, name: RSASSA-PKCS1-v1_5}, false, [sign\])] + expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/test_symmetric_importKey.html.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/test_symmetric_importKey.html.ini index e1b1153922c..10a978f037a 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/test_symmetric_importKey.html.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/test_symmetric_importKey.html.ini @@ -1,6 +1,704 @@ [test_symmetric_importKey.html] type: testharness - expected: ERROR [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] - expected: NOTRUN + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CTR, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CTR, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CTR}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128CBC, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: A192KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey, wrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, true, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: A256KW, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-KW}, false, [unwrapKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS1, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-1, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS256, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-256, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS384, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-384, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 192 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify, sign\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 256 bits (jwk, {alg: HS512, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {hash: SHA-512, name: HMAC}, false, [verify\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: HKDF}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey, deriveBits\])] + expected: FAIL + + [Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: PBKDF2}, false, [deriveKey\])] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/accept-header-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/accept-header-worker.html.ini index bfa3c2541ee..c6d97a04e4c 100644 --- a/tests/wpt/metadata/fetch/api/basic/accept-header-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/accept-header-worker.html.ini @@ -1,6 +1,5 @@ [accept-header-worker.html] type: testharness - expected: ERROR [Request through fetch should have 'accept' header with value '*/*'] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/accept-header.html.ini b/tests/wpt/metadata/fetch/api/basic/accept-header.html.ini index 37fcce999ae..b9c856168d5 100644 --- a/tests/wpt/metadata/fetch/api/basic/accept-header.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/accept-header.html.ini @@ -1,6 +1,5 @@ [accept-header.html] type: testharness - expected: ERROR [Request through fetch should have 'accept' header with value '*/*'] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/integrity-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/integrity-worker.html.ini index 87846c8b086..9191c848869 100644 --- a/tests/wpt/metadata/fetch/api/basic/integrity-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/integrity-worker.html.ini @@ -1,6 +1,41 @@ [integrity-worker.html] type: testharness - expected: ERROR [Empty string integrity] - expected: NOTRUN + expected: FAIL + + [SHA-256 integrity] + expected: FAIL + + [SHA-384 integrity] + expected: FAIL + + [SHA-512 integrity] + expected: FAIL + + [Invalid integrity] + expected: FAIL + + [Multiple integrities: valid stronger than invalid] + expected: FAIL + + [Multiple integrities: invalid stronger than valid] + expected: FAIL + + [Multiple integrities: invalid as strong as valid] + expected: FAIL + + [Multiple integrities: both are valid] + expected: FAIL + + [Multiple integrities: both are invalid] + expected: FAIL + + [CORS empty integrity] + expected: FAIL + + [CORS SHA-512 integrity] + expected: FAIL + + [CORS invalid integrity] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/integrity.html.ini b/tests/wpt/metadata/fetch/api/basic/integrity.html.ini index d03764e2d93..1fc0b80308f 100644 --- a/tests/wpt/metadata/fetch/api/basic/integrity.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/integrity.html.ini @@ -1,6 +1,41 @@ [integrity.html] type: testharness - expected: ERROR [Empty string integrity] - expected: NOTRUN + expected: FAIL + + [SHA-256 integrity] + expected: FAIL + + [SHA-384 integrity] + expected: FAIL + + [SHA-512 integrity] + expected: FAIL + + [Invalid integrity] + expected: FAIL + + [Multiple integrities: valid stronger than invalid] + expected: FAIL + + [Multiple integrities: invalid stronger than valid] + expected: FAIL + + [Multiple integrities: invalid as strong as valid] + expected: FAIL + + [Multiple integrities: both are valid] + expected: FAIL + + [Multiple integrities: both are invalid] + expected: FAIL + + [CORS empty integrity] + expected: FAIL + + [CORS SHA-512 integrity] + expected: FAIL + + [CORS invalid integrity] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/mode-no-cors-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/mode-no-cors-worker.html.ini index df894a38e3d..3a7912afdb2 100644 --- a/tests/wpt/metadata/fetch/api/basic/mode-no-cors-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/mode-no-cors-worker.html.ini @@ -1,6 +1,14 @@ [mode-no-cors-worker.html] type: testharness - expected: ERROR [Fetch ../resources/top.txt with no-cors mode] - expected: NOTRUN + expected: FAIL + + [Fetch http://web-platform.test:8000/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL + + [Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL + + [Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/mode-no-cors.html.ini b/tests/wpt/metadata/fetch/api/basic/mode-no-cors.html.ini index 25c8023bca3..474196fd903 100644 --- a/tests/wpt/metadata/fetch/api/basic/mode-no-cors.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/mode-no-cors.html.ini @@ -1,6 +1,14 @@ [mode-no-cors.html] type: testharness - expected: ERROR [Fetch ../resources/top.txt with no-cors mode] - expected: NOTRUN + expected: FAIL + + [Fetch http://web-platform.test:8000/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL + + [Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL + + [Fetch http://web-platform.test:8001/fetch/api/resources/top.txt with no-cors mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/mode-same-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/mode-same-origin-worker.html.ini index c144dce9ae8..216b03b6cec 100644 --- a/tests/wpt/metadata/fetch/api/basic/mode-same-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/mode-same-origin-worker.html.ini @@ -1,6 +1,26 @@ [mode-same-origin-worker.html] type: testharness - expected: ERROR [Fetch ../resources/top.txt with same-origin mode] - expected: NOTRUN + expected: FAIL + + [Fetch http://web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch http://www1.web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=../resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=http://web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=https://web-platform.test:8443/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=http://www1.web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/mode-same-origin.html.ini b/tests/wpt/metadata/fetch/api/basic/mode-same-origin.html.ini index f686dd26239..ff6b07df137 100644 --- a/tests/wpt/metadata/fetch/api/basic/mode-same-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/mode-same-origin.html.ini @@ -1,6 +1,26 @@ [mode-same-origin.html] type: testharness - expected: ERROR [Fetch ../resources/top.txt with same-origin mode] - expected: NOTRUN + expected: FAIL + + [Fetch http://web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch https://web-platform.test:8443/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch http://www1.web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=../resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=http://web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=https://web-platform.test:8443/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL + + [Fetch /fetch/api/basic/../resources/redirect.py?location=http://www1.web-platform.test:8000/fetch/api/resources/top.txt with same-origin mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/referrer-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/referrer-worker.html.ini index 9a87b4afc06..821017f5a0e 100644 --- a/tests/wpt/metadata/fetch/api/basic/referrer-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/referrer-worker.html.ini @@ -1,6 +1,20 @@ [referrer-worker.html] type: testharness - expected: ERROR [origin-when-cross-origin policy on a same-origin URL] - expected: NOTRUN + expected: FAIL + + [origin-when-cross-origin policy on a cross-origin URL] + expected: FAIL + + [origin-when-cross-origin policy on a cross-origin URL after same-origin redirection] + expected: FAIL + + [origin-when-cross-origin policy on a same-origin URL after cross-origin redirection] + expected: FAIL + + [Referrer with credentials should be stripped] + expected: FAIL + + [Referrer with fragment ID should be stripped] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/referrer.html.ini b/tests/wpt/metadata/fetch/api/basic/referrer.html.ini index 537ded90ad0..df439e25d51 100644 --- a/tests/wpt/metadata/fetch/api/basic/referrer.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/referrer.html.ini @@ -1,6 +1,20 @@ [referrer.html] type: testharness - expected: ERROR [origin-when-cross-origin policy on a same-origin URL] - expected: NOTRUN + expected: FAIL + + [origin-when-cross-origin policy on a cross-origin URL] + expected: FAIL + + [origin-when-cross-origin policy on a cross-origin URL after same-origin redirection] + expected: FAIL + + [origin-when-cross-origin policy on a same-origin URL after cross-origin redirection] + expected: FAIL + + [Referrer with credentials should be stripped] + expected: FAIL + + [Referrer with fragment ID should be stripped] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers-worker.html.ini index ea73d296875..e0e4e7b9809 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers-worker.html.ini @@ -1,6 +1,74 @@ [request-forbidden-headers-worker.html] type: testharness - expected: ERROR [Accept-Charset is a forbidden request header] - expected: NOTRUN + expected: FAIL + + [Accept-Encoding is a forbidden request header] + expected: FAIL + + [Access-Control-Request-Headers is a forbidden request header] + expected: FAIL + + [Access-Control-Request-Method is a forbidden request header] + expected: FAIL + + [Connection is a forbidden request header] + expected: FAIL + + [Content-Length is a forbidden request header] + expected: FAIL + + [Cookie is a forbidden request header] + expected: FAIL + + [Cookie2 is a forbidden request header] + expected: FAIL + + [Date is a forbidden request header] + expected: FAIL + + [DNT is a forbidden request header] + expected: FAIL + + [Expect is a forbidden request header] + expected: FAIL + + [Host is a forbidden request header] + expected: FAIL + + [Keep-Alive is a forbidden request header] + expected: FAIL + + [Origin is a forbidden request header] + expected: FAIL + + [Referer is a forbidden request header] + expected: FAIL + + [TE is a forbidden request header] + expected: FAIL + + [Trailer is a forbidden request header] + expected: FAIL + + [Transfer-Encoding is a forbidden request header] + expected: FAIL + + [Upgrade is a forbidden request header] + expected: FAIL + + [Via is a forbidden request header] + expected: FAIL + + [Proxy- is a forbidden request header] + expected: FAIL + + [Proxy-Test is a forbidden request header] + expected: FAIL + + [Sec- is a forbidden request header] + expected: FAIL + + [Sec-Test is a forbidden request header] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers.html.ini b/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers.html.ini index 8aa5d585187..cc92ad7bc59 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-forbidden-headers.html.ini @@ -1,6 +1,74 @@ [request-forbidden-headers.html] type: testharness - expected: ERROR [Accept-Charset is a forbidden request header] - expected: NOTRUN + expected: FAIL + + [Accept-Encoding is a forbidden request header] + expected: FAIL + + [Access-Control-Request-Headers is a forbidden request header] + expected: FAIL + + [Access-Control-Request-Method is a forbidden request header] + expected: FAIL + + [Connection is a forbidden request header] + expected: FAIL + + [Content-Length is a forbidden request header] + expected: FAIL + + [Cookie is a forbidden request header] + expected: FAIL + + [Cookie2 is a forbidden request header] + expected: FAIL + + [Date is a forbidden request header] + expected: FAIL + + [DNT is a forbidden request header] + expected: FAIL + + [Expect is a forbidden request header] + expected: FAIL + + [Host is a forbidden request header] + expected: FAIL + + [Keep-Alive is a forbidden request header] + expected: FAIL + + [Origin is a forbidden request header] + expected: FAIL + + [Referer is a forbidden request header] + expected: FAIL + + [TE is a forbidden request header] + expected: FAIL + + [Trailer is a forbidden request header] + expected: FAIL + + [Transfer-Encoding is a forbidden request header] + expected: FAIL + + [Upgrade is a forbidden request header] + expected: FAIL + + [Via is a forbidden request header] + expected: FAIL + + [Proxy- is a forbidden request header] + expected: FAIL + + [Proxy-Test is a forbidden request header] + expected: FAIL + + [Sec- is a forbidden request header] + expected: FAIL + + [Sec-Test is a forbidden request header] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-head-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/request-head-worker.html.ini index 524c58ef658..3821a8e3ac2 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-head-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-head-worker.html.ini @@ -1,6 +1,5 @@ [request-head-worker.html] type: testharness - expected: ERROR [Fetch with HEAD with body] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-head.html.ini b/tests/wpt/metadata/fetch/api/basic/request-head.html.ini index 8b5cd98e400..373ae42b0a8 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-head.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-head.html.ini @@ -1,6 +1,5 @@ [request-head.html] type: testharness - expected: ERROR [Fetch with HEAD with body] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini index be2dde863fe..d301daf8a17 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini @@ -1,6 +1,53 @@ [request-headers-worker.html] type: testharness - expected: ERROR [Fetch with GET] - expected: NOTRUN + expected: FAIL + + [Fetch with HEAD] + expected: FAIL + + [Fetch with PUT without body] + expected: FAIL + + [Fetch with PUT with body] + expected: FAIL + + [Fetch with POST without body] + expected: FAIL + + [Fetch with POST with text body] + expected: FAIL + + [Fetch with POST with FormData body] + expected: FAIL + + [Fetch with POST with Blob body] + expected: FAIL + + [Fetch with POST with ArrayBuffer body] + expected: FAIL + + [Fetch with POST with Uint8Array body] + expected: FAIL + + [Fetch with POST with Int8Array body] + expected: FAIL + + [Fetch with POST with Float32Array body] + expected: FAIL + + [Fetch with POST with Float64Array body] + expected: FAIL + + [Fetch with POST with DataView body] + expected: FAIL + + [Fetch with POST with Blob body with mime type] + expected: FAIL + + [Fetch with Chicken] + expected: FAIL + + [Fetch with Chicken with body] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini b/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini index 2df66a2b526..62c74c222f0 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini @@ -1,6 +1,53 @@ [request-headers.html] type: testharness - expected: ERROR [Fetch with GET] - expected: NOTRUN + expected: FAIL + + [Fetch with HEAD] + expected: FAIL + + [Fetch with PUT without body] + expected: FAIL + + [Fetch with PUT with body] + expected: FAIL + + [Fetch with POST without body] + expected: FAIL + + [Fetch with POST with text body] + expected: FAIL + + [Fetch with POST with FormData body] + expected: FAIL + + [Fetch with POST with Blob body] + expected: FAIL + + [Fetch with POST with ArrayBuffer body] + expected: FAIL + + [Fetch with POST with Uint8Array body] + expected: FAIL + + [Fetch with POST with Int8Array body] + expected: FAIL + + [Fetch with POST with Float32Array body] + expected: FAIL + + [Fetch with POST with Float64Array body] + expected: FAIL + + [Fetch with POST with DataView body] + expected: FAIL + + [Fetch with POST with Blob body with mime type] + expected: FAIL + + [Fetch with Chicken] + expected: FAIL + + [Fetch with Chicken with body] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/request-referrer.html.ini b/tests/wpt/metadata/fetch/api/basic/request-referrer.html.ini index 067c8ca36cc..99a3dce06db 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-referrer.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-referrer.html.ini @@ -1,6 +1,8 @@ [request-referrer.html] type: testharness - expected: ERROR [Fetch: fetch() respects Request referrer value] - expected: NOTRUN + expected: FAIL + + [Fetch: fetch() respects Request referrer value 1] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/response-url-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/response-url-worker.html.ini index 60a53e68a6f..cb90797038f 100644 --- a/tests/wpt/metadata/fetch/api/basic/response-url-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/response-url-worker.html.ini @@ -1,6 +1,14 @@ [response-url-worker.html] type: testharness - expected: ERROR [Testing response url getter with http://web-platform.test:8000/ada] - expected: NOTRUN + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000/#] + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000/#ada] + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000#ada] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/response-url.html.ini b/tests/wpt/metadata/fetch/api/basic/response-url.html.ini index 34cf700e548..4764b8e4d37 100644 --- a/tests/wpt/metadata/fetch/api/basic/response-url.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/response-url.html.ini @@ -1,6 +1,14 @@ [response-url.html] type: testharness - expected: ERROR [Testing response url getter with http://web-platform.test:8000/ada] - expected: NOTRUN + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000/#] + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000/#ada] + expected: FAIL + + [Testing response url getter with http://web-platform.test:8000#ada] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-about-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-about-worker.html.ini index 8f934c2c7c8..162cec8dd3e 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-about-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-about-worker.html.ini @@ -1,9 +1,23 @@ [scheme-about-worker.html] type: testharness - expected: ERROR [Fetching about:blank is OK] expected: FAIL [Fetching about:blank (GET) is OK] - expected: NOTRUN + expected: FAIL + + [Fetching about:blank (PUT) is OK] + expected: FAIL + + [Fetching about:blank (POST) is OK] + expected: FAIL + + [Fetching about:invalid.com is KO] + expected: FAIL + + [Fetching about:config is KO] + expected: FAIL + + [Fetching about:unicorn is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-about.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-about.html.ini index 16959b7faf8..2cb86644551 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-about.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-about.html.ini @@ -1,9 +1,23 @@ [scheme-about.html] type: testharness - expected: ERROR [Fetching about:blank is OK] expected: FAIL [Fetching about:blank (GET) is OK] - expected: NOTRUN + expected: FAIL + + [Fetching about:blank (PUT) is OK] + expected: FAIL + + [Fetching about:blank (POST) is OK] + expected: FAIL + + [Fetching about:invalid.com is KO] + expected: FAIL + + [Fetching about:config is KO] + expected: FAIL + + [Fetching about:unicorn is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-blob-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-blob-worker.html.ini index 61ab14604c2..9feeea38b56 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-blob-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-blob-worker.html.ini @@ -1,6 +1,26 @@ [scheme-blob-worker.html] type: testharness - expected: ERROR [Fetching [GET\] URL.createObjectURL(blob) is OK] - expected: NOTRUN + expected: FAIL + + [Fetching [GET\] blob:http://www.web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching [POST\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [OPTIONS\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [HEAD\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [PUT\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [DELETE\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [INVALID\] URL.createObjectURL(blob) is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-blob.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-blob.html.ini index ef6102c2839..6463fa3f870 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-blob.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-blob.html.ini @@ -1,6 +1,26 @@ [scheme-blob.html] type: testharness - expected: ERROR [Fetching [GET\] URL.createObjectURL(blob) is OK] - expected: NOTRUN + expected: FAIL + + [Fetching [GET\] blob:http://www.web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching [POST\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [OPTIONS\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [HEAD\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [PUT\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [DELETE\] URL.createObjectURL(blob) is KO] + expected: FAIL + + [Fetching [INVALID\] URL.createObjectURL(blob) is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini index c23d4dea90d..48350b7912e 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini @@ -1,6 +1,26 @@ [scheme-data-worker.html] type: testharness - expected: ERROR [Fetching data:,response%27s%20body is OK] - expected: NOTRUN + expected: FAIL + + [Fetching data:,response%27s%20body is OK (same-origin)] + expected: FAIL + + [Fetching data:,response%27s%20body is OK (cors)] + expected: FAIL + + [Fetching data:text/plain;base64,cmVzcG9uc2UncyBib[...\] is OK] + expected: FAIL + + [Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...\] is OK] + expected: FAIL + + [Fetching [GET\] data:notAdataUrl.com is KO] + expected: FAIL + + [Fetching [POST\] data:,response%27s%20body is KO] + expected: FAIL + + [Fetching [HEAD\] data:,response%27s%20body is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini index ac0ef42fd1a..3cde02a71c6 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini @@ -1,6 +1,26 @@ [scheme-data.html] type: testharness - expected: ERROR [Fetching data:,response%27s%20body is OK] - expected: NOTRUN + expected: FAIL + + [Fetching data:,response%27s%20body is OK (same-origin)] + expected: FAIL + + [Fetching data:,response%27s%20body is OK (cors)] + expected: FAIL + + [Fetching data:text/plain;base64,cmVzcG9uc2UncyBib[...\] is OK] + expected: FAIL + + [Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...\] is OK] + expected: FAIL + + [Fetching [GET\] data:notAdataUrl.com is KO] + expected: FAIL + + [Fetching [POST\] data:,response%27s%20body is KO] + expected: FAIL + + [Fetching [HEAD\] data:,response%27s%20body is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-others-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-others-worker.html.ini index eb9d2502860..6f6728ae993 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-others-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-others-worker.html.ini @@ -1,6 +1,50 @@ [scheme-others-worker.html] type: testharness - expected: ERROR [Fetching aaa://web-platform.test:8000/ is KO] - expected: NOTRUN + expected: FAIL + + [Fetching cap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching cid://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dav://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dict://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dns://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching geo://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching im://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching imap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching ipp://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching ldap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching mailto://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching nfs://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching pop://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching rtsp://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching snmp://web-platform.test:8000/ is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-others.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-others.html.ini index f9098eaaeea..f38e7a475a4 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-others.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-others.html.ini @@ -1,6 +1,50 @@ [scheme-others.html] type: testharness - expected: ERROR [Fetching aaa://web-platform.test:8000/ is KO] - expected: NOTRUN + expected: FAIL + + [Fetching cap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching cid://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dav://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dict://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching dns://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching geo://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching im://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching imap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching ipp://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching ldap://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching mailto://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching nfs://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching pop://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching rtsp://web-platform.test:8000/ is KO] + expected: FAIL + + [Fetching snmp://web-platform.test:8000/ is KO] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/stream-response-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/stream-response-worker.html.ini index 152791ed260..711b705fbaa 100644 --- a/tests/wpt/metadata/fetch/api/basic/stream-response-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/stream-response-worker.html.ini @@ -1,6 +1,5 @@ [stream-response-worker.html] type: testharness - expected: ERROR [Stream response's body] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/stream-response.html.ini b/tests/wpt/metadata/fetch/api/basic/stream-response.html.ini index 2ef568b5e32..db2c00a1701 100644 --- a/tests/wpt/metadata/fetch/api/basic/stream-response.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/stream-response.html.ini @@ -1,6 +1,5 @@ [stream-response.html] type: testharness - expected: ERROR [Stream response's body] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini b/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini index a6630d4ff11..5d9acb63606 100644 --- a/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini @@ -1,6 +1,62 @@ [text-utf8.html] type: testharness - expected: ERROR [UTF-8 with BOM with Request.text()] - expected: NOTRUN + expected: FAIL + + [UTF-8 with BOM with Response.text()] + expected: FAIL + + [UTF-8 with BOM with fetched data (UTF-8 charset)] + expected: FAIL + + [UTF-8 with BOM with fetched data (UTF-16 charset)] + expected: FAIL + + [UTF-8 without BOM with Request.text()] + expected: FAIL + + [UTF-8 without BOM with Response.text()] + expected: FAIL + + [UTF-8 without BOM with fetched data (UTF-8 charset)] + expected: FAIL + + [UTF-8 without BOM with fetched data (UTF-16 charset)] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 with Request.text()] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 with Response.text()] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 with fetched data (UTF-8 charset)] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 with fetched data (UTF-16 charset)] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 with Request.text()] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 with Response.text()] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 with fetched data (UTF-8 charset)] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 with fetched data (UTF-16 charset)] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 with Request.text()] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 with Response.text()] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 with fetched data (UTF-8 charset)] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 with fetched data (UTF-16 charset)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-basic-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-basic-worker.html.ini index a5ca70e74ba..181b87530a3 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-basic-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-basic-worker.html.ini @@ -1,6 +1,47 @@ [cors-basic-worker.html] type: testharness - expected: ERROR [Same domain different port [no-cors mode\]] - expected: NOTRUN + expected: FAIL + + [Same domain different port [server forbid CORS\]] + expected: FAIL + + [Same domain different port [cors mode\]] + expected: FAIL + + [Same domain different protocol different port [no-cors mode\]] + expected: FAIL + + [Same domain different protocol different port [server forbid CORS\]] + expected: FAIL + + [Same domain different protocol different port [cors mode\]] + expected: FAIL + + [Cross domain basic usage [no-cors mode\]] + expected: FAIL + + [Cross domain basic usage [server forbid CORS\]] + expected: FAIL + + [Cross domain basic usage [cors mode\]] + expected: FAIL + + [Cross domain different port [no-cors mode\]] + expected: FAIL + + [Cross domain different port [server forbid CORS\]] + expected: FAIL + + [Cross domain different port [cors mode\]] + expected: FAIL + + [Cross domain different protocol [no-cors mode\]] + expected: FAIL + + [Cross domain different protocol [server forbid CORS\]] + expected: FAIL + + [Cross domain different protocol [cors mode\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-basic.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-basic.html.ini index aaffc3af099..3efe54ec934 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-basic.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-basic.html.ini @@ -1,6 +1,47 @@ [cors-basic.html] type: testharness - expected: ERROR [Same domain different port [no-cors mode\]] - expected: NOTRUN + expected: FAIL + + [Same domain different port [server forbid CORS\]] + expected: FAIL + + [Same domain different port [cors mode\]] + expected: FAIL + + [Same domain different protocol different port [no-cors mode\]] + expected: FAIL + + [Same domain different protocol different port [server forbid CORS\]] + expected: FAIL + + [Same domain different protocol different port [cors mode\]] + expected: FAIL + + [Cross domain basic usage [no-cors mode\]] + expected: FAIL + + [Cross domain basic usage [server forbid CORS\]] + expected: FAIL + + [Cross domain basic usage [cors mode\]] + expected: FAIL + + [Cross domain different port [no-cors mode\]] + expected: FAIL + + [Cross domain different port [server forbid CORS\]] + expected: FAIL + + [Cross domain different port [cors mode\]] + expected: FAIL + + [Cross domain different protocol [no-cors mode\]] + expected: FAIL + + [Cross domain different protocol [server forbid CORS\]] + expected: FAIL + + [Cross domain different protocol [cors mode\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini index 155d6fbea0a..2dd966d0297 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini @@ -1,6 +1,20 @@ [cors-cookies-worker.html] type: testharness - expected: ERROR [Omit mode: no cookie sent] - expected: NOTRUN + expected: FAIL + + [Include mode: 1 cookie] + expected: FAIL + + [Include mode: local cookies are not sent with remote request] + expected: FAIL + + [Include mode: remote cookies are not sent with local request] + expected: FAIL + + [Same-origin mode: cookies are discarded in cors request] + expected: FAIL + + [Include mode: remote cookies are not sent with other remote request] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini index 990fe5ed3ff..f75dcfcf7e8 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini @@ -1,6 +1,20 @@ [cors-cookies.html] type: testharness - expected: ERROR [Omit mode: no cookie sent] - expected: NOTRUN + expected: FAIL + + [Include mode: 1 cookie] + expected: FAIL + + [Include mode: local cookies are not sent with remote request] + expected: FAIL + + [Include mode: remote cookies are not sent with local request] + expected: FAIL + + [Same-origin mode: cookies are discarded in cors request] + expected: FAIL + + [Include mode: remote cookies are not sent with other remote request] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-filtering-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-filtering-worker.html.ini index 8ef5e2869b9..a4d7753047a 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-filtering-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-filtering-worker.html.ini @@ -1,6 +1,56 @@ [cors-filtering-worker.html] type: testharness - expected: ERROR [CORS filter on Cache-Control header] - expected: NOTRUN + expected: FAIL + + [CORS filter on Content-Language header] + expected: FAIL + + [CORS filter on Content-Type header] + expected: FAIL + + [CORS filter on Expires header] + expected: FAIL + + [CORS filter on Last-Modified header] + expected: FAIL + + [CORS filter on Pragma header] + expected: FAIL + + [CORS filter on Age header] + expected: FAIL + + [CORS filter on Server header] + expected: FAIL + + [CORS filter on Warning header] + expected: FAIL + + [CORS filter on Content-Length header] + expected: FAIL + + [CORS filter on Set-Cookie header] + expected: FAIL + + [CORS filter on Set-Cookie2 header] + expected: FAIL + + [CORS filter on Age header, header is exposed] + expected: FAIL + + [CORS filter on Server header, header is exposed] + expected: FAIL + + [CORS filter on Warning header, header is exposed] + expected: FAIL + + [CORS filter on Content-Length header, header is exposed] + expected: FAIL + + [CORS filter on Set-Cookie header, header is exposed] + expected: FAIL + + [CORS filter on Set-Cookie2 header, header is exposed] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-filtering.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-filtering.html.ini index 798398557a6..286f479dde8 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-filtering.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-filtering.html.ini @@ -1,6 +1,56 @@ [cors-filtering.html] type: testharness - expected: ERROR [CORS filter on Cache-Control header] - expected: NOTRUN + expected: FAIL + + [CORS filter on Content-Language header] + expected: FAIL + + [CORS filter on Content-Type header] + expected: FAIL + + [CORS filter on Expires header] + expected: FAIL + + [CORS filter on Last-Modified header] + expected: FAIL + + [CORS filter on Pragma header] + expected: FAIL + + [CORS filter on Age header] + expected: FAIL + + [CORS filter on Server header] + expected: FAIL + + [CORS filter on Warning header] + expected: FAIL + + [CORS filter on Content-Length header] + expected: FAIL + + [CORS filter on Set-Cookie header] + expected: FAIL + + [CORS filter on Set-Cookie2 header] + expected: FAIL + + [CORS filter on Age header, header is exposed] + expected: FAIL + + [CORS filter on Server header, header is exposed] + expected: FAIL + + [CORS filter on Warning header, header is exposed] + expected: FAIL + + [CORS filter on Content-Length header, header is exposed] + expected: FAIL + + [CORS filter on Set-Cookie header, header is exposed] + expected: FAIL + + [CORS filter on Set-Cookie2 header, header is exposed] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins-worker.html.ini index ac423bf8694..b7434968587 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins-worker.html.ini @@ -1,6 +1,20 @@ [cors-multiple-origins-worker.html] type: testharness - expected: ERROR [3 origins allowed, match the 3rd (http://web-platform.test:8000)] - expected: NOTRUN + expected: FAIL + + [3 origins allowed, match the 3rd ("*")] + expected: FAIL + + [3 origins allowed, match twice (http://web-platform.test:8000)] + expected: FAIL + + [3 origins allowed, match twice ("*")] + expected: FAIL + + [3 origins allowed, match twice ("*" and http://web-platform.test:8000)] + expected: FAIL + + [3 origins allowed, no match] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins.html.ini index 64ee7f7f07e..9e5ff2ffc20 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-multiple-origins.html.ini @@ -1,6 +1,20 @@ [cors-multiple-origins.html] type: testharness - expected: ERROR [3 origins allowed, match the 3rd (http://web-platform.test:8000)] - expected: NOTRUN + expected: FAIL + + [3 origins allowed, match the 3rd ("*")] + expected: FAIL + + [3 origins allowed, match twice (http://web-platform.test:8000)] + expected: FAIL + + [3 origins allowed, match twice ("*")] + expected: FAIL + + [3 origins allowed, match twice ("*" and http://web-platform.test:8000)] + expected: FAIL + + [3 origins allowed, no match] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-no-preflight-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-no-preflight-worker.html.ini index 3ff17e4bb97..c95749f5c24 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-no-preflight-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-no-preflight-worker.html.ini @@ -1,6 +1,47 @@ [cors-no-preflight-worker.html] type: testharness - expected: ERROR [Cross domain basic usage [GET\]] - expected: NOTRUN + expected: FAIL + + [Same domain different port [GET\]] + expected: FAIL + + [Cross domain different port [GET\]] + expected: FAIL + + [Cross domain different protocol [GET\]] + expected: FAIL + + [Same domain different protocol different port [GET\]] + expected: FAIL + + [Cross domain [POST\]] + expected: FAIL + + [Cross domain [HEAD\]] + expected: FAIL + + [Cross domain [GET\] [Accept: */*\]] + expected: FAIL + + [Cross domain [GET\] [Accept-Language: fr\]] + expected: FAIL + + [Cross domain [GET\] [Content-Language: fr\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: application/x-www-form-urlencoded\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: multipart/form-data\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: text/plain\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: text/plain;charset=utf-8\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: Text/Plain;charset=utf-8\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-no-preflight.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-no-preflight.html.ini index 569d12bed62..71a9d1c5f1d 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-no-preflight.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-no-preflight.html.ini @@ -1,6 +1,47 @@ [cors-no-preflight.html] type: testharness - expected: ERROR [Cross domain basic usage [GET\]] - expected: NOTRUN + expected: FAIL + + [Same domain different port [GET\]] + expected: FAIL + + [Cross domain different port [GET\]] + expected: FAIL + + [Cross domain different protocol [GET\]] + expected: FAIL + + [Same domain different protocol different port [GET\]] + expected: FAIL + + [Cross domain [POST\]] + expected: FAIL + + [Cross domain [HEAD\]] + expected: FAIL + + [Cross domain [GET\] [Accept: */*\]] + expected: FAIL + + [Cross domain [GET\] [Accept-Language: fr\]] + expected: FAIL + + [Cross domain [GET\] [Content-Language: fr\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: application/x-www-form-urlencoded\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: multipart/form-data\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: text/plain\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: text/plain;charset=utf-8\]] + expected: FAIL + + [Cross domain [GET\] [Content-Type: Text/Plain;charset=utf-8\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-origin-worker.html.ini index 95a91dc7455..413b3f652bc 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-origin-worker.html.ini @@ -1,6 +1,53 @@ [cors-origin-worker.html] type: testharness - expected: ERROR [Cross domain different subdomain [origin OK\]] - expected: NOTRUN + expected: FAIL + + [Cross domain different subdomain [origin KO\]] + expected: FAIL + + [Same domain different port [origin OK\]] + expected: FAIL + + [Same domain different port [origin KO\]] + expected: FAIL + + [Cross domain different port [origin OK\]] + expected: FAIL + + [Cross domain different port [origin KO\]] + expected: FAIL + + [Cross domain different protocol [origin OK\]] + expected: FAIL + + [Cross domain different protocol [origin KO\]] + expected: FAIL + + [Same domain different protocol different port [origin OK\]] + expected: FAIL + + [Same domain different protocol different port [origin KO\]] + expected: FAIL + + [Cross domain [POST\] [origin OK\]] + expected: FAIL + + [Cross domain [POST\] [origin KO\]] + expected: FAIL + + [Cross domain [HEAD\] [origin OK\]] + expected: FAIL + + [Cross domain [HEAD\] [origin KO\]] + expected: FAIL + + [CORS preflight [PUT\] [origin OK\]] + expected: FAIL + + [CORS preflight [PUT\] [origin KO\]] + expected: FAIL + + [Allowed origin: "" [origin KO\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-origin.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-origin.html.ini index 0d544aa6a2f..9738395f8ea 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-origin.html.ini @@ -1,6 +1,53 @@ [cors-origin.html] type: testharness - expected: ERROR [Cross domain different subdomain [origin OK\]] - expected: NOTRUN + expected: FAIL + + [Cross domain different subdomain [origin KO\]] + expected: FAIL + + [Same domain different port [origin OK\]] + expected: FAIL + + [Same domain different port [origin KO\]] + expected: FAIL + + [Cross domain different port [origin OK\]] + expected: FAIL + + [Cross domain different port [origin KO\]] + expected: FAIL + + [Cross domain different protocol [origin OK\]] + expected: FAIL + + [Cross domain different protocol [origin KO\]] + expected: FAIL + + [Same domain different protocol different port [origin OK\]] + expected: FAIL + + [Same domain different protocol different port [origin KO\]] + expected: FAIL + + [Cross domain [POST\] [origin OK\]] + expected: FAIL + + [Cross domain [POST\] [origin KO\]] + expected: FAIL + + [Cross domain [HEAD\] [origin OK\]] + expected: FAIL + + [Cross domain [HEAD\] [origin KO\]] + expected: FAIL + + [CORS preflight [PUT\] [origin OK\]] + expected: FAIL + + [CORS preflight [PUT\] [origin KO\]] + expected: FAIL + + [Allowed origin: "" [origin KO\]] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini index 26eea757fad..a067c067a2a 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini @@ -1,6 +1,32 @@ [cors-preflight-redirect-worker.html] type: testharness - expected: ERROR [Redirection 301 on preflight failed] - expected: NOTRUN + expected: FAIL + + [Redirection 301 after preflight failed] + expected: FAIL + + [Redirection 302 on preflight failed] + expected: FAIL + + [Redirection 302 after preflight failed] + expected: FAIL + + [Redirection 303 on preflight failed] + expected: FAIL + + [Redirection 303 after preflight failed] + expected: FAIL + + [Redirection 307 on preflight failed] + expected: FAIL + + [Redirection 307 after preflight failed] + expected: FAIL + + [Redirection 308 on preflight failed] + expected: FAIL + + [Redirection 308 after preflight failed] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini index 3c3cacce2da..e5b48918e8e 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini @@ -1,6 +1,32 @@ [cors-preflight-redirect.html] type: testharness - expected: ERROR [Redirection 301 on preflight failed] - expected: NOTRUN + expected: FAIL + + [Redirection 301 after preflight failed] + expected: FAIL + + [Redirection 302 on preflight failed] + expected: FAIL + + [Redirection 302 after preflight failed] + expected: FAIL + + [Redirection 303 on preflight failed] + expected: FAIL + + [Redirection 303 after preflight failed] + expected: FAIL + + [Redirection 307 on preflight failed] + expected: FAIL + + [Redirection 307 after preflight failed] + expected: FAIL + + [Redirection 308 on preflight failed] + expected: FAIL + + [Redirection 308 after preflight failed] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer-worker.html.ini index 53ae9e589c3..c7c7a2d2418 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer-worker.html.ini @@ -1,6 +1,17 @@ [cors-preflight-referrer-worker.html] type: testharness - expected: ERROR [Referrer policy: no-referrer] - expected: NOTRUN + expected: FAIL + + [Referrer policy: ""] + expected: FAIL + + [Referrer policy: origin] + expected: FAIL + + [Referrer policy: origin-when-cross-origin] + expected: FAIL + + [Referrer policy: unsafe-url] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer.html.ini index ed1ede0b61a..1fab8e3c939 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-referrer.html.ini @@ -1,6 +1,17 @@ [cors-preflight-referrer.html] type: testharness - expected: ERROR [Referrer policy: no-referrer] - expected: NOTRUN + expected: FAIL + + [Referrer policy: ""] + expected: FAIL + + [Referrer policy: origin] + expected: FAIL + + [Referrer policy: origin-when-cross-origin] + expected: FAIL + + [Referrer policy: unsafe-url] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini index dc410f496bf..9f9d2eab795 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini @@ -1,6 +1,83 @@ [cors-preflight-status-worker.html] type: testharness - expected: ERROR [Preflight answered with status 200] - expected: NOTRUN + expected: FAIL + + [Preflight answered with status 201] + expected: FAIL + + [Preflight answered with status 202] + expected: FAIL + + [Preflight answered with status 203] + expected: FAIL + + [Preflight answered with status 204] + expected: FAIL + + [Preflight answered with status 205] + expected: FAIL + + [Preflight answered with status 206] + expected: FAIL + + [Preflight answered with status 300] + expected: FAIL + + [Preflight answered with status 301] + expected: FAIL + + [Preflight answered with status 302] + expected: FAIL + + [Preflight answered with status 303] + expected: FAIL + + [Preflight answered with status 304] + expected: FAIL + + [Preflight answered with status 305] + expected: FAIL + + [Preflight answered with status 306] + expected: FAIL + + [Preflight answered with status 307] + expected: FAIL + + [Preflight answered with status 308] + expected: FAIL + + [Preflight answered with status 400] + expected: FAIL + + [Preflight answered with status 401] + expected: FAIL + + [Preflight answered with status 402] + expected: FAIL + + [Preflight answered with status 403] + expected: FAIL + + [Preflight answered with status 404] + expected: FAIL + + [Preflight answered with status 405] + expected: FAIL + + [Preflight answered with status 501] + expected: FAIL + + [Preflight answered with status 502] + expected: FAIL + + [Preflight answered with status 503] + expected: FAIL + + [Preflight answered with status 504] + expected: FAIL + + [Preflight answered with status 505] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini index 967da55cd91..12bb9ecf2e1 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini @@ -1,6 +1,83 @@ [cors-preflight-status.html] type: testharness - expected: ERROR [Preflight answered with status 200] - expected: NOTRUN + expected: FAIL + + [Preflight answered with status 201] + expected: FAIL + + [Preflight answered with status 202] + expected: FAIL + + [Preflight answered with status 203] + expected: FAIL + + [Preflight answered with status 204] + expected: FAIL + + [Preflight answered with status 205] + expected: FAIL + + [Preflight answered with status 206] + expected: FAIL + + [Preflight answered with status 300] + expected: FAIL + + [Preflight answered with status 301] + expected: FAIL + + [Preflight answered with status 302] + expected: FAIL + + [Preflight answered with status 303] + expected: FAIL + + [Preflight answered with status 304] + expected: FAIL + + [Preflight answered with status 305] + expected: FAIL + + [Preflight answered with status 306] + expected: FAIL + + [Preflight answered with status 307] + expected: FAIL + + [Preflight answered with status 308] + expected: FAIL + + [Preflight answered with status 400] + expected: FAIL + + [Preflight answered with status 401] + expected: FAIL + + [Preflight answered with status 402] + expected: FAIL + + [Preflight answered with status 403] + expected: FAIL + + [Preflight answered with status 404] + expected: FAIL + + [Preflight answered with status 405] + expected: FAIL + + [Preflight answered with status 501] + expected: FAIL + + [Preflight answered with status 502] + expected: FAIL + + [Preflight answered with status 503] + expected: FAIL + + [Preflight answered with status 504] + expected: FAIL + + [Preflight answered with status 505] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-worker.html.ini index 0f5d647c528..1c4ec4cc7cc 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-worker.html.ini @@ -1,6 +1,44 @@ [cors-preflight-worker.html] type: testharness - expected: ERROR [CORS [DELETE\], server allows] - expected: NOTRUN + expected: FAIL + + [CORS [DELETE\], server refuses] + expected: FAIL + + [CORS [PUT\], server allows] + expected: FAIL + + [CORS [PUT\], server refuses] + expected: FAIL + + [CORS [PATCH\], server allows] + expected: FAIL + + [CORS [PATCH\], server refuses] + expected: FAIL + + [CORS [NEW\], server allows] + expected: FAIL + + [CORS [NEW\], server refuses] + expected: FAIL + + [CORS [GET\] [x-test-header: allowed\], server allows] + expected: FAIL + + [CORS [GET\] [x-test-header: refused\], server refuses] + expected: FAIL + + [CORS [GET\] [several headers\], server allows] + expected: FAIL + + [CORS [GET\] [several headers\], server refuses] + expected: FAIL + + [CORS [PUT\] [several headers\], server allows] + expected: FAIL + + [CORS [PUT\] [several headers\], server refuses] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight.html.ini index 5a05bb7571b..28789b10484 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-preflight.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight.html.ini @@ -1,6 +1,44 @@ [cors-preflight.html] type: testharness - expected: ERROR [CORS [DELETE\], server allows] - expected: NOTRUN + expected: FAIL + + [CORS [DELETE\], server refuses] + expected: FAIL + + [CORS [PUT\], server allows] + expected: FAIL + + [CORS [PUT\], server refuses] + expected: FAIL + + [CORS [PATCH\], server allows] + expected: FAIL + + [CORS [PATCH\], server refuses] + expected: FAIL + + [CORS [NEW\], server allows] + expected: FAIL + + [CORS [NEW\], server refuses] + expected: FAIL + + [CORS [GET\] [x-test-header: allowed\], server allows] + expected: FAIL + + [CORS [GET\] [x-test-header: refused\], server refuses] + expected: FAIL + + [CORS [GET\] [several headers\], server allows] + expected: FAIL + + [CORS [GET\] [several headers\], server refuses] + expected: FAIL + + [CORS [PUT\] [several headers\], server allows] + expected: FAIL + + [CORS [PUT\] [several headers\], server refuses] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials-worker.html.ini index dac671529c5..66040a9d4ba 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials-worker.html.ini @@ -1,6 +1,182 @@ [cors-redirect-credentials-worker.html] type: testharness - expected: ERROR [Redirect 301 from same origin to remote with user and password] - expected: NOTRUN + expected: FAIL + + [Redirect 301 from same origin to remote with user] + expected: FAIL + + [Redirect 301 from same origin to remote with password] + expected: FAIL + + [Redirect 301 from remote to same origin with user and password] + expected: FAIL + + [Redirect 301 from remote to same origin with user] + expected: FAIL + + [Redirect 301 from remote to same origin with password] + expected: FAIL + + [Redirect 301 from remote to same remote with user and password] + expected: FAIL + + [Redirect 301 from remote to same remote with user] + expected: FAIL + + [Redirect 301 from remote to same remote with password] + expected: FAIL + + [Redirect 301 from remote to another remote with user and password] + expected: FAIL + + [Redirect 301 from remote to another remote with user] + expected: FAIL + + [Redirect 301 from remote to another remote with password] + expected: FAIL + + [Redirect 302 from same origin to remote with user and password] + expected: FAIL + + [Redirect 302 from same origin to remote with user] + expected: FAIL + + [Redirect 302 from same origin to remote with password] + expected: FAIL + + [Redirect 302 from remote to same origin with user and password] + expected: FAIL + + [Redirect 302 from remote to same origin with user] + expected: FAIL + + [Redirect 302 from remote to same origin with password] + expected: FAIL + + [Redirect 302 from remote to same remote with user and password] + expected: FAIL + + [Redirect 302 from remote to same remote with user] + expected: FAIL + + [Redirect 302 from remote to same remote with password] + expected: FAIL + + [Redirect 302 from remote to another remote with user and password] + expected: FAIL + + [Redirect 302 from remote to another remote with user] + expected: FAIL + + [Redirect 302 from remote to another remote with password] + expected: FAIL + + [Redirect 303 from same origin to remote with user and password] + expected: FAIL + + [Redirect 303 from same origin to remote with user] + expected: FAIL + + [Redirect 303 from same origin to remote with password] + expected: FAIL + + [Redirect 303 from remote to same origin with user and password] + expected: FAIL + + [Redirect 303 from remote to same origin with user] + expected: FAIL + + [Redirect 303 from remote to same origin with password] + expected: FAIL + + [Redirect 303 from remote to same remote with user and password] + expected: FAIL + + [Redirect 303 from remote to same remote with user] + expected: FAIL + + [Redirect 303 from remote to same remote with password] + expected: FAIL + + [Redirect 303 from remote to another remote with user and password] + expected: FAIL + + [Redirect 303 from remote to another remote with user] + expected: FAIL + + [Redirect 303 from remote to another remote with password] + expected: FAIL + + [Redirect 307 from same origin to remote with user and password] + expected: FAIL + + [Redirect 307 from same origin to remote with user] + expected: FAIL + + [Redirect 307 from same origin to remote with password] + expected: FAIL + + [Redirect 307 from remote to same origin with user and password] + expected: FAIL + + [Redirect 307 from remote to same origin with user] + expected: FAIL + + [Redirect 307 from remote to same origin with password] + expected: FAIL + + [Redirect 307 from remote to same remote with user and password] + expected: FAIL + + [Redirect 307 from remote to same remote with user] + expected: FAIL + + [Redirect 307 from remote to same remote with password] + expected: FAIL + + [Redirect 307 from remote to another remote with user and password] + expected: FAIL + + [Redirect 307 from remote to another remote with user] + expected: FAIL + + [Redirect 307 from remote to another remote with password] + expected: FAIL + + [Redirect 308 from same origin to remote with user and password] + expected: FAIL + + [Redirect 308 from same origin to remote with user] + expected: FAIL + + [Redirect 308 from same origin to remote with password] + expected: FAIL + + [Redirect 308 from remote to same origin with user and password] + expected: FAIL + + [Redirect 308 from remote to same origin with user] + expected: FAIL + + [Redirect 308 from remote to same origin with password] + expected: FAIL + + [Redirect 308 from remote to same remote with user and password] + expected: FAIL + + [Redirect 308 from remote to same remote with user] + expected: FAIL + + [Redirect 308 from remote to same remote with password] + expected: FAIL + + [Redirect 308 from remote to another remote with user and password] + expected: FAIL + + [Redirect 308 from remote to another remote with user] + expected: FAIL + + [Redirect 308 from remote to another remote with password] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials.html.ini index b34f27e846e..8055315bb9c 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-credentials.html.ini @@ -1,6 +1,182 @@ [cors-redirect-credentials.html] type: testharness - expected: ERROR [Redirect 301 from same origin to remote with user and password] - expected: NOTRUN + expected: FAIL + + [Redirect 301 from same origin to remote with user] + expected: FAIL + + [Redirect 301 from same origin to remote with password] + expected: FAIL + + [Redirect 301 from remote to same origin with user and password] + expected: FAIL + + [Redirect 301 from remote to same origin with user] + expected: FAIL + + [Redirect 301 from remote to same origin with password] + expected: FAIL + + [Redirect 301 from remote to same remote with user and password] + expected: FAIL + + [Redirect 301 from remote to same remote with user] + expected: FAIL + + [Redirect 301 from remote to same remote with password] + expected: FAIL + + [Redirect 301 from remote to another remote with user and password] + expected: FAIL + + [Redirect 301 from remote to another remote with user] + expected: FAIL + + [Redirect 301 from remote to another remote with password] + expected: FAIL + + [Redirect 302 from same origin to remote with user and password] + expected: FAIL + + [Redirect 302 from same origin to remote with user] + expected: FAIL + + [Redirect 302 from same origin to remote with password] + expected: FAIL + + [Redirect 302 from remote to same origin with user and password] + expected: FAIL + + [Redirect 302 from remote to same origin with user] + expected: FAIL + + [Redirect 302 from remote to same origin with password] + expected: FAIL + + [Redirect 302 from remote to same remote with user and password] + expected: FAIL + + [Redirect 302 from remote to same remote with user] + expected: FAIL + + [Redirect 302 from remote to same remote with password] + expected: FAIL + + [Redirect 302 from remote to another remote with user and password] + expected: FAIL + + [Redirect 302 from remote to another remote with user] + expected: FAIL + + [Redirect 302 from remote to another remote with password] + expected: FAIL + + [Redirect 303 from same origin to remote with user and password] + expected: FAIL + + [Redirect 303 from same origin to remote with user] + expected: FAIL + + [Redirect 303 from same origin to remote with password] + expected: FAIL + + [Redirect 303 from remote to same origin with user and password] + expected: FAIL + + [Redirect 303 from remote to same origin with user] + expected: FAIL + + [Redirect 303 from remote to same origin with password] + expected: FAIL + + [Redirect 303 from remote to same remote with user and password] + expected: FAIL + + [Redirect 303 from remote to same remote with user] + expected: FAIL + + [Redirect 303 from remote to same remote with password] + expected: FAIL + + [Redirect 303 from remote to another remote with user and password] + expected: FAIL + + [Redirect 303 from remote to another remote with user] + expected: FAIL + + [Redirect 303 from remote to another remote with password] + expected: FAIL + + [Redirect 307 from same origin to remote with user and password] + expected: FAIL + + [Redirect 307 from same origin to remote with user] + expected: FAIL + + [Redirect 307 from same origin to remote with password] + expected: FAIL + + [Redirect 307 from remote to same origin with user and password] + expected: FAIL + + [Redirect 307 from remote to same origin with user] + expected: FAIL + + [Redirect 307 from remote to same origin with password] + expected: FAIL + + [Redirect 307 from remote to same remote with user and password] + expected: FAIL + + [Redirect 307 from remote to same remote with user] + expected: FAIL + + [Redirect 307 from remote to same remote with password] + expected: FAIL + + [Redirect 307 from remote to another remote with user and password] + expected: FAIL + + [Redirect 307 from remote to another remote with user] + expected: FAIL + + [Redirect 307 from remote to another remote with password] + expected: FAIL + + [Redirect 308 from same origin to remote with user and password] + expected: FAIL + + [Redirect 308 from same origin to remote with user] + expected: FAIL + + [Redirect 308 from same origin to remote with password] + expected: FAIL + + [Redirect 308 from remote to same origin with user and password] + expected: FAIL + + [Redirect 308 from remote to same origin with user] + expected: FAIL + + [Redirect 308 from remote to same origin with password] + expected: FAIL + + [Redirect 308 from remote to same remote with user and password] + expected: FAIL + + [Redirect 308 from remote to same remote with user] + expected: FAIL + + [Redirect 308 from remote to same remote with password] + expected: FAIL + + [Redirect 308 from remote to another remote with user and password] + expected: FAIL + + [Redirect 308 from remote to another remote with user] + expected: FAIL + + [Redirect 308 from remote to another remote with password] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight-worker.html.ini index 90452efd98d..17d4986700b 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight-worker.html.ini @@ -1,6 +1,92 @@ [cors-redirect-preflight-worker.html] type: testharness - expected: ERROR [Redirect 301: same origin to cors (preflight after redirection success case)] - expected: NOTRUN + expected: FAIL + + [Redirect 301: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 301: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 301: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 301: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 301: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: cors to another cors (preflight after redirection failure case)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight.html.ini index b3d6e7c2407..f2b6de6cf0b 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-preflight.html.ini @@ -1,6 +1,92 @@ [cors-redirect-preflight.html] type: testharness - expected: ERROR [Redirect 301: same origin to cors (preflight after redirection success case)] - expected: NOTRUN + expected: FAIL + + [Redirect 301: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 301: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 301: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 301: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 301: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 302: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 302: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 303: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 303: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 307: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 307: cors to another cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: same origin to cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: same origin to cors (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: cors to same origin (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: cors to same origin (preflight after redirection failure case)] + expected: FAIL + + [Redirect 308: cors to another cors (preflight after redirection success case)] + expected: FAIL + + [Redirect 308: cors to another cors (preflight after redirection failure case)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini index 2729220e3f5..c999091d884 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini @@ -1,6 +1,62 @@ [cors-redirect-worker.html] type: testharness - expected: ERROR [Redirect 301: cors to same cors] - expected: NOTRUN + expected: FAIL + + [Redirect 301: cors to another cors] + expected: FAIL + + [Redirect 301: same origin to cors] + expected: FAIL + + [Redirect 301: cors to same origin] + expected: FAIL + + [Redirect 302: cors to same cors] + expected: FAIL + + [Redirect 302: cors to another cors] + expected: FAIL + + [Redirect 302: same origin to cors] + expected: FAIL + + [Redirect 302: cors to same origin] + expected: FAIL + + [Redirect 303: cors to same cors] + expected: FAIL + + [Redirect 303: cors to another cors] + expected: FAIL + + [Redirect 303: same origin to cors] + expected: FAIL + + [Redirect 303: cors to same origin] + expected: FAIL + + [Redirect 307: cors to same cors] + expected: FAIL + + [Redirect 307: cors to another cors] + expected: FAIL + + [Redirect 307: same origin to cors] + expected: FAIL + + [Redirect 307: cors to same origin] + expected: FAIL + + [Redirect 308: cors to same cors] + expected: FAIL + + [Redirect 308: cors to another cors] + expected: FAIL + + [Redirect 308: same origin to cors] + expected: FAIL + + [Redirect 308: cors to same origin] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini index d2f89f813b2..8ce76e0ea45 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini @@ -1,6 +1,62 @@ [cors-redirect.html] type: testharness - expected: ERROR [Redirect 301: cors to same cors] - expected: NOTRUN + expected: FAIL + + [Redirect 301: cors to another cors] + expected: FAIL + + [Redirect 301: same origin to cors] + expected: FAIL + + [Redirect 301: cors to same origin] + expected: FAIL + + [Redirect 302: cors to same cors] + expected: FAIL + + [Redirect 302: cors to another cors] + expected: FAIL + + [Redirect 302: same origin to cors] + expected: FAIL + + [Redirect 302: cors to same origin] + expected: FAIL + + [Redirect 303: cors to same cors] + expected: FAIL + + [Redirect 303: cors to another cors] + expected: FAIL + + [Redirect 303: same origin to cors] + expected: FAIL + + [Redirect 303: cors to same origin] + expected: FAIL + + [Redirect 307: cors to same cors] + expected: FAIL + + [Redirect 307: cors to another cors] + expected: FAIL + + [Redirect 307: same origin to cors] + expected: FAIL + + [Redirect 307: cors to same origin] + expected: FAIL + + [Redirect 308: cors to same cors] + expected: FAIL + + [Redirect 308: cors to another cors] + expected: FAIL + + [Redirect 308: same origin to cors] + expected: FAIL + + [Redirect 308: cors to same origin] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/credentials/authentication-basic-worker.html.ini b/tests/wpt/metadata/fetch/api/credentials/authentication-basic-worker.html.ini index 4cd7132501d..363f35f2715 100644 --- a/tests/wpt/metadata/fetch/api/credentials/authentication-basic-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/credentials/authentication-basic-worker.html.ini @@ -1,6 +1,11 @@ [authentication-basic-worker.html] type: testharness - expected: ERROR [User-added Authorization header with include mode] - expected: NOTRUN + expected: FAIL + + [User-added Authorization header with same-origin mode] + expected: FAIL + + [User-added Authorization header with omit mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/credentials/authentication-basic.html.ini b/tests/wpt/metadata/fetch/api/credentials/authentication-basic.html.ini index 9e85b136c08..ac57e4b540d 100644 --- a/tests/wpt/metadata/fetch/api/credentials/authentication-basic.html.ini +++ b/tests/wpt/metadata/fetch/api/credentials/authentication-basic.html.ini @@ -1,6 +1,11 @@ [authentication-basic.html] type: testharness - expected: ERROR [User-added Authorization header with include mode] - expected: NOTRUN + expected: FAIL + + [User-added Authorization header with same-origin mode] + expected: FAIL + + [User-added Authorization header with omit mode] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/credentials/cookies-worker.html.ini b/tests/wpt/metadata/fetch/api/credentials/cookies-worker.html.ini index 0aaaa1af18c..403cede84de 100644 --- a/tests/wpt/metadata/fetch/api/credentials/cookies-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/credentials/cookies-worker.html.ini @@ -1,6 +1,23 @@ [cookies-worker.html] type: testharness - expected: ERROR [Include mode: 1 cookie] - expected: NOTRUN + expected: FAIL + + [Include mode: 2 cookies] + expected: FAIL + + [Omit mode: discard cookies] + expected: FAIL + + [Omit mode: no cookie is stored] + expected: FAIL + + [Omit mode: no cookie is sent] + expected: FAIL + + [Same-origin mode: 1 cookie] + expected: FAIL + + [Same-origin mode: 2 cookies] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/credentials/cookies.html.ini b/tests/wpt/metadata/fetch/api/credentials/cookies.html.ini index d93de729b7b..1c64dc9fb35 100644 --- a/tests/wpt/metadata/fetch/api/credentials/cookies.html.ini +++ b/tests/wpt/metadata/fetch/api/credentials/cookies.html.ini @@ -1,6 +1,23 @@ [cookies.html] type: testharness - expected: ERROR [Include mode: 1 cookie] - expected: NOTRUN + expected: FAIL + + [Include mode: 2 cookies] + expected: FAIL + + [Omit mode: discard cookies] + expected: FAIL + + [Omit mode: no cookie is stored] + expected: FAIL + + [Omit mode: no cookie is sent] + expected: FAIL + + [Same-origin mode: 1 cookie] + expected: FAIL + + [Same-origin mode: 2 cookies] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini deleted file mode 100644 index 69a663ec45f..00000000000 --- a/tests/wpt/metadata/fetch/api/headers/headers-basic.html.ini +++ /dev/null @@ -1,35 +0,0 @@ -[headers-basic.html] - type: testharness - [Create headers from empty object] - expected: FAIL - - [Create headers with OpenEndedDictionary] - expected: FAIL - - [Create headers with existing headers] - expected: FAIL - - [Check has method] - expected: FAIL - - [Check delete method] - expected: FAIL - - [Check get method] - expected: FAIL - - [Check keys method] - expected: FAIL - - [Check values method] - expected: FAIL - - [Check entries method] - expected: FAIL - - [Check Symbol.iterator method] - expected: FAIL - - [Check forEach method] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/api/headers/headers-casing.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-casing.html.ini deleted file mode 100644 index 12f926380bf..00000000000 --- a/tests/wpt/metadata/fetch/api/headers/headers-casing.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[headers-casing.html] - type: testharness - [Create headers, names use characters with different case] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/api/headers/headers-normalize.html.ini b/tests/wpt/metadata/fetch/api/headers/headers-normalize.html.ini deleted file mode 100644 index 4c333d52194..00000000000 --- a/tests/wpt/metadata/fetch/api/headers/headers-normalize.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[headers-normalize.html] - type: testharness - [Create headers with not normalized values] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/api/policies/csp-blocked-worker.html.ini b/tests/wpt/metadata/fetch/api/policies/csp-blocked-worker.html.ini index 44a5d81a5bc..36464f51328 100644 --- a/tests/wpt/metadata/fetch/api/policies/csp-blocked-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/csp-blocked-worker.html.ini @@ -1,6 +1,5 @@ [csp-blocked-worker.html] type: testharness - expected: ERROR [Fetch is blocked by CSP, got a TypeError] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/csp-blocked.html.ini b/tests/wpt/metadata/fetch/api/policies/csp-blocked.html.ini index e5d6934e19b..72555302f16 100644 --- a/tests/wpt/metadata/fetch/api/policies/csp-blocked.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/csp-blocked.html.ini @@ -1,6 +1,5 @@ [csp-blocked.html] type: testharness - expected: ERROR [Fetch is blocked by CSP, got a TypeError] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer-worker.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer-worker.html.ini index 116bdf51474..12672391661 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer-worker.html.ini @@ -1,6 +1,5 @@ [referrer-no-referrer-worker.html] type: testharness - expected: ERROR [Request's referrer is empty] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer.html.ini index 2d672e9e8ed..8461d3e1fdb 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-no-referrer.html.ini @@ -1,6 +1,5 @@ [referrer-no-referrer.html] type: testharness - expected: ERROR [Request's referrer is empty] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin-worker.html.ini index 48ca82dea3c..877c5d64acd 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin-worker.html.ini @@ -1,6 +1,5 @@ [referrer-origin-when-cross-origin-worker.html] type: testharness - expected: ERROR [Request's referrer is origin] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin.html.ini index 267fc068c4c..54f72fb2059 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-origin-when-cross-origin.html.ini @@ -1,6 +1,5 @@ [referrer-origin-when-cross-origin.html] type: testharness - expected: ERROR [Request's referrer is origin] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-origin-worker.html.ini index 2da4215afb4..c73b106ce69 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-origin-worker.html.ini @@ -1,6 +1,8 @@ [referrer-origin-worker.html] type: testharness - expected: ERROR [Request's referrer is origin] - expected: NOTRUN + expected: FAIL + + [Throw a TypeError referrer is not same-origin with origin] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-origin.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-origin.html.ini index 3a7cdef8f00..60ced001107 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-origin.html.ini @@ -1,6 +1,8 @@ [referrer-origin.html] type: testharness - expected: ERROR [Request's referrer is origin] - expected: NOTRUN + expected: FAIL + + [Throw a TypeError referrer is not same-origin with origin] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url-worker.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url-worker.html.ini index 980cbf19072..c51fe3787b3 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url-worker.html.ini @@ -1,6 +1,5 @@ [referrer-unsafe-url-worker.html] type: testharness - expected: ERROR [Request's referrer is the full url of current document/worker] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url.html.ini b/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url.html.ini index b340d2984e9..5792e4d649e 100644 --- a/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url.html.ini +++ b/tests/wpt/metadata/fetch/api/policies/referrer-unsafe-url.html.ini @@ -1,6 +1,5 @@ [referrer-unsafe-url.html] type: testharness - expected: ERROR [Request's referrer is the full url of current document/worker] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini index 3e3db9225a7..1c7eef97d5d 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini @@ -1,6 +1,32 @@ [redirect-count-worker.html] type: testharness - expected: ERROR [Redirect 301 20 times] - expected: NOTRUN + expected: FAIL + + [Redirect 301 21 times] + expected: FAIL + + [Redirect 302 20 times] + expected: FAIL + + [Redirect 302 21 times] + expected: FAIL + + [Redirect 303 20 times] + expected: FAIL + + [Redirect 303 21 times] + expected: FAIL + + [Redirect 307 20 times] + expected: FAIL + + [Redirect 307 21 times] + expected: FAIL + + [Redirect 308 20 times] + expected: FAIL + + [Redirect 308 21 times] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini index eb07b8134a8..104547d5eb7 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini @@ -1,6 +1,32 @@ [redirect-count.html] type: testharness - expected: ERROR [Redirect 301 20 times] - expected: NOTRUN + expected: FAIL + + [Redirect 301 21 times] + expected: FAIL + + [Redirect 302 20 times] + expected: FAIL + + [Redirect 302 21 times] + expected: FAIL + + [Redirect 303 20 times] + expected: FAIL + + [Redirect 303 21 times] + expected: FAIL + + [Redirect 307 20 times] + expected: FAIL + + [Redirect 307 21 times] + expected: FAIL + + [Redirect 308 20 times] + expected: FAIL + + [Redirect 308 21 times] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-location-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-location-worker.html.ini index 52f5bbdb3ee..d101a8e4958 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-location-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-location-worker.html.ini @@ -1,6 +1,92 @@ [redirect-location-worker.html] type: testharness - expected: ERROR [Redirect 301 in "follow" mode without location] - expected: NOTRUN + expected: FAIL + + [Redirect 301 in "manual" mode without location] + expected: FAIL + + [Redirect 301 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 301 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 301 in "follow" mode with data location] + expected: FAIL + + [Redirect 301 in "manual" mode with data location] + expected: FAIL + + [Redirect 302 in "follow" mode without location] + expected: FAIL + + [Redirect 302 in "manual" mode without location] + expected: FAIL + + [Redirect 302 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 302 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 302 in "follow" mode with data location] + expected: FAIL + + [Redirect 302 in "manual" mode with data location] + expected: FAIL + + [Redirect 303 in "follow" mode without location] + expected: FAIL + + [Redirect 303 in "manual" mode without location] + expected: FAIL + + [Redirect 303 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 303 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 303 in "follow" mode with data location] + expected: FAIL + + [Redirect 303 in "manual" mode with data location] + expected: FAIL + + [Redirect 307 in "follow" mode without location] + expected: FAIL + + [Redirect 307 in "manual" mode without location] + expected: FAIL + + [Redirect 307 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 307 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 307 in "follow" mode with data location] + expected: FAIL + + [Redirect 307 in "manual" mode with data location] + expected: FAIL + + [Redirect 308 in "follow" mode without location] + expected: FAIL + + [Redirect 308 in "manual" mode without location] + expected: FAIL + + [Redirect 308 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 308 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 308 in "follow" mode with data location] + expected: FAIL + + [Redirect 308 in "manual" mode with data location] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-location.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-location.html.ini index 892b154e98d..cf32d72ffe3 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-location.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-location.html.ini @@ -1,6 +1,92 @@ [redirect-location.html] type: testharness - expected: ERROR [Redirect 301 in "follow" mode without location] - expected: NOTRUN + expected: FAIL + + [Redirect 301 in "manual" mode without location] + expected: FAIL + + [Redirect 301 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 301 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 301 in "follow" mode with data location] + expected: FAIL + + [Redirect 301 in "manual" mode with data location] + expected: FAIL + + [Redirect 302 in "follow" mode without location] + expected: FAIL + + [Redirect 302 in "manual" mode without location] + expected: FAIL + + [Redirect 302 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 302 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 302 in "follow" mode with data location] + expected: FAIL + + [Redirect 302 in "manual" mode with data location] + expected: FAIL + + [Redirect 303 in "follow" mode without location] + expected: FAIL + + [Redirect 303 in "manual" mode without location] + expected: FAIL + + [Redirect 303 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 303 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 303 in "follow" mode with data location] + expected: FAIL + + [Redirect 303 in "manual" mode with data location] + expected: FAIL + + [Redirect 307 in "follow" mode without location] + expected: FAIL + + [Redirect 307 in "manual" mode without location] + expected: FAIL + + [Redirect 307 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 307 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 307 in "follow" mode with data location] + expected: FAIL + + [Redirect 307 in "manual" mode with data location] + expected: FAIL + + [Redirect 308 in "follow" mode without location] + expected: FAIL + + [Redirect 308 in "manual" mode without location] + expected: FAIL + + [Redirect 308 in "follow" mode with invalid location] + expected: FAIL + + [Redirect 308 in "manual" mode with invalid location] + expected: FAIL + + [Redirect 308 in "follow" mode with data location] + expected: FAIL + + [Redirect 308 in "manual" mode with data location] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-method-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-method-worker.html.ini index e199a37ffe2..9297aa46ce1 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-method-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-method-worker.html.ini @@ -1,6 +1,41 @@ [redirect-method-worker.html] type: testharness - expected: ERROR [Response.redirected should be false on not-redirected responses] - expected: NOTRUN + expected: FAIL + + [Redirect 301 with GET] + expected: FAIL + + [Redirect 301 with POST] + expected: FAIL + + [Redirect 301 with HEAD] + expected: FAIL + + [Redirect 302 with GET] + expected: FAIL + + [Redirect 302 with POST] + expected: FAIL + + [Redirect 302 with HEAD] + expected: FAIL + + [Redirect 303 with GET] + expected: FAIL + + [Redirect 303 with POST] + expected: FAIL + + [Redirect 303 with HEAD] + expected: FAIL + + [Redirect 307 with GET] + expected: FAIL + + [Redirect 307 with POST] + expected: FAIL + + [Redirect 307 with HEAD] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-method.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-method.html.ini index 62da2b5f620..8c65c9383e2 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-method.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-method.html.ini @@ -1,6 +1,41 @@ [redirect-method.html] type: testharness - expected: ERROR [Response.redirected should be false on not-redirected responses] - expected: NOTRUN + expected: FAIL + + [Redirect 301 with GET] + expected: FAIL + + [Redirect 301 with POST] + expected: FAIL + + [Redirect 301 with HEAD] + expected: FAIL + + [Redirect 302 with GET] + expected: FAIL + + [Redirect 302 with POST] + expected: FAIL + + [Redirect 302 with HEAD] + expected: FAIL + + [Redirect 303 with GET] + expected: FAIL + + [Redirect 303 with POST] + expected: FAIL + + [Redirect 303 with HEAD] + expected: FAIL + + [Redirect 307 with GET] + expected: FAIL + + [Redirect 307 with POST] + expected: FAIL + + [Redirect 307 with HEAD] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-mode-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-mode-worker.html.ini index 0359908d8ab..3c11d6721ef 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-mode-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-mode-worker.html.ini @@ -1,6 +1,47 @@ [redirect-mode-worker.html] type: testharness - expected: ERROR [Redirect 301 in "error" mode ] - expected: NOTRUN + expected: FAIL + + [Redirect 301 in "follow" mode ] + expected: FAIL + + [Redirect 301 in "manual" mode ] + expected: FAIL + + [Redirect 302 in "error" mode ] + expected: FAIL + + [Redirect 302 in "follow" mode ] + expected: FAIL + + [Redirect 302 in "manual" mode ] + expected: FAIL + + [Redirect 303 in "error" mode ] + expected: FAIL + + [Redirect 303 in "follow" mode ] + expected: FAIL + + [Redirect 303 in "manual" mode ] + expected: FAIL + + [Redirect 307 in "error" mode ] + expected: FAIL + + [Redirect 307 in "follow" mode ] + expected: FAIL + + [Redirect 307 in "manual" mode ] + expected: FAIL + + [Redirect 308 in "error" mode ] + expected: FAIL + + [Redirect 308 in "follow" mode ] + expected: FAIL + + [Redirect 308 in "manual" mode ] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-mode.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-mode.html.ini index aef52947ae5..6cd7f1d4bd4 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-mode.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-mode.html.ini @@ -1,6 +1,47 @@ [redirect-mode.html] type: testharness - expected: ERROR [Redirect 301 in "error" mode ] - expected: NOTRUN + expected: FAIL + + [Redirect 301 in "follow" mode ] + expected: FAIL + + [Redirect 301 in "manual" mode ] + expected: FAIL + + [Redirect 302 in "error" mode ] + expected: FAIL + + [Redirect 302 in "follow" mode ] + expected: FAIL + + [Redirect 302 in "manual" mode ] + expected: FAIL + + [Redirect 303 in "error" mode ] + expected: FAIL + + [Redirect 303 in "follow" mode ] + expected: FAIL + + [Redirect 303 in "manual" mode ] + expected: FAIL + + [Redirect 307 in "error" mode ] + expected: FAIL + + [Redirect 307 in "follow" mode ] + expected: FAIL + + [Redirect 307 in "manual" mode ] + expected: FAIL + + [Redirect 308 in "error" mode ] + expected: FAIL + + [Redirect 308 in "follow" mode ] + expected: FAIL + + [Redirect 308 in "manual" mode ] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini index d4315e6c9dd..e844e2e51f7 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini @@ -1,6 +1,62 @@ [redirect-origin-worker.html] type: testharness - expected: ERROR [Same origin to same origin redirection 301] - expected: NOTRUN + expected: FAIL + + [Same origin to other origin redirection 301] + expected: FAIL + + [Other origin to other origin redirection 301] + expected: FAIL + + [Other origin to same origin redirection 301] + expected: FAIL + + [Same origin to same origin redirection 302] + expected: FAIL + + [Same origin to other origin redirection 302] + expected: FAIL + + [Other origin to other origin redirection 302] + expected: FAIL + + [Other origin to same origin redirection 302] + expected: FAIL + + [Same origin to same origin redirection 303] + expected: FAIL + + [Same origin to other origin redirection 303] + expected: FAIL + + [Other origin to other origin redirection 303] + expected: FAIL + + [Other origin to same origin redirection 303] + expected: FAIL + + [Same origin to same origin redirection 307] + expected: FAIL + + [Same origin to other origin redirection 307] + expected: FAIL + + [Other origin to other origin redirection 307] + expected: FAIL + + [Other origin to same origin redirection 307] + expected: FAIL + + [Same origin to same origin redirection 308] + expected: FAIL + + [Same origin to other origin redirection 308] + expected: FAIL + + [Other origin to other origin redirection 308] + expected: FAIL + + [Other origin to same origin redirection 308] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini index bbc6a976e58..89f4d211ba9 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini @@ -1,6 +1,62 @@ [redirect-origin.html] type: testharness - expected: ERROR [Same origin to same origin redirection 301] - expected: NOTRUN + expected: FAIL + + [Same origin to other origin redirection 301] + expected: FAIL + + [Other origin to other origin redirection 301] + expected: FAIL + + [Other origin to same origin redirection 301] + expected: FAIL + + [Same origin to same origin redirection 302] + expected: FAIL + + [Same origin to other origin redirection 302] + expected: FAIL + + [Other origin to other origin redirection 302] + expected: FAIL + + [Other origin to same origin redirection 302] + expected: FAIL + + [Same origin to same origin redirection 303] + expected: FAIL + + [Same origin to other origin redirection 303] + expected: FAIL + + [Other origin to other origin redirection 303] + expected: FAIL + + [Other origin to same origin redirection 303] + expected: FAIL + + [Same origin to same origin redirection 307] + expected: FAIL + + [Same origin to other origin redirection 307] + expected: FAIL + + [Other origin to other origin redirection 307] + expected: FAIL + + [Other origin to same origin redirection 307] + expected: FAIL + + [Same origin to same origin redirection 308] + expected: FAIL + + [Same origin to other origin redirection 308] + expected: FAIL + + [Other origin to other origin redirection 308] + expected: FAIL + + [Other origin to same origin redirection 308] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-schemes.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-schemes.html.ini index 4e7cc9a2e1b..491b4d0cce8 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-schemes.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-schemes.html.ini @@ -1,6 +1,20 @@ [redirect-schemes.html] type: testharness - expected: ERROR [Fetch: handling different schemes in redirects] - expected: NOTRUN + expected: FAIL + + [Fetch: handling different schemes in redirects 1] + expected: FAIL + + [Fetch: handling different schemes in redirects 2] + expected: FAIL + + [Fetch: handling different schemes in redirects 3] + expected: FAIL + + [Fetch: handling different schemes in redirects 4] + expected: FAIL + + [Fetch: handling different schemes in redirects 5] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl-worker.html.ini index ab84a9a805b..a6c2bc1a560 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl-worker.html.ini @@ -1,6 +1,17 @@ [redirect-to-dataurl-worker.html] type: testharness - expected: ERROR [Testing data URL loading after same-origin redirection (cors mode)] - expected: NOTRUN + expected: FAIL + + [Testing data URL loading after same-origin redirection (no-cors mode)] + expected: FAIL + + [Testing data URL loading after same-origin redirection (same-origin mode)] + expected: FAIL + + [Testing data URL loading after cross-origin redirection (cors mode)] + expected: FAIL + + [Testing data URL loading after cross-origin redirection (no-cors mode)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl.html.ini index 3629a7ba3e1..430ee44275a 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-to-dataurl.html.ini @@ -1,6 +1,17 @@ [redirect-to-dataurl.html] type: testharness - expected: ERROR [Testing data URL loading after same-origin redirection (cors mode)] - expected: NOTRUN + expected: FAIL + + [Testing data URL loading after same-origin redirection (no-cors mode)] + expected: FAIL + + [Testing data URL loading after same-origin redirection (same-origin mode)] + expected: FAIL + + [Testing data URL loading after cross-origin redirection (cors mode)] + expected: FAIL + + [Testing data URL loading after cross-origin redirection (no-cors mode)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-cache.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache.html.ini index 453cd49d255..d3f76be8abd 100644 --- a/tests/wpt/metadata/fetch/api/request/request-cache.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-cache.html.ini @@ -1,6 +1,248 @@ [request-cache.html] type: testharness - expected: ERROR [RequestCache "default" mode checks the cache for previously cached content and goes to the network for stale responses with Etag and stale response] - expected: NOTRUN + expected: FAIL + + [RequestCache "default" mode checks the cache for previously cached content and goes to the network for stale responses with date and stale response] + expected: FAIL + + [RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with date and fresh response] + expected: FAIL + + [RequestCache "no-cache" mode revalidates stale responses found in the cache with Etag and stale response] + expected: FAIL + + [RequestCache "no-cache" mode revalidates stale responses found in the cache with date and stale response] + expected: FAIL + + [RequestCache "no-cache" mode revalidates fresh responses found in the cache with Etag and fresh response] + expected: FAIL + + [RequestCache "no-cache" mode revalidates fresh responses found in the cache with date and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with date and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with date and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with date and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with date and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response would vary with date and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response would vary with date and fresh response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and stale response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with date and stale response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for stale responses with date and stale response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for fresh responses with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with date and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with date and stale response] + expected: FAIL + + [RequestCache "no-store" mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response] + expected: FAIL + + [RequestCache "no-store" mode does not check the cache for previously cached content and goes to the network regardless with date and stale response] + expected: FAIL + + [RequestCache "no-store" mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response] + expected: FAIL + + [RequestCache "no-store" mode does not check the cache for previously cached content and goes to the network regardless with date and fresh response] + expected: FAIL + + [RequestCache "no-store" mode does not store the response in the cache with Etag and stale response] + expected: FAIL + + [RequestCache "no-store" mode does not store the response in the cache with date and stale response] + expected: FAIL + + [RequestCache "no-store" mode does not store the response in the cache with Etag and fresh response] + expected: FAIL + + [RequestCache "no-store" mode does not store the response in the cache with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with Etag and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-None-Match header is treated similarly to "no-store" with Etag and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-None-Match header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-None-Match header is treated similarly to "no-store" with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-None-Match header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with Etag and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with Etag and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [Responses with the "Cache-Control: no-store" header are not stored in the cache with Etag and stale response] + expected: FAIL + + [Responses with the "Cache-Control: no-store" header are not stored in the cache with date and stale response] + expected: FAIL + + [Responses with the "Cache-Control: no-store" header are not stored in the cache with Etag and fresh response] + expected: FAIL + + [Responses with the "Cache-Control: no-store" header are not stored in the cache with date and fresh response] + expected: FAIL + + [RequestCache "reload" mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response] + expected: FAIL + + [RequestCache "reload" mode does not check the cache for previously cached content and goes to the network regardless with date and stale response] + expected: FAIL + + [RequestCache "reload" mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response] + expected: FAIL + + [RequestCache "reload" mode does not check the cache for previously cached content and goes to the network regardless with date and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache with Etag and stale response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache with date and stale response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache with Etag and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache with date and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and stale response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with date and stale response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with date and fresh response] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini b/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini index 82cde19ce37..eb2b589fa57 100644 --- a/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini @@ -1,3 +1,8 @@ [request-clone.sub.html] type: testharness - expected: ERROR + [Check cloning a request] + expected: FAIL + + [Check cloning a request copies the headers] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini index 3984cbe0d77..adf5eaeb232 100644 --- a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini @@ -1,6 +1,29 @@ [request-consume-empty.html] type: testharness - expected: ERROR [Consume request's body as text] - expected: NOTRUN + expected: FAIL + + [Consume request's body as blob] + expected: FAIL + + [Consume request's body as arrayBuffer] + expected: FAIL + + [Consume request's body as json] + expected: FAIL + + [Consume request's body as formData] + expected: FAIL + + [Consume empty blob request body as arrayBuffer] + expected: FAIL + + [Consume empty text request body as arrayBuffer] + expected: FAIL + + [Consume empty blob request body as text] + expected: FAIL + + [Consume empty text request body as text] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-consume.html.ini b/tests/wpt/metadata/fetch/api/request/request-consume.html.ini index 0823dce5d84..9dae0fc7a1b 100644 --- a/tests/wpt/metadata/fetch/api/request/request-consume.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-consume.html.ini @@ -1,9 +1,122 @@ [request-consume.html] type: testharness - expected: ERROR - [Consume request's body as text] + [Consume String request's body as text] expected: FAIL - [Consume String request's body as text] - expected: NOTRUN + [Consume String request's body as blob] + expected: FAIL + + [Consume String request's body as arrayBuffer] + expected: FAIL + + [Consume String request's body as json] + expected: FAIL + + [Consume String request's body as formData] + expected: FAIL + + [Consume blob response's body as blob] + expected: FAIL + + [Consume blob response's body as text] + expected: FAIL + + [Consume blob response's body as json] + expected: FAIL + + [Consume blob response's body as arrayBuffer] + expected: FAIL + + [Consume JSON from text: '"null"'] + expected: FAIL + + [Consume JSON from text: '"1"'] + expected: FAIL + + [Consume JSON from text: '"true"'] + expected: FAIL + + [Consume JSON from text: '"\\"string\\""'] + expected: FAIL + + [Trying to consume bad JSON text as JSON: 'undefined'] + expected: FAIL + + [Trying to consume bad JSON text as JSON: '{'] + expected: FAIL + + [Trying to consume bad JSON text as JSON: 'a'] + expected: FAIL + + [Trying to consume bad JSON text as JSON: '['] + expected: FAIL + + [Consume String request's body as JSON] + expected: FAIL + + [Consume ArrayBuffer request's body as text] + expected: FAIL + + [Consume ArrayBuffer request's body as blob] + expected: FAIL + + [Consume ArrayBuffer request's body as arrayBuffer] + expected: FAIL + + [Consume ArrayBuffer request's body as JSON] + expected: FAIL + + [Consume Uint8Array request's body as text] + expected: FAIL + + [Consume Uint8Array request's body as blob] + expected: FAIL + + [Consume Uint8Array request's body as arrayBuffer] + expected: FAIL + + [Consume Uint8Array request's body as JSON] + expected: FAIL + + [Consume Int8Array request's body as text] + expected: FAIL + + [Consume Int8Array request's body as blob] + expected: FAIL + + [Consume Int8Array request's body as arrayBuffer] + expected: FAIL + + [Consume Int8Array request's body as JSON] + expected: FAIL + + [Consume Float32Array request's body as text] + expected: FAIL + + [Consume Float32Array request's body as blob] + expected: FAIL + + [Consume Float32Array request's body as arrayBuffer] + expected: FAIL + + [Consume Float32Array request's body as JSON] + expected: FAIL + + [Consume DataView request's body as text] + expected: FAIL + + [Consume DataView request's body as blob] + expected: FAIL + + [Consume DataView request's body as arrayBuffer] + expected: FAIL + + [Consume DataView request's body as JSON] + expected: FAIL + + [Consume FormData request's body as FormData] + expected: FAIL + + [Consume blob response's body as blob (empty blob as input)] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-headers.html.ini b/tests/wpt/metadata/fetch/api/request/request-headers.html.ini index c8bf2e7f491..abd624770bf 100644 --- a/tests/wpt/metadata/fetch/api/request/request-headers.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-headers.html.ini @@ -1,6 +1,5 @@ [request-headers.html] type: testharness - expected: ERROR [Request should get its content-type from the body if none is provided] expected: FAIL @@ -8,5 +7,5 @@ expected: FAIL [Testing empty Request Content-Type header] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-init-002.html.ini b/tests/wpt/metadata/fetch/api/request/request-init-002.html.ini index 094110f7feb..903c3bbdba3 100644 --- a/tests/wpt/metadata/fetch/api/request/request-init-002.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-init-002.html.ini @@ -1,9 +1,20 @@ [request-init-002.html] type: testharness - expected: ERROR - [Initialize Request with headers values] + [Initialize Request's body with undefined] expected: FAIL - [Initialize Request's body with undefined] - expected: NOTRUN + [Initialize Request's body with null] + expected: FAIL + + [Initialize Request's body with application/octet-binary] + expected: FAIL + + [Initialize Request's body with multipart/form-data] + expected: FAIL + + [Initialize Request's body with text/plain;charset=UTF-8] + expected: FAIL + + [Initialize Request's body with application/x-www-form-urlencoded;charset=UTF-8] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-init-003.sub.html.ini b/tests/wpt/metadata/fetch/api/request/request-init-003.sub.html.ini index 83baaaab7f1..e5e3d9856c6 100644 --- a/tests/wpt/metadata/fetch/api/request/request-init-003.sub.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-init-003.sub.html.ini @@ -1,3 +1,14 @@ [request-init-003.sub.html] type: testharness - expected: ERROR + [Check request values when initialized from Request] + expected: FAIL + + [Check request values when initialized from Request and init values] + expected: FAIL + + [Check request values when initialized from url string] + expected: FAIL + + [Check request values when initialized from url and init values] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-structure.html.ini b/tests/wpt/metadata/fetch/api/request/request-structure.html.ini index 9d40c13ac0c..31e9c7b713d 100644 --- a/tests/wpt/metadata/fetch/api/request/request-structure.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-structure.html.ini @@ -15,9 +15,6 @@ [Request has text method] expected: FAIL - [Check headers attribute] - expected: FAIL - [Check referrer attribute] expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-cancel-stream.html.ini b/tests/wpt/metadata/fetch/api/response/response-cancel-stream.html.ini index 6edab145393..772b1b6822a 100644 --- a/tests/wpt/metadata/fetch/api/response/response-cancel-stream.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-cancel-stream.html.ini @@ -1,6 +1,20 @@ [response-cancel-stream.html] type: testharness - expected: ERROR [Cancelling a starting blob Response stream] - expected: NOTRUN + expected: FAIL + + [Cancelling a loading blob Response stream] + expected: FAIL + + [Cancelling a closed blob Response stream] + expected: FAIL + + [Cancelling a starting Response stream] + expected: FAIL + + [Cancelling a loading Response stream] + expected: FAIL + + [Cancelling a closed Response stream] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-clone.html.ini b/tests/wpt/metadata/fetch/api/response/response-clone.html.ini index a570446c57c..0f02dd1b75f 100644 --- a/tests/wpt/metadata/fetch/api/response/response-clone.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-clone.html.ini @@ -1,3 +1,20 @@ [response-clone.html] type: testharness - expected: ERROR + [Check Response's clone has the expected attribute values] + expected: FAIL + + [Check orginal response's body after cloning] + expected: FAIL + + [Check cloned response's body] + expected: FAIL + + [Cannot clone a disturbed response] + expected: FAIL + + [Cloned responses should provide the same data] + expected: FAIL + + [Cancelling stream should not affect cloned one] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini index 7b3de44a527..ad63d701eec 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini @@ -1,6 +1,29 @@ [response-consume-empty.html] type: testharness - expected: ERROR [Consume response's body as text] - expected: NOTRUN + expected: FAIL + + [Consume response's body as blob] + expected: FAIL + + [Consume response's body as arrayBuffer] + expected: FAIL + + [Consume response's body as json] + expected: FAIL + + [Consume response's body as formData] + expected: FAIL + + [Consume empty blob response body as arrayBuffer] + expected: FAIL + + [Consume empty text response body as arrayBuffer] + expected: FAIL + + [Consume empty blob response body as text] + expected: FAIL + + [Consume empty text response body as text] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini index 8c33fce2739..21ed2f7d8cc 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini @@ -1,6 +1,26 @@ [response-consume-stream.html] type: testharness - expected: ERROR [Read empty text response's body as readableStream] - expected: NOTRUN + expected: FAIL + + [Read empty blob response's body as readableStream] + expected: FAIL + + [Read blob response's body as readableStream] + expected: FAIL + + [Read text response's body as readableStream] + expected: FAIL + + [Read form data response's body as readableStream] + expected: FAIL + + [Getting an error Response stream] + expected: FAIL + + [Getting a redirect Response stream] + expected: FAIL + + [Read array buffer response's body as readableStream] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-consume.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume.html.ini index 4c3ad7cc84c..be3d40e5dea 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume.html.ini @@ -1,6 +1,50 @@ [response-consume.html] type: testharness - expected: ERROR [Consume response's body as text] - expected: NOTRUN + expected: FAIL + + [Consume response's body as blob] + expected: FAIL + + [Consume response's body as arrayBuffer] + expected: FAIL + + [Consume response's body as json] + expected: FAIL + + [Consume response's body as formData] + expected: FAIL + + [Consume blob response's body as blob] + expected: FAIL + + [Consume blob response's body as text] + expected: FAIL + + [Consume blob response's body as json] + expected: FAIL + + [Consume blob response's body as arrayBuffer] + expected: FAIL + + [Consume stream response's body as blob] + expected: FAIL + + [Consume stream response's body as text] + expected: FAIL + + [Consume stream response's body as json] + expected: FAIL + + [Consume stream response's body as arrayBuffer] + expected: FAIL + + [Consume fetched response's body as blob] + expected: FAIL + + [Consume fetched response's body as text] + expected: FAIL + + [Consume fetched response's body as arrayBuffer] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-init-002.html.ini b/tests/wpt/metadata/fetch/api/response/response-init-002.html.ini index 7a29195fff2..6fbd45bbb99 100644 --- a/tests/wpt/metadata/fetch/api/response/response-init-002.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-init-002.html.ini @@ -1,9 +1,20 @@ [response-init-002.html] type: testharness - expected: ERROR - [Initialize Response with headers values] + [Initialize Response's body with application/octet-binary] expected: FAIL - [Initialize Response's body with application/octet-binary] - expected: NOTRUN + [Initialize Response's body with multipart/form-data] + expected: FAIL + + [Initialize Response's body with application/x-www-form-urlencoded;charset=UTF-8] + expected: FAIL + + [Initialize Response's body with text/plain;charset=UTF-8] + expected: FAIL + + [Read Response's body as readableStream] + expected: FAIL + + [Testing empty Response Content-Type header] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-1.html.ini b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-1.html.ini index cf3bd11dfc1..c8f955c526f 100644 --- a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-1.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-1.html.ini @@ -1,6 +1,14 @@ [response-stream-disturbed-1.html] type: testharness - expected: ERROR [Getting blob after getting the Response body - not disturbed, not locked] - expected: NOTRUN + expected: FAIL + + [Getting text after getting the Response body - not disturbed, not locked] + expected: FAIL + + [Getting json after getting the Response body - not disturbed, not locked] + expected: FAIL + + [Getting arrayBuffer after getting the Response body - not disturbed, not locked] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-2.html.ini b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-2.html.ini index f06515815e0..b1431ca6e30 100644 --- a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-2.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-2.html.ini @@ -1,6 +1,14 @@ [response-stream-disturbed-2.html] type: testharness - expected: ERROR [Getting blob after getting a locked Response body] - expected: NOTRUN + expected: FAIL + + [Getting text after getting a locked Response body] + expected: FAIL + + [Getting json after getting a locked Response body] + expected: FAIL + + [Getting arrayBuffer after getting a locked Response body] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-3.html.ini b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-3.html.ini index 9fe666dc8bf..07c1348b8a2 100644 --- a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-3.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-3.html.ini @@ -1,6 +1,14 @@ [response-stream-disturbed-3.html] type: testharness - expected: ERROR [Getting blob after reading the Response body] - expected: NOTRUN + expected: FAIL + + [Getting text after reading the Response body] + expected: FAIL + + [Getting json after reading the Response body] + expected: FAIL + + [Getting arrayBuffer after reading the Response body] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-4.html.ini b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-4.html.ini index ceeea9d3650..d5092502494 100644 --- a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-4.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-4.html.ini @@ -1,6 +1,14 @@ [response-stream-disturbed-4.html] type: testharness - expected: ERROR [Getting blob after cancelling the Response body] - expected: NOTRUN + expected: FAIL + + [Getting text after cancelling the Response body] + expected: FAIL + + [Getting json after cancelling the Response body] + expected: FAIL + + [Getting arrayBuffer after cancelling the Response body] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-5.html.ini b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-5.html.ini index ae46c41f0b8..61a2d4a90de 100644 --- a/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-5.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-stream-disturbed-5.html.ini @@ -1,6 +1,14 @@ [response-stream-disturbed-5.html] type: testharness - expected: ERROR [Getting a body reader after consuming as blob] - expected: NOTRUN + expected: FAIL + + [Getting a body reader after consuming as text] + expected: FAIL + + [Getting a body reader after consuming as json] + expected: FAIL + + [Getting a body reader after consuming as arrayBuffer] + expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini b/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini deleted file mode 100644 index e8b8bb5229e..00000000000 --- a/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[stylesheet.html] - type: testharness - expected: CRASH diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html.ini index 79cd003bfbb..12c3c88a12b 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html.ini @@ -1,9 +1,14 @@ [allow_prototype_cycle_through_location.sub.html] type: testharness - expected: ERROR [same-origin, same-window location cycle] expected: FAIL [cross-origin location has null prototype] - expected: NOTRUN + expected: FAIL + + [same-origin, different-window location cycle] + expected: FAIL + + [cross-origin, but joined via document.domain, location cycle] + expected: FAIL diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 240d96a350b..85354ada30b 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -3750,12 +3750,6 @@ [HTMLSelectElement interface: attribute options] expected: FAIL - [HTMLSelectElement interface: attribute length] - expected: FAIL - - [HTMLSelectElement interface: operation item(unsigned long)] - expected: FAIL - [HTMLSelectElement interface: operation namedItem(DOMString)] expected: FAIL @@ -3801,15 +3795,6 @@ [HTMLSelectElement interface: document.createElement("select") must inherit property "options" with the proper type (9)] expected: FAIL - [HTMLSelectElement interface: document.createElement("select") must inherit property "length" with the proper type (10)] - expected: FAIL - - [HTMLSelectElement interface: document.createElement("select") must inherit property "item" with the proper type (11)] - expected: FAIL - - [HTMLSelectElement interface: calling item(unsigned long) on document.createElement("select") with too few arguments must throw TypeError] - expected: FAIL - [HTMLSelectElement interface: document.createElement("select") must inherit property "namedItem" with the proper type (12)] expected: FAIL @@ -4359,15 +4344,9 @@ [HTMLScriptElement interface: attribute async] expected: FAIL - [HTMLScriptElement interface: attribute crossOrigin] - expected: FAIL - [HTMLScriptElement interface: document.createElement("script") must inherit property "async" with the proper type (3)] expected: FAIL - [HTMLScriptElement interface: document.createElement("script") must inherit property "crossOrigin" with the proper type (5)] - expected: FAIL - [HTMLCanvasElement interface: operation probablySupportsContext(DOMString,any)] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/reflection-misc.html.ini b/tests/wpt/metadata/html/dom/reflection-misc.html.ini index 953d81ccd68..bfe086b35fd 100644 --- a/tests/wpt/metadata/html/dom/reflection-misc.html.ini +++ b/tests/wpt/metadata/html/dom/reflection-misc.html.ini @@ -1317,222 +1317,6 @@ [script.tabIndex: IDL set to -2147483648 followed by getAttribute()] expected: FAIL - [script.crossOrigin: typeof IDL attribute] - expected: FAIL - - [script.crossOrigin: IDL get with DOM attribute unset] - expected: FAIL - - [script.crossOrigin: setAttribute() to "" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to undefined followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to 7 followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to 1.5 followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to true followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to false followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to object "[object Object\]" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to NaN followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to Infinity followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to -Infinity followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to null followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to object "test-toString" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to object "test-valueOf" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "anonymous" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "xanonymous" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "anonymous\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "nonymous" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "ANONYMOUS" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "use-credentials" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "xuse-credentials" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "use-credentials\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "se-credentials" followed by IDL get] - expected: FAIL - - [script.crossOrigin: setAttribute() to "USE-CREDENTIALS" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to undefined followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to undefined followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to 7 followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to 7 followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to 1.5 followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to 1.5 followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to true followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to true followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to false followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to false followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to object "[object Object\]" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to object "[object Object\]" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to NaN followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to NaN followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to Infinity followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to Infinity followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to -Infinity followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to -Infinity followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "\\0" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to object "test-toString" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to object "test-toString" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to object "test-valueOf" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to object "test-valueOf" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "anonymous" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "xanonymous" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "xanonymous" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "anonymous\\0" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "anonymous\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "nonymous" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "nonymous" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "ANONYMOUS" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "ANONYMOUS" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "use-credentials" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "xuse-credentials" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "xuse-credentials" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "use-credentials\\0" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "use-credentials\\0" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "se-credentials" followed by getAttribute()] - expected: FAIL - - [script.crossOrigin: IDL set to "se-credentials" followed by IDL get] - expected: FAIL - - [script.crossOrigin: IDL set to "USE-CREDENTIALS" followed by IDL get] - expected: FAIL - [script.itemScope: typeof IDL attribute] expected: FAIL @@ -12447,6 +12231,3 @@ [dialog.itemId: IDL set to object "test-valueOf" followed by IDL get] expected: FAIL - [script.crossOrigin: IDL set to null followed by getAttribute()] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini deleted file mode 100644 index 0e668519240..00000000000 --- a/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-style-error-01.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[link-style-error-01.html] - type: testharness - expected: CRASH diff --git a/tests/wpt/metadata/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html.ini b/tests/wpt/metadata/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html.ini deleted file mode 100644 index 68013761645..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/the-select-element/common-HTMLOptionsCollection.html.ini +++ /dev/null @@ -1,18 +0,0 @@ -[common-HTMLOptionsCollection.html] - type: testharness - [On getting, the length attribute must return the number of nodes represented by the collection.] - expected: FAIL - bug: https://github.com/servo/servo/issues/11763 - - [Changing the length adds new nodes; The number of new nodes = new length minus old length] - expected: FAIL - bug: https://github.com/servo/servo/issues/11763 - - [New nodes have no value] - expected: FAIL - bug: https://github.com/servo/servo/issues/11763 - - [Setting a length equal to existing length changes nothing] - expected: FAIL - bug: https://github.com/servo/servo/issues/11763 - diff --git a/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_raf.html.ini b/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_raf.html.ini index 65b151e379d..a4a067521c4 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_raf.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_raf.html.ini @@ -1,6 +1,5 @@ [microtask_after_raf.html] type: testharness - expected: ERROR [Microtask execute immediately after script] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_script.html.ini b/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_script.html.ini index 58a9150837c..49871c85772 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_script.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/event-loops/microtask_after_script.html.ini @@ -1,6 +1,5 @@ [microtask_after_script.html] type: testharness - expected: ERROR [Microtask immediately after script] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/methods.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/methods.html.ini index f2b90d3e9b6..6cec6740f90 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/methods.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/context/methods.html.ini @@ -71,9 +71,6 @@ [WebGL test #22: Property either does not exist or is not a function: isContextLost] expected: FAIL - [WebGL test #23: Property either does not exist or is not a function: isEnabled] - expected: FAIL - [WebGL test #24: Property either does not exist or is not a function: isFramebuffer] expected: FAIL @@ -215,9 +212,6 @@ [WebGL test #18: Property either does not exist or is not a function: isContextLost] expected: FAIL - [WebGL test #19: Property either does not exist or is not a function: isEnabled] - expected: FAIL - [WebGL test #20: Property either does not exist or is not a function: isFramebuffer] expected: FAIL diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/state/gl-enable-enum-test.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/state/gl-enable-enum-test.html.ini index eb7f288f864..977499e3cfe 100644 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/state/gl-enable-enum-test.html.ini +++ b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/state/gl-enable-enum-test.html.ini @@ -1,60 +1,9 @@ [gl-enable-enum-test.html] type: testharness - [WebGL test #59: gl.isEnabled(gl.BLEND) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #60: gl.isEnabled(gl.BLEND) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #62: gl.isEnabled(gl.CULL_FACE) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #63: gl.isEnabled(gl.CULL_FACE) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #65: gl.isEnabled(gl.DEPTH_TEST) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #66: gl.isEnabled(gl.DEPTH_TEST) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #68: gl.isEnabled(gl.DITHER) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #69: gl.isEnabled(gl.DITHER) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #71: gl.isEnabled(gl.POLYGON_OFFSET_FILL) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #72: gl.isEnabled(gl.POLYGON_OFFSET_FILL) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #74: gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #75: gl.isEnabled(gl.SAMPLE_ALPHA_TO_COVERAGE) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #77: gl.isEnabled(gl.SAMPLE_COVERAGE) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #78: gl.isEnabled(gl.SAMPLE_COVERAGE) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #80: gl.isEnabled(gl.SCISSOR_TEST) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #81: gl.isEnabled(gl.SCISSOR_TEST) should be false. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - [WebGL test #82: getError expected: NO_ERROR. Was INVALID_ENUM : gl.enable must succeed when passed gl.STENCIL_TEST] expected: FAIL - [WebGL test #83: gl.isEnabled(gl.STENCIL_TEST) should be true. Threw exception TypeError: gl.isEnabled is not a function] - expected: FAIL - - [WebGL test #84: gl.isEnabled(gl.STENCIL_TEST) should be false. Threw exception TypeError: gl.isEnabled is not a function] + [WebGL test #83: gl.isEnabled(gl.STENCIL_TEST) should be true. Was false.] expected: FAIL [WebGL test #85: getError expected: NO_ERROR. Was INVALID_ENUM : there should be no errors] diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index ede708b825b..fbdcc358cb1 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -2364,18 +2364,6 @@ "url": "/_mozilla/css/incremental_trailing_whitespace_a.html" } ], - "css/incremental_trailing_whitespace_ref.html": [ - { - "path": "css/incremental_trailing_whitespace_ref.html", - "references": [ - [ - "/_mozilla/css/incremental_trailing_whitespace_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/incremental_trailing_whitespace_ref.html" - } - ], "css/incremental_visibility_a.html": [ { "path": "css/incremental_visibility_a.html", @@ -2388,18 +2376,6 @@ "url": "/_mozilla/css/incremental_visibility_a.html" } ], - "css/incremental_visibility_ref.html": [ - { - "path": "css/incremental_visibility_ref.html", - "references": [ - [ - "/_mozilla/css/incremental_visibility_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/incremental_visibility_ref.html" - } - ], "css/inline_absolute_hypothetical_clip_a.html": [ { "path": "css/inline_absolute_hypothetical_clip_a.html", @@ -2940,18 +2916,6 @@ "url": "/_mozilla/css/input_placeholder.html" } ], - "css/input_placeholder_ref.html": [ - { - "path": "css/input_placeholder_ref.html", - "references": [ - [ - "/_mozilla/css/input_placeholder_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_placeholder_ref.html" - } - ], "css/input_selection_a.html": [ { "path": "css/input_selection_a.html", @@ -2976,18 +2940,6 @@ "url": "/_mozilla/css/input_selection_incremental_a.html" } ], - "css/input_selection_ref.html": [ - { - "path": "css/input_selection_ref.html", - "references": [ - [ - "/_mozilla/css/input_selection_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_selection_ref.html" - } - ], "css/input_whitespace.html": [ { "path": "css/input_whitespace.html", @@ -3000,18 +2952,6 @@ "url": "/_mozilla/css/input_whitespace.html" } ], - "css/input_whitespace_ref.html": [ - { - "path": "css/input_whitespace_ref.html", - "references": [ - [ - "/_mozilla/css/input_whitespace_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_whitespace_ref.html" - } - ], "css/inset.html": [ { "path": "css/inset.html", @@ -3552,18 +3492,6 @@ "url": "/_mozilla/css/max_inline_block_size_image.html" } ], - "css/max_inline_block_size_ref.html": [ - { - "path": "css/max_inline_block_size_ref.html", - "references": [ - [ - "/_mozilla/css/max_inline_block_size_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/max_inline_block_size_ref.html" - } - ], "css/max_width_float_simple_a.html": [ { "path": "css/max_width_float_simple_a.html", @@ -3660,18 +3588,6 @@ "url": "/_mozilla/css/multiple_backgrounds.html" } ], - "css/multiple_backgrounds_ref.html": [ - { - "path": "css/multiple_backgrounds_ref.html", - "references": [ - [ - "/_mozilla/css/multiple_backgrounds_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/multiple_backgrounds_ref.html" - } - ], "css/multiple_css_class_a.html": [ { "path": "css/multiple_css_class_a.html", @@ -6370,18 +6286,6 @@ "url": "/_mozilla/mozilla/webgl/tex_image_2d_canvas2d.html" } ], - "mozilla/webgl/tex_image_2d_canvas_no_context.html": [ - { - "path": "mozilla/webgl/tex_image_2d_canvas_no_context.html", - "references": [ - [ - "/_mozilla/mozilla/webgl/tex_image_2d_canvas_no_context.html", - "==" - ] - ], - "url": "/_mozilla/mozilla/webgl/tex_image_2d_canvas_no_context.html" - } - ], "mozilla/webgl/tex_image_2d_mipmap.html": [ { "path": "mozilla/webgl/tex_image_2d_mipmap.html", @@ -7176,6 +7080,12 @@ "url": "/_mozilla/mozilla/preserve_wrapper_callback.html" } ], + "mozilla/promise.html": [ + { + "path": "mozilla/promise.html", + "url": "/_mozilla/mozilla/promise.html" + } + ], "mozilla/prototypes.html": [ { "path": "mozilla/prototypes.html", @@ -16084,18 +15994,6 @@ "url": "/_mozilla/css/incremental_trailing_whitespace_a.html" } ], - "css/incremental_trailing_whitespace_ref.html": [ - { - "path": "css/incremental_trailing_whitespace_ref.html", - "references": [ - [ - "/_mozilla/css/incremental_trailing_whitespace_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/incremental_trailing_whitespace_ref.html" - } - ], "css/incremental_visibility_a.html": [ { "path": "css/incremental_visibility_a.html", @@ -16108,18 +16006,6 @@ "url": "/_mozilla/css/incremental_visibility_a.html" } ], - "css/incremental_visibility_ref.html": [ - { - "path": "css/incremental_visibility_ref.html", - "references": [ - [ - "/_mozilla/css/incremental_visibility_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/incremental_visibility_ref.html" - } - ], "css/inline_absolute_hypothetical_clip_a.html": [ { "path": "css/inline_absolute_hypothetical_clip_a.html", @@ -16660,18 +16546,6 @@ "url": "/_mozilla/css/input_placeholder.html" } ], - "css/input_placeholder_ref.html": [ - { - "path": "css/input_placeholder_ref.html", - "references": [ - [ - "/_mozilla/css/input_placeholder_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_placeholder_ref.html" - } - ], "css/input_selection_a.html": [ { "path": "css/input_selection_a.html", @@ -16696,18 +16570,6 @@ "url": "/_mozilla/css/input_selection_incremental_a.html" } ], - "css/input_selection_ref.html": [ - { - "path": "css/input_selection_ref.html", - "references": [ - [ - "/_mozilla/css/input_selection_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_selection_ref.html" - } - ], "css/input_whitespace.html": [ { "path": "css/input_whitespace.html", @@ -16720,18 +16582,6 @@ "url": "/_mozilla/css/input_whitespace.html" } ], - "css/input_whitespace_ref.html": [ - { - "path": "css/input_whitespace_ref.html", - "references": [ - [ - "/_mozilla/css/input_whitespace_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/input_whitespace_ref.html" - } - ], "css/inset.html": [ { "path": "css/inset.html", @@ -17272,18 +17122,6 @@ "url": "/_mozilla/css/max_inline_block_size_image.html" } ], - "css/max_inline_block_size_ref.html": [ - { - "path": "css/max_inline_block_size_ref.html", - "references": [ - [ - "/_mozilla/css/max_inline_block_size_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/max_inline_block_size_ref.html" - } - ], "css/max_width_float_simple_a.html": [ { "path": "css/max_width_float_simple_a.html", @@ -17380,18 +17218,6 @@ "url": "/_mozilla/css/multiple_backgrounds.html" } ], - "css/multiple_backgrounds_ref.html": [ - { - "path": "css/multiple_backgrounds_ref.html", - "references": [ - [ - "/_mozilla/css/multiple_backgrounds_ref.html", - "==" - ] - ], - "url": "/_mozilla/css/multiple_backgrounds_ref.html" - } - ], "css/multiple_css_class_a.html": [ { "path": "css/multiple_css_class_a.html", @@ -20090,18 +19916,6 @@ "url": "/_mozilla/mozilla/webgl/tex_image_2d_canvas2d.html" } ], - "mozilla/webgl/tex_image_2d_canvas_no_context.html": [ - { - "path": "mozilla/webgl/tex_image_2d_canvas_no_context.html", - "references": [ - [ - "/_mozilla/mozilla/webgl/tex_image_2d_canvas_no_context.html", - "==" - ] - ], - "url": "/_mozilla/mozilla/webgl/tex_image_2d_canvas_no_context.html" - } - ], "mozilla/webgl/tex_image_2d_mipmap.html": [ { "path": "mozilla/webgl/tex_image_2d_mipmap.html", diff --git a/tests/wpt/mozilla/meta/mozilla/promise.html.ini b/tests/wpt/mozilla/meta/mozilla/promise.html.ini new file mode 100644 index 00000000000..784c666e1b7 --- /dev/null +++ b/tests/wpt/mozilla/meta/mozilla/promise.html.ini @@ -0,0 +1,3 @@ +[promise.html] + type: testharness + prefs: [dom.testbinding.enabled:true] diff --git a/tests/wpt/mozilla/tests/css/incremental_trailing_whitespace_ref.html b/tests/wpt/mozilla/tests/css/incremental_trailing_whitespace_ref.html index 8eaec14a2fd..bfb2ac99ff9 100644 --- a/tests/wpt/mozilla/tests/css/incremental_trailing_whitespace_ref.html +++ b/tests/wpt/mozilla/tests/css/incremental_trailing_whitespace_ref.html @@ -3,7 +3,6 @@ <head> <meta charset="utf-8"> <title>incremental trailing whitespace reference</title> - <link rel="match" href="incremental_trailing_whitespace_ref.html"> <style> #a { border: 0 solid; diff --git a/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html b/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html index a90c2b184e3..e07d1d6d064 100644 --- a/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html +++ b/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html @@ -3,7 +3,6 @@ <head> <meta charset="UTF-8"> <title>Incremental visibility reference</title> - <link rel="match" href="incremental_visibility_ref.html"> <style> div { background: green; diff --git a/tests/wpt/mozilla/tests/css/input_placeholder_ref.html b/tests/wpt/mozilla/tests/css/input_placeholder_ref.html index b82bc1cc702..1caffed07f2 100644 --- a/tests/wpt/mozilla/tests/css/input_placeholder_ref.html +++ b/tests/wpt/mozilla/tests/css/input_placeholder_ref.html @@ -1,5 +1,4 @@ <!doctype html> <meta charset="utf-8"> <title></title> -<link rel="match" href="input_placeholder_ref.html"> <input type=text value="foo bar"><input type=text value="foo bar"> diff --git a/tests/wpt/mozilla/tests/css/input_selection_ref.html b/tests/wpt/mozilla/tests/css/input_selection_ref.html index 2f6dcd296f2..62b79642af6 100644 --- a/tests/wpt/mozilla/tests/css/input_selection_ref.html +++ b/tests/wpt/mozilla/tests/css/input_selection_ref.html @@ -3,7 +3,6 @@ <head> <meta charset="utf-8"> <title>input selection test</title> - <link rel="match" href="input_selection_ref.html"> <style> span { font: 16px sans-serif; diff --git a/tests/wpt/mozilla/tests/css/input_whitespace_ref.html b/tests/wpt/mozilla/tests/css/input_whitespace_ref.html index 2599f727870..b7bc7c503ce 100644 --- a/tests/wpt/mozilla/tests/css/input_whitespace_ref.html +++ b/tests/wpt/mozilla/tests/css/input_whitespace_ref.html @@ -3,7 +3,6 @@ <head> <meta charset="utf-8"> <title></title> -<link rel="match" href="input_whitespace_ref.html"> </head> <body> <div><input type="text" size="30" value="placeholder"></div> diff --git a/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html b/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html index 7fa1370faf7..b5fce02a270 100644 --- a/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html +++ b/tests/wpt/mozilla/tests/css/max_inline_block_size_ref.html @@ -1,7 +1,6 @@ <!doctype html> <meta charset="utf-8"> <title>Max inline-block size inside another inline-block element</title> -<link rel="match" href="max_inline_block_size_ref.html"> <style> html, body { margin: 0; padding: 0; } diff --git a/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html b/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html index d3af6fe5881..7ff13a4ce18 100644 --- a/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html +++ b/tests/wpt/mozilla/tests/css/multiple_backgrounds_ref.html @@ -3,7 +3,6 @@ <head> <meta charset="utf-8"> <title></title> - <link rel="match" href="multiple_backgrounds_ref.html"> <style type="text/css"> /* Example from https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Background_and_Borders/Using_CSS_multiple_backgrounds diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.js b/tests/wpt/mozilla/tests/mozilla/interfaces.js index 7501325dd94..c6eeab6bdbc 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.js @@ -27,6 +27,7 @@ function test_interfaces(interfaceNamesInGlobalScope) { "NaN", "Number", "Object", + "Promise", "Proxy", "RangeError", "ReferenceError", diff --git a/tests/wpt/mozilla/tests/mozilla/promise.html b/tests/wpt/mozilla/tests/mozilla/promise.html new file mode 100644 index 00000000000..fa16edc8b1e --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/promise.html @@ -0,0 +1,67 @@ +<!doctype html> +<meta charset=utf-8> +<title></title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script> + promise_test(function() { + var t = new TestBinding; + return t.returnResolvedPromise('success') + .then(function(s) { + assert_equals(s, 'success'); + }); + }, 'Resolve callback gets argument'); + + promise_test(function(test) { + var t = new TestBinding; + return t.returnRejectedPromise('success') + .then(test.unreached_func()) + .catch(function(s) { + assert_equals(s, 'success'); + }); + }, 'Reject callback gets argument'); + + promise_test(function(test) { + var t = new TestBinding; + var p = new Promise(function() {}); + t.promiseRejectWithTypeError(p, "success"); + return promise_rejects(test, new TypeError("success"), p, "TypeError should be instantiated"); + }, 'Native code rejects with exception'); + + promise_test(function(test) { + var t = new TestBinding; + var resolved; + var p = t.promiseNativeHandler(function(v) { + resolved = v; + }, null); + t.promiseResolveNative(p, 'success'); + return p.then(function() { + assert_equals(resolved, 'success') + }); + }, 'Native resolve callback gets argument'); + + promise_test(function(test) { + var t = new TestBinding; + var rejected; + var p = t.promiseNativeHandler(null, function(v) { + rejected = v; + }); + t.promiseRejectNative(p, 'success'); + return p.catch(function() { + assert_equals(rejected, 'success') + }); + }, 'Native reject callback gets argument'); + + promise_test(function(test) { + var t = new TestBinding; + var resolved; + var p = new Promise(function() {}); + var start = Date.now(); + t.resolvePromiseDelayed(p, 'success', 100); + return p.then(function(v) { + var end = Date.now(); + assert_greater_than_equal(end - start, 100); + assert_equals(v, 'success'); + }); + }, 'Native promise from async callback can be resolved'); +</script> diff --git a/tests/wpt/mozilla/tests/mozilla/webgl/tex_image_2d_canvas_no_context.html b/tests/wpt/mozilla/tests/mozilla/webgl/tex_image_2d_canvas_no_context.html index 390425e3a09..157773ff10d 100644 --- a/tests/wpt/mozilla/tests/mozilla/webgl/tex_image_2d_canvas_no_context.html +++ b/tests/wpt/mozilla/tests/mozilla/webgl/tex_image_2d_canvas_no_context.html @@ -1,6 +1,5 @@ <!doctype html> <html> - <link rel="match" href="tex_image_2d_canvas_no_context.html"></link> <meta charset="utf-8"> <title>WebGL texture test</title> <!-- diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/cross-origin.py b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/cross-origin.py new file mode 100644 index 00000000000..f8e05d96627 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/cross-origin.py @@ -0,0 +1,10 @@ +def main(request, response): + headers = [("Content-Type", "text/javascript")] + milk = request.cookies.first("milk", None) + + if milk is None: + return headers, "var included = false;" + elif milk.value == "yes": + return headers, "var included = true;" + + return headers, "var included = false;" diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html new file mode 100644 index 00000000000..488dd4488a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html @@ -0,0 +1,49 @@ +<!doctype html> +<meta charset="utf-8"> +<title>HTMLScriptElement: crossorigin attribute network test</title> +<link rel="author" title="KiChjang" href="mailto:kungfukeith11@gmail.com"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#cors-settings-attribute"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<body> + <script type="text/javascript"> + var test1 = async_test(document.title + "1"); + var test2 = async_test(document.title + "2"); + var test3 = async_test(document.title + "3"); + + var script1 = document.createElement("script"); + script1.src = "resources/cross-origin.py"; + script1.crossOrigin = "use-credentials"; + var script2 = document.createElement("script"); + script2.src = "resources/cross-origin.py"; + script2.crossOrigin = "gibberish"; + var script3 = document.createElement("script"); + script3.src = "resources/cross-origin.py"; + + document.cookie = "milk=yes"; + document.body.appendChild(script1); + script1.onload = function() { + test1.step(function() { + assert_true(included, "credentials should be included in script request"); + test1.done(); + }); + }; + + document.body.appendChild(script2); + script2.onload = function() { + test2.step(function() { + assert_true(included, "invalid values should default to include credentials due to response tainting"); + test2.done(); + }); + }; + + document.body.appendChild(script3); + script3.onload = function() { + test3.step(function() { + assert_true(included, "missing value should default to include credentials"); + test3.done(); + }); + }; + </script> +</body> diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin.html new file mode 100644 index 00000000000..52857a08ea0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin.html @@ -0,0 +1,39 @@ +<!doctype html> +<meta charset="utf-8"> +<title>HTMLScriptElement: crossOrigin IDL attribute</title> +<link rel="author" title="KiChjang" href="mailto:kungfukeith11@gmail.com"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#cors-settings-attribute"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script id="script1"></script> +<script id="script2" crossorigin=""></script> +<script id="script3" crossorigin="foo"></script> +<script id="script4" crossorigin="anonymous"></script> +<script id="script5" crossorigin="use-credentials"></script> +<script> +test(function() { + var script1 = document.getElementById("script1"); + var script2 = document.getElementById("script2"); + var script3 = document.getElementById("script3"); + var script4 = document.getElementById("script4"); + var script5 = document.getElementById("script5"); + + assert_equals(script1.crossOrigin, null, "Missing value default should be null"); + assert_equals(script2.crossOrigin, "anonymous", "Empty string should map to anonymous"); + assert_equals(script3.crossOrigin, "anonymous", "Invalid value default should be anonymous"); + assert_equals(script4.crossOrigin, "anonymous", "anonymous should be parsed correctly"); + assert_equals(script5.crossOrigin, "use-credentials", "use-credentials should be parsed correctly"); + + script1.crossOrigin = "bar"; + assert_equals(script1.crossOrigin, "anonymous", "Setting to invalid value would default to anonymous"); + + script2.crossOrigin = null; + assert_equals(script2.crossOrigin, null, "Resetting to null should work"); + + script4.crossOrigin = "use-credentials"; + assert_equals(script4.crossOrigin, "use-credentials", "Switching from anonymous to use-credentials should work"); + + script5.crossOrigin = "anonymous"; + assert_equals(script5.crossOrigin, "anonymous", "Switching from use-credentials to anonymous should work"); +}, document.title); +</script> |