mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #8256 - notriddle:master, r=eefriedman
Write reflow results, even with no root node. Fixes #8240 Test in w3c/csswg-test#928. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8256) <!-- Reviewable:end -->
This commit is contained in:
commit
532f9a053a
1 changed files with 28 additions and 4 deletions
|
@ -1082,21 +1082,45 @@ impl LayoutTask {
|
|||
|
||||
let document = unsafe { LayoutNode::new(&data.document) };
|
||||
let document = document.as_document().unwrap();
|
||||
|
||||
debug!("layout: received layout request for: {}", self.url.serialize());
|
||||
|
||||
let mut rw_data = possibly_locked_rw_data.lock();
|
||||
|
||||
let node: LayoutNode = match document.root_node() {
|
||||
None => return,
|
||||
None => {
|
||||
// Since we cannot compute anything, give spec-required placeholders.
|
||||
debug!("layout: No root node: bailing");
|
||||
match data.query_type {
|
||||
ReflowQueryType::ContentBoxQuery(_) => {
|
||||
rw_data.content_box_response = Rect::zero();
|
||||
},
|
||||
ReflowQueryType::ContentBoxesQuery(_) => {
|
||||
rw_data.content_boxes_response = Vec::new();
|
||||
},
|
||||
ReflowQueryType::NodeGeometryQuery(_) => {
|
||||
rw_data.client_rect_response = Rect::zero();
|
||||
},
|
||||
ReflowQueryType::ResolvedStyleQuery(_, _, _) => {
|
||||
rw_data.resolved_style_response = None;
|
||||
},
|
||||
ReflowQueryType::OffsetParentQuery(_) => {
|
||||
rw_data.offset_parent_response = OffsetParentResponse::empty();
|
||||
},
|
||||
ReflowQueryType::NoQuery => {}
|
||||
}
|
||||
return;
|
||||
},
|
||||
Some(x) => x,
|
||||
};
|
||||
|
||||
debug!("layout: received layout request for: {}", self.url.serialize());
|
||||
if log_enabled!(log::LogLevel::Debug) {
|
||||
node.dump();
|
||||
}
|
||||
|
||||
let mut rw_data = possibly_locked_rw_data.lock();
|
||||
let stylesheets: Vec<&Stylesheet> = data.document_stylesheets.iter().map(|entry| &**entry)
|
||||
.collect();
|
||||
let stylesheets_changed = data.stylesheets_changed;
|
||||
|
||||
let initial_viewport = data.window_size.initial_viewport;
|
||||
let old_viewport_size = self.viewport_size;
|
||||
let current_screen_size = Size2D::new(Au::from_f32_px(initial_viewport.width.get()),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue