url: normalize port on scheme change
PR-URL: https://github.com/nodejs/node/pull/13997 Refs: https://github.com/whatwg/url/pull/328 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
parent
15599cbc97
commit
b01ac75edc
@ -238,6 +238,7 @@ function onParseProtocolComplete(flags, protocol, username, password,
|
||||
ctx.flags &= ~URL_FLAGS_SPECIAL;
|
||||
}
|
||||
ctx.scheme = protocol;
|
||||
ctx.port = port;
|
||||
}
|
||||
|
||||
function onParseHostComplete(flags, protocol, username, password,
|
||||
|
@ -1244,6 +1244,7 @@ void URL::Parse(const char* input,
|
||||
}
|
||||
|
||||
url->scheme = buffer;
|
||||
url->port = NormalizePort(url->scheme, url->port);
|
||||
if (new_is_special) {
|
||||
url->flags |= URL_FLAGS_SPECIAL;
|
||||
special = true;
|
||||
|
12
test/fixtures/url-setter-tests.js
vendored
12
test/fixtures/url-setter-tests.js
vendored
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
/* WPT Refs:
|
||||
https://github.com/w3c/web-platform-tests/blob/3eff1bd/url/setters_tests.json
|
||||
https://github.com/w3c/web-platform-tests/blob/b30abaecf4/url/setters_tests.json
|
||||
License: http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html
|
||||
*/
|
||||
module.exports =
|
||||
@ -266,6 +266,16 @@ module.exports =
|
||||
"href": "view-source+data:text/html,<p>Test",
|
||||
"protocol": "view-source+data:"
|
||||
}
|
||||
},
|
||||
{
|
||||
"comment": "Port is set to null if it is the default for new scheme.",
|
||||
"href": "http://foo.com:443/",
|
||||
"new_value": "https",
|
||||
"expected": {
|
||||
"href": "https://foo.com/",
|
||||
"protocol": "https:",
|
||||
"port": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"username": [
|
||||
|
Loading…
x
Reference in New Issue
Block a user