Bug 1429803 - Properly populate response header columns; r=rickychien draft
authorJan Odvarko <odvarko@gmail.com>
Thu, 18 Jan 2018 14:55:58 +0100
changeset 754927 17f27d2768d077564efbd092dfe3dce046fc28cb
parent 754572 e43f2f6ea111c2d059d95fa9a71516b869a69698
child 754928 7d39d3efc235ba0f70b9efc6a7401e25e5638d49
child 754941 87e34e4bb8cd74dec847b06adc5edae744854bb1
push id99058
push userjodvarko@mozilla.com
push dateWed, 14 Feb 2018 17:05:22 +0000
reviewersrickychien
bugs1429803
milestone60.0a1
Bug 1429803 - Properly populate response header columns; r=rickychien MozReview-Commit-ID: 3FS6QtUS8yB
devtools/client/netmonitor/src/components/RequestListColumnResponseHeader.js
devtools/client/netmonitor/src/components/RequestListItem.js
--- a/devtools/client/netmonitor/src/components/RequestListColumnResponseHeader.js
+++ b/devtools/client/netmonitor/src/components/RequestListColumnResponseHeader.js
@@ -2,32 +2,46 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 const { Component } = require("devtools/client/shared/vendor/react");
 const dom = require("devtools/client/shared/vendor/react-dom-factories");
 const PropTypes = require("devtools/client/shared/vendor/react-prop-types");
-const { getResponseHeader } = require("../utils/request-utils");
+const {
+  getResponseHeader,
+  fetchNetworkUpdatePacket
+} = require("../utils/request-utils");
 
 const { div } = dom;
 
 /**
  * Renders a response header column in the requests list.  The actual
  * header to show is passed as a prop.
  */
 class RequestListColumnResponseHeader extends Component {
   static get propTypes() {
     return {
+      connector: PropTypes.object.isRequired,
       item: PropTypes.object.isRequired,
       header: PropTypes.string.isRequired,
     };
   }
 
+  componentDidMount() {
+    let { item, connector } = this.props;
+    fetchNetworkUpdatePacket(connector.requestData, item, ["responseHeaders"]);
+  }
+
+  componentWillReceiveProps(nextProps) {
+    let { item, connector } = nextProps;
+    fetchNetworkUpdatePacket(connector.requestData, item, ["responseHeaders"]);
+  }
+
   shouldComponentUpdate(nextProps) {
     const currHeader = getResponseHeader(this.props.item, this.props.header);
     const nextHeader = getResponseHeader(nextProps.item, nextProps.header);
     return currHeader !== nextHeader;
   }
 
   render() {
     let header = getResponseHeader(this.props.item, this.props.header);
--- a/devtools/client/netmonitor/src/components/RequestListItem.js
+++ b/devtools/client/netmonitor/src/components/RequestListItem.js
@@ -258,17 +258,21 @@ class RequestListItem extends Component 
         }),
         columns.latency && RequestListColumnTime({
           connector,
           item,
           firstRequestStartedMillis,
           type: "latency",
         }),
         ...RESPONSE_HEADERS.filter(header => columns[header]).map(
-          header => RequestListColumnResponseHeader({ item, header }),
+          header => RequestListColumnResponseHeader({
+            connector,
+            item,
+            header
+          }),
         ),
         columns.waterfall && RequestListColumnWaterfall({
           connector,
           firstRequestStartedMillis,
           item,
           onWaterfallMouseDown,
         }),
       )