tor-browser

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

NetworkDetailsBar.js (3462B)


      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  createFactory,
      9 } = require("resource://devtools/client/shared/vendor/react.mjs");
     10 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs");
     11 const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js");
     12 const {
     13  connect,
     14 } = require("resource://devtools/client/shared/vendor/react-redux.js");
     15 const Actions = require("resource://devtools/client/netmonitor/src/actions/index.js");
     16 const {
     17  getSelectedRequest,
     18 } = require("resource://devtools/client/netmonitor/src/selectors/index.js");
     19 
     20 // Components
     21 loader.lazyGetter(this, "CustomRequestPanel", function () {
     22  return createFactory(
     23    require("resource://devtools/client/netmonitor/src/components/CustomRequestPanel.js")
     24  );
     25 });
     26 loader.lazyGetter(this, "TabboxPanel", function () {
     27  return createFactory(
     28    require("resource://devtools/client/netmonitor/src/components/TabboxPanel.js")
     29      .ConnectedTabboxPanel
     30  );
     31 });
     32 
     33 const { div } = dom;
     34 
     35 /**
     36 * Network details panel component
     37 */
     38 function NetworkDetailsBar({
     39  connector,
     40  activeTabId,
     41  cloneSelectedRequest,
     42  request,
     43  selectTab,
     44  sourceMapURLService,
     45  toggleNetworkDetails,
     46  openNetworkDetails,
     47  openLink,
     48  targetSearchResult,
     49  defaultRawResponse,
     50  setDefaultRawResponse,
     51 }) {
     52  if (!request) {
     53    return null;
     54  }
     55 
     56  const newEditAndResendPref = Services.prefs.getBoolPref(
     57    "devtools.netmonitor.features.newEditAndResend"
     58  );
     59 
     60  return div(
     61    { className: "network-details-bar" },
     62    request.isCustom && !newEditAndResendPref
     63      ? CustomRequestPanel({
     64          connector,
     65          request,
     66        })
     67      : TabboxPanel({
     68          activeTabId,
     69          cloneSelectedRequest,
     70          connector,
     71          openLink,
     72          request,
     73          selectTab,
     74          sourceMapURLService,
     75          toggleNetworkDetails,
     76          openNetworkDetails,
     77          targetSearchResult,
     78          defaultRawResponse,
     79          setDefaultRawResponse,
     80        })
     81  );
     82 }
     83 
     84 NetworkDetailsBar.displayName = "NetworkDetailsBar";
     85 
     86 NetworkDetailsBar.propTypes = {
     87  connector: PropTypes.object.isRequired,
     88  activeTabId: PropTypes.string,
     89  cloneSelectedRequest: PropTypes.func.isRequired,
     90  open: PropTypes.bool,
     91  request: PropTypes.object,
     92  selectTab: PropTypes.func.isRequired,
     93  sourceMapURLService: PropTypes.object,
     94  toggleNetworkDetails: PropTypes.func.isRequired,
     95  openLink: PropTypes.func,
     96  openNetworkDetails: PropTypes.func,
     97  targetSearchResult: PropTypes.object,
     98  defaultRawResponse: PropTypes.bool,
     99  setDefaultRawResponse: PropTypes.func,
    100 };
    101 
    102 module.exports = connect(
    103  state => ({
    104    activeTabId: state.ui.detailsPanelSelectedTab,
    105    defaultRawResponse: state.ui.defaultRawResponse,
    106    request: getSelectedRequest(state),
    107    targetSearchResult: state.search.targetSearchResult,
    108  }),
    109  dispatch => ({
    110    cloneSelectedRequest: () => dispatch(Actions.cloneSelectedRequest()),
    111    selectTab: tabId => dispatch(Actions.selectDetailsPanelTab(tabId)),
    112    toggleNetworkDetails: () => dispatch(Actions.toggleNetworkDetails()),
    113    openNetworkDetails: open => dispatch(Actions.openNetworkDetails(open)),
    114    setDefaultRawResponse: open =>
    115      dispatch(Actions.setDefaultRawResponse(open)),
    116  })
    117 )(NetworkDetailsBar);