Auto merge of #8618 - paulrouget:reload, r=jdm

Browser API: implement iframe.reload()

fixes #8575

The implementation is naive, and doesn't support the `hardreload` parameter.
And for the test, I'm not sure how else I can test the reload.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8618)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2015-12-17 19:45:44 +05:30
commit 9570b51565
6 changed files with 67 additions and 13 deletions

View file

@ -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