mirror of
https://github.com/servo/servo.git
synced 2025-06-08 08:33:26 +00:00
Remove reflow status from browsing context.
This commit is contained in:
parent
6e26197c06
commit
611f3b38a1
2 changed files with 1 additions and 20 deletions
|
@ -33,9 +33,6 @@ use std::cell::Cell;
|
||||||
pub struct BrowsingContext {
|
pub struct BrowsingContext {
|
||||||
reflector: Reflector,
|
reflector: Reflector,
|
||||||
|
|
||||||
/// Indicates if reflow is required when reloading.
|
|
||||||
needs_reflow: Cell<bool>,
|
|
||||||
|
|
||||||
/// Has this browsing context been discarded?
|
/// Has this browsing context been discarded?
|
||||||
discarded: Cell<bool>,
|
discarded: Cell<bool>,
|
||||||
|
|
||||||
|
@ -47,7 +44,6 @@ impl BrowsingContext {
|
||||||
pub fn new_inherited(frame_element: Option<&Element>) -> BrowsingContext {
|
pub fn new_inherited(frame_element: Option<&Element>) -> BrowsingContext {
|
||||||
BrowsingContext {
|
BrowsingContext {
|
||||||
reflector: Reflector::new(),
|
reflector: Reflector::new(),
|
||||||
needs_reflow: Cell::new(true),
|
|
||||||
discarded: Cell::new(false),
|
discarded: Cell::new(false),
|
||||||
frame_element: frame_element.map(JS::from_ref),
|
frame_element: frame_element.map(JS::from_ref),
|
||||||
}
|
}
|
||||||
|
@ -95,12 +91,6 @@ impl BrowsingContext {
|
||||||
assert!(!window_proxy.get().is_null());
|
assert!(!window_proxy.get().is_null());
|
||||||
window_proxy.get()
|
window_proxy.get()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_reflow_status(&self, status: bool) -> bool {
|
|
||||||
let old = self.needs_reflow.get();
|
|
||||||
self.needs_reflow.set(status);
|
|
||||||
old
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
|
|
|
@ -1371,12 +1371,7 @@ impl ScriptThread {
|
||||||
fn handle_thaw_msg(&self, id: PipelineId) {
|
fn handle_thaw_msg(&self, id: PipelineId) {
|
||||||
let document = self.documents.borrow().find_document(id);
|
let document = self.documents.borrow().find_document(id);
|
||||||
if let Some(document) = document {
|
if let Some(document) = document {
|
||||||
if let Some(context) = document.browsing_context() {
|
|
||||||
let needed_reflow = context.set_reflow_status(false);
|
|
||||||
if needed_reflow {
|
|
||||||
self.rebuild_and_force_reflow(&document, ReflowReason::CachedPageNeededReflow);
|
self.rebuild_and_force_reflow(&document, ReflowReason::CachedPageNeededReflow);
|
||||||
}
|
|
||||||
}
|
|
||||||
document.window().thaw();
|
document.window().thaw();
|
||||||
document.fully_activate();
|
document.fully_activate();
|
||||||
return;
|
return;
|
||||||
|
@ -1451,7 +1446,6 @@ impl ScriptThread {
|
||||||
let window = self.documents.borrow().find_window(id)
|
let window = self.documents.borrow().find_window(id)
|
||||||
.expect("ScriptThread: received a resize msg for a pipeline not in this script thread. This is a bug.");
|
.expect("ScriptThread: received a resize msg for a pipeline not in this script thread. This is a bug.");
|
||||||
window.set_window_size(new_size);
|
window.set_window_size(new_size);
|
||||||
window.browsing_context().set_reflow_status(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// We have gotten a window.close from script, which we pass on to the compositor.
|
/// We have gotten a window.close from script, which we pass on to the compositor.
|
||||||
|
@ -2188,9 +2182,6 @@ impl ScriptThread {
|
||||||
let window = window_from_node(&*document);
|
let window = window_from_node(&*document);
|
||||||
window.reflow(ReflowGoal::ForDisplay, ReflowQueryType::NoQuery, ReflowReason::FirstLoad);
|
window.reflow(ReflowGoal::ForDisplay, ReflowQueryType::NoQuery, ReflowReason::FirstLoad);
|
||||||
|
|
||||||
// No more reflow required
|
|
||||||
window.browsing_context().set_reflow_status(false);
|
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#the-end steps 3-4.
|
// https://html.spec.whatwg.org/multipage/#the-end steps 3-4.
|
||||||
document.process_deferred_scripts();
|
document.process_deferred_scripts();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue