aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_thread/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_thread/lib.rs')
-rw-r--r--components/layout_thread/lib.rs27
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);
},