@duckduckgo/autoconsent 4.1.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/addon-firefox/content.bundle.js +3 -2
  3. package/dist/addon-firefox/manifest.json +1 -1
  4. package/dist/addon-firefox/rules.json +826 -36
  5. package/dist/addon-mv3/content.bundle.js +3 -2
  6. package/dist/addon-mv3/manifest.json +1 -1
  7. package/dist/addon-mv3/rules.json +826 -36
  8. package/dist/autoconsent.cjs.js +1 -1
  9. package/dist/autoconsent.esm.js +1 -1
  10. package/dist/autoconsent.playwright.js +1 -1
  11. package/lib/cmps/trustarc-top.ts +4 -3
  12. package/package.json +2 -2
  13. package/rules/autoconsent/bbb.json +12 -0
  14. package/rules/autoconsent/canva.json +25 -0
  15. package/rules/autoconsent/civic-cookie-control.json +12 -0
  16. package/rules/autoconsent/clustrmaps-com.json +12 -0
  17. package/rules/autoconsent/coinbase.json +3 -2
  18. package/rules/autoconsent/cookiefirst.json +41 -0
  19. package/rules/autoconsent/dailymotion-us.json +9 -0
  20. package/rules/autoconsent/delta-com.json +12 -0
  21. package/rules/autoconsent/dmgmedia-us.json +20 -0
  22. package/rules/autoconsent/geeks-for-geeks.json +12 -0
  23. package/rules/autoconsent/healthline-media.json +18 -0
  24. package/rules/autoconsent/ketch.json +28 -17
  25. package/rules/autoconsent/midway-usa.json +12 -0
  26. package/rules/autoconsent/onlyFans.json +18 -0
  27. package/rules/autoconsent/paypal-us.json +25 -0
  28. package/rules/autoconsent/pmc-cmp.json +9 -0
  29. package/rules/autoconsent/pornpics.json +9 -0
  30. package/rules/autoconsent/samsung-com.json +12 -0
  31. package/rules/autoconsent/theverge.json +2 -1
  32. package/rules/autoconsent/tractor-supply.json +12 -0
  33. package/rules/autoconsent/true-car.json +12 -0
  34. package/rules/autoconsent/truyo.json +17 -0
  35. package/rules/autoconsent/whitepages.json +12 -0
  36. package/rules/autoconsent/wpcc.json +9 -0
  37. package/rules/autoconsent/xhamster-us.json +12 -0
  38. package/rules/autoconsent/youporn.json +9 -0
  39. package/rules/rules.json +826 -36
  40. package/tests/bbb.spec.ts +5 -0
  41. package/tests/canva.spec.ts +5 -0
  42. package/tests/civic-cookie-control.spec.ts +8 -0
  43. package/tests/clustrmaps-com.spec.ts +5 -0
  44. package/tests/cookiefirst.spec.ts +7 -0
  45. package/tests/dailymotion-us.spec.ts +6 -0
  46. package/tests/delta.spec.ts +6 -0
  47. package/tests/dmgmedia-us.spec.ts +7 -0
  48. package/tests/geeks-for-geeks.spec.ts +6 -0
  49. package/tests/healthline-media.spec.ts +6 -0
  50. package/tests/ketch.spec.ts +1 -0
  51. package/tests/midway-usa.spec.ts +6 -0
  52. package/tests/onlyFans.spec.ts +5 -0
  53. package/tests/paypal-us.spec.ts +5 -0
  54. package/tests/pmc-cmp.spec.ts +7 -0
  55. package/tests/pornpics.spec.ts +5 -0
  56. package/tests/samsung.spec.ts +6 -0
  57. package/tests/tractor-supply.spec.ts +6 -0
  58. package/tests/true-car.spec.ts +6 -0
  59. package/tests/truyo.spec.ts +5 -0
  60. package/tests/whitepages.spec.ts +5 -0
  61. package/tests/wpcc.spec.ts +10 -0
  62. package/tests/xhamster-us.spec.ts +11 -0
  63. package/tests/youporn.spec.ts +5 -0
  64. package/rules/autoconsent/metoffice-gov-uk.json +0 -8
  65. package/tests/metoffice-gov-uk.spec.ts +0 -7
