diff options
Diffstat (limited to 'components/layout_thread/lib.rs')
-rw-r--r-- | components/layout_thread/lib.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs index 6819027564c..14dbfc0c80e 100644 --- a/components/layout_thread/lib.rs +++ b/components/layout_thread/lib.rs @@ -49,12 +49,13 @@ use layout::flow_ref::FlowRef; use layout::incremental::{RelayoutMode, SpecialRestyleDamage}; use layout::layout_debug; use layout::parallel; -use layout::query::{process_client_rect_query, process_element_inner_text_query}; use layout::query::{ - process_content_box_request, process_content_boxes_request, LayoutRPCImpl, LayoutThreadData, + process_client_rect_query, process_content_box_request, process_content_boxes_request, + process_element_inner_text_query, process_node_scroll_area_request, + process_node_scroll_id_request, process_offset_parent_query, + process_resolved_font_style_request, process_resolved_style_request, LayoutRPCImpl, + LayoutThreadData, }; -use layout::query::{process_node_scroll_area_request, process_node_scroll_id_request}; -use layout::query::{process_offset_parent_query, process_resolved_style_request}; use layout::sequential; use layout::traversal::{ construct_flows_at_ancestors, ComputeStackingRelativePositions, PreorderFlowTraversal, @@ -558,6 +559,7 @@ impl LayoutThread { scroll_id_response: None, scroll_area_response: Rect::zero(), resolved_style_response: String::new(), + resolved_font_style_response: None, offset_parent_response: OffsetParentResponse::empty(), scroll_offsets: HashMap::new(), text_index_response: TextIndexResponse(None), @@ -1231,6 +1233,9 @@ impl LayoutThread { &QueryMsg::ElementInnerTextQuery(_) => { rw_data.element_inner_text_response = String::new(); }, + &QueryMsg::ResolvedFontStyleQuery(..) => { + rw_data.resolved_font_style_response = None; + }, &QueryMsg::InnerWindowDimensionsQuery(_) => { rw_data.inner_window_dimensions_response = None; }, @@ -1498,6 +1503,7 @@ impl LayoutThread { &mut *rw_data, &mut layout_context, data.result.borrow_mut().as_mut().unwrap(), + document_shared_lock, ); } @@ -1507,6 +1513,7 @@ impl LayoutThread { rw_data: &mut LayoutThreadData, context: &mut LayoutContext, reflow_result: &mut ReflowComplete, + shared_lock: &SharedRwLock, ) { reflow_result.pending_images = std::mem::replace(&mut *context.pending_images.lock().unwrap(), vec![]); @@ -1549,6 +1556,18 @@ impl LayoutThread { rw_data.resolved_style_response = process_resolved_style_request(context, node, pseudo, property, root_flow); }, + &QueryMsg::ResolvedFontStyleQuery(node, ref property, ref value) => { + let node = unsafe { ServoLayoutNode::new(&node) }; + let url = self.url.clone(); + rw_data.resolved_font_style_response = process_resolved_font_style_request( + context, + node, + value, + property, + url, + shared_lock, + ); + }, &QueryMsg::OffsetParentQuery(node) => { rw_data.offset_parent_response = process_offset_parent_query(node, root_flow); }, |