Skip to content

Commit

Permalink
Merge pull request #784 from mozilla/783-email-warning
Browse files Browse the repository at this point in the history
Fix #783 - Scope email tracking prompts only to sites where Facebook has been blocked
  • Loading branch information
maxxcrawford authored Aug 2, 2021
2 parents b835947 + 55ccc26 commit bd4f164
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 4 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
11 changes: 11 additions & 0 deletions src/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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!");
}
Expand Down
13 changes: 12 additions & 1 deletion src/content_script.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down Expand Up @@ -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({
Expand Down
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Facebook Container",
"version": "2.3.0",
"version": "2.3.1",

"incognito": "not_allowed",

Expand Down

0 comments on commit bd4f164

Please sign in to comment.