RequestListColumnDomain.js (1818B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 const { 8 Component, 9 createFactory, 10 } = require("resource://devtools/client/shared/vendor/react.mjs"); 11 const { 12 td, 13 } = require("resource://devtools/client/shared/vendor/react-dom-factories.js"); 14 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs"); 15 const { 16 getFormattedIPAndPort, 17 } = require("resource://devtools/client/netmonitor/src/utils/format-utils.js"); 18 const { 19 propertiesEqual, 20 } = require("resource://devtools/client/netmonitor/src/utils/request-utils.js"); 21 const SecurityState = createFactory( 22 require("resource://devtools/client/netmonitor/src/components/SecurityState.js") 23 ); 24 25 const UPDATED_DOMAIN_PROPS = ["remoteAddress", "securityState", "urlDetails"]; 26 27 class RequestListColumnDomain extends Component { 28 static get propTypes() { 29 return { 30 item: PropTypes.object.isRequired, 31 onSecurityIconMouseDown: PropTypes.func.isRequired, 32 }; 33 } 34 35 shouldComponentUpdate(nextProps) { 36 return !propertiesEqual( 37 UPDATED_DOMAIN_PROPS, 38 this.props.item, 39 nextProps.item 40 ); 41 } 42 43 render() { 44 const { item, onSecurityIconMouseDown } = this.props; 45 46 const { 47 remoteAddress, 48 remotePort, 49 urlDetails: { host, isLocal }, 50 } = item; 51 52 const title = 53 host + 54 (remoteAddress 55 ? ` (${getFormattedIPAndPort(remoteAddress, remotePort)})` 56 : ""); 57 58 return td( 59 { className: "requests-list-column requests-list-domain", title }, 60 SecurityState({ item, onSecurityIconMouseDown, isLocal }), 61 host 62 ); 63 } 64 } 65 66 module.exports = RequestListColumnDomain;