@duckduckgo/autoconsent 10.7.0 → 10.9.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 (37) hide show
  1. package/.github/workflows/ddg-release.yml +5 -9
  2. package/CHANGELOG.md +51 -0
  3. package/ci/asana-create-tasks.js +2 -2
  4. package/ci/clients_pr_template.md +3 -0
  5. package/data/coverage.json +997 -1011
  6. package/dist/addon-firefox/background.bundle.js +5 -0
  7. package/dist/addon-firefox/content.bundle.js +28 -10
  8. package/dist/addon-firefox/manifest.json +1 -1
  9. package/dist/addon-firefox/rules.json +135 -17
  10. package/dist/addon-mv3/background.bundle.js +5 -0
  11. package/dist/addon-mv3/content.bundle.js +28 -10
  12. package/dist/addon-mv3/manifest.json +1 -1
  13. package/dist/addon-mv3/rules.json +135 -17
  14. package/dist/autoconsent.cjs.js +28 -10
  15. package/dist/autoconsent.esm.js +28 -10
  16. package/dist/autoconsent.playwright.js +1 -1
  17. package/dist/autoconsent.unit.js +163 -27
  18. package/lib/cmps/evidon.ts +4 -3
  19. package/lib/cmps/trustarc-frame.ts +25 -6
  20. package/lib/cmps/trustarc-top.ts +2 -1
  21. package/lib/eval-snippets.ts +5 -0
  22. package/package.json +1 -1
  23. package/readme.md +2 -4
  24. package/rules/autoconsent/aquasana-com.json +12 -3
  25. package/rules/autoconsent/complianz-opt-out.json +12 -1
  26. package/rules/autoconsent/cookiecuttr.json +37 -0
  27. package/rules/autoconsent/fides.json +5 -2
  28. package/rules/autoconsent/instagram.json +1 -1
  29. package/rules/autoconsent/ketch.json +8 -5
  30. package/rules/autoconsent/roblox.json +36 -0
  31. package/rules/autoconsent/uswitch.json +10 -5
  32. package/rules/rules.json +135 -17
  33. package/tests/aquasana-com.spec.ts +4 -1
  34. package/tests/cookiecuttr.spec.ts +7 -0
  35. package/tests/fides.spec.ts +1 -0
  36. package/tests/ketch.spec.ts +6 -0
  37. package/tests/roblox.spec.ts +5 -0
@@ -46,6 +46,8 @@
46
46
  },
47
47
  EVAL_ONETRUST_1: () => window.OnetrustActiveGroups.split(",").filter((s) => s.length > 0).length <= 1,
48
48
  EVAL_TRUSTARC_TOP: () => window && window.truste && window.truste.eu.bindMap.prefCookie === "0",
49
+ EVAL_TRUSTARC_FRAME_TEST: () => window && window.QueryString && window.QueryString.preferences === "0",
50
+ EVAL_TRUSTARC_FRAME_GTM: () => window && window.QueryString && window.QueryString.gtm === "1",
49
51
  // declarative rules
50
52
  EVAL_ADROLL_0: () => !document.cookie.includes("__adroll_fpc"),
51
53
  EVAL_ALMACMP_0: () => document.cookie.includes('"name":"Google","consent":false'),
