mirror of
https://github.com/servo/servo.git
synced 2025-08-25 07:08:21 +01:00
Bug 1357583: style: Hook up the invalidator in the StyleSheetSet. r=heycam
MozReview-Commit-ID: IhgKAovTJMX
This commit is contained in:
parent
658075af32
commit
39e836966e
5 changed files with 117 additions and 22 deletions
|
@ -732,9 +732,16 @@ pub extern "C" fn Servo_StyleSheet_ClearAndUpdate(stylesheet: RawServoStyleSheet
|
|||
pub extern "C" fn Servo_StyleSet_AppendStyleSheet(raw_data: RawServoStyleSetBorrowed,
|
||||
raw_sheet: RawServoStyleSheetBorrowed,
|
||||
unique_id: u64) {
|
||||
let global_style_data = &*GLOBAL_STYLE_DATA;
|
||||
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
|
||||
let mut data = &mut *data;
|
||||
let sheet = HasArcFFI::as_arc(&raw_sheet);
|
||||
data.stylesheets.append_stylesheet(sheet, unique_id);
|
||||
let guard = global_style_data.shared_lock.read();
|
||||
data.stylesheets.append_stylesheet(
|
||||
&data.stylist,
|
||||
sheet,
|
||||
unique_id,
|
||||
&guard);
|
||||
data.clear_stylist();
|
||||
}
|
||||
|
||||
|
@ -742,9 +749,16 @@ pub extern "C" fn Servo_StyleSet_AppendStyleSheet(raw_data: RawServoStyleSetBorr
|
|||
pub extern "C" fn Servo_StyleSet_PrependStyleSheet(raw_data: RawServoStyleSetBorrowed,
|
||||
raw_sheet: RawServoStyleSheetBorrowed,
|
||||
unique_id: u64) {
|
||||
let global_style_data = &*GLOBAL_STYLE_DATA;
|
||||
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
|
||||
let mut data = &mut *data;
|
||||
let sheet = HasArcFFI::as_arc(&raw_sheet);
|
||||
data.stylesheets.prepend_stylesheet(sheet, unique_id);
|
||||
let guard = global_style_data.shared_lock.read();
|
||||
data.stylesheets.prepend_stylesheet(
|
||||
&data.stylist,
|
||||
sheet,
|
||||
unique_id,
|
||||
&guard);
|
||||
data.clear_stylist();
|
||||
}
|
||||
|
||||
|
@ -753,9 +767,17 @@ pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore(raw_data: RawServoStyleS
|
|||
raw_sheet: RawServoStyleSheetBorrowed,
|
||||
unique_id: u64,
|
||||
before_unique_id: u64) {
|
||||
let global_style_data = &*GLOBAL_STYLE_DATA;
|
||||
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
|
||||
let mut data = &mut *data;
|
||||
let sheet = HasArcFFI::as_arc(&raw_sheet);
|
||||
data.stylesheets.insert_stylesheet_before(sheet, unique_id, before_unique_id);
|
||||
let guard = global_style_data.shared_lock.read();
|
||||
data.stylesheets.insert_stylesheet_before(
|
||||
&data.stylist,
|
||||
sheet,
|
||||
unique_id,
|
||||
before_unique_id,
|
||||
&guard);
|
||||
data.clear_stylist();
|
||||
}
|
||||
|
||||
|
@ -770,12 +792,13 @@ pub extern "C" fn Servo_StyleSet_RemoveStyleSheet(raw_data: RawServoStyleSetBorr
|
|||
#[no_mangle]
|
||||
pub extern "C" fn Servo_StyleSet_FlushStyleSheets(
|
||||
raw_data: RawServoStyleSetBorrowed,
|
||||
doc_element: RawServoElementBorrowedOrNull)
|
||||
doc_element: RawGeckoElementBorrowedOrNull)
|
||||
{
|
||||
let global_style_data = &*GLOBAL_STYLE_DATA;
|
||||
let guard = global_style_data.shared_lock.read();
|
||||
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
|
||||
data.flush_stylesheets(&guard);
|
||||
let doc_element = doc_element.map(GeckoElement);
|
||||
data.flush_stylesheets(&guard, doc_element);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue