diff options
author | Moonchild <moonchild@palemoon.org> | 2020-05-06 00:17:32 +0000 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-05-06 19:02:56 +0200 |
commit | 19504d5263f407b545f0e20d5b812d5604077d7a (patch) | |
tree | 95effa720be209abea513ce11c3af8babb8b3881 | |
parent | 533b346f4e598f40e7eae81566c6953a2f4cd525 (diff) | |
download | UXP-19504d5263f407b545f0e20d5b812d5604077d7a.tar UXP-19504d5263f407b545f0e20d5b812d5604077d7a.tar.gz UXP-19504d5263f407b545f0e20d5b812d5604077d7a.tar.lz UXP-19504d5263f407b545f0e20d5b812d5604077d7a.tar.xz UXP-19504d5263f407b545f0e20d5b812d5604077d7a.zip |
[devtools] Port various upstream fixes
-rw-r--r-- | devtools/client/shared/curl.js | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/devtools/client/shared/curl.js b/devtools/client/shared/curl.js index d9abf506a..5ce9e96bb 100644 --- a/devtools/client/shared/curl.js +++ b/devtools/client/shared/curl.js @@ -91,7 +91,7 @@ const Curl = { if (utils.isUrlEncodedRequest(data) || ["PUT", "POST", "PATCH"].includes(data.method)) { postDataText = data.postDataText; - addPostData("--data"); + addPostData("--data-raw"); addPostData(utils.writePostDataTextParams(postDataText)); ignoredHeaders.add("content-length"); } else if (multipartRequest) { @@ -400,7 +400,12 @@ const CurlUtils = { * Credit: Google DevTools */ 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. 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 to do it inside. */ - return "\"" + str.replace(/"/g, "\"\"") + return "\"" + str.replace(/\$/g, "`$")
+ .replace(/"/g, "\"\"") .replace(/%/g, "\"%\"") .replace(/\\/g, "\\\\") .replace(/[\r\n]+/g, "\"^$&\"") + "\""; |