mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
This change implements the full URLPattern API using
https://github.com/denoland/rust-urlpattern, except the two most
important functions (`test` and `exec`). These two are blocked on
https://github.com/servo/servo/issues/28679 due to this union:
539ca27284/components/script_bindings/webidls/URLPattern.webidl (L61)
.
Testing: Covered by existing web platform tests
Makes https://github.com/servo/servo/pull/36421 obsolete
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
62 lines
1.9 KiB
Text
62 lines
1.9 KiB
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://urlpattern.spec.whatwg.org/#urlpattern
|
|
|
|
typedef (USVString or URLPatternInit) URLPatternInput;
|
|
|
|
[Exposed=(Window,Worker), Pref="dom_urlpattern_enabled"]
|
|
interface URLPattern {
|
|
[Throws] constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {});
|
|
[Throws] constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {});
|
|
|
|
// [Throws] boolean test(optional URLPatternInput input = {}, optional USVString baseURL);
|
|
|
|
// [Throws] URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL);
|
|
|
|
readonly attribute USVString protocol;
|
|
readonly attribute USVString username;
|
|
readonly attribute USVString password;
|
|
readonly attribute USVString hostname;
|
|
readonly attribute USVString port;
|
|
readonly attribute USVString pathname;
|
|
readonly attribute USVString search;
|
|
readonly attribute USVString hash;
|
|
|
|
readonly attribute boolean hasRegExpGroups;
|
|
};
|
|
|
|
dictionary URLPatternInit {
|
|
USVString protocol;
|
|
USVString username;
|
|
USVString password;
|
|
USVString hostname;
|
|
USVString port;
|
|
USVString pathname;
|
|
USVString search;
|
|
USVString hash;
|
|
USVString baseURL;
|
|
};
|
|
|
|
dictionary URLPatternOptions {
|
|
boolean ignoreCase = false;
|
|
};
|
|
|
|
// dictionary URLPatternResult {
|
|
// sequence<URLPatternInput> inputs;
|
|
|
|
// URLPatternComponentResult protocol;
|
|
// URLPatternComponentResult username;
|
|
// URLPatternComponentResult password;
|
|
// URLPatternComponentResult hostname;
|
|
// URLPatternComponentResult port;
|
|
// URLPatternComponentResult pathname;
|
|
// URLPatternComponentResult search;
|
|
// URLPatternComponentResult hash;
|
|
// };
|
|
|
|
// dictionary URLPatternComponentResult {
|
|
// USVString input;
|
|
// record<USVString, (USVString or undefined)> groups;
|
|
// };
|