@@ -1,4 +1,4 @@
1
- import { click, elementExists, elementVisible } from "../rule-executors";
1
+ import { click, doEval, elementExists, elementVisible } from "../rule-executors";
2
2
  import { RunContext } from "../rules";
3
3
  import { getStyleElement, hideElements } from "../utils";
4
4
  import AutoConsentCMPBase from "./base";
@@ -95,7 +95,8 @@ export default class TrustArcTop extends AutoConsentCMPBase {
95
95
  }
96
96
 
97
97
  async test() {
98
- // TODO: find out how to test TrustArc
99
- return true;
98
+ //Test JS variable to check the user's preference
99
+ //PrefCookie = undefined means no consent is set, PrefCookie = '0' means consent is set to required only
100
+ return await doEval("window && window.truste && window.truste.eu.bindMap.prefCookie === '0'");
100
101
  }
101
102
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckduckgo/autoconsent",
3
- "version": "4.1.2",
3
+ "version": "4.2.0",
4
4
  "description": "",
5
5
  "main": "dist/autoconsent.cjs.js",
6
6
  "module": "dist/autoconsent.esm.js",
@@ -32,7 +32,7 @@
32
32
  "@rollup/plugin-json": "^6.0.0",
33
33
  "@rollup/plugin-typescript": "^11.0.0",
34
34
  "@types/chai": "^4.3.1",
35
- "@types/chrome": "^0.0.206",
35
+ "@types/chrome": "^0.0.237",
36
36
  "@types/mocha": "^10.0.1",
37
37
  "@typescript-eslint/eslint-plugin": "^5.42.1",
38
38
  "@typescript-eslint/parser": "^5.42.1",
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "bbb.org",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.bbb\\.org/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": ["div[aria-label=\"use of cookies on bbb.org\"]"],
8
+ "detectCmp": [{ "exists": "div[aria-label=\"use of cookies on bbb.org\"]" }],
9
+ "detectPopup": [{ "visible": "div[aria-label=\"use of cookies on bbb.org\"]" }],
10
+ "optIn": [{ "click": "div[aria-label=\"use of cookies on bbb.org\"] button.bds-button-unstyled span.visually-hidden" }],
11
+ "optOut": [{ "hide": ["div[aria-label=\"use of cookies on bbb.org\"]"] }]
12
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "canva.com",
3
+ "prehideSelectors": ["div[role=\"dialog\"] a[data-anchor-id=\"cookie-policy\"]"],
4
+ "detectCmp": [{ "exists": "div[role=\"dialog\"] a[data-anchor-id=\"cookie-policy\"]" }],
5
+ "detectPopup": [{ "exists": "div[role=\"dialog\"] a[data-anchor-id=\"cookie-policy\"]" }],
6
+ "optIn": [
7
+ { "click": "div[role=\"dialog\"] button:nth-child(1)" }
8
+ ],
9
+ "optOut": [
10
+ {
11
+ "if": { "exists": "div[role=\"dialog\"] button:nth-child(3)" },
12
+ "then": [{ "click": "div[role=\"dialog\"] button:nth-child(2)" }],
13
+ "else": [
14
+ { "click": "div[role=\"dialog\"] button:nth-child(2)" },
15
+ { "waitFor": "div[role=\"dialog\"] a[data-anchor-id=\"privacy-policy\"]" },
16
+ { "click": "div[role=\"dialog\"] button:nth-child(2)" },
17
+ { "click": "div[role=\"dialog\"] div:last-child button:only-child" }
18
+ ]
19
+ }
20
+ ],
21
+ "test": [
22
+ { "eval": "!document.cookie.includes('gtm_fpc_engagement_event')" }
23
+ ]
24
+ }
25
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "comment": "https://www.civicuk.com/cookie-control/",
3
+ "name": "civic-cookie-control",
4
+ "prehideSelectors": ["#ccc-module,#ccc-overlay"],
5
+ "detectCmp": [{"exists": "#ccc-module"}],
6
+ "detectPopup": [
7
+ {"visible": "#ccc"},
8
+ {"visible": "#ccc-module"}
9
+ ],
10
+ "optOut": [{"click": "#ccc-reject-settings"}],
11
+ "optIn": [{"click": "#ccc-recommended-settings"}]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "clustrmaps.com",
3
+ "runContext": {
4
+ "urlPattern": "^https://(www\\.)?clustrmaps\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": ["#gdpr-cookie-message"],
8
+ "detectCmp": [{ "exists": "#gdpr-cookie-message" }],
9
+ "detectPopup": [{ "visible": "#gdpr-cookie-message" }],
10
+ "optIn": [{ "click": "button#gdpr-cookie-accept" }],
11
+ "optOut": [{ "hide": ["#gdpr-cookie-message"] }]
12
+ }
@@ -3,7 +3,8 @@
3
3
  "intermediate": false,
