Skip to content
Snippets Groups Projects
Select Git revision
  • 2ceca69e23d5e246330fff95df105f4e37bd0dbf
  • master default protected
2 results

popup.js

Blame
  • popup.js 1.16 KiB
    document.addEventListener("DOMContentLoaded", () => {
      const featureA = document.getElementById("featureA");
      // Load saved state
      chrome.storage.local.get(["featureA"], (data) => {
        featureA.checked = data.featureA || false;
      });
    
      featureA.addEventListener("change", () => {
        chrome.storage.local.set({ featureA: featureA.checked });
        notifyContentScript();
      });
    });
    
    function notifyContentScript() {
      chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
        if (tabs[0]) {
          chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
            const currentTabUrl = tabs[0].url;
    
            // Check if the current tab is a web page (not a chrome:// URL)
            if (!currentTabUrl.startsWith("chrome://")) {
              chrome.scripting.executeScript({
                target: { tabId: tabs[0].id },
                func: (isEnabled) => {
                  window.postMessage({ type: "TOGGLE_FRONTEND", isEnabled }, "*");
                },
                args: [featureA.checked]
              });
            } else {
              console.log(
                "Cannot execute content script on a privileged Chrome URL"
              );
            }
          });
        }
      });
    }