Make Assign throw error on invalid url

This commit is contained in:
Eric Coan 2016-09-25 22:45:15 -06:00
parent d00639c55f
commit 096c0362fe
3 changed files with 6 additions and 5 deletions

View file

@ -4,6 +4,7 @@
use dom::bindings::codegen::Bindings::LocationBinding;
use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods;
use dom::bindings::error::{Error, ErrorResult};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, Root};
use dom::bindings::reflector::{Reflector, reflect_dom_object};
@ -46,12 +47,15 @@ impl Location {
impl LocationMethods for Location {
// https://html.spec.whatwg.org/multipage/#dom-location-assign
fn Assign(&self, url: USVString) {
fn Assign(&self, url: USVString) -> ErrorResult {
// TODO: per spec, we should use the _API base URL_ specified by the
// _entry settings object_.
let base_url = self.window.get_url();
if let Ok(url) = base_url.join(&url.0) {
self.window.load_url(url, false, None);
Ok(())
} else {
Err(Error::Syntax)
}
}

View file

@ -14,6 +14,7 @@
attribute USVString search;
attribute USVString hash;
[Throws]
void assign(USVString url);
//void replace(USVString url);
void reload();