mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Implement URL.canParse
Add an implementation of `URL.canParse` as a static method. See [here][1] for the specification. [1]: https://url.spec.whatwg.org/#dom-url-canparse Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
This commit is contained in:
parent
6b33738006
commit
239776a270
3 changed files with 24 additions and 44 deletions
|
@ -111,6 +111,27 @@ impl URL {
|
|||
Ok(result)
|
||||
}
|
||||
|
||||
// https://url.spec.whatwg.org/#dom-url-canparse
|
||||
pub fn CanParse(_global: &GlobalScope, url: USVString, base: Option<USVString>) -> bool {
|
||||
// Step 1.
|
||||
let parsed_base = match base {
|
||||
None => None,
|
||||
Some(base) => match ServoUrl::parse(&base.0) {
|
||||
Ok(base) => Some(base),
|
||||
Err(_) => {
|
||||
// Step 2.1
|
||||
return false;
|
||||
},
|
||||
},
|
||||
};
|
||||
match ServoUrl::parse_with_base(parsed_base.as_ref(), &url.0) {
|
||||
// Step 3
|
||||
Ok(_) => true,
|
||||
// Step 2.2
|
||||
Err(_) => false,
|
||||
}
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#dfn-createObjectURL
|
||||
pub fn CreateObjectURL(global: &GlobalScope, blob: &Blob) -> DOMString {
|
||||
// XXX: Second field is an unicode-serialized Origin, it is a temporary workaround
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
LegacyWindowAlias=webkitURL]
|
||||
interface URL {
|
||||
[Throws] constructor(USVString url, optional USVString base);
|
||||
|
||||
static boolean canParse(USVString url, optional USVString base);
|
||||
|
||||
[SetterThrows]
|
||||
stringifier attribute USVString href;
|
||||
readonly attribute USVString origin;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue