aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmliframeelement.rs
diff options
context:
space:
mode:
authorGlenn Watson <gw@intuitionlibrary.com>2014-09-16 13:13:58 +1000
committerGlenn Watson <gw@intuitionlibrary.com>2014-09-16 13:47:41 +1000
commit111de569aceef01e743a7344306aa9a10de182c5 (patch)
treefd2467095d38971e25542084c059e82d14d473cf /components/script/dom/htmliframeelement.rs
parent8a02fe0fc6df5f5812a3de80d417fd6e68502ce3 (diff)
downloadservo-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.rs11
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()
+ }
})
}