tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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;