async function blockFacebookSubResources()

in src/background.js [579:631]


async function blockFacebookSubResources (requestDetails) {
  if (requestDetails.type === "main_frame") {
    tabStates[requestDetails.tabId] = { trackersDetected: false };
    return {};
  }

  if (typeof requestDetails.originUrl === "undefined") {
    return {};
  }

  const urlIsFacebook = isFacebookURL(requestDetails.url);
  // If this request isn't going to Facebook, let's return {} ASAP
  if (!urlIsFacebook) {
    return {};
  }

  const originUrlIsFacebook = isFacebookURL(requestDetails.originUrl);

  if (originUrlIsFacebook) {
    const message = {msg: "facebook-domain"};
    // Send the message to the content_script
    browser.tabs.sendMessage(requestDetails.tabId, message);
    return {};
  }

  const frameAncestorUrlIsFacebookApps = topFrameUrlIsFacebookApps(requestDetails.frameAncestors);

  if (frameAncestorUrlIsFacebookApps) {
    const message = {msg: "facebook-domain"};
    // Send the message to the content_script
    browser.tabs.sendMessage(requestDetails.tabId, message);
    return {};
  }

  const hasBeenAddedToFacebookContainer = await isAddedToFacebookContainer(requestDetails.originUrl);

  if ( urlIsFacebook && !originUrlIsFacebook ) {
    if (!hasBeenAddedToFacebookContainer ) {
      const message = {msg: "blocked-facebook-subresources"};
      // Send the message to the content_script
      browser.tabs.sendMessage(requestDetails.tabId, message);

      tabStates[requestDetails.tabId] = { trackersDetected: true };
      return {cancel: true};
    } else {
      const message = {msg: "allowed-facebook-subresources"};
      // Send the message to the content_script
      browser.tabs.sendMessage(requestDetails.tabId, message);
      return {};
    }
  }
  return {};
}