@@ -90,6 +92,7 @@
90
92
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
91
93
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
92
94
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
95
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
93
96
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
94
97
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
95
98
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -99,6 +102,7 @@
99
102
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
100
103
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
101
104
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
105
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
102
106
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
103
107
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
104
108
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -113,6 +117,7 @@
113
117
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
114
118
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
115
119
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
120
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
116
121
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
117
122
  document.documentElement.classList.forEach((cls) => {
118
123
  if (cls.startsWith("sd-cmp-"))
@@ -493,6 +493,8 @@
493
493
  },
494
494
  EVAL_ONETRUST_1: () => window.OnetrustActiveGroups.split(",").filter((s) => s.length > 0).length <= 1,
495
495
  EVAL_TRUSTARC_TOP: () => window && window.truste && window.truste.eu.bindMap.prefCookie === "0",
496
+ EVAL_TRUSTARC_FRAME_TEST: () => window && window.QueryString && window.QueryString.preferences === "0",
497
+ EVAL_TRUSTARC_FRAME_GTM: () => window && window.QueryString && window.QueryString.gtm === "1",
496
498
  // declarative rules
497
499
  EVAL_ADROLL_0: () => !document.cookie.includes("__adroll_fpc"),
498
500
  EVAL_ALMACMP_0: () => document.cookie.includes('"name":"Google","consent":false'),
@@ -537,6 +539,7 @@
537
539
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
538
540
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
539
541
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
542
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
540
543
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
541
544
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
542
545
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -546,6 +549,7 @@
546
549
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
547
550
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
548
551
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
552
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
549
553
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
550
554
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
551
555
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -560,6 +564,7 @@
560
564
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
561
565
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
562
566
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
567
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
563
568
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
564
569
  document.documentElement.classList.forEach((cls) => {
565
570
  if (cls.startsWith("sd-cmp-"))
@@ -1038,7 +1043,7 @@
1038
1043
  this._optInDone = false;
1039
1044
  }
1040
1045
  get hasSelfTest() {
1041
- return false;
1046
+ return true;
1042
1047
  }
1043
1048
  get isIntermediate() {
1044
1049
  if (this._optInDone) {
@@ -1085,6 +1090,7 @@
1085
1090
  return true;
1086
1091
  }
1087
1092
  async test() {
1093
+ await this.wait(500);
1088
1094
  return await this.mainWorldEval("EVAL_TRUSTARC_TOP");
1089
1095
  }
1090
1096
  };
@@ -1101,7 +1107,7 @@
1101
1107
  };
1102
1108
  }
1103
1109
  get hasSelfTest() {
1104
- return false;
1110
+ return true;
1105
1111
  }
1106
1112
  get isIntermediate() {
1107
1113
  return false;
@@ -1137,27 +1143,34 @@
1137
1143
  );
1138
1144
  }
1139
1145
  async optOut() {
1146
+ if (await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST")) {
1147
+ return true;
1148
+ }
1149
+ let timeout = 3e3;
1150
+ if (await this.mainWorldEval("EVAL_TRUSTARC_FRAME_GTM")) {
1151
+ timeout = 1500;
1152
+ }
1140
1153
  await waitFor(() => document.readyState === "complete", 20, 100);
1141
- await this.waitForElement(".mainContent[aria-hidden=false]", 5e3);
1154
+ await this.waitForElement(".mainContent[aria-hidden=false]", timeout);
1142
1155
  if (this.click(".rejectAll")) {
1143
1156
  return true;
1144
1157
  }
1145
1158
  if (this.elementExists(".prefPanel")) {
1146
- await this.waitForElement('.prefPanel[style="visibility: visible;"]', 3e3);
1159
+ await this.waitForElement('.prefPanel[style="visibility: visible;"]', timeout);
1147
1160
  }
1148
1161
  if (this.click("#catDetails0")) {
1149
1162
  this.click(".submit");
1150
- this.waitForThenClick("#gwt-debug-close_id", 5e3);
1163
+ this.waitForThenClick("#gwt-debug-close_id", timeout);
1151
1164
  return true;
1152
1165
  }
1153
1166
  if (this.click(".required")) {
1154
- this.waitForThenClick("#gwt-debug-close_id", 5e3);
1167
+ this.waitForThenClick("#gwt-debug-close_id", timeout);
1155
1168
  return true;
1156
1169
  }
1157
1170
  await this.navigateToSettings();
1158
1171
  this.click(".switch span:nth-child(1):not(.active)", true);
1159
1172
  this.click(".submit");
1160
- this.waitForThenClick("#gwt-debug-close_id", 3e5);
1173
+ this.waitForThenClick("#gwt-debug-close_id", timeout * 10);
1161
1174
  return true;
1162
1175
  }
1163
1176
  async optIn() {
@@ -1172,6 +1185,10 @@
1172
1185
  });
1173
1186
  return true;
1174
1187
  }
1188
+ async test() {
1189
+ await this.wait(500);
1190
+ return await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST");
1191
+ }
1175
1192
  };
1176
1193
 
1177
1194
  // lib/cmps/cookiebot.ts
