| Index: desktop-options.js |
| =================================================================== |
| --- a/desktop-options.js |
| +++ b/desktop-options.js |
| @@ -607,6 +607,9 @@ |
| case "hide-notification": |
| hideNotification(); |
| break; |
| + case "hide-tracking-notification": |
| + E("acceptable-ads").classList.remove("show-notification"); |
| + break; |
| case "import-subscription": { |
| let url = E("blockingList-textbox").value; |
| addEnableSubscription(url); |
| @@ -1094,6 +1097,23 @@ |
| return url == acceptableAdsUrl || url == acceptableAdsPrivacyUrl; |
| } |
| + function hasPrivacyConflict() |
| + { |
| + let acceptableAdsList = subscriptionsMap[acceptableAdsUrl]; |
| + let privacyList = null; |
| + for (let url in subscriptionsMap) |
| + { |
| + let subscription = subscriptionsMap[url]; |
| + if (subscription.recommended == "privacy") |
| + { |
| + privacyList = subscription; |
| + break; |
| + } |
| + } |
| + return acceptableAdsList && acceptableAdsList.disabled == false && |
| + privacyList && privacyList.disabled == false; |
| + } |
| + |
| function populateLists() |
| { |
| subscriptionsMap = Object.create(null); |
| @@ -1267,6 +1287,16 @@ |
| if (isAcceptableAds(url)) |
| setAcceptableAds(); |
| + if ((url == acceptableAdsUrl || recommended == "privacy") && |
| + hasPrivacyConflict()) |
| + { |
| + getPref("ui_warn_tracking", (showTrackingWarning) => |
| + { |
| + if (showTrackingWarning) |
| + E("acceptable-ads").classList.add("show-notification"); |
| + }); |
| + } |
| + |
| collections.filterLists.addItem(subscription); |
| break; |
| case "removed": |
| @@ -1415,7 +1445,8 @@ |
| browser.runtime.sendMessage({ |
| type: "prefs.listen", |
| filter: ["notifications_ignoredcategories", "notifications_showui", |
| - "show_devtools_panel", "shouldShowBlockElementMenu"] |
| + "show_devtools_panel", "shouldShowBlockElementMenu", |
| + "ui_warn_tracking"] |
| }); |
| browser.runtime.sendMessage({ |
| type: "subscriptions.listen", |