diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-13 08:52:18 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-13 08:52:18 +0530 |
commit | ef74bf5d42e80f9420a197dbe3d7da609ba158b0 (patch) | |
tree | 7c2d366bba257db81a37bdd59b006405c6815c09 | |
parent | 118fbd6120fdcbec04858ecddb3ac8be882f4da1 (diff) | |
parent | 607cb0eeb724378827659c3daefff3622fc8c10d (diff) | |
download | servo-ef74bf5d42e80f9420a197dbe3d7da609ba158b0.tar.gz servo-ef74bf5d42e80f9420a197dbe3d7da609ba158b0.zip |
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 -->
-rw-r--r-- | components/script/script_task.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 71c55ef8b77..b0648f6f27c 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -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); } } |