@@ -1420,10 +1437,11 @@
1420
1437
  if (this.click("#_evidon-decline-button")) {
1421
1438
  return true;
1422
1439
  }
1423
- hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
1424
- this.click("#_evidon-option-button");
1440
+ hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
1441
+ await this.waitForThenClick("#_evidon-option-button");
1425
1442
  await this.waitForElement("#evidon-prefdiag-overlay", 5e3);
1426
- this.click("#evidon-prefdiag-decline");
1443
+ await this.wait(500);
1444
+ await this.waitForThenClick("#evidon-prefdiag-decline");
1427
1445
  return true;
1428
1446
  }
1429
1447
  async optIn() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 2,
3
3
  "name": "Autoconsent",
4
- "version": "2024.4.26",
4
+ "version": "2024.5.14",
5
5
  "background": {
6
6
  "scripts": [
7
7
  "background.bundle.js"
@@ -374,7 +374,6 @@
374
374
  },
375
375
  {
376
376
  "name": "aquasana.com",
377
- "cosmetic": true,
378
377
  "prehideSelectors": [
379
378
  "#consent-tracking"
380
379
  ],
@@ -390,12 +389,24 @@
390
389
  ],
391
390
  "optIn": [
392
391
  {
393
- "click": "#accept_consent"
392
+ "waitForThenClick": "#consent-tracking .affirm.btn"
394
393
  }
395
394
  ],
396
395
  "optOut": [
397
396
  {
398
- "hide": "#consent-tracking"
397
+ "if": {
398
+ "exists": "#consent-tracking .decline.btn"
399
+ },
400
+ "then": [
401
+ {
402
+ "click": "#consent-tracking .decline.btn"
403
+ }
404
+ ],
405
+ "else": [
406
+ {
407
+ "hide": "#consent-tracking"
408
+ }
409
+ ]
399
410
  }
400
411
  ]
401
412
  },
@@ -1571,7 +1582,20 @@
1571
1582
  ],
1572
1583
  "else": [
1573
1584
  {
1574
- "hide": "[aria-describedby=\"cookieconsent:desc\"]"
1585
+ "if": {
1586
+ "exists": ".cmp-pref-link"
1587
+ },
1588
+ "then": [
1589
+ {
1590
+ "click": ".cmp-pref-link"
1591
+ },
1592
+ {
1593
+ "waitForThenClick": ".cmp-body [id*=rejectAll]"
1594
+ },
1595
+ {
1596
+ "waitForThenClick": ".cmp-body .cmp-save-btn"
1597
+ }
1598
+ ]
1575
1599
  }
1576
1600
  ]
1577
1601
  }
@@ -1965,6 +1989,51 @@
1965
1989
  }
1966
1990
  ]
1967
1991
  },
1992
+ {
1993
+ "name": "cookiecuttr",
1994
+ "vendorUrl": "https://github.com/cdwharton/cookieCuttr",
1995
+ "cosmetic": false,
1996
+ "runContext": {
1997
+ "main": true,
1998
+ "frame": false,
1999
+ "urlPattern": ""
2000
+ },
2001
+ "prehideSelectors": [
2002
+ ".cc-cookies"
2003
+ ],
2004
+ "detectCmp": [
2005
+ {
2006
+ "exists": ".cc-cookies .cc-cookie-accept"
2007
+ }
2008
+ ],
2009
+ "detectPopup": [
2010
+ {
2011
+ "visible": ".cc-cookies .cc-cookie-accept"
2012
+ }
2013
+ ],
2014
+ "optIn": [
2015
+ {
2016
+ "waitForThenClick": ".cc-cookies .cc-cookie-accept"
2017
+ }
2018
+ ],
2019
+ "optOut": [
2020
+ {
2021
+ "if": {
2022
+ "exists": ".cc-cookies .cc-cookie-decline"
2023
+ },
2024
+ "then": [
2025
+ {
2026
+ "click": ".cc-cookies .cc-cookie-decline"
2027
+ }
2028
+ ],
2029
+ "else": [
2030
+ {
2031
+ "hide": ".cc-cookies"
2032
+ }
2033
+ ]
2034
+ }
2035
+ ]
2036
+ },
1968
2037
  {
1969
2038
  "name": "cookiefirst.com",
1970
2039
  "prehideSelectors": [
@@ -2884,16 +2953,19 @@
2884
2953
  "detectPopup": [
2885
2954
  {
2886
2955
  "visible": "#fides-overlay #fides-banner"
2956
+ },
2957
+ {
2958
+ "eval": "EVAL_FIDES_DETECT_POPUP"
2887
2959
  }
2888
2960
  ],
2889
2961
  "optIn": [
2890
2962
  {
2891
- "waitForThenClick": "#fides-banner [data-testid=\"Accept all-btn\"]"
2963
+ "waitForThenClick": "#fides-banner .fides-accept-all-button"
2892
2964
  }
2893
2965
  ],
2894
2966
  "optOut": [
2895
2967
  {
2896
- "waitForThenClick": "#fides-banner [data-testid=\"Reject all-btn\"]"
2968
+ "waitForThenClick": "#fides-banner .fides-reject-all-button"
2897
2969
  }
2898
2970
  ]
2899
2971
  },
@@ -3376,7 +3448,7 @@
3376
3448
  "urlPattern": "^https://www\\.instagram\\.com/"
3377
3449
  },
