mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Remove code duplication in finding FrameTrees with a given pipeline id.
This commit is contained in:
parent
08b3902bbb
commit
969a4e30fb
1 changed files with 13 additions and 16 deletions
|
@ -313,6 +313,15 @@ impl Constellation {
|
||||||
&self.navigation_context.current
|
&self.navigation_context.current
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns both the navigation context and pending frame trees whose keys are pipeline_id.
|
||||||
|
pub fn find_all(&mut self, pipeline_id: PipelineId) -> ~[@mut FrameTree] {
|
||||||
|
let matching_navi_frames = self.navigation_context.find_all(pipeline_id);
|
||||||
|
let matching_pending_frames = do self.pending_frames.iter().filter_map |frame_change| {
|
||||||
|
frame_change.after.find_mut(pipeline_id)
|
||||||
|
};
|
||||||
|
matching_navi_frames.move_iter().chain(matching_pending_frames).collect()
|
||||||
|
}
|
||||||
|
|
||||||
/// Handles loading pages, navigation, and granting access to the compositor
|
/// Handles loading pages, navigation, and granting access to the compositor
|
||||||
fn handle_request(&mut self, request: Msg) -> bool {
|
fn handle_request(&mut self, request: Msg) -> bool {
|
||||||
match request {
|
match request {
|
||||||
|
@ -385,14 +394,8 @@ impl Constellation {
|
||||||
let url = make_url(failure, None);
|
let url = make_url(failure, None);
|
||||||
pipeline.load(url);
|
pipeline.load(url);
|
||||||
|
|
||||||
let frame_trees: ~[@mut FrameTree] = {
|
let frames = self.find_all(pipeline_id);
|
||||||
let matching_navi_frames = self.navigation_context.find_all(pipeline_id);
|
for frame_tree in frames.iter() {
|
||||||
let matching_pending_frames = do self.pending_frames.iter().filter_map |frame_change| {
|
|
||||||
frame_change.after.find_mut(pipeline_id)
|
|
||||||
};
|
|
||||||
matching_navi_frames.move_iter().chain(matching_pending_frames).collect()
|
|
||||||
};
|
|
||||||
for frame_tree in frame_trees.iter() {
|
|
||||||
frame_tree.pipeline = pipeline;
|
frame_tree.pipeline = pipeline;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -456,14 +459,8 @@ impl Constellation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Traverse the navigation context and pending frames and tell each associated pipeline to resize.
|
// Traverse the navigation context and pending frames and tell each associated pipeline to resize.
|
||||||
let frame_trees: ~[@mut FrameTree] = {
|
let frames = self.find_all(pipeline_id);
|
||||||
let matching_navi_frames = self.navigation_context.find_all(pipeline_id);
|
for frame_tree in frames.iter() {
|
||||||
let matching_pending_frames = do self.pending_frames.iter().filter_map |frame_change| {
|
|
||||||
frame_change.after.find_mut(pipeline_id)
|
|
||||||
};
|
|
||||||
matching_navi_frames.move_iter().chain(matching_pending_frames).collect()
|
|
||||||
};
|
|
||||||
for frame_tree in frame_trees.iter() {
|
|
||||||
for child_frame_tree in frame_tree.children.mut_iter() {
|
for child_frame_tree in frame_tree.children.mut_iter() {
|
||||||
let pipeline = &child_frame_tree.frame_tree.pipeline;
|
let pipeline = &child_frame_tree.frame_tree.pipeline;
|
||||||
if pipeline.subpage_id.expect("Constellation: child frame does not have a
|
if pipeline.subpage_id.expect("Constellation: child frame does not have a
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue