mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
auto merge of #4859 : glennw/servo/fix-3986, r=larsbergstrom
This commit is contained in:
commit
13b49ddf44
2 changed files with 6 additions and 4 deletions
|
@ -753,9 +753,10 @@ impl ScriptTask {
|
||||||
}
|
}
|
||||||
|
|
||||||
// otherwise find just the matching page and exit all sub-pages
|
// otherwise find just the matching page and exit all sub-pages
|
||||||
match page.remove(id) {
|
match page.find(id) {
|
||||||
Some(ref mut page) => {
|
Some(ref mut page) => {
|
||||||
shut_down_layout(&*page, (*self.js_runtime).ptr, exit_type);
|
shut_down_layout(&*page, (*self.js_runtime).ptr, exit_type);
|
||||||
|
page.remove(id);
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
// TODO(tkuehn): pipeline closing is currently duplicated across
|
// TODO(tkuehn): pipeline closing is currently duplicated across
|
||||||
|
@ -1321,8 +1322,9 @@ fn shut_down_layout(page_tree: &Rc<Page>, rt: *mut JSRuntime, exit_type: Pipelin
|
||||||
// processed this message.
|
// processed this message.
|
||||||
let (response_chan, response_port) = channel();
|
let (response_chan, response_port) = channel();
|
||||||
let LayoutChan(ref chan) = page.layout_chan;
|
let LayoutChan(ref chan) = page.layout_chan;
|
||||||
chan.send(layout_interface::Msg::PrepareToExit(response_chan)).unwrap();
|
if chan.send(layout_interface::Msg::PrepareToExit(response_chan)).is_ok() {
|
||||||
response_port.recv().unwrap();
|
response_port.recv().unwrap();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove our references to the DOM objects in this page tree.
|
// Remove our references to the DOM objects in this page tree.
|
||||||
|
@ -1344,7 +1346,7 @@ fn shut_down_layout(page_tree: &Rc<Page>, rt: *mut JSRuntime, exit_type: Pipelin
|
||||||
// Destroy the layout task. If there were node leaks, layout will now crash safely.
|
// Destroy the layout task. If there were node leaks, layout will now crash safely.
|
||||||
for page in page_tree.iter() {
|
for page in page_tree.iter() {
|
||||||
let LayoutChan(ref chan) = page.layout_chan;
|
let LayoutChan(ref chan) = page.layout_chan;
|
||||||
chan.send(layout_interface::Msg::ExitNow(exit_type)).unwrap();
|
chan.send(layout_interface::Msg::ExitNow(exit_type)).ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue