async handleContainerList()

in src/js/mozillaVpn.js [3:45]


  async handleContainerList(identities) {
    const mozillaVpnConnected = await browser.runtime.sendMessage({ method: "MozillaVPN_getConnectionStatus" });
    const mozillaVpnInstalled = await browser.runtime.sendMessage({ method: "MozillaVPN_getInstallationStatus" });
    this.handleStatusIndicatorsInContainerLists(mozillaVpnInstalled);

    const permissionsEnabled = await this.bothPermissionsEnabled();
    if (!permissionsEnabled) {
      return;
    }

    const proxies = await this.getProxies(identities);
    if (Object.keys(proxies).length === 0) {
      return;
    }

    const tooltipProxyWarning = browser.i18n.getMessage("tooltipWarning");
    for (const el of document.querySelectorAll("[data-cookie-store-id]")) {
      const cookieStoreId = el.dataset.cookieStoreId;

      if (!proxies[cookieStoreId]) {
        continue;
      }
      const { proxy } = proxies[cookieStoreId];

      if (typeof(proxy) !== "undefined") {
        const flag = el.querySelector(".flag-img");
        if (proxy.countryCode) {
          flag.src = `/img/flags/${proxy.countryCode.toUpperCase()}.png`;
        }
        if (typeof(proxy.mozProxyEnabled) === "undefined" && typeof(proxy.countryCode) !== "undefined") {
          flag.classList.add("proxy-disabled");
        }
        if (!mozillaVpnConnected && proxy.mozProxyEnabled) {
          flag.classList.add("proxy-unavailable");
          const menuItemName = el.querySelector(".menu-item-name");
          menuItemName.setAttribute("title", tooltipProxyWarning);
          if (menuItemName) {
            el.querySelector(".menu-item-name").dataset.mozProxyWarning = "proxy-unavailable";
          }
        }
      }
    }
  },