Bug 1278923 - Export Content-Type and Content-Length to HAR headers. r=Honza
MozReview-Commit-ID: H0eZ8bSId8Q
--- a/devtools/client/netmonitor/har/har-builder.js
+++ b/devtools/client/netmonitor/har/har-builder.js
@@ -160,16 +160,17 @@ HarBuilder.prototype = {
bodySize: 0
};
request.method = file.method;
request.url = file.url;
request.httpVersion = file.httpVersion || "";
request.headers = this.buildHeaders(file.requestHeaders);
+ request.headers = this.appendHeadersPostData(request.headers, file);
request.cookies = this.buildCookies(file.requestCookies);
request.queryString = NetworkHelper.parseQueryString(
NetworkHelper.nsIURL(file.url).query) || [];
request.postData = this.buildPostData(file);
request.headersSize = file.requestHeaders.headersSize;
@@ -194,16 +195,43 @@ HarBuilder.prototype = {
buildHeaders: function (input) {
if (!input) {
return [];
}
return this.buildNameValuePairs(input.headers);
},
+ appendHeadersPostData: function (input = [], file) {
+ if (!file.requestPostData) {
+ return input;
+ }
+
+ this.fetchData(file.requestPostData.postData.text).then(value => {
+ let contentType = value.match(/Content-Type: ([^;\s]+)/);
+ let contentLength = value.match(/Content-Length: (.+)/);
+
+ if (contentType && contentType.length > 1) {
+ input.push({
+ name: "Content-Type",
+ value: contentType[1]
+ });
+ }
+
+ if (contentLength && contentLength.length > 1) {
+ input.push({
+ name: "Content-Length",
+ value: contentLength[1]
+ });
+ }
+ });
+
+ return input;
+ },
+
buildCookies: function (input) {
if (!input) {
return [];
}
return this.buildNameValuePairs(input.cookies);
},