From 0d6d4dd642b81f28799553df2feb5231fbb6b033 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Wed, 25 Sep 2024 10:36:23 -0700 Subject: [PATCH 1/3] Add URL API --- features/url.yml | 39 ++++++++ features/url.yml.dist | 215 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 254 insertions(+) create mode 100644 features/url.yml create mode 100644 features/url.yml.dist diff --git a/features/url.yml b/features/url.yml new file mode 100644 index 00000000000..4f289cae2ce --- /dev/null +++ b/features/url.yml @@ -0,0 +1,39 @@ +name: URL +description: The URL API allows developers to parse and interact with URL strings. +spec: https://url.spec.whatwg.org/ +status: + compute_from: api.URL +compat_features: + - api.URL + - api.URL.URL + - api.URL.hash + - api.URL.host + - api.URL.hostname + - api.URL.href + - api.URL.origin + - api.URL.parse_static + - api.URL.password + - api.URL.pathname + - api.URL.port + - api.URL.protocol + - api.URL.search + - api.URL.searchParams + - api.URL.toJSON + - api.URL.toString + - api.URL.username + - api.URLSearchParams + - api.URLSearchParams.URLSearchParams + - api.URLSearchParams.append + - api.URLSearchParams.delete + - api.URLSearchParams.entries + - api.URLSearchParams.forEach + - api.URLSearchParams.get + - api.URLSearchParams.getAll + - api.URLSearchParams.has + - api.URLSearchParams.keys + - api.URLSearchParams.set + - api.URLSearchParams.size + - api.URLSearchParams.sort + - api.URLSearchParams.toString + - api.URLSearchParams.values + - api.URLSearchParams.@@iterator diff --git a/features/url.yml.dist b/features/url.yml.dist new file mode 100644 index 00000000000..44339ef129a --- /dev/null +++ b/features/url.yml.dist @@ -0,0 +1,215 @@ +# Generated from: url.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "32" + chrome_android: "32" + edge: "12" + firefox: "19" + firefox_android: "19" + safari: "7" + safari_ios: "7" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "12" + # firefox: "19" + # firefox_android: "19" + # safari: "7" + # safari_ios: "7" + - api.URL + + # baseline: high + # baseline_low_date: 2015-11-12 + # baseline_high_date: 2018-05-12 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "13" + # firefox: "22" + # firefox_android: "22" + # safari: "7" + # safari_ios: "7" + - api.URL.hash + - api.URL.host + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "12" + # firefox: "26" + # firefox_android: "26" + # safari: "10" + # safari_ios: "10" + - api.URL.origin + - api.URL.password + - api.URL.username + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "13" + # firefox: "22" + # firefox_android: "22" + # safari: "10" + # safari_ios: "10" + - api.URL.hostname + - api.URL.href + - api.URL.pathname + - api.URL.port + - api.URL.protocol + - api.URL.search + + # baseline: high + # baseline_low_date: 2018-04-30 + # baseline_high_date: 2020-10-30 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "17" + # firefox: "54" + # firefox_android: "54" + # safari: "7" + # safari_ios: "7" + - api.URL.toString + + # baseline: high + # baseline_low_date: 2018-04-30 + # baseline_high_date: 2020-10-30 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "17" + # firefox: "29" + # firefox_android: "29" + # safari: "10.1" + # safari_ios: "10.3" + - api.URLSearchParams + - api.URLSearchParams.URLSearchParams + - api.URLSearchParams.append + - api.URLSearchParams.get + - api.URLSearchParams.getAll + - api.URLSearchParams.has + - api.URLSearchParams.set + - api.URLSearchParams.toString + + # baseline: high + # baseline_low_date: 2018-04-30 + # baseline_high_date: 2020-10-30 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + # safari: "10.1" + # safari_ios: "10.3" + - api.URLSearchParams.@@iterator + - api.URLSearchParams.entries + - api.URLSearchParams.forEach + - api.URLSearchParams.keys + - api.URLSearchParams.values + + # baseline: high + # baseline_low_date: 2018-04-30 + # baseline_high_date: 2020-10-30 + # support: + # chrome: "51" + # chrome_android: "51" + # edge: "17" + # firefox: "29" + # firefox_android: "29" + # safari: "10.1" + # safari_ios: "10.3" + - api.URL.searchParams + + # baseline: high + # baseline_low_date: 2018-04-30 + # baseline_high_date: 2020-10-30 + # support: + # chrome: "61" + # chrome_android: "61" + # edge: "17" + # firefox: "54" + # firefox_android: "54" + # safari: "11" + # safari_ios: "11" + - api.URLSearchParams.sort + + # baseline: high + # baseline_low_date: 2018-12-04 + # baseline_high_date: 2021-06-04 + # support: + # chrome: "71" + # chrome_android: "71" + # edge: "17" + # firefox: "54" + # firefox_android: "54" + # safari: "11" + # safari_ios: "11" + - api.URL.toJSON + + # baseline: high + # baseline_low_date: 2020-09-16 + # baseline_high_date: 2023-03-16 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "17" + # firefox: "29" + # firefox_android: "29" + # safari: "14" + # safari_ios: "14" + - api.URLSearchParams.delete + + # baseline: high + # baseline_low_date: 2021-04-26 + # baseline_high_date: 2023-10-26 + # support: + # chrome: "32" + # chrome_android: "32" + # edge: "12" + # firefox: "26" + # firefox_android: "26" + # safari: "14.1" + # safari_ios: "14.5" + - api.URL.URL + + # baseline: low + # baseline_low_date: 2023-09-18 + # support: + # chrome: "113" + # chrome_android: "113" + # edge: "113" + # firefox: "112" + # firefox_android: "112" + # safari: "17" + # safari_ios: "17" + - api.URLSearchParams.size + + # baseline: low + # baseline_low_date: 2024-09-16 + # support: + # chrome: "126" + # chrome_android: "126" + # edge: "126" + # firefox: "126" + # firefox_android: "126" + # safari: "18" + # safari_ios: "18" + - api.URL.parse_static From 77c0db60245914fbcedb3f6f9c32bdf27cb907f5 Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Thu, 26 Sep 2024 09:01:31 -0700 Subject: [PATCH 2/3] Remove draft feature --- features/draft/spec/url.yml | 42 ------ features/draft/spec/url.yml.dist | 214 ------------------------------- 2 files changed, 256 deletions(-) delete mode 100644 features/draft/spec/url.yml delete mode 100644 features/draft/spec/url.yml.dist diff --git a/features/draft/spec/url.yml b/features/draft/spec/url.yml deleted file mode 100644 index db85a631ca8..00000000000 --- a/features/draft/spec/url.yml +++ /dev/null @@ -1,42 +0,0 @@ -draft_date: 2024-09-09 -name: URL Standard -description: TODO -spec: https://url.spec.whatwg.org/ -compat_features: - - api.URL - - api.URL.URL - - api.URL.hash - - api.URL.host - - api.URL.hostname - - api.URL.href - - api.URL.origin - - api.URL.parse_static - - api.URL.password - - api.URL.pathname - - api.URL.port - - api.URL.protocol - - api.URL.search - - api.URL.searchParams - - api.URL.toJSON - - api.URL.toString - - api.URL.username - - api.URLSearchParams - - api.URLSearchParams.@@iterator - - api.URLSearchParams.URLSearchParams - - api.URLSearchParams.append - - api.URLSearchParams.delete - - api.URLSearchParams.entries - - api.URLSearchParams.forEach - - api.URLSearchParams.get - - api.URLSearchParams.getAll - - api.URLSearchParams.has - - api.URLSearchParams.keys - - api.URLSearchParams.set - - api.URLSearchParams.size - - api.URLSearchParams.sort - - api.URLSearchParams.toString - - api.URLSearchParams.values - -# The following features in the spec are already part of web-features: -# - URL.canParse(): -# - api.URL.canParse_static diff --git a/features/draft/spec/url.yml.dist b/features/draft/spec/url.yml.dist deleted file mode 100644 index e2c0226cbcf..00000000000 --- a/features/draft/spec/url.yml.dist +++ /dev/null @@ -1,214 +0,0 @@ -# Generated from: url.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: low - baseline_low_date: 2024-09-16 - support: - chrome: "126" - chrome_android: "126" - edge: "126" - firefox: "126" - firefox_android: "126" - safari: "18" - safari_ios: "18" -compat_features: - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "12" - # firefox: "19" - # firefox_android: "19" - # safari: "7" - # safari_ios: "7" - - api.URL - - # baseline: high - # baseline_low_date: 2015-11-12 - # baseline_high_date: 2018-05-12 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "13" - # firefox: "22" - # firefox_android: "22" - # safari: "7" - # safari_ios: "7" - - api.URL.hash - - api.URL.host - - # baseline: high - # baseline_low_date: 2016-09-20 - # baseline_high_date: 2019-03-20 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "12" - # firefox: "26" - # firefox_android: "26" - # safari: "10" - # safari_ios: "10" - - api.URL.origin - - api.URL.password - - api.URL.username - - # baseline: high - # baseline_low_date: 2016-09-20 - # baseline_high_date: 2019-03-20 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "13" - # firefox: "22" - # firefox_android: "22" - # safari: "10" - # safari_ios: "10" - - api.URL.hostname - - api.URL.href - - api.URL.pathname - - api.URL.port - - api.URL.protocol - - api.URL.search - - # baseline: high - # baseline_low_date: 2018-04-30 - # baseline_high_date: 2020-10-30 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "17" - # firefox: "54" - # firefox_android: "54" - # safari: "7" - # safari_ios: "7" - - api.URL.toString - - # baseline: high - # baseline_low_date: 2018-04-30 - # baseline_high_date: 2020-10-30 - # support: - # chrome: "49" - # chrome_android: "49" - # edge: "17" - # firefox: "29" - # firefox_android: "29" - # safari: "10.1" - # safari_ios: "10.3" - - api.URLSearchParams - - api.URLSearchParams.URLSearchParams - - api.URLSearchParams.append - - api.URLSearchParams.get - - api.URLSearchParams.getAll - - api.URLSearchParams.has - - api.URLSearchParams.set - - api.URLSearchParams.toString - - # baseline: high - # baseline_low_date: 2018-04-30 - # baseline_high_date: 2020-10-30 - # support: - # chrome: "49" - # chrome_android: "49" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - # safari: "10.1" - # safari_ios: "10.3" - - api.URLSearchParams.@@iterator - - api.URLSearchParams.entries - - api.URLSearchParams.forEach - - api.URLSearchParams.keys - - api.URLSearchParams.values - - # baseline: high - # baseline_low_date: 2018-04-30 - # baseline_high_date: 2020-10-30 - # support: - # chrome: "51" - # chrome_android: "51" - # edge: "17" - # firefox: "29" - # firefox_android: "29" - # safari: "10.1" - # safari_ios: "10.3" - - api.URL.searchParams - - # baseline: high - # baseline_low_date: 2018-04-30 - # baseline_high_date: 2020-10-30 - # support: - # chrome: "61" - # chrome_android: "61" - # edge: "17" - # firefox: "54" - # firefox_android: "54" - # safari: "11" - # safari_ios: "11" - - api.URLSearchParams.sort - - # baseline: high - # baseline_low_date: 2018-12-04 - # baseline_high_date: 2021-06-04 - # support: - # chrome: "71" - # chrome_android: "71" - # edge: "17" - # firefox: "54" - # firefox_android: "54" - # safari: "11" - # safari_ios: "11" - - api.URL.toJSON - - # baseline: high - # baseline_low_date: 2020-09-16 - # baseline_high_date: 2023-03-16 - # support: - # chrome: "49" - # chrome_android: "49" - # edge: "17" - # firefox: "29" - # firefox_android: "29" - # safari: "14" - # safari_ios: "14" - - api.URLSearchParams.delete - - # baseline: high - # baseline_low_date: 2021-04-26 - # baseline_high_date: 2023-10-26 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "12" - # firefox: "26" - # firefox_android: "26" - # safari: "14.1" - # safari_ios: "14.5" - - api.URL.URL - - # baseline: low - # baseline_low_date: 2023-09-18 - # support: - # chrome: "113" - # chrome_android: "113" - # edge: "113" - # firefox: "112" - # firefox_android: "112" - # safari: "17" - # safari_ios: "17" - - api.URLSearchParams.size - - # ⬇️ Same status as overall feature ⬇️ - # baseline: low - # baseline_low_date: 2024-09-16 - # support: - # chrome: "126" - # chrome_android: "126" - # edge: "126" - # firefox: "126" - # firefox_android: "126" - # safari: "18" - # safari_ios: "18" - - api.URL.parse_static From 6749cdff5d0427faebb094e26f04e929145d6fbc Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Fri, 27 Sep 2024 09:36:04 -0700 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Daniel D. Beck --- features/url.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/features/url.yml b/features/url.yml index 4f289cae2ce..96f30b2160c 100644 --- a/features/url.yml +++ b/features/url.yml @@ -1,6 +1,7 @@ name: URL -description: The URL API allows developers to parse and interact with URL strings. +description: A `URL` object represents a web address, like `https://example.com/`, and parts of the address, such as the domain, path, and query string (as `URLSearchParams`). spec: https://url.spec.whatwg.org/ +caniuse: url status: compute_from: api.URL compat_features: