diff options
author | Glenn Watson <gw@intuitionlibrary.com> | 2014-09-16 13:13:58 +1000 |
---|---|---|
committer | Glenn Watson <gw@intuitionlibrary.com> | 2014-09-16 13:47:41 +1000 |
commit | 111de569aceef01e743a7344306aa9a10de182c5 (patch) | |
tree | fd2467095d38971e25542084c059e82d14d473cf /components/script/dom/htmliframeelement.rs | |
parent | 8a02fe0fc6df5f5812a3de80d417fd6e68502ce3 (diff) | |
download | servo-111de569aceef01e743a7344306aa9a10de182c5.tar.gz servo-111de569aceef01e743a7344306aa9a10de182c5.zip |
Handle src='' in an iframe element. Without this, infinitely creates iframes with the same url.
Diffstat (limited to 'components/script/dom/htmliframeelement.rs')
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 7ca33cf8674..c819143211d 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -75,9 +75,14 @@ impl<'a> HTMLIFrameElementHelpers for JSRef<'a, HTMLIFrameElement> { fn get_url(&self) -> Option<Url> { let element: &JSRef<Element> = ElementCast::from_ref(self); element.get_attribute(Null, "src").root().and_then(|src| { - let window = window_from_node(self).root(); - UrlParser::new().base_url(&window.deref().page().get_url()) - .parse(src.deref().value().as_slice()).ok() + let url = src.deref().value(); + if url.as_slice().is_empty() { + None + } else { + let window = window_from_node(self).root(); + UrlParser::new().base_url(&window.deref().page().get_url()) + .parse(url.as_slice()).ok() + } }) } |