[devtools] Port various upstream fixes.

This commit is contained in:
Fedor 2020-05-09 00:36:35 +03:00
parent 4af47f7b60
commit 48a4b4f8c2
1 changed files with 9 additions and 3 deletions

View File

@ -91,7 +91,7 @@ const Curl = {
if (utils.isUrlEncodedRequest(data) || if (utils.isUrlEncodedRequest(data) ||
["PUT", "POST", "PATCH"].includes(data.method)) { ["PUT", "POST", "PATCH"].includes(data.method)) {
postDataText = data.postDataText; postDataText = data.postDataText;
addPostData("--data"); addPostData("--data-raw");
addPostData(utils.writePostDataTextParams(postDataText)); addPostData(utils.writePostDataTextParams(postDataText));
ignoredHeaders.add("content-length"); ignoredHeaders.add("content-length");
} else if (multipartRequest) { } else if (multipartRequest) {
@ -400,7 +400,12 @@ const CurlUtils = {
* Credit: Google DevTools * Credit: Google DevTools
*/ */
escapeStringWin: function (str) { escapeStringWin: function (str) {
/* Replace quote by double quote (but not by \") because it is /*
Replace dollar sign because of commands (e.g $(cmd.exe)) in
powershell when using double quotes.
Useful details http://www.rlmueller.net/PowerShellEscape.htm
Replace quote by double quote (but not by \") because it is
recognized by both cmd.exe and MS Crt arguments parser. recognized by both cmd.exe and MS Crt arguments parser.
Replace % by "%" because it could be expanded to an environment Replace % by "%" because it could be expanded to an environment
@ -414,7 +419,8 @@ const CurlUtils = {
Replace new line outside of quotes since cmd.exe doesn't let Replace new line outside of quotes since cmd.exe doesn't let
to do it inside. to do it inside.
*/ */
return "\"" + str.replace(/"/g, "\"\"") return "\"" + str.replace(/\$/g, "`$")
.replace(/"/g, "\"\"")
.replace(/%/g, "\"%\"") .replace(/%/g, "\"%\"")
.replace(/\\/g, "\\\\") .replace(/\\/g, "\\\\")
.replace(/[\r\n]+/g, "\"^$&\"") + "\""; .replace(/[\r\n]+/g, "\"^$&\"") + "\"";