[webkit-changes] [WebKit/WebKit] 6086dd: Make URL's protocol setter forbid changing a speci...
Anne van Kesteren
noreply at github.com
Tue Aug 29 22:34:21 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6086dd01a4d2685802d4d0e243972dc992b38a90
https://github.com/WebKit/WebKit/commit/6086dd01a4d2685802d4d0e243972dc992b38a90
Author: Anne van Kesteren <annevk at annevk.nl>
Date: 2023-08-29 (Tue, 29 Aug 2023)
Changed paths:
M LayoutTests/fast/dom/DOMURL/set-href-attribute-protocol-expected.txt
M LayoutTests/fast/dom/DOMURL/set-href-attribute-protocol.html
M LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol-expected.txt
M LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol.html
M LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/resources/urltestdata.json
M LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any.worker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-setters-a-area.window-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any.worker_exclude=(file_javascript_mailto)-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any.worker_include=file-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any_exclude=(file_javascript_mailto)-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any_include=file-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any.js
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any.worker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any.js
M LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any.worker-expected.txt
M Source/WTF/wtf/URL.cpp
M Source/WTF/wtf/URLParser.cpp
Log Message:
-----------
Make URL's protocol setter forbid changing a special URL to a non-special URL
https://bugs.webkit.org/show_bug.cgi?id=260854
rdar://114624048
Reviewed by Alex Christensen.
Both Chromium and Gecko forbid changing a special URL to a non-special
URL through the protocol setter, although only Chromium does so if the
URL's scheme is "file".
Matching this improves our Interop 2023 score and reduces the number of
differences between engines.
For now we leave changing a non-special URL to a special URL alone as
other browsers continue to have bad non-special URL support.
In order to be able to use URLParser::isSpecialScheme I had to change
URLParser::maybeCanonicalizeScheme to also remove any tab or newline
code points. I suspect that all callers already expect that behavior
from an operation with canonicalize in its name and it used to not
return a string potentially containing whitespace until 261017 at main
changed it.
* LayoutTests/fast/dom/DOMURL/set-href-attribute-protocol-expected.txt:
* LayoutTests/fast/dom/DOMURL/set-href-attribute-protocol.html:
* LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol-expected.txt:
* LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol.html:
* LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/resources/urltestdata.json:
* LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-setters-a-area.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any.worker_exclude=(file_javascript_mailto)-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any.worker_include=file-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any_exclude=(file_javascript_mailto)-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/url-setters.any_include=file-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any.js:
(test):
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-delete.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any.js:
(test):
* LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-has.any.worker-expected.txt:
* Source/WTF/wtf/URL.cpp:
(WTF::URL::setProtocol):
* Source/WTF/wtf/URLParser.cpp:
(WTF::URLParser::maybeCanonicalizeScheme):
Canonical link: https://commits.webkit.org/267445@main
More information about the webkit-changes
mailing list