aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/webdriver_handlers.rs
diff options
context:
space:
mode:
authorAlan Jeffrey <ajeffrey@mozilla.com>2017-02-09 14:28:37 -0600
committerAlan Jeffrey <ajeffrey@mozilla.com>2017-03-14 14:36:03 -0500
commit1f61a549a35ae317479f914c454fbee3580869d6 (patch)
tree1bdfd0d2c1da680af0ffd21278fe439558417061 /components/script/webdriver_handlers.rs
parent628cd7de6d6229af61d44b586da74176c21cc2ae (diff)
downloadservo-1f61a549a35ae317479f914c454fbee3580869d6.tar.gz
servo-1f61a549a35ae317479f914c454fbee3580869d6.zip
Added some same-origin-domain checks.
Diffstat (limited to 'components/script/webdriver_handlers.rs')
-rw-r--r--components/script/webdriver_handlers.rs21
1 files changed, 8 insertions, 13 deletions
diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs
index e1599d7caef..6618bac4241 100644
--- a/components/script/webdriver_handlers.rs
+++ b/components/script/webdriver_handlers.rs
@@ -113,29 +113,24 @@ pub fn handle_get_frame_id(documents: &Documents,
pipeline: PipelineId,
webdriver_frame_id: WebDriverFrameId,
reply: IpcSender<Result<Option<PipelineId>, ()>>) {
- let window = match webdriver_frame_id {
+ let result = match webdriver_frame_id {
WebDriverFrameId::Short(_) => {
// This isn't supported yet
Ok(None)
},
WebDriverFrameId::Element(x) => {
- match find_node_by_unique_id(documents, pipeline, x) {
- Some(ref node) => {
- match node.downcast::<HTMLIFrameElement>() {
- Some(ref elem) => Ok(elem.get_content_window()),
- None => Err(())
- }
- },
- None => Err(())
- }
+ find_node_by_unique_id(documents, pipeline, x)
+ .and_then(|node| node.downcast::<HTMLIFrameElement>().map(|elem| elem.pipeline_id()))
+ .ok_or(())
},
WebDriverFrameId::Parent => {
- documents.find_window(pipeline).map(|window| window.parent()).ok_or(())
+ documents.find_window(pipeline)
+ .map(|window| window.parent_info().map(|(parent_id, _)| parent_id))
+ .ok_or(())
}
};
- let frame_id = window.map(|x| x.map(|x| x.upcast::<GlobalScope>().pipeline_id()));
- reply.send(frame_id).unwrap()
+ reply.send(result).unwrap()
}
pub fn handle_find_element_css(documents: &Documents, pipeline: PipelineId, selector: String,