[webkit-changes] [WebKit/WebKit] 452e38: URLPattern should validate IPv6 hostnames correctly
youennf
noreply at github.com
Wed Jan 15 06:10:12 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 452e3815223fdac36e001b2721112dc539b4a00d
https://github.com/WebKit/WebKit/commit/452e3815223fdac36e001b2721112dc539b4a00d
Author: Youenn Fablet <youenn at apple.com>
Date: 2025-01-15 (Wed, 15 Jan 2025)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.sharedworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.worker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.serviceworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.sharedworker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.worker-expected.txt
M Source/WebCore/Modules/url-pattern/URLPattern.cpp
M Source/WebCore/Modules/url-pattern/URLPatternCanonical.cpp
M Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.cpp
Log Message:
-----------
URLPattern should validate IPv6 hostnames correctly
rdar://142950979
https://bugs.webkit.org/show_bug.cgi?id=285979
Reviewed by Anne van Kesteren.
Fix bug in isInvalidIPv6HostCodePoint (check of valid special code points).
To make it clearer we rename isInvalidIPv6HostCodePoint to isValidIPv6HostCodePoint.
We also remove the use of URL::isIPv6Address in lieu of a routine isHostnamePatternIPv6 that implements https://urlpattern.spec.whatwg.org/#hostname-pattern-is-an-ipv6-address to follow the spec.
We update hostname canonicalization to add a check that the last character of an IPv6 hostname is ']' as per https://url.spec.whatwg.org/#concept-host-parser.
We update URLPatternConstructorStringParser so that it only checks for non special pattern character outside of IPv6 hostnames.
Covered by rebased tests.
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.sharedworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.serviceworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.sharedworker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/urlpattern/urlpattern.https.any.worker-expected.txt:
* Source/WebCore/Modules/url-pattern/URLPattern.cpp:
(WebCore::isHostnamePatternIPv6):
(WebCore::URLPattern::compileAllComponents):
* Source/WebCore/Modules/url-pattern/URLPatternCanonical.cpp:
(WebCore::isValidIPv6HostCodePoint):
(WebCore::canonicalizeHostname):
(WebCore::canonicalizeIPv6Hostname):
(WebCore::isInvalidIPv6HostCodePoint): Deleted.
* Source/WebCore/Modules/url-pattern/URLPatternConstructorStringParser.cpp:
(WebCore::URLPatternConstructorStringParser::updateState):
Canonical link: https://commits.webkit.org/288931@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list