3378
3450
  "prehideSelectors": [
3379
- ".x78zum5.xdt5ytf.xg6iff7.x1n2onr6"
3451
+ ".x78zum5.xdt5ytf.xg6iff7.x1n2onr6:has(._a9--)"
3380
3452
  ],
3381
3453
  "detectCmp": [
3382
3454
  {
@@ -3738,29 +3810,34 @@
3738
3810
  },
3739
3811
  "then": [
3740
3812
  {
3741
- "waitForThenClick": "#lanyard_root div[class*=buttons] > button[class*=secondaryButton]",
3813
+ "waitForThenClick": "#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",
3742
3814
  "comment": "can be either settings or reject button"
3743
3815
  }
3744
3816
  ]
3745
3817
  },
3746
3818
  {
3747
- "waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]",
3819
+ "waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",
3748
3820
  "timeout": 1000,
3749
3821
  "optional": true
3750
3822
  },
3751
3823
  {
3752
3824
  "if": {
3753
- "exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]"
3825
+ "exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"
3754
3826
  },
3755
3827
  "then": [
3756
3828
  {
3757
- "waitForThenClick": "#lanyard_root button[class*=rejectButton]"
3829
+ "waitForThenClick": "#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]"
3758
3830
  },
3759
3831
  {
3760
- "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1)"
3832
+ "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]"
3761
3833
  }
3762
3834
  ]
3763
3835
  }
3836
+ ],
3837
+ "test": [
3838
+ {
3839
+ "eval": "EVAL_KETCH_TEST"
3840
+ }
3764
3841
  ]
3765
3842
  },
3766
3843
  {
@@ -5162,6 +5239,42 @@
5162
5239
  }
5163
5240
  ]
5164
5241
  },