4
4
  "runContext": {
5
5
  "frame": true,
6
- "main": true
6
+ "main": true,
7
+ "urlPattern": "^https://(www|help)\\.coinbase\\.com"
7
8
  },
8
9
  "prehideSelectors": [],
9
10
  "detectCmp": [
@@ -36,7 +37,7 @@
36
37
  ],
37
38
  "test": [
38
39
  {
39
- "eval": "JSON.parse(decodeURIComponent(document.cookie.match(/cm_eu_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[1])).consent.length <= 1"
40
+ "eval": "JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length <= 1"
40
41
  }
41
42
  ]
42
43
  }
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "cookiefirst.com",
3
+ "prehideSelectors": ["#cookiefirst-root"],
4
+ "detectCmp": [{ "exists": "#cookiefirst-root" }],
5
+ "detectPopup": [{ "visible": "#cookiefirst-root" }],
6
+ "optIn": [{ "click": "button[data-cookiefirst-action=accept]" }],
7
+ "optOut": [
8
+ {
9
+ "if": {
10
+ "exists": "button[data-cookiefirst-action=adjust]"
11
+ },
12
+ "then": [
13
+ {
14
+ "click": "button[data-cookiefirst-action=adjust]"
15
+ },
16
+ {
17
+ "waitForVisible": "[data-cookiefirst-widget=modal]",
18
+ "timeout": 1000
19
+ },
20
+ {
21
+ "eval": "document.querySelectorAll('button[data-cookiefirst-accent-color=true][role=checkbox]:not([disabled])').forEach(i => (i.getAttribute('aria-checked') == 'true' && i.click())) || true"
22
+ },
23
+ {
24
+ "wait": 1000
25
+ },
26
+ {
27
+ "click": "button[data-cookiefirst-action=save]"
28
+ }
29
+ ],
30
+ "else": [
31
+ { "click": "button[data-cookiefirst-action=reject]" }
32
+ ]
33
+ }
34
+ ],
35
+ "test": [
36
+ {
37
+ "eval": "let o = JSON.parse(decodeURIComponent(document.cookie.split(';').find(c => c.indexOf('cookiefirst') !== -1).trim()).split('=')[1]); (o.performance === false && o.functional === false && o.advertising === false) ? true : false"
38
+ }
39
+ ]
40
+ }
41
+
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "dailymotion-us",
3
+ "cosmetic": true,
4
+ "prehideSelectors": ["div[class*=\"CookiePopup__desktopContainer\"]:has(div[class*=\"CookiePopup\"])"],
5
+ "detectCmp": [{ "exists": "div[class*=\"CookiePopup__desktopContainer\"]" }],
6
+ "detectPopup": [{ "visible": "div[class*=\"CookiePopup__desktopContainer\"]" }],
7
+ "optIn": [{ "click": "div[class*=\"CookiePopup__desktopContainer\"] > button > span" }],
8
+ "optOut": [{ "hide": ["div[class*=\"CookiePopup__desktopContainer\"]"] }]
9
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "delta.com",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.delta\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": ["ngc-cookie-banner"],
8
+ "detectCmp": [{ "exists": "div.cookie-footer-container" }],
9
+ "detectPopup": [{ "visible": "div.cookie-footer-container" }],
10
+ "optIn": [{ "click": " button.cookie-close-icon" }],
11
+ "optOut": [{ "hide": ["div.cookie-footer-container"] }]
12
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "dmgmedia-us",
3
+ "prehideSelectors": ["#mol-ads-cmp-iframe, div.mol-ads-cmp > form > div"],
4
+ "detectCmp": [
5
+ { "exists": "div.mol-ads-cmp > form > div" }
6
+ ],
7
+ "detectPopup": [
8
+ { "waitForVisible": "div.mol-ads-cmp > form > div" }
9
+ ],
10
+ "optIn": [
11
+ { "waitForThenClick": "button.mol-ads-cmp--btn-primary" }
12
+ ],
13
+ "optOut": [
14
+ { "waitForThenClick": "div.mol-ads-ccpa--message > u > a" },
15
+ { "waitForVisible": ".mol-ads-cmp--modal-dialog" },
16
+ { "waitForThenClick": "a.mol-ads-cmp-footer-privacy" },
17
+ { "waitForThenClick": "button.mol-ads-cmp--btn-secondary" }
18
+ ]
19
+ }
20
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "geeks-for-geeks",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.geeksforgeeks\\.org/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": [".cookie-consent"],
8
+ "detectCmp": [{ "exists": ".cookie-consent" }],
9
+ "detectPopup": [{ "visible": ".cookie-consent" }],
10
+ "optIn": [{ "click": ".cookie-consent button.consent-btn" }],
11
+ "optOut": [{ "hide": [".cookie-consent"] }]
12
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "healthline-media",
3
+ "prehideSelectors": ["#modal-host > div.no-hash > div.window-wrapper"],
4
+ "detectCmp": [{ "exists": "#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]" }],
5
+ "detectPopup": [{ "exists": "#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]" }],
6
+ "optIn": [{ "click": "#modal-host > div.no-hash > div.window-wrapper > div:last-child button" }],
7
+ "optOut":
8
+ [
9
+ {
10
+ "if": { "exists": "#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href=\"/privacy-settings\"]" },
11
+ "then": [{ "click": "#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href=\"/privacy-settings\"]" }],
12
+ "else": [
13
+ { "waitForVisible": "div#__next" },
14
+ { "click": "#__next div:nth-child(1) > button:first-child" }
15
+ ]
16
+ }
17
+ ]
18
+ }
@@ -20,30 +20,41 @@
20
20
  ],
21
21
  "optIn": [
22
22
  {
23
- "click": "#lanyard_root button[class^='link']",
24
- "optional": true
25
- },
26
- {
27
- "wait": 500
28
- },
29
- {
30
- "waitForThenClick": "div[class^='buttons'] > :nth-child(2)"
31
- },
32
- {
33
- "click": "#lanyard_root button[class*='confirmButton']"
23
+ "if": {
24
+ "exists": "#lanyard_root button[class='confirmButton']"
25
+ },
26
+ "then": [
27
+ { "waitForThenClick":"#lanyard_root div[class^='buttons'] > :nth-child(2)" },
28
+ { "click": "#lanyard_root button[class='confirmButton']" }
29
+ ],
30
+ "else": [
31
+ { "waitForThenClick":"#lanyard_root div[class^='buttons'] > :nth-child(2)" }
32
+ ]
34
33
  }
35
34
  ],
36
35
  "optOut": [
37
- {
36
+ {
38
37
  "click": "#lanyard_root button[class^='link']",
39
38
  "optional": true
40
39
  },
41
40
  {
42
- "waitForThenClick": "#lanyard_root button[class*='rejectButton']"
43
- },
44
- {
45
- "click": "#lanyard_root button[class*='confirmButton']"
41
+ "if": {
42
+ "exists": "#lanyard_root button[class*='confirmButton']"
43
+ },
44
+ "then": [
45
+ { "waitForThenClick": "#lanyard_root button[class*='rejectButton']" },
46
+ { "click": "#lanyard_root button[class*='confirmButton']" }
47
+ ],
48
+ "else": [
49
+ {
50
+ "click": "#lanyard_root div[class^='buttons'] > :nth-child(1)",
51
+ "optional": true
52
+ },
53
+ { "waitForThenClick": "#lanyard_root input:checked" },
54
+ { "click": "#consentsTab > div:nth-child(2) > div > div[class^='actions'] > button:nth-child(1)" }
55
+ ]
46
56
  }
47
57
  ],
48
58
  "test": []
49
- }
59
+ }
60
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "midway-usa",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.midwayusa\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": ["#cookie-container"],
8
+ "detectCmp": [{ "exists": ["div[aria-label=\"Cookie Policy Banner\"]"] }],
9
+ "detectPopup": [{ "visible": "#cookie-container" }],
10
+ "optIn": [{ "click": "button#cookie-btn" }],
11
+ "optOut": [{ "hide": ["div[aria-label=\"Cookie Policy Banner\"]"] }]
12
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "onlyFans.com",
3
+ "prehideSelectors": ["div.b-cookies-informer"],
4
+ "detectCmp": [{ "exists": "div.b-cookies-informer" }],
5
+ "detectPopup": [{ "exists": "div.b-cookies-informer" }],
6
+ "optIn": [
7
+ { "click": "div.b-cookies-informer__nav > button:nth-child(2)" }
8
+ ],
9
+ "optOut": [
10
+ {
11
+ "click": "div.b-cookies-informer__nav > button:nth-child(1)"
12
+ },
13
+ {
14
+ "click": "div.b-cookies-informer__switchers > div:nth-child(2) > div[at-attr=\"checkbox\"] > span.b-input-radio__container > input[type=\"checkbox\"]"
15
+ },
16
+ { "click": "div.b-cookies-informer__nav > button"}
17
+ ]
18
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "paypal-us",
3
+ "prehideSelectors": ["#ccpaCookieContent_wrapper, article.ppvx_modal--overpanel"],
4
+ "detectCmp": [{ "exists": "#ccpaCookieBanner, .privacy-modal-content" }],
5
+ "detectPopup": [{ "exists": "#ccpaCookieBanner, .privacy-modal-content" }],
6
+ "optIn": [{ "click": "#acceptAllButton" }],
7
+ "optOut": [
8
+ {
9
+ "if":
10
+ { "exists": "a#manageCookiesLink" },
11
+ "then": [
12
+ { "click": "a#manageCookiesLink" }
13
+ ],
14
+ "else": [
15
+ { "waitForVisible": ".privacy-modal-content #formContent" },
16
+ {
17
+ "click": "#formContent .cookiepref-11m2iee-checkbox_base input:checked",
18
+ "all": true,
19
+ "optional": true
20
+ },
21
+ { "click": ".confirmCookie #submitCookiesBtn" }
22
+ ]
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "pmc",
3
+ "cosmetic": true,
4
+ "prehideSelectors": ["#pmc-pp-tou--notice"],
5
+ "detectCmp": [{ "exists": "#pmc-pp-tou--notice" }],
6
+ "detectPopup": [{ "visible": "#pmc-pp-tou--notice" }],
7
+ "optIn": [{ "click": "span.pmc-pp-tou--notice-close-btn" }],
8
+ "optOut": [{ "hide": ["#pmc-pp-tou--notice"] }]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "pornpics.com",
3
+ "cosmetic": true,
4
+ "prehideSelectors": ["#cookie-contract"],
5
+ "detectCmp": [{ "exists": "#cookie-contract" }],
6
+ "detectPopup": [{ "visible": "#cookie-contract" }],
7
+ "optIn": [{ "click": "#cookie-contract .icon-cross" }],
8
+ "optOut": [{ "hide": ["#cookie-contract"] }]
9
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "samsung.com",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.samsung\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": ["div.cookie-bar"],
8
+ "detectCmp": [{ "exists": "div.cookie-bar" }],
9
+ "detectPopup": [{ "visible": "div.cookie-bar" }],
10
+ "optIn": [{ "click": "div.cookie-bar__manage > a" }],
11
+ "optOut": [{ "hide": ["div.cookie-bar"] }]
12
+ }
@@ -2,7 +2,8 @@
2
2
  "name": "theverge",
3
3
  "runContext": {
4
4
  "frame": false,
5
- "main": true
5
+ "main": true,
6
+ "urlPattern": "^https://(www)?\\.theverge\\.com"
6
7
  },
7
8
  "intermediate": false,
8
9
  "prehideSelectors": [
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "tractor-supply",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.tractorsupply\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": [".tsc-cookie-banner"],
8
+ "detectCmp": [{ "exists": ".tsc-cookie-banner" }],
9
+ "detectPopup": [{ "visible": ".tsc-cookie-banner" }],
10
+ "optIn": [{ "click": "#cookie-banner-cancel" }],
11
+ "optOut": [{ "hide": [".tsc-cookie-banner"] }]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "true-car",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.truecar\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": [["div[aria-labelledby=\"cookie-banner-heading\"]"]],
8
+ "detectCmp": [{ "exists": "div[aria-labelledby=\"cookie-banner-heading\"]" }],
9
+ "detectPopup": [{ "visible": "div[aria-labelledby=\"cookie-banner-heading\"]" }],
10
+ "optIn": [{ "click": "div[aria-labelledby=\"cookie-banner-heading\"] > button[aria-label=\"Close\"]" }],
11
+ "optOut": [{ "hide": ["div[aria-labelledby=\"cookie-banner-heading\"]"] }]
12
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "truyo",
3
+ "prehideSelectors": ["#truyo-consent-module"],
4
+ "detectCmp": [
5
+ { "wait": 1000 },
6
+ { "exists": "#truyo-cookieBarContent" }
7
+ ],
8
+ "detectPopup": [
9
+ { "visible": "#truyo-consent-module" }
10
+ ],
11
+ "optIn": [
12
+ { "click": "button#acceptAllCookieButton" }
13
+ ],
14
+ "optOut": [
15
+ { "click": "button#declineAllCookieButton" }
16
+ ]
17
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "whitepages.com",
3
+ "runContext": {
4
+ "urlPattern": "^https://www\\.whitepages\\.com/"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": [".cookie-wrapper, .cookie-overlay"],
8
+ "detectCmp": [{ "exists": ".cookie-wrapper" }],
9
+ "detectPopup": [{ "visible": ".cookie-overlay" }],
10
+ "optIn": [{ "click": "button[aria-label=\"Got it\"]" }],
11
+ "optOut": [{ "hide": [".cookie-wrapper"] }]
12
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "wpcc",
3
+ "cosmetic": true,
4
+ "prehideSelectors": [".wpcc-container"],
5
+ "detectCmp": [{ "exists": ".wpcc-container" }],
6
+ "detectPopup": [{ "exists": ".wpcc-container .wpcc-message" }],
7
+ "optIn": [{ "click": ".wpcc-compliance .wpcc-btn" }],
8
+ "optOut": [{ "hide": [".wpcc-container"] }]
9
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "xhamster-us",
3
+ "runContext": {
4
+ "urlPattern": "^https:\/\/(www\\.)?xhamster\\d?\\.com"
5
+ },
6
+ "cosmetic": true,
7
+ "prehideSelectors": [".cookie-announce"],
8
+ "detectCmp": [{ "exists": ".cookie-announce" }],
9
+ "detectPopup": [{ "visible": ".cookie-announce .announce-text" }],
10
+ "optIn": [{ "click": ".cookie-announce button.xh-button" }],
11
+ "optOut": [{ "hide": [".cookie-announce"] }]
12
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "youporn.com",
3
+ "cosmetic": true,
4
+ "prehideSelectors": [".euCookieModal, #js_euCookieModal"],
5
+ "detectCmp": [{ "exists": ".euCookieModal" }],
6
+ "detectPopup": [{ "exists": ".euCookieModal, #js_euCookieModal" }],
7
+ "optIn": [{ "click": "button[name=\"user_acceptCookie\"]" }],
8
+ "optOut": [{ "hide": [".euCookieModal"] }]
9
+ }