tor-browser

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

search-provider.js (2108B)


      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 { ObjectProvider } = ChromeUtils.importESModule(
      8  "resource://devtools/client/shared/components/tree/ObjectProvider.mjs",
      9  { global: "current" }
     10 );
     11 const {
     12  getFileName,
     13 } = require("resource://devtools/client/netmonitor/src/utils/request-utils.js");
     14 
     15 /**
     16 * This provider is responsible for providing data from the
     17 * search reducer to the SearchPanel.
     18 */
     19 const SearchProvider = {
     20  ...ObjectProvider,
     21 
     22  getChildren(object) {
     23    if (Array.isArray(object)) {
     24      return object;
     25    } else if (object.resource) {
     26      return object.results;
     27    } else if (object.type) {
     28      return [];
     29    }
     30    return ObjectProvider.getLabel(object);
     31  },
     32 
     33  hasChildren(object) {
     34    return !!this.getChildren(object).length;
     35  },
     36 
     37  getLabel(object) {
     38    if (object.resource) {
     39      return this.getResourceLabel(object);
     40    } else if (object.label) {
     41      return object.label;
     42    }
     43    return ObjectProvider.getLabel(object);
     44  },
     45 
     46  getValue(object) {
     47    if (object.resource) {
     48      return "";
     49    } else if (object.type) {
     50      return object.value;
     51    }
     52    return ObjectProvider.getValue(object);
     53  },
     54 
     55  getKey(object) {
     56    if (object.resource) {
     57      return object.resource.id;
     58    } else if (object.type) {
     59      return object.key;
     60    }
     61    return ObjectProvider.getKey(object);
     62  },
     63 
     64  getType(object) {
     65    if (object.resource) {
     66      return "resource";
     67    } else if (object.type) {
     68      return "result";
     69    }
     70    return ObjectProvider.getType(object);
     71  },
     72 
     73  getResourceTooltipLabel(object) {
     74    const { resource } = object;
     75    if (resource.urlDetails?.url) {
     76      return resource.urlDetails.url;
     77    }
     78 
     79    return this.getResourceLabel(object);
     80  },
     81 
     82  getResourceLabel(object) {
     83    return (
     84      getFileName(object.resource.urlDetails.baseNameWithQuery) ||
     85      object.resource.urlDetails.host
     86    );
     87  },
     88 };
     89 
     90 module.exports = {
     91  SearchProvider,
     92 };