mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Consistently use parent_pipeline_id
Instead of containing_pipeline_id, use parent_pipeline_id because it is more clear that it refers to the immediate parent.
This commit is contained in:
parent
9d097e7d15
commit
b9b25b6f82
6 changed files with 56 additions and 56 deletions
|
@ -825,7 +825,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
}
|
}
|
||||||
FromScriptMsg::ScriptLoadedURLInIFrame(load_info) => {
|
FromScriptMsg::ScriptLoadedURLInIFrame(load_info) => {
|
||||||
debug!("constellation got iframe URL load message {:?} {:?} {:?}",
|
debug!("constellation got iframe URL load message {:?} {:?} {:?}",
|
||||||
load_info.containing_pipeline_id,
|
load_info.parent_pipeline_id,
|
||||||
load_info.old_subpage_id,
|
load_info.old_subpage_id,
|
||||||
load_info.new_subpage_id);
|
load_info.new_subpage_id);
|
||||||
self.handle_script_loaded_url_in_iframe_msg(load_info);
|
self.handle_script_loaded_url_in_iframe_msg(load_info);
|
||||||
|
@ -1227,20 +1227,20 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
|
|
||||||
// The script thread associated with pipeline_id has loaded a URL in an iframe via script. This
|
// The script thread associated with pipeline_id has loaded a URL in an iframe via script. This
|
||||||
// will result in a new pipeline being spawned and a frame tree being added to
|
// will result in a new pipeline being spawned and a frame tree being added to
|
||||||
// containing_page_pipeline_id's frame tree's children. This message is never the result of a
|
// parent_pipeline_id's frame tree's children. This message is never the result of a
|
||||||
// page navigation.
|
// page navigation.
|
||||||
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IFrameLoadInfo) {
|
fn handle_script_loaded_url_in_iframe_msg(&mut self, load_info: IFrameLoadInfo) {
|
||||||
let old_pipeline_id = load_info.old_subpage_id
|
let old_pipeline_id = load_info.old_subpage_id
|
||||||
.and_then(|old_subpage_id| self.subpage_map.get(&(load_info.containing_pipeline_id, old_subpage_id)))
|
.and_then(|old_subpage_id| self.subpage_map.get(&(load_info.parent_pipeline_id, old_subpage_id)))
|
||||||
.cloned();
|
.cloned();
|
||||||
|
|
||||||
let (load_data, script_chan, window_size, is_private) = {
|
let (load_data, script_chan, window_size, is_private) = {
|
||||||
let old_pipeline = old_pipeline_id
|
let old_pipeline = old_pipeline_id
|
||||||
.and_then(|old_pipeline_id| self.pipelines.get(&old_pipeline_id));
|
.and_then(|old_pipeline_id| self.pipelines.get(&old_pipeline_id));
|
||||||
|
|
||||||
let source_pipeline = match self.pipelines.get(&load_info.containing_pipeline_id) {
|
let source_pipeline = match self.pipelines.get(&load_info.parent_pipeline_id) {
|
||||||
Some(source_pipeline) => source_pipeline,
|
Some(source_pipeline) => source_pipeline,
|
||||||
None => return warn!("Script loaded url in closed iframe {}.", load_info.containing_pipeline_id),
|
None => return warn!("Script loaded url in closed iframe {}.", load_info.parent_pipeline_id),
|
||||||
};
|
};
|
||||||
|
|
||||||
// If no url is specified, reload.
|
// If no url is specified, reload.
|
||||||
|
@ -1290,13 +1290,13 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
|
|
||||||
// Create the new pipeline, attached to the parent and push to pending frames
|
// Create the new pipeline, attached to the parent and push to pending frames
|
||||||
self.new_pipeline(load_info.new_pipeline_id,
|
self.new_pipeline(load_info.new_pipeline_id,
|
||||||
Some((load_info.containing_pipeline_id, load_info.new_subpage_id, load_info.frame_type)),
|
Some((load_info.parent_pipeline_id, load_info.new_subpage_id, load_info.frame_type)),
|
||||||
window_size,
|
window_size,
|
||||||
script_chan,
|
script_chan,
|
||||||
load_data,
|
load_data,
|
||||||
is_private);
|
is_private);
|
||||||
|
|
||||||
self.subpage_map.insert((load_info.containing_pipeline_id, load_info.new_subpage_id),
|
self.subpage_map.insert((load_info.parent_pipeline_id, load_info.new_subpage_id),
|
||||||
load_info.new_pipeline_id);
|
load_info.new_pipeline_id);
|
||||||
|
|
||||||
self.push_pending_frame(load_info.new_pipeline_id, old_pipeline_id);
|
self.push_pending_frame(load_info.new_pipeline_id, old_pipeline_id);
|
||||||
|
@ -1585,7 +1585,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_mozbrowser_event_msg(&mut self,
|
fn handle_mozbrowser_event_msg(&mut self,
|
||||||
containing_pipeline_id: PipelineId,
|
parent_pipeline_id: PipelineId,
|
||||||
subpage_id: Option<SubpageId>,
|
subpage_id: Option<SubpageId>,
|
||||||
event: MozBrowserEvent) {
|
event: MozBrowserEvent) {
|
||||||
assert!(PREFS.is_mozbrowser_enabled());
|
assert!(PREFS.is_mozbrowser_enabled());
|
||||||
|
@ -1594,9 +1594,9 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
// and pass the event to that script thread.
|
// and pass the event to that script thread.
|
||||||
// If the pipeline lookup fails, it is because we have torn down the pipeline,
|
// If the pipeline lookup fails, it is because we have torn down the pipeline,
|
||||||
// so it is reasonable to silently ignore the event.
|
// so it is reasonable to silently ignore the event.
|
||||||
match self.pipelines.get(&containing_pipeline_id) {
|
match self.pipelines.get(&parent_pipeline_id) {
|
||||||
Some(pipeline) => pipeline.trigger_mozbrowser_event(subpage_id, event),
|
Some(pipeline) => pipeline.trigger_mozbrowser_event(subpage_id, event),
|
||||||
None => warn!("Pipeline {:?} handling mozbrowser event after closure.", containing_pipeline_id),
|
None => warn!("Pipeline {:?} handling mozbrowser event after closure.", parent_pipeline_id),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1630,22 +1630,22 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
Some(pipeline) => pipeline.parent_info,
|
Some(pipeline) => pipeline.parent_info,
|
||||||
None => return warn!("Pipeline {:?} focus parent after closure.", pipeline_id),
|
None => return warn!("Pipeline {:?} focus parent after closure.", pipeline_id),
|
||||||
};
|
};
|
||||||
let (containing_pipeline_id, subpage_id, _) = match parent_info {
|
let (parent_pipeline_id, subpage_id, _) = match parent_info {
|
||||||
Some(info) => info,
|
Some(info) => info,
|
||||||
None => return debug!("Pipeline {:?} focus has no parent.", pipeline_id),
|
None => return debug!("Pipeline {:?} focus has no parent.", pipeline_id),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Send a message to the parent of the provided pipeline (if it exists)
|
// Send a message to the parent of the provided pipeline (if it exists)
|
||||||
// telling it to mark the iframe element as focused.
|
// telling it to mark the iframe element as focused.
|
||||||
let msg = ConstellationControlMsg::FocusIFrame(containing_pipeline_id, subpage_id);
|
let msg = ConstellationControlMsg::FocusIFrame(parent_pipeline_id, subpage_id);
|
||||||
let result = match self.pipelines.get(&containing_pipeline_id) {
|
let result = match self.pipelines.get(&parent_pipeline_id) {
|
||||||
Some(pipeline) => pipeline.script_chan.send(msg),
|
Some(pipeline) => pipeline.script_chan.send(msg),
|
||||||
None => return warn!("Pipeline {:?} focus after closure.", containing_pipeline_id),
|
None => return warn!("Pipeline {:?} focus after closure.", parent_pipeline_id),
|
||||||
};
|
};
|
||||||
if let Err(e) = result {
|
if let Err(e) = result {
|
||||||
self.handle_send_error(containing_pipeline_id, e);
|
self.handle_send_error(parent_pipeline_id, e);
|
||||||
}
|
}
|
||||||
self.focus_parent_pipeline(containing_pipeline_id);
|
self.focus_parent_pipeline(parent_pipeline_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_focus_msg(&mut self, pipeline_id: PipelineId) {
|
fn handle_focus_msg(&mut self, pipeline_id: PipelineId) {
|
||||||
|
@ -2415,9 +2415,9 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
||||||
};
|
};
|
||||||
|
|
||||||
// If this is a mozbrowser iframe, then send the event with new url
|
// If this is a mozbrowser iframe, then send the event with new url
|
||||||
if let Some((containing_pipeline_id, subpage_id)) = self.get_mozbrowser_ancestor_info(pipeline_id) {
|
if let Some((parent_pipeline_id, subpage_id)) = self.get_mozbrowser_ancestor_info(pipeline_id) {
|
||||||
if let Some(parent_pipeline) = self.pipelines.get(&containing_pipeline_id) {
|
if let Some(parent_pipeline) = self.pipelines.get(&parent_pipeline_id) {
|
||||||
let pipeline_id = self.subpage_map.get(&(containing_pipeline_id, subpage_id));
|
let pipeline_id = self.subpage_map.get(&(parent_pipeline_id, subpage_id));
|
||||||
if let Some(pipeline) = pipeline_id.and_then(|pipeline_id| self.pipelines.get(pipeline_id)) {
|
if let Some(pipeline) = pipeline_id.and_then(|pipeline_id| self.pipelines.get(pipeline_id)) {
|
||||||
if let Some(frame_id) = pipeline.frame {
|
if let Some(frame_id) = pipeline.frame {
|
||||||
let can_go_forward = !self.joint_session_future(frame_id).is_empty();
|
let can_go_forward = !self.joint_session_future(frame_id).is_empty();
|
||||||
|
|
|
@ -150,10 +150,10 @@ impl Pipeline {
|
||||||
|
|
||||||
let (script_chan, content_ports) = match state.script_chan {
|
let (script_chan, content_ports) = match state.script_chan {
|
||||||
Some(script_chan) => {
|
Some(script_chan) => {
|
||||||
let (containing_pipeline_id, subpage_id, frame_type) =
|
let (parent_pipeline_id, subpage_id, frame_type) =
|
||||||
state.parent_info.expect("script_pipeline != None but subpage_id == None");
|
state.parent_info.expect("script_pipeline != None but subpage_id == None");
|
||||||
let new_layout_info = NewLayoutInfo {
|
let new_layout_info = NewLayoutInfo {
|
||||||
containing_pipeline_id: containing_pipeline_id,
|
parent_pipeline_id: parent_pipeline_id,
|
||||||
new_pipeline_id: state.id,
|
new_pipeline_id: state.id,
|
||||||
subpage_id: subpage_id,
|
subpage_id: subpage_id,
|
||||||
frame_type: frame_type,
|
frame_type: frame_type,
|
||||||
|
|
|
@ -1342,8 +1342,8 @@ impl Document {
|
||||||
|
|
||||||
pub fn trigger_mozbrowser_event(&self, event: MozBrowserEvent) {
|
pub fn trigger_mozbrowser_event(&self, event: MozBrowserEvent) {
|
||||||
if PREFS.is_mozbrowser_enabled() {
|
if PREFS.is_mozbrowser_enabled() {
|
||||||
if let Some((containing_pipeline_id, subpage_id, _)) = self.window.parent_info() {
|
if let Some((parent_pipeline_id, subpage_id, _)) = self.window.parent_info() {
|
||||||
let event = ConstellationMsg::MozBrowserEvent(containing_pipeline_id,
|
let event = ConstellationMsg::MozBrowserEvent(parent_pipeline_id,
|
||||||
Some(subpage_id),
|
Some(subpage_id),
|
||||||
event);
|
event);
|
||||||
self.window.constellation_chan().send(event).unwrap();
|
self.window.constellation_chan().send(event).unwrap();
|
||||||
|
|
|
@ -133,7 +133,7 @@ impl HTMLIFrameElement {
|
||||||
|
|
||||||
let load_info = IFrameLoadInfo {
|
let load_info = IFrameLoadInfo {
|
||||||
load_data: load_data,
|
load_data: load_data,
|
||||||
containing_pipeline_id: window.pipeline_id(),
|
parent_pipeline_id: window.pipeline_id(),
|
||||||
new_subpage_id: new_subpage_id,
|
new_subpage_id: new_subpage_id,
|
||||||
old_subpage_id: old_subpage_id,
|
old_subpage_id: old_subpage_id,
|
||||||
new_pipeline_id: new_pipeline_id,
|
new_pipeline_id: new_pipeline_id,
|
||||||
|
|
|
@ -877,8 +877,8 @@ impl ScriptThread {
|
||||||
|
|
||||||
fn handle_msg_from_constellation(&self, msg: ConstellationControlMsg) {
|
fn handle_msg_from_constellation(&self, msg: ConstellationControlMsg) {
|
||||||
match msg {
|
match msg {
|
||||||
ConstellationControlMsg::Navigate(pipeline_id, subpage_id, load_data) =>
|
ConstellationControlMsg::Navigate(parent_pipeline_id, subpage_id, load_data) =>
|
||||||
self.handle_navigate(pipeline_id, Some(subpage_id), load_data),
|
self.handle_navigate(parent_pipeline_id, Some(subpage_id), load_data),
|
||||||
ConstellationControlMsg::SendEvent(id, event) =>
|
ConstellationControlMsg::SendEvent(id, event) =>
|
||||||
self.handle_event(id, event),
|
self.handle_event(id, event),
|
||||||
ConstellationControlMsg::ResizeInactive(id, new_size) =>
|
ConstellationControlMsg::ResizeInactive(id, new_size) =>
|
||||||
|
@ -891,24 +891,24 @@ impl ScriptThread {
|
||||||
self.handle_thaw_msg(pipeline_id),
|
self.handle_thaw_msg(pipeline_id),
|
||||||
ConstellationControlMsg::ChangeFrameVisibilityStatus(pipeline_id, visible) =>
|
ConstellationControlMsg::ChangeFrameVisibilityStatus(pipeline_id, visible) =>
|
||||||
self.handle_visibility_change_msg(pipeline_id, visible),
|
self.handle_visibility_change_msg(pipeline_id, visible),
|
||||||
ConstellationControlMsg::NotifyVisibilityChange(containing_id, pipeline_id, visible) =>
|
ConstellationControlMsg::NotifyVisibilityChange(parent_pipeline_id, pipeline_id, visible) =>
|
||||||
self.handle_visibility_change_complete_msg(containing_id, pipeline_id, visible),
|
self.handle_visibility_change_complete_msg(parent_pipeline_id, pipeline_id, visible),
|
||||||
ConstellationControlMsg::MozBrowserEvent(parent_pipeline_id,
|
ConstellationControlMsg::MozBrowserEvent(parent_pipeline_id,
|
||||||
subpage_id,
|
subpage_id,
|
||||||
event) =>
|
event) =>
|
||||||
self.handle_mozbrowser_event_msg(parent_pipeline_id,
|
self.handle_mozbrowser_event_msg(parent_pipeline_id,
|
||||||
subpage_id,
|
subpage_id,
|
||||||
event),
|
event),
|
||||||
ConstellationControlMsg::UpdateSubpageId(containing_pipeline_id,
|
ConstellationControlMsg::UpdateSubpageId(parent_pipeline_id,
|
||||||
old_subpage_id,
|
old_subpage_id,
|
||||||
new_subpage_id,
|
new_subpage_id,
|
||||||
new_pipeline_id) =>
|
new_pipeline_id) =>
|
||||||
self.handle_update_subpage_id(containing_pipeline_id,
|
self.handle_update_subpage_id(parent_pipeline_id,
|
||||||
old_subpage_id,
|
old_subpage_id,
|
||||||
new_subpage_id,
|
new_subpage_id,
|
||||||
new_pipeline_id),
|
new_pipeline_id),
|
||||||
ConstellationControlMsg::FocusIFrame(containing_pipeline_id, subpage_id) =>
|
ConstellationControlMsg::FocusIFrame(parent_pipeline_id, subpage_id) =>
|
||||||
self.handle_focus_iframe_msg(containing_pipeline_id, subpage_id),
|
self.handle_focus_iframe_msg(parent_pipeline_id, subpage_id),
|
||||||
ConstellationControlMsg::WebDriverScriptCommand(pipeline_id, msg) =>
|
ConstellationControlMsg::WebDriverScriptCommand(pipeline_id, msg) =>
|
||||||
self.handle_webdriver_msg(pipeline_id, msg),
|
self.handle_webdriver_msg(pipeline_id, msg),
|
||||||
ConstellationControlMsg::TickAllAnimations(pipeline_id) =>
|
ConstellationControlMsg::TickAllAnimations(pipeline_id) =>
|
||||||
|
@ -916,10 +916,10 @@ impl ScriptThread {
|
||||||
ConstellationControlMsg::WebFontLoaded(pipeline_id) =>
|
ConstellationControlMsg::WebFontLoaded(pipeline_id) =>
|
||||||
self.handle_web_font_loaded(pipeline_id),
|
self.handle_web_font_loaded(pipeline_id),
|
||||||
ConstellationControlMsg::DispatchFrameLoadEvent {
|
ConstellationControlMsg::DispatchFrameLoadEvent {
|
||||||
target: pipeline_id, parent: containing_id } =>
|
target: pipeline_id, parent: parent_pipeline_id } =>
|
||||||
self.handle_frame_load_event(containing_id, pipeline_id),
|
self.handle_frame_load_event(parent_pipeline_id, pipeline_id),
|
||||||
ConstellationControlMsg::FramedContentChanged(containing_pipeline_id, subpage_id) =>
|
ConstellationControlMsg::FramedContentChanged(parent_pipeline_id, pipeline_id) =>
|
||||||
self.handle_framed_content_changed(containing_pipeline_id, subpage_id),
|
self.handle_framed_content_changed(parent_pipeline_id, pipeline_id),
|
||||||
ConstellationControlMsg::ReportCSSError(pipeline_id, filename, line, column, msg) =>
|
ConstellationControlMsg::ReportCSSError(pipeline_id, filename, line, column, msg) =>
|
||||||
self.handle_css_error_reporting(pipeline_id, filename, line, column, msg),
|
self.handle_css_error_reporting(pipeline_id, filename, line, column, msg),
|
||||||
ConstellationControlMsg::Reload(pipeline_id) =>
|
ConstellationControlMsg::Reload(pipeline_id) =>
|
||||||
|
@ -935,8 +935,8 @@ impl ScriptThread {
|
||||||
|
|
||||||
fn handle_msg_from_script(&self, msg: MainThreadScriptMsg) {
|
fn handle_msg_from_script(&self, msg: MainThreadScriptMsg) {
|
||||||
match msg {
|
match msg {
|
||||||
MainThreadScriptMsg::Navigate(id, load_data) =>
|
MainThreadScriptMsg::Navigate(parent_pipeline_id, load_data) =>
|
||||||
self.handle_navigate(id, None, load_data),
|
self.handle_navigate(parent_pipeline_id, None, load_data),
|
||||||
MainThreadScriptMsg::ExitWindow(id) =>
|
MainThreadScriptMsg::ExitWindow(id) =>
|
||||||
self.handle_exit_window_msg(id),
|
self.handle_exit_window_msg(id),
|
||||||
MainThreadScriptMsg::DocumentLoadsComplete(id) =>
|
MainThreadScriptMsg::DocumentLoadsComplete(id) =>
|
||||||
|
@ -1128,7 +1128,7 @@ impl ScriptThread {
|
||||||
|
|
||||||
fn handle_new_layout(&self, new_layout_info: NewLayoutInfo) {
|
fn handle_new_layout(&self, new_layout_info: NewLayoutInfo) {
|
||||||
let NewLayoutInfo {
|
let NewLayoutInfo {
|
||||||
containing_pipeline_id,
|
parent_pipeline_id,
|
||||||
new_pipeline_id,
|
new_pipeline_id,
|
||||||
subpage_id,
|
subpage_id,
|
||||||
frame_type,
|
frame_type,
|
||||||
|
@ -1158,7 +1158,7 @@ impl ScriptThread {
|
||||||
};
|
};
|
||||||
|
|
||||||
let context = self.root_browsing_context();
|
let context = self.root_browsing_context();
|
||||||
let parent_context = context.find(containing_pipeline_id).expect("ScriptThread: received a layout
|
let parent_context = context.find(parent_pipeline_id).expect("ScriptThread: received a layout
|
||||||
whose parent has a PipelineId which does not correspond to a pipeline in the script
|
whose parent has a PipelineId which does not correspond to a pipeline in the script
|
||||||
thread's browsing context tree. This is a bug.");
|
thread's browsing context tree. This is a bug.");
|
||||||
let parent_window = parent_context.active_window();
|
let parent_window = parent_context.active_window();
|
||||||
|
@ -1169,7 +1169,7 @@ impl ScriptThread {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
// Kick off the fetch for the new resource.
|
// Kick off the fetch for the new resource.
|
||||||
let new_load = InProgressLoad::new(new_pipeline_id, Some((containing_pipeline_id, subpage_id, frame_type)),
|
let new_load = InProgressLoad::new(new_pipeline_id, Some((parent_pipeline_id, subpage_id, frame_type)),
|
||||||
layout_chan, parent_window.window_size(),
|
layout_chan, parent_window.window_size(),
|
||||||
load_data.url.clone());
|
load_data.url.clone());
|
||||||
self.start_page_load(new_load, load_data);
|
self.start_page_load(new_load, load_data);
|
||||||
|
@ -1254,9 +1254,9 @@ impl ScriptThread {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Updates iframe element after a change in visibility
|
/// Updates iframe element after a change in visibility
|
||||||
fn handle_visibility_change_complete_msg(&self, containing_id: PipelineId, id: PipelineId, visible: bool) {
|
fn handle_visibility_change_complete_msg(&self, parent_pipeline_id: PipelineId, id: PipelineId, visible: bool) {
|
||||||
if let Some(root_context) = self.browsing_context.get() {
|
if let Some(root_context) = self.browsing_context.get() {
|
||||||
if let Some(ref inner_context) = root_context.find(containing_id) {
|
if let Some(ref inner_context) = root_context.find(parent_pipeline_id) {
|
||||||
if let Some(iframe) = inner_context.active_document().find_iframe_by_pipeline(id) {
|
if let Some(iframe) = inner_context.active_document().find_iframe_by_pipeline(id) {
|
||||||
iframe.change_visibility_status(visible);
|
iframe.change_visibility_status(visible);
|
||||||
}
|
}
|
||||||
|
@ -1372,13 +1372,13 @@ impl ScriptThread {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_update_subpage_id(&self,
|
fn handle_update_subpage_id(&self,
|
||||||
containing_pipeline_id: PipelineId,
|
parent_pipeline_id: PipelineId,
|
||||||
old_subpage_id: SubpageId,
|
old_subpage_id: SubpageId,
|
||||||
new_subpage_id: SubpageId,
|
new_subpage_id: SubpageId,
|
||||||
new_pipeline_id: PipelineId) {
|
new_pipeline_id: PipelineId) {
|
||||||
let borrowed_context = self.root_browsing_context();
|
let borrowed_context = self.root_browsing_context();
|
||||||
|
|
||||||
let frame_element = borrowed_context.find(containing_pipeline_id).and_then(|context| {
|
let frame_element = borrowed_context.find(parent_pipeline_id).and_then(|context| {
|
||||||
let doc = context.active_document();
|
let doc = context.active_document();
|
||||||
doc.find_iframe(old_subpage_id)
|
doc.find_iframe(old_subpage_id)
|
||||||
});
|
});
|
||||||
|
@ -1534,10 +1534,10 @@ impl ScriptThread {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Notify the containing document of a child frame that has completed loading.
|
/// Notify the containing document of a child frame that has completed loading.
|
||||||
fn handle_frame_load_event(&self, containing_pipeline: PipelineId, id: PipelineId) {
|
fn handle_frame_load_event(&self, parent_pipeline_id: PipelineId, id: PipelineId) {
|
||||||
let document = match self.root_browsing_context().find(containing_pipeline) {
|
let document = match self.root_browsing_context().find(parent_pipeline_id) {
|
||||||
Some(browsing_context) => browsing_context.active_document(),
|
Some(browsing_context) => browsing_context.active_document(),
|
||||||
None => return warn!("Message sent to closed pipeline {}.", containing_pipeline),
|
None => return warn!("Message sent to closed pipeline {}.", parent_pipeline_id),
|
||||||
};
|
};
|
||||||
if let Some(iframe) = document.find_iframe_by_pipeline(id) {
|
if let Some(iframe) = document.find_iframe_by_pipeline(id) {
|
||||||
iframe.iframe_load_event_steps(id);
|
iframe.iframe_load_event_steps(id);
|
||||||
|
@ -2006,19 +2006,19 @@ impl ScriptThread {
|
||||||
/// https://html.spec.whatwg.org/multipage/#navigating-across-documents
|
/// https://html.spec.whatwg.org/multipage/#navigating-across-documents
|
||||||
/// The entry point for content to notify that a new load has been requested
|
/// The entry point for content to notify that a new load has been requested
|
||||||
/// for the given pipeline (specifically the "navigate" algorithm).
|
/// for the given pipeline (specifically the "navigate" algorithm).
|
||||||
fn handle_navigate(&self, pipeline_id: PipelineId, subpage_id: Option<SubpageId>, load_data: LoadData) {
|
fn handle_navigate(&self, parent_pipeline_id: PipelineId, subpage_id: Option<SubpageId>, load_data: LoadData) {
|
||||||
// Step 7.
|
// Step 7.
|
||||||
{
|
{
|
||||||
let nurl = &load_data.url;
|
let nurl = &load_data.url;
|
||||||
if let Some(fragment) = nurl.fragment() {
|
if let Some(fragment) = nurl.fragment() {
|
||||||
let document = match self.root_browsing_context().find(pipeline_id) {
|
let document = match self.root_browsing_context().find(parent_pipeline_id) {
|
||||||
Some(browsing_context) => browsing_context.active_document(),
|
Some(browsing_context) => browsing_context.active_document(),
|
||||||
None => return warn!("Message sent to closed pipeline {}.", pipeline_id),
|
None => return warn!("Message sent to closed pipeline {}.", parent_pipeline_id),
|
||||||
};
|
};
|
||||||
let url = document.url();
|
let url = document.url();
|
||||||
if &url[..Position::AfterQuery] == &nurl[..Position::AfterQuery] &&
|
if &url[..Position::AfterQuery] == &nurl[..Position::AfterQuery] &&
|
||||||
load_data.method == Method::Get {
|
load_data.method == Method::Get {
|
||||||
self.check_and_scroll_fragment(fragment, pipeline_id, document.r());
|
self.check_and_scroll_fragment(fragment, parent_pipeline_id, document.r());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2027,7 +2027,7 @@ impl ScriptThread {
|
||||||
match subpage_id {
|
match subpage_id {
|
||||||
Some(subpage_id) => {
|
Some(subpage_id) => {
|
||||||
let root_context = self.root_browsing_context();
|
let root_context = self.root_browsing_context();
|
||||||
let iframe = root_context.find(pipeline_id).and_then(|context| {
|
let iframe = root_context.find(parent_pipeline_id).and_then(|context| {
|
||||||
let doc = context.active_document();
|
let doc = context.active_document();
|
||||||
doc.find_iframe(subpage_id)
|
doc.find_iframe(subpage_id)
|
||||||
});
|
});
|
||||||
|
@ -2037,7 +2037,7 @@ impl ScriptThread {
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
self.constellation_chan
|
self.constellation_chan
|
||||||
.send(ConstellationMsg::LoadUrl(pipeline_id, load_data))
|
.send(ConstellationMsg::LoadUrl(parent_pipeline_id, load_data))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -130,7 +130,7 @@ pub enum LayoutControlMsg {
|
||||||
#[derive(Deserialize, Serialize)]
|
#[derive(Deserialize, Serialize)]
|
||||||
pub struct NewLayoutInfo {
|
pub struct NewLayoutInfo {
|
||||||
/// Id of the parent of this new pipeline.
|
/// Id of the parent of this new pipeline.
|
||||||
pub containing_pipeline_id: PipelineId,
|
pub parent_pipeline_id: PipelineId,
|
||||||
/// Id of the newly-created pipeline.
|
/// Id of the newly-created pipeline.
|
||||||
pub new_pipeline_id: PipelineId,
|
pub new_pipeline_id: PipelineId,
|
||||||
/// Id of the new frame associated with this pipeline.
|
/// Id of the new frame associated with this pipeline.
|
||||||
|
@ -444,7 +444,7 @@ pub struct IFrameLoadInfo {
|
||||||
/// Load data containing the url to load
|
/// Load data containing the url to load
|
||||||
pub load_data: Option<LoadData>,
|
pub load_data: Option<LoadData>,
|
||||||
/// Pipeline ID of the parent of this iframe
|
/// Pipeline ID of the parent of this iframe
|
||||||
pub containing_pipeline_id: PipelineId,
|
pub parent_pipeline_id: PipelineId,
|
||||||
/// The new subpage ID for this load
|
/// The new subpage ID for this load
|
||||||
pub new_subpage_id: SubpageId,
|
pub new_subpage_id: SubpageId,
|
||||||
/// The old subpage ID for this iframe, if a page was previously loaded.
|
/// The old subpage ID for this iframe, if a page was previously loaded.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue