Bug 1269468 - onRequestPostData returns requestPostData not whole payload
For the sake of coherence with the rest of FirefoxDataProvider interface, to avoid future bugs like the one this commit refers to.
MozReview-Commit-ID: EX8JQvoIeTb
--- a/devtools/client/netmonitor/src/connector/firefox-data-provider.js
+++ b/devtools/client/netmonitor/src/connector/firefox-data-provider.js
@@ -179,18 +179,20 @@ class FirefoxDataProvider {
// Calculate total header size and don't forget to include
// two new-line characters at the end.
const headersSize = headers.reduce((acc, { name, value }) => {
return acc + name.length + value.length + 2;
}, 0);
requestPostData.postData.text = postData;
- payload.requestPostData = Object.assign({}, requestPostData);
- payload.requestHeadersFromUploadStream = { headers, headersSize };
+ payload.requestPostData = {
+ ...requestPostData,
+ uploadHeaders: { headers, headersSize }
+ };
}
return payload;
}
async fetchRequestCookies(requestCookies) {
let payload = {};
if (requestCookies) {
let reqCookies = [];
@@ -535,17 +537,17 @@ class FirefoxDataProvider {
*
* @param {object} response the message received from the server.
*/
async onRequestPostData(response) {
let payload = await this.updateRequest(response.from, {
requestPostData: response
});
emit(EVENTS.RECEIVED_REQUEST_POST_DATA, response.from);
- return payload;
+ return payload.requestPostData;
}
/**
* Handles additional information received for a "securityInfo" packet.
*
* @param {object} response the message received from the server.
*/
async onSecurityInfo(response) {
--- a/devtools/client/netmonitor/src/har/har-builder.js
+++ b/devtools/client/netmonitor/src/har/har-builder.js
@@ -263,19 +263,18 @@ HarBuilder.prototype = {
// When using HarAutomation, HarCollector will automatically fetch requestPostData
// and requestHeaders, but when we use it from netmonitor, FirefoxDataProvider
// should fetch it itself lazily, via requestData.
let requestPostData = file.requestPostData;
let requestHeaders = file.requestHeaders;
let requestHeadersFromUploadStream;
if (!requestPostData && this._options.requestData) {
- let payload = await this._options.requestData(file.id, "requestPostData");
- requestPostData = payload.requestPostData;
- requestHeadersFromUploadStream = payload.requestHeadersFromUploadStream;
+ requestPostData = await this._options.requestData(file.id, "requestPostData");
+ requestHeadersFromUploadStream = requestPostData.uploadHeaders;
}
if (!requestPostData.postData.text) {
return undefined;
}
if (!requestHeaders && this._options.requestData) {
requestHeaders = await this._options.requestData(file.id, "requestHeaders");
--- a/devtools/client/netmonitor/src/utils/request-utils.js
+++ b/devtools/client/netmonitor/src/utils/request-utils.js
@@ -436,17 +436,17 @@ async function updateFormDataSections(pr
requestPostDataAvailable,
} = request;
if (requestHeadersAvailable && !requestHeaders) {
requestHeaders = await connector.requestData(id, "requestHeaders");
}
if (requestPostDataAvailable && !requestPostData) {
- ({ requestPostData } = await connector.requestData(id, "requestPostData"));
+ requestPostData = await connector.requestData(id, "requestPostData");
}
if (!formDataSections && requestHeaders && requestPostData &&
requestHeadersFromUploadStream) {
formDataSections = await getFormDataSections(
requestHeaders,
requestHeadersFromUploadStream,
requestPostData,
@@ -471,20 +471,17 @@ function processNetworkUpdates(request =
switch (key) {
case "securityInfo":
result.securityState = value.state;
break;
case "totalTime":
result.totalTime = request.totalTime;
break;
case "requestPostData":
- result.requestHeadersFromUploadStream = {
- headers: [],
- headersSize: 0,
- };
+ result.requestHeadersFromUploadStream = value.uploadHeaders;
break;
}
}
}
return result;
}
module.exports = {
--- a/devtools/client/netmonitor/src/widgets/RequestListContextMenu.js
+++ b/devtools/client/netmonitor/src/widgets/RequestListContextMenu.js
@@ -284,17 +284,17 @@ class RequestListContextMenu {
let string = params
.map(param => param.name + (param.value ? "=" + param.value : ""))
.join(Services.appinfo.OS === "WINNT" ? "\r\n" : "\n");
// Fall back to raw payload.
if (!string) {
requestPostData = requestPostData ||
- (await this.props.connector.requestData(id, "requestPostData")).requestPostData;
+ await this.props.connector.requestData(id, "requestPostData");
string = requestPostData.postData.text;
if (Services.appinfo.OS !== "WINNT") {
string = string.replace(/\r/g, "");
}
}
copyString(string);
}
@@ -302,17 +302,17 @@ class RequestListContextMenu {
/**
* Copy a cURL command from the currently selected item.
*/
async copyAsCurl(id, url, method, httpVersion, requestHeaders, requestPostData) {
requestHeaders = requestHeaders ||
await this.props.connector.requestData(id, "requestHeaders");
requestPostData = requestPostData ||
- (await this.props.connector.requestData(id, "requestPostData")).requestPostData;
+ await this.props.connector.requestData(id, "requestPostData");
// Create a sanitized object for the Curl command generator.
let data = {
url,
method,
headers: requestHeaders.headers,
httpVersion,
postDataText: requestPostData ? requestPostData.postData.text : "",
--- a/devtools/client/netmonitor/test/browser_net_curl-utils.js
+++ b/devtools/client/netmonitor/test/browser_net_curl-utils.js
@@ -253,17 +253,17 @@ async function createCurlData(selected,
let requestHeaders = await requestData(id, "requestHeaders");
// Fetch header values.
for (let { name, value } of requestHeaders.headers) {
let text = await getLongString(value);
data.headers.push({ name: name, value: text });
}
- let { requestPostData } = await requestData(id, "requestPostData");
+ let requestPostData = await requestData(id, "requestPostData");
// Fetch the request payload.
if (requestPostData) {
let postData = requestPostData.postData.text;
data.postDataText = await getLongString(postData);
}
return data;
}