diff options
author | Cameron McCormack <cam@mcc.id.au> | 2017-11-24 15:51:43 +0800 |
---|---|---|
committer | Cameron McCormack <cam@mcc.id.au> | 2017-12-05 10:04:52 +0800 |
commit | 374f0091c1487b9c0c44e096a301379701711c58 (patch) | |
tree | a083b5369eeef33fd665bb7e4aa3a49ecc858bdb /ports | |
parent | 1e0b216ea084ff597c63fd1b6179994b7b67ba6c (diff) | |
download | servo-374f0091c1487b9c0c44e096a301379701711c58.tar.gz servo-374f0091c1487b9c0c44e096a301379701711c58.zip |
geckolib: Add FFI function to parse a @counter-style name.
Diffstat (limited to 'ports')
-rw-r--r-- | ports/geckolib/glue.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 3a1af21f726..e9ef9d8104f 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -18,6 +18,7 @@ use std::ptr; use style::applicable_declarations::ApplicableDeclarationBlock; use style::context::{CascadeInputs, QuirksMode, SharedStyleContext, StyleContext}; use style::context::ThreadLocalStyleContext; +use style::counter_style; use style::data::{ElementStyles, self}; use style::dom::{ShowSubtreeData, TDocument, TElement, TNode}; use style::driver; @@ -4735,3 +4736,16 @@ pub unsafe extern "C" fn Servo_SourceSizeList_Evaluate( pub unsafe extern "C" fn Servo_SourceSizeList_Drop(list: RawServoSourceSizeListOwned) { let _ = list.into_box::<SourceSizeList>(); } + +#[no_mangle] +pub extern "C" fn Servo_ParseCounterStyleName( + value: *const nsACString, +) -> *mut nsAtom { + let value = unsafe { value.as_ref().unwrap().as_str_unchecked() }; + let mut input = ParserInput::new(&value); + let mut parser = Parser::new(&mut input); + match parser.parse_entirely(counter_style::parse_counter_style_name_definition) { + Ok(name) => name.0.into_addrefed(), + Err(_) => ptr::null_mut(), + } +} |