From 8417ffa7ae131d40075dcf121b562054f1aab632 Mon Sep 17 00:00:00 2001 From: Maxx Crawford Date: Mon, 2 Aug 2021 10:51:47 -0500 Subject: [PATCH 1/2] Fix #783 - Scope email tracking prompts only to sites where Facebook has been blocked --- src/background.js | 11 +++++++++++ src/content_script.js | 13 ++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/background.js b/src/background.js index e7e1b1c0..ba28be78 100644 --- a/src/background.js +++ b/src/background.js @@ -647,6 +647,15 @@ function setupWindowsAndTabsListeners() { browser.windows.onFocusChanged.addListener(windowFocusChangedListener); } +async function checkIfTrackersAreDetected(sender) { + const activeTab = await getActiveTab(); + const tabState = tabStates[activeTab.id]; + const trackersDetected = (tabState && tabState.trackersDetected); + const onActiveTab = (activeTab.id === sender.tab.id); + // Check if trackers were blocked,scoped to the active tab. + return (onActiveTab && trackersDetected); +} + (async function init () { await setupMACAddonListeners(); macAddonEnabled = await isMACAddonEnabled(); @@ -686,6 +695,8 @@ function setupWindowsAndTabsListeners() { break; case "check-settings": return checkSettings(); + case "are-trackers-detected": + return await checkIfTrackersAreDetected(sender); default: throw new Error("Unexpected message!"); } diff --git a/src/content_script.js b/src/content_script.js index 746f561d..2887d9d2 100755 --- a/src/content_script.js +++ b/src/content_script.js @@ -646,9 +646,13 @@ async function detectFacebookOnPage () { patternDetection(SHARE_PATTERN_DETECTION_SELECTORS, "share"); patternDetection(LOGIN_PATTERN_DETECTION_SELECTORS, "login"); const relayAddonEnabled = await getRelayAddonEnabledFromBackground(); + + // Check if any FB trackers were blocked, scoped to only the active tab + const trackersDetectedOnCurrentPage = await checkIfTrackersAreDetectedOnCurrentPage(); + // Check if user dismissed the Relay prompt const relayAddonPromptDismissed = await getLocalStorageSettingFromBackground("hideRelayEmailBadges"); - if (!relayAddonEnabled && !relayAddonPromptDismissed.hideRelayEmailBadges) { + if (!relayAddonEnabled && !relayAddonPromptDismissed.hideRelayEmailBadges && trackersDetectedOnCurrentPage) { patternDetection(EMAIL_PATTERN_DETECTION_SELECTORS, "email"); updateSettings(); } @@ -762,6 +766,13 @@ async function getRelayAddonEnabledFromBackground() { return relayAddonEnabled; } +async function checkIfTrackersAreDetectedOnCurrentPage() { + const trackersDetected = await browser.runtime.sendMessage({ + message: "are-trackers-detected" + }); + return trackersDetected; +} + async function getRootDomainFromBackground(url) { // Send request to background to parse URL via PSL const backgroundResp = await browser.runtime.sendMessage({ From 55ccc26e22661a37e3e2c7b9d33886bff32c4a2e Mon Sep 17 00:00:00 2001 From: Maxx Crawford Date: Mon, 2 Aug 2021 10:52:00 -0500 Subject: [PATCH 2/2] Bump add-on version number for patch fix --- package-lock.json | 2 +- package.json | 2 +- src/manifest.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 647fd1f3..def702b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "contain-facebook", - "version": "2.3.0", + "version": "2.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7433eb47..e6d0de10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contain-facebook", - "version": "2.3.0", + "version": "2.3.1", "description": "Facebook Container isolates your Facebook activity from the rest of your web activity in order to prevent Facebook from tracking you outside of the Facebook website via third party cookies. ", "main": "background.js", "scripts": { diff --git a/src/manifest.json b/src/manifest.json index e148f42c..fe34cb37 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Facebook Container", - "version": "2.3.0", + "version": "2.3.1", "incognito": "not_allowed",