[webkit-changes] [WebKit/WebKit] 048ca0: URLPattern canonicalisation of hostname should che...

youennf noreply at github.com
Wed Jan 15 04:01:41 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 048ca0693a470cccab74bd26636b43ff3fa07332
      https://github.com/WebKit/WebKit/commit/048ca0693a470cccab74bd26636b43ff3fa07332
  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/WTF/wtf/URLParser.cpp
    M Source/WTF/wtf/URLParser.h
    M Source/WebCore/Modules/url-pattern/URLPatternCanonical.cpp

  Log Message:
  -----------
  URLPattern canonicalisation of hostname should check for forbidden host code points
rdar://142950591
https://bugs.webkit.org/show_bug.cgi?id=285976

Reviewed by Anne van Kesteren.

URLPattern is relying on URL.setHost to validate the hostname.
This is not exactly matching the basic URL parser with hostname state as state override.
In particular, setHost will split based on some forbidden code points like /, # or ?.
To fix this, we add a specific forbidden host code point check in canonicalizeHostname.
We skip these checks for IPv6 hostnames that will need further validation in a follow-up.

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/WTF/wtf/URLParser.cpp:
(WTF::isForbiddenHostCodePoint):
(WTF::URLParser::isForbiddenHostCodePoint):
* Source/WTF/wtf/URLParser.h:
* Source/WebCore/Modules/url-pattern/URLPatternCanonical.cpp:
(WebCore::canonicalizeHostname):

Canonical link: https://commits.webkit.org/288927@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