stylo: Pass parser URL data in Servo_DeclarationBlock_SetProperty*

MozReview-Commit-ID: EVk4aEoyiXv
This commit is contained in:
Manish Goregaokar 2017-02-22 17:19:04 -08:00 committed by Manish Goregaokar
parent 14d8eb93ba
commit eda6a4fc4f
6 changed files with 132 additions and 25 deletions

View file

@ -14,6 +14,7 @@ use gecko_bindings::structs::RawServoAnimationValue;
use gecko_bindings::structs::RawServoDeclarationBlock;
use gecko_bindings::structs::RawGeckoPresContext;
use gecko_bindings::structs::RawGeckoPresContextOwned;
use gecko_bindings::structs::GeckoParserExtraData;
use gecko_bindings::structs::RefPtr;
use gecko_bindings::structs::ThreadSafeURIHolder;
use gecko_bindings::structs::ThreadSafePrincipalHolder;
@ -1339,10 +1340,8 @@ extern "C" {
extern "C" {
pub fn Servo_ParseProperty(property: *const nsACString_internal,
value: *const nsACString_internal,
base_url: *const nsACString_internal,
base: *mut ThreadSafeURIHolder,
referrer: *mut ThreadSafeURIHolder,
principal: *mut ThreadSafePrincipalHolder)
base: *const nsACString_internal,
data: *const GeckoParserExtraData)
-> RawServoDeclarationBlockStrong;
}
extern "C" {
@ -1466,7 +1465,12 @@ extern "C" {
*const nsACString_internal,
value:
*const nsACString_internal,
is_important: bool) -> bool;
is_important: bool,
base:
*const nsACString_internal,
data:
*const GeckoParserExtraData)
-> bool;
}
extern "C" {
pub fn Servo_DeclarationBlock_SetPropertyById(declarations:
@ -1474,7 +1478,12 @@ extern "C" {
property: nsCSSPropertyID,
value:
*const nsACString_internal,
is_important: bool) -> bool;
is_important: bool,
base:
*const nsACString_internal,
data:
*const GeckoParserExtraData)
-> bool;
}
extern "C" {
pub fn Servo_DeclarationBlock_RemoveProperty(declarations:

View file

@ -25749,6 +25749,40 @@ pub mod root {
impl Clone for ServoBundledURI {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug)]
pub struct GeckoParserExtraData {
pub mBaseURI: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
pub mReferrer: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
pub mPrincipal: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIPrincipal>>,
}
#[test]
fn bindgen_test_layout_GeckoParserExtraData() {
assert_eq!(::std::mem::size_of::<GeckoParserExtraData>() , 24usize ,
concat ! (
"Size of: " , stringify ! ( GeckoParserExtraData ) ));
assert_eq! (::std::mem::align_of::<GeckoParserExtraData>() , 8usize ,
concat ! (
"Alignment of " , stringify ! ( GeckoParserExtraData ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mBaseURI
as * const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mBaseURI )
));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mReferrer
as * const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mReferrer )
));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mPrincipal
as * const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mPrincipal )
));
}
pub type nsMediaFeatureValueGetter =
::std::option::Option<unsafe extern "C" fn(aPresContext:
*mut root::nsPresContext,

View file

@ -25148,6 +25148,40 @@ pub mod root {
impl Clone for ServoBundledURI {
fn clone(&self) -> Self { *self }
}
#[repr(C)]
#[derive(Debug)]
pub struct GeckoParserExtraData {
pub mBaseURI: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
pub mReferrer: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
pub mPrincipal: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIPrincipal>>,
}
#[test]
fn bindgen_test_layout_GeckoParserExtraData() {
assert_eq!(::std::mem::size_of::<GeckoParserExtraData>() , 24usize ,
concat ! (
"Size of: " , stringify ! ( GeckoParserExtraData ) ));
assert_eq! (::std::mem::align_of::<GeckoParserExtraData>() , 8usize ,
concat ! (
"Alignment of " , stringify ! ( GeckoParserExtraData ) ));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mBaseURI
as * const _ as usize } , 0usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mBaseURI )
));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mReferrer
as * const _ as usize } , 8usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mReferrer )
));
assert_eq! (unsafe {
& ( * ( 0 as * const GeckoParserExtraData ) ) . mPrincipal
as * const _ as usize } , 16usize , concat ! (
"Alignment of field: " , stringify ! (
GeckoParserExtraData ) , "::" , stringify ! ( mPrincipal )
));
}
pub type nsMediaFeatureValueGetter =
::std::option::Option<unsafe extern "C" fn(aPresContext:
*mut root::nsPresContext,