5242
+ {
5243
+ "name": "roblox",
5244
+ "vendorUrl": "https://roblox.com",
5245
+ "cosmetic": false,
5246
+ "runContext": {
5247
+ "main": true,
5248
+ "frame": false,
5249
+ "urlPattern": "^https://(www\\.)?roblox\\.com/"
5250
+ },
5251
+ "prehideSelectors": [],
5252
+ "detectCmp": [
5253
+ {
5254
+ "exists": ".cookie-banner-wrapper"
5255
+ }
5256
+ ],
5257
+ "detectPopup": [
5258
+ {
5259
+ "visible": ".cookie-banner-wrapper .cookie-banner"
5260
+ }
5261
+ ],
5262
+ "optIn": [
5263
+ {
5264
+ "waitForThenClick": ".cookie-banner-wrapper button.btn-cta-lg"
5265
+ }
5266
+ ],
5267
+ "optOut": [
5268
+ {
5269
+ "waitForThenClick": ".cookie-banner-wrapper button.btn-secondary-lg"
5270
+ }
5271
+ ],
5272
+ "test": [
5273
+ {
5274
+ "eval": "EVAL_ROBLOX_TEST"
5275
+ }
5276
+ ]
5277
+ },
5165
5278
  {
5166
5279
  "name": "rog-forum.asus.com",
5167
5280
  "runContext": {
@@ -6583,27 +6696,32 @@
6583
6696
  },
6584
6697
  {
6585
6698
  "name": "uswitch.com",
6699
+ "runContext": {
6700
+ "main": true,
6701
+ "frame": false,
6702
+ "urlPattern": "^https://(www\\.)?uswitch\\.com/"
6703
+ },
6586
6704
  "prehideSelectors": [
6587
- "#cookie-banner-wrapper"
6705
+ ".ucb"
6588
6706
  ],
6589
6707
  "detectCmp": [
6590
6708
  {
6591
- "exists": "#cookie-banner-wrapper"
6709
+ "exists": ".ucb-banner"
6592
6710
  }
6593
6711
  ],
6594
6712
  "detectPopup": [
6595
6713
  {
6596
- "visible": "#cookie-banner-wrapper"
6714
+ "visible": ".ucb-banner"
6597
6715
  }
6598
6716
  ],
6599
6717
  "optIn": [
6600
6718
  {
6601
- "click": "#cookie_banner_accept_mobile"
6719
+ "waitForThenClick": ".ucb-banner .ucb-btn-accept"
6602
6720
  }
6603
6721
  ],
6604
6722
  "optOut": [
6605
6723
  {
6606
- "click": "#cookie_banner_save"
6724
+ "waitForThenClick": ".ucb-banner .ucb-btn-save"
6607
6725
  }
6608
6726
  ]
6609
6727
  },
@@ -46,6 +46,8 @@
46
46
  },
47
47
  EVAL_ONETRUST_1: () => window.OnetrustActiveGroups.split(",").filter((s) => s.length > 0).length <= 1,
48
48
  EVAL_TRUSTARC_TOP: () => window && window.truste && window.truste.eu.bindMap.prefCookie === "0",
49
+ EVAL_TRUSTARC_FRAME_TEST: () => window && window.QueryString && window.QueryString.preferences === "0",
50
+ EVAL_TRUSTARC_FRAME_GTM: () => window && window.QueryString && window.QueryString.gtm === "1",
49
51
  // declarative rules
50
52
  EVAL_ADROLL_0: () => !document.cookie.includes("__adroll_fpc"),
51
53
  EVAL_ALMACMP_0: () => document.cookie.includes('"name":"Google","consent":false'),
@@ -90,6 +92,7 @@
90
92
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
91
93
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
92
94
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
95
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
93
96
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
94
97
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
95
98
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -99,6 +102,7 @@
99
102
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
100
103
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
101
104
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
105
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
102
106
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
103
107
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
104
108
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -113,6 +117,7 @@
113
117
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
114
118
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
115
119
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
120
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
116
121
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
117
122
  document.documentElement.classList.forEach((cls) => {
118
123
  if (cls.startsWith("sd-cmp-"))
@@ -493,6 +493,8 @@
493
493
  },
494
494
  EVAL_ONETRUST_1: () => window.OnetrustActiveGroups.split(",").filter((s) => s.length > 0).length <= 1,
495
495
  EVAL_TRUSTARC_TOP: () => window && window.truste && window.truste.eu.bindMap.prefCookie === "0",
496
+ EVAL_TRUSTARC_FRAME_TEST: () => window && window.QueryString && window.QueryString.preferences === "0",
497
+ EVAL_TRUSTARC_FRAME_GTM: () => window && window.QueryString && window.QueryString.gtm === "1",
496
498
  // declarative rules
497
499
  EVAL_ADROLL_0: () => !document.cookie.includes("__adroll_fpc"),
498
500
  EVAL_ALMACMP_0: () => document.cookie.includes('"name":"Google","consent":false'),
@@ -537,6 +539,7 @@
537
539
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
538
540
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
539
541
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
542
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
540
543
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
541
544
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
542
545
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -546,6 +549,7 @@
546
549
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
547
550
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
548
551
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
552
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
549
553
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
550
554
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
551
555
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -560,6 +564,7 @@
560
564
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
561
565
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
562
566
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
567
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
563
568
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
564
569
  document.documentElement.classList.forEach((cls) => {
565
570
  if (cls.startsWith("sd-cmp-"))
@@ -1038,7 +1043,7 @@
1038
1043
  this._optInDone = false;
1039
1044
  }
1040
1045
  get hasSelfTest() {
1041
- return false;
1046
+ return true;
1042
1047
  }
1043
1048
  get isIntermediate() {
1044
1049
  if (this._optInDone) {
@@ -1085,6 +1090,7 @@
1085
1090
  return true;
1086
1091
  }
1087
1092
  async test() {
1093
+ await this.wait(500);
1088
1094
  return await this.mainWorldEval("EVAL_TRUSTARC_TOP");
1089
1095
  }
1090
1096
  };
@@ -1101,7 +1107,7 @@
1101
1107
  };
1102
1108
  }
