mirror of
https://github.com/servo/servo.git
synced 2025-06-08 00:23:30 +00:00
Auto merge of #8500 - frewsxcv:subpage, r=jdm
Consolidate 'subpage finding' script_task logic <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8500) <!-- Reviewable:end -->
This commit is contained in:
commit
ef74bf5d42
1 changed files with 12 additions and 11 deletions
|
@ -708,6 +708,12 @@ impl ScriptTask {
|
|||
self.page.borrow().as_ref().unwrap().clone()
|
||||
}
|
||||
|
||||
/// Find a child page of the root page by pipeline id. Returns `None` if the root page does
|
||||
/// not exist or the subpage cannot be found.
|
||||
fn find_subpage(&self, pipeline_id: PipelineId) -> Option<Rc<Page>> {
|
||||
self.page.borrow().as_ref().and_then(|page| page.find(pipeline_id))
|
||||
}
|
||||
|
||||
pub fn get_cx(&self) -> *mut JSContext {
|
||||
self.js_runtime.cx()
|
||||
}
|
||||
|
@ -1098,13 +1104,10 @@ impl ScriptTask {
|
|||
}
|
||||
|
||||
fn handle_resize(&self, id: PipelineId, size: WindowSizeData) {
|
||||
let page = self.page.borrow();
|
||||
if let Some(ref page) = page.as_ref() {
|
||||
if let Some(ref page) = page.find(id) {
|
||||
let window = page.window();
|
||||
window.set_resize_event(size);
|
||||
return;
|
||||
}
|
||||
if let Some(ref page) = self.find_subpage(id) {
|
||||
let window = page.window();
|
||||
window.set_resize_event(size);
|
||||
return;
|
||||
}
|
||||
let mut loads = self.incomplete_loads.borrow_mut();
|
||||
if let Some(ref mut load) = loads.iter_mut().find(|load| load.pipeline_id == id) {
|
||||
|
@ -1499,10 +1502,8 @@ impl ScriptTask {
|
|||
|
||||
/// Handles a Web font being loaded. Does nothing if the page no longer exists.
|
||||
fn handle_web_font_loaded(&self, pipeline_id: PipelineId) {
|
||||
if let Some(page) = self.page.borrow().as_ref() {
|
||||
if let Some(page) = page.find(pipeline_id) {
|
||||
self.rebuild_and_force_reflow(&*page, ReflowReason::WebFontLoaded);
|
||||
}
|
||||
if let Some(ref page) = self.find_subpage(pipeline_id) {
|
||||
self.rebuild_and_force_reflow(page, ReflowReason::WebFontLoaded);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue