diff options
author | Paul Rouget <me@paulrouget.com> | 2015-12-08 04:39:37 +0100 |
---|---|---|
committer | Paul Rouget <me@paulrouget.com> | 2015-12-08 04:40:16 +0100 |
commit | 2a86f9d165f2c6482fcbe093f3029f09ae2b1232 (patch) | |
tree | cbb325526db7f5a6dbdd058582075e60b9198743 /components/script | |
parent | 9cccd34bc487f485c69dae71c5cd07ac8fabed4d (diff) | |
download | servo-2a86f9d165f2c6482fcbe093f3029f09ae2b1232.tar.gz servo-2a86f9d165f2c6482fcbe093f3029f09ae2b1232.zip |
Browser API: implement iframe.reload()
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 11 | ||||
-rw-r--r-- | components/script/script_task.rs | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 3798ab4f539..e7816399619 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -90,7 +90,7 @@ impl HTMLIFrameElement { (subpage_id, old_subpage_id) } - pub fn navigate_child_browsing_context(&self, url: Url) { + pub fn navigate_or_reload_child_browsing_context(&self, url: Option<Url>) { let sandboxed = if self.is_sandboxed() { IFrameSandboxed } else { @@ -127,7 +127,7 @@ impl HTMLIFrameElement { None => url!("about:blank"), }; - self.navigate_child_browsing_context(url); + self.navigate_or_reload_child_browsing_context(Some(url)); } #[allow(unsafe_code)] @@ -399,7 +399,12 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement { // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/reload fn Reload(&self, _hardReload: bool) -> Fallible<()> { - Err(Error::NotSupported) + if mozbrowser_enabled() { + if self.upcast::<Node>().is_in_doc() { + self.navigate_or_reload_child_browsing_context(None); + } + } + Ok(()) } // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/stop diff --git a/components/script/script_task.rs b/components/script/script_task.rs index f0ea6bd1354..77cc03a53ac 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -1943,7 +1943,7 @@ impl ScriptTask { doc.find_iframe(subpage_id) }); if let Some(iframe) = iframe.r() { - iframe.navigate_child_browsing_context(load_data.url); + iframe.navigate_or_reload_child_browsing_context(Some(load_data.url)); } } None => { |