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:
Timothy Gu 2017-06-27 11:28:24 +08:00
parent 15599cbc97
commit b01ac75edc
No known key found for this signature in database
GPG Key ID: 7FE6B095B582B0D4
3 changed files with 13 additions and 1 deletions

View File

@ -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,

View File

@ -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;

View File

@ -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": [