aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-11-13 08:52:18 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-11-13 08:52:18 +0530
commitef74bf5d42e80f9420a197dbe3d7da609ba158b0 (patch)
tree7c2d366bba257db81a37bdd59b006405c6815c09
parent118fbd6120fdcbec04858ecddb3ac8be882f4da1 (diff)
parent607cb0eeb724378827659c3daefff3622fc8c10d (diff)
downloadservo-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.rs23
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);
}
}