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 = unsafe { LayoutNode::new(&data.document) };
|
||||||
let document = document.as_document().unwrap();
|
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() {
|
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,
|
Some(x) => x,
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!("layout: received layout request for: {}", self.url.serialize());
|
|
||||||
if log_enabled!(log::LogLevel::Debug) {
|
if log_enabled!(log::LogLevel::Debug) {
|
||||||
node.dump();
|
node.dump();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut rw_data = possibly_locked_rw_data.lock();
|
|
||||||
let stylesheets: Vec<&Stylesheet> = data.document_stylesheets.iter().map(|entry| &**entry)
|
let stylesheets: Vec<&Stylesheet> = data.document_stylesheets.iter().map(|entry| &**entry)
|
||||||
.collect();
|
.collect();
|
||||||
let stylesheets_changed = data.stylesheets_changed;
|
let stylesheets_changed = data.stylesheets_changed;
|
||||||
|
|
||||||
let initial_viewport = data.window_size.initial_viewport;
|
let initial_viewport = data.window_size.initial_viewport;
|
||||||
let old_viewport_size = self.viewport_size;
|
let old_viewport_size = self.viewport_size;
|
||||||
let current_screen_size = Size2D::new(Au::from_f32_px(initial_viewport.width.get()),
|
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