diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-02-09 14:28:37 -0600 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2017-03-14 14:36:03 -0500 |
commit | 1f61a549a35ae317479f914c454fbee3580869d6 (patch) | |
tree | 1bdfd0d2c1da680af0ffd21278fe439558417061 /components/script/webdriver_handlers.rs | |
parent | 628cd7de6d6229af61d44b586da74176c21cc2ae (diff) | |
download | servo-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.rs | 21 |
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, |