Remove reflow status from browsing context.

This commit is contained in:
Alan Jeffrey 2017-01-12 15:06:31 -06:00
parent 6e26197c06
commit 611f3b38a1
2 changed files with 1 additions and 20 deletions

View file

@ -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)]

View file

@ -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() { self.rebuild_and_force_reflow(&document, ReflowReason::CachedPageNeededReflow);
let needed_reflow = context.set_reflow_status(false);
if needed_reflow {
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();
} }