1103
1109
  get hasSelfTest() {
1104
- return false;
1110
+ return true;
1105
1111
  }
1106
1112
  get isIntermediate() {
1107
1113
  return false;
@@ -1137,27 +1143,34 @@
1137
1143
  );
1138
1144
  }
1139
1145
  async optOut() {
1146
+ if (await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST")) {
1147
+ return true;
1148
+ }
1149
+ let timeout = 3e3;
1150
+ if (await this.mainWorldEval("EVAL_TRUSTARC_FRAME_GTM")) {
1151
+ timeout = 1500;
1152
+ }
1140
1153
  await waitFor(() => document.readyState === "complete", 20, 100);
1141
- await this.waitForElement(".mainContent[aria-hidden=false]", 5e3);
1154
+ await this.waitForElement(".mainContent[aria-hidden=false]", timeout);
1142
1155
  if (this.click(".rejectAll")) {
1143
1156
  return true;
1144
1157
  }
1145
1158
  if (this.elementExists(".prefPanel")) {
1146
- await this.waitForElement('.prefPanel[style="visibility: visible;"]', 3e3);
1159
+ await this.waitForElement('.prefPanel[style="visibility: visible;"]', timeout);
1147
1160
  }
1148
1161
  if (this.click("#catDetails0")) {
1149
1162
  this.click(".submit");
1150
- this.waitForThenClick("#gwt-debug-close_id", 5e3);
1163
+ this.waitForThenClick("#gwt-debug-close_id", timeout);
1151
1164
  return true;
1152
1165
  }
1153
1166
  if (this.click(".required")) {
1154
- this.waitForThenClick("#gwt-debug-close_id", 5e3);
1167
+ this.waitForThenClick("#gwt-debug-close_id", timeout);
1155
1168
  return true;
1156
1169
  }
1157
1170
  await this.navigateToSettings();
1158
1171
  this.click(".switch span:nth-child(1):not(.active)", true);
1159
1172
  this.click(".submit");
1160
- this.waitForThenClick("#gwt-debug-close_id", 3e5);
1173
+ this.waitForThenClick("#gwt-debug-close_id", timeout * 10);
1161
1174
  return true;
1162
1175
  }
1163
1176
  async optIn() {
@@ -1172,6 +1185,10 @@
1172
1185
  });
1173
1186
  return true;
1174
1187
  }
1188
+ async test() {
1189
+ await this.wait(500);
1190
+ return await this.mainWorldEval("EVAL_TRUSTARC_FRAME_TEST");
1191
+ }
1175
1192
  };
1176
1193
 
1177
1194
  // lib/cmps/cookiebot.ts
@@ -1420,10 +1437,11 @@
1420
1437
  if (this.click("#_evidon-decline-button")) {
1421
1438
  return true;
1422
1439
  }
1423
- hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
1424
- this.click("#_evidon-option-button");
1440
+ hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
1441
+ await this.waitForThenClick("#_evidon-option-button");
1425
1442
  await this.waitForElement("#evidon-prefdiag-overlay", 5e3);
1426
- this.click("#evidon-prefdiag-decline");
1443
+ await this.wait(500);
1444
+ await this.waitForThenClick("#evidon-prefdiag-decline");
1427
1445
  return true;
1428
1446
  }
1429
1447
  async optIn() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "Autoconsent",
4
- "version": "2024.4.26",
4
+ "version": "2024.5.14",
5
5
  "background": {
6
6
  "service_worker": "background.bundle.js"
7
7
  },