Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: new-options.js

Issue 29519669: Issue 5539 - Implement "Acceptable Ads notification" (Closed)
Patch Set: Created Aug. 18, 2017, 11:51 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: new-options.js
===================================================================
--- a/new-options.js
+++ b/new-options.js
@@ -27,6 +27,7 @@
let acceptableAdsUrl = null;
let acceptableAdsPrivacyUrl = null;
let isCustomFiltersLoaded = false;
+ let isSubscriptionsLoaded = false;
let {getMessage} = ext.i18n;
let customFilters = [];
let filterErrors = new Map([
@@ -1028,6 +1029,18 @@
return url == acceptableAdsUrl || url == acceptableAdsPrivacyUrl;
}
+ function isPrivacyAndAdsEnabled()
Thomas Greiner 2017/08/25 18:44:52 This function is a bit difficult to understand so
saroyanm 2017/08/27 16:25:28 Agree, thanks.
saroyanm 2017/09/14 21:56:14 Done.
+ {
+ let isAcceptableAds = subscriptionsMap[acceptableAdsUrl];
+ isAcceptableAds = isAcceptableAds && isAcceptableAds.disabled == false;
+ for (let url in subscriptionsMap)
+ {
+ let subscription = subscriptionsMap[url];
+ if (subscription.recommended == "privacy")
+ return subscription.disabled == false && isAcceptableAds;
+ }
+ }
+
function populateLists()
{
subscriptionsMap = Object.create(null);
@@ -1090,6 +1103,7 @@
{
for (let subscription of subscriptions)
onSubscriptionMessage("added", subscription);
+ isSubscriptionsLoaded = true;
});
});
});
@@ -1193,20 +1207,27 @@
updateSubscription(subscription);
break;
case "added":
- if (subscription.url in subscriptionsMap)
+ let url = subscription.url;
+ if (url in subscriptionsMap)
updateSubscription(subscription);
else
addSubscription(subscription);
- if (isAcceptableAds(subscription.url))
+ if (isAcceptableAds(url))
setAcceptableAds();
- if (subscription.url == acceptableAdsPrivacyUrl)
+ if (url == acceptableAdsPrivacyUrl)
{
if (!navigator.doNotTrack)
setDntNotification(true);
}
+ if (url == acceptableAdsUrl || subscription.recommended == "privacy")
+ {
+ if (isSubscriptionsLoaded && isPrivacyAndAdsEnabled())
Thomas Greiner 2017/08/25 18:44:51 Why is checking for `isSubscriptionsLoaded` necess
saroyanm 2017/08/27 16:25:28 I did it in order not to show on each load of the
Thomas Greiner 2017/08/29 10:20:41 So it's a stopgap solution until we have the prefe
saroyanm 2017/09/14 21:56:14 Done.
+ openDialog("tracking");
saroyanm 2017/08/19 00:00:40 In specs it says that "This is a one time message"
Thomas Greiner 2017/08/25 18:44:51 Yes. Probably best to prefix the preference name w
saroyanm 2017/08/27 16:25:28 Thanks, I'll have a look into this.
saroyanm 2017/09/14 21:56:14 Done.
+ }
+
collections.filterLists.addItem(subscription);
break;
case "removed":
« locale/en-US/new-options.json ('K') | « new-options.html ('k') | skin/new-options.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld