tor-browser

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

node-reps.js (1420B)


      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 loader.lazyGetter(this, "MODE", function () {
      8  return ChromeUtils.importESModule(
      9    "resource://devtools/client/shared/components/reps/index.mjs"
     10  ).MODE;
     11 });
     12 
     13 loader.lazyGetter(this, "ElementNode", function () {
     14  return ChromeUtils.importESModule(
     15    "resource://devtools/client/shared/components/reps/reps/element-node.mjs"
     16  );
     17 });
     18 
     19 loader.lazyGetter(this, "TextNode", function () {
     20  return ChromeUtils.importESModule(
     21    "resource://devtools/client/shared/components/reps/reps/text-node.mjs"
     22  );
     23 });
     24 
     25 loader.lazyRequireGetter(
     26  this,
     27  "translateNodeFrontToGrip",
     28  "resource://devtools/client/inspector/shared/utils.js",
     29  true
     30 );
     31 
     32 /**
     33 * Creates either an ElementNode or a TextNode rep given a nodeFront. By default the
     34 * rep is created in TINY mode.
     35 *
     36 * @param {NodeFront} nodeFront
     37 *        The node front to create the element for.
     38 * @param {object} props
     39 *        Props to pass to the rep.
     40 */
     41 function getNodeRep(nodeFront, props = {}) {
     42  const object = translateNodeFrontToGrip(nodeFront);
     43  const { rep } = ElementNode.supportsObject(object) ? ElementNode : TextNode;
     44 
     45  return rep({
     46    object,
     47    mode: MODE.TINY,
     48    ...props,
     49  });
     50 }
     51 
     52 module.exports = getNodeRep;