@duckduckgo/autoconsent 10.8.0 → 10.10.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 +44 -0
  3. package/ci/asana-create-tasks.js +2 -2
  4. package/ci/clients_pr_template.md +3 -0
  5. package/dist/addon-firefox/background.bundle.js +3 -0
  6. package/dist/addon-firefox/content.bundle.js +7 -3
  7. package/dist/addon-firefox/manifest.json +1 -1
  8. package/dist/addon-firefox/rules.json +182 -19
  9. package/dist/addon-mv3/background.bundle.js +3 -0
  10. package/dist/addon-mv3/content.bundle.js +7 -3
  11. package/dist/addon-mv3/manifest.json +1 -1
  12. package/dist/addon-mv3/rules.json +182 -19
  13. package/dist/autoconsent.cjs.js +7 -3
  14. package/dist/autoconsent.esm.js +7 -3
  15. package/dist/autoconsent.playwright.js +1 -1
  16. package/dist/autoconsent.unit.js +189 -22
  17. package/lib/cmps/evidon.ts +4 -3
  18. package/lib/eval-snippets.ts +3 -0
  19. package/package.json +1 -1
  20. package/readme.md +2 -4
  21. package/rules/autoconsent/aquasana-com.json +12 -3
  22. package/rules/autoconsent/complianz-opt-out.json +12 -1
  23. package/rules/autoconsent/cookiecuttr.json +37 -0
  24. package/rules/autoconsent/ebay.json +31 -0
  25. package/rules/autoconsent/ens-modal.json +3 -1
  26. package/rules/autoconsent/ens-notify-banner.json +4 -2
  27. package/rules/autoconsent/fides.json +5 -2
  28. package/rules/autoconsent/ketch.json +8 -5
  29. package/rules/autoconsent/roblox.json +36 -0
  30. package/rules/autoconsent/uswitch.json +10 -5
  31. package/rules/rules.json +182 -19
  32. package/tests/aquasana-com.spec.ts +4 -1
  33. package/tests/cookiecuttr.spec.ts +7 -0
  34. package/tests/ebay.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
@@ -9,6 +9,7 @@ on:
9
9
 
10
10
  env:
11
11
  TAG: ${{ inputs.tag_name }}
12
+ RELEASE_NOTES: See release notes [here](https://github.com/duckduckgo/autoconsent/blob/${{ inputs.tag_name }}/CHANGELOG.md)
12
13
 
13
14
  jobs:
14
15
  # ------------------------------------------------------------------------------
@@ -56,7 +57,6 @@ jobs:
56
57
  asana-output: ${{ steps.create-asana-tasks.outputs.ASANA_OUTPUT }}
57
58
  env:
58
59
  RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
59
- RELEASE_NOTES: See release notes [here](https://github.com/duckduckgo/autoconsent/blob/${{ inputs.tag_name }}/CHANGELOG.md)
60
60
  steps:
61
61
  # --- Setup ---
62
62
  - uses: actions/checkout@v3
@@ -85,7 +85,6 @@ jobs:
85
85
  - get_release_info
86
86
  env:
87
87
  RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
88
- RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
89
88
  steps:
90
89
  # --- Setup ---
91
90
  - uses: actions/checkout@v3
@@ -105,7 +104,7 @@ jobs:
105
104
  - name: Update Android autoconsent reference
106
105
  run: |
107
106
  cd android
108
- npm install @duckduckgo/autoconsent~${{ env.TAG }}
107
+ npm install @duckduckgo/autoconsent@${{ env.TAG }}
109
108
  npm run rebuild-autoconsent
110
109
  cd ..
111
110
  - name: Create Android PR Body
@@ -148,7 +147,6 @@ jobs:
148
147
  - get_release_info
149
148
  env:
150
149
  RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
151
- RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
152
150
  steps:
153
151
  # --- Setup ---
154
152
  - uses: actions/checkout@v3
@@ -168,7 +166,7 @@ jobs:
168
166
  - name: Update iOS autoconsent reference
169
167
  run: |
170
168
  cd ios
171
- npm install @duckduckgo/autoconsent~${{ env.TAG }}
169
+ npm install @duckduckgo/autoconsent@${{ env.TAG }}
172
170
  npm run rebuild-autoconsent
173
171
  cd ..
174
172
  - name: Create iOS PR Body
@@ -210,7 +208,6 @@ jobs:
210
208
  - get_release_info
211
209
  env:
212
210
  RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
213
- RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
214
211
  steps:
215
212
  # --- Setup ---
216
213
  - uses: actions/checkout@v3
@@ -230,7 +227,7 @@ jobs:
230
227
  - name: Update macOS autoconsent reference
231
228
  run: |
232
229
  cd macos
233
- npm install @duckduckgo/autoconsent~${{ env.TAG }}
230
+ npm install @duckduckgo/autoconsent@${{ env.TAG }}
234
231
  npm run rebuild-autoconsent
235
232
  cd ..
236
233
  - name: Create macOS PR Body
@@ -272,7 +269,6 @@ jobs:
272
269
  - get_release_info
273
270
  env:
274
271
  RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
275
- RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
276
272
  steps:
277
273
  # --- Setup ---
278
274
  - uses: actions/checkout@v3
@@ -292,7 +288,7 @@ jobs:
292
288
  - name: Update Windows autoconsent reference
293
289
  run: |
294
290
  cd windows/WindowsBrowser/Application/Autoconsent/External
295
- npm install @duckduckgo/autoconsent~${{ env.TAG }}
291
+ npm install @duckduckgo/autoconsent@${{ env.TAG }}
296
292
  npm run rebuild-autoconsent
297
293
  cd ../../../../../
298
294
  - name: Create Windows PR Body
package/CHANGELOG.md CHANGED
@@ -1,3 +1,47 @@
1
+ # v10.10.0 (Mon Jun 03 2024)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - Fix some reload loops on www.fidelity.co.uk and other Ensighten sites [#452](https://github.com/duckduckgo/autoconsent/pull/452) ([@muodov](https://github.com/muodov))
6
+ - Add a rule for ebay [#449](https://github.com/duckduckgo/autoconsent/pull/449) ([@muodov](https://github.com/muodov))
7
+
8
+ #### Authors: 1
9
+
10
+ - Maxim Tsoy ([@muodov](https://github.com/muodov))
11
+
12
+ ---
13
+
14
+ # v10.9.0 (Tue May 28 2024)
15
+
16
+ #### 🚀 Enhancement
17
+
18
+ - Roblox [#448](https://github.com/duckduckgo/autoconsent/pull/448) ([@muodov](https://github.com/muodov))
19
+ - Fix the Ketch rule [#447](https://github.com/duckduckgo/autoconsent/pull/447) ([@muodov](https://github.com/muodov))
20
+ - Make Fides rule more robust [#442](https://github.com/duckduckgo/autoconsent/pull/442) ([@muodov](https://github.com/muodov))
21
+ - Add support for cookieCuttr CMP [#440](https://github.com/duckduckgo/autoconsent/pull/440) ([@muodov](https://github.com/muodov))
22
+ - Add travelonbags.com [#438](https://github.com/duckduckgo/autoconsent/pull/438) ([@seia-soto](https://github.com/seia-soto) [@muodov](https://github.com/muodov))
23
+
24
+ #### 🐛 Bug Fix
25
+
26
+ - Fix overlay in complianz-optout [#450](https://github.com/duckduckgo/autoconsent/pull/450) ([@muodov](https://github.com/muodov))
27
+ - Fix overlay on https://sports.tipico.de/de [#451](https://github.com/duckduckgo/autoconsent/pull/451) ([@muodov](https://github.com/muodov))
28
+ - upgrade dependencies [#439](https://github.com/duckduckgo/autoconsent/pull/439) ([@muodov](https://github.com/muodov))
29
+
30
+ #### ⚠️ Pushed to `main`
31
+
32
+ - Update DDG PR template ([@muodov](https://github.com/muodov))
33
+ - Refer to the changelog instead of copying github release notes ([@muodov](https://github.com/muodov))
34
+ - Fix ddg release ([@muodov](https://github.com/muodov))
35
+ - Fix Asana API usage ([@muodov](https://github.com/muodov))
36
+ - Update readme.md ([@muodov](https://github.com/muodov))
37
+
38
+ #### Authors: 2
39
+
40
+ - HoJeong Go ([@seia-soto](https://github.com/seia-soto))
41
+ - Maxim Tsoy ([@muodov](https://github.com/muodov))
42
+
43
+ ---
44
+
1
45
  # v10.8.0 (Tue May 14 2024)
2
46
 
3
47
  #### 🚀 Enhancement
@@ -15,7 +15,7 @@ const releaseNotes = md.render(releaseNotesRaw)
15
15
  const templateTaskGid = '1206774921409831'
16
16
  const autoconsentProjectGid = '1201844467387842'
17
17
  const releaseSectionGid = '1202253736774466'
18
- const projectExtractorRegex = /\[\[project_gids=(.+)]]\s/
18
+ const projectExtractorRegex = /\[\[project_gids=(.*)]]/
19
19
 
20
20
  /**
21
21
  * @typedef {{taskGid: string, taskUrl: string, displayName: string}} platformData
@@ -143,7 +143,7 @@ const asanaCreateTasks = async () => {
143
143
  if (extractedProjects) {
144
144
  for (const projectGidAndSection of extractedProjects.split(',')) {
145
145
  const [projectGid, sectionGid] = projectGidAndSection.split(':')
146
- await asana.tasks.addProjectForTask(gid, { project: projectGid, insert_after: null, section: sectionGid })
146
+ await asana.tasks.addProjectForTask(gid, { project: projectGid, section: sectionGid })
147
147
  }
148
148
  }
149
149
  }
@@ -10,3 +10,6 @@ Updates Autoconsent to version [[[version]]]([[autoconsent_release_url]]).
10
10
 
11
11
  ## Steps to test
12
12
  This release has been tested during Autoconsent development. You can check the release notes for more information.
13
+ 1. Make sure that there's no unexpected failures in CI checks
14
+ 2. (optional) smoke test some of the sites mentioned in the release notes
15
+ 3. If there are problems, reach out to a CPM DRI
@@ -92,6 +92,7 @@
92
92
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
93
93
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
94
94
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
95
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
95
96
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
96
97
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
97
98
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -101,6 +102,7 @@
101
102
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
102
103
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
103
104
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
105
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
104
106
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
105
107
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
106
108
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -115,6 +117,7 @@
115
117
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
116
118
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
117
119
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
120
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
118
121
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
119
122
  document.documentElement.classList.forEach((cls) => {
120
123
  if (cls.startsWith("sd-cmp-"))
@@ -539,6 +539,7 @@
539
539
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
540
540
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
541
541
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
542
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
542
543
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
543
544
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
544
545
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -548,6 +549,7 @@
548
549
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
549
550
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
550
551
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
552
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
551
553
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
552
554
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
553
555
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -562,6 +564,7 @@
562
564
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
563
565
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
564
566
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
567
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
565
568
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
566
569
  document.documentElement.classList.forEach((cls) => {
567
570
  if (cls.startsWith("sd-cmp-"))
@@ -1434,10 +1437,11 @@
1434
1437
  if (this.click("#_evidon-decline-button")) {
1435
1438
  return true;
1436
1439
  }
1437
- hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
1438
- this.click("#_evidon-option-button");
1440
+ hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
1441
+ await this.waitForThenClick("#_evidon-option-button");
1439
1442
  await this.waitForElement("#evidon-prefdiag-overlay", 5e3);
1440
- this.click("#evidon-prefdiag-decline");
1443
+ await this.wait(500);
1444
+ await this.waitForThenClick("#evidon-prefdiag-decline");
1441
1445
  return true;
1442
1446
  }
1443
1447
  async optIn() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 2,
3
3
  "name": "Autoconsent",
4
- "version": "2024.5.2",
4
+ "version": "2024.5.28",
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": [
@@ -2525,6 +2594,39 @@
2525
2594
  }
2526
2595
  ]
2527
2596
  },
2597
+ {
2598
+ "name": "ebay",
2599
+ "vendorUrl": "https://ebay.com",
2600
+ "cosmetic": false,
2601
+ "runContext": {
2602
+ "main": true,
2603
+ "frame": false,
2604
+ "urlPattern": "^https://(www\\.)?ebay\\.([.a-z]+)/"
2605
+ },
2606
+ "prehideSelectors": [
2607
+ "#gdpr-banner"
2608
+ ],
2609
+ "detectCmp": [
2610
+ {
2611
+ "exists": "#gdpr-banner"
2612
+ }
2613
+ ],
2614
+ "detectPopup": [
2615
+ {
2616
+ "visible": "#gdpr-banner"
2617
+ }
2618
+ ],
2619
+ "optIn": [
2620
+ {
2621
+ "waitForThenClick": "#gdpr-banner-accept"
2622
+ }
2623
+ ],
2624
+ "optOut": [
2625
+ {
2626
+ "waitForThenClick": "#gdpr-banner-decline"
2627
+ }
2628
+ ]
2629
+ },
2528
2630
  {
2529
2631
  "name": "ecosia",
2530
2632
  "vendorUrl": "https://www.ecosia.org/",
@@ -2567,7 +2669,7 @@
2567
2669
  ],
2568
2670
  "detectPopup": [
2569
2671
  {
2570
- "visible": ".ensModal"
2672
+ "visible": "#ensModalWrapper[style*=block]"
2571
2673
  }
2572
2674
  ],
2573
2675
  "optIn": [
@@ -2576,6 +2678,12 @@
2576
2678
  }
2577
2679
  ],
2578
2680
  "optOut": [
2681
+ {
2682
+ "wait": 500
2683
+ },
2684
+ {
2685
+ "visible": "#ensModalWrapper[style*=block]"
2686
+ },
2579
2687
  {
2580
2688
  "waitForThenClick": ".ensCheckbox:checked",
2581
2689
  "all": true
@@ -2597,7 +2705,7 @@
2597
2705
  ],
2598
2706
  "detectPopup": [
2599
2707
  {
2600
- "visible": "#ensNotifyBanner"
2708
+ "visible": "#ensNotifyBanner[style*=block]"
2601
2709
  }
2602
2710
  ],
2603
2711
  "optIn": [
@@ -2607,7 +2715,13 @@
2607
2715
  ],
2608
2716
  "optOut": [
2609
2717
  {
2610
- "waitForThenClick": "#ensRejectAll,#rejectAll,#ensRejectBanner"
2718
+ "wait": 500
2719
+ },
2720
+ {
2721
+ "visible": "#ensNotifyBanner[style*=block]"
2722
+ },
2723
+ {
2724
+ "waitForThenClick": "#ensRejectAll,#rejectAll,#ensRejectBanner,.rejectAll"
2611
2725
  }
2612
2726
  ]
2613
2727
  },
@@ -2884,16 +2998,19 @@
2884
2998
  "detectPopup": [
2885
2999
  {
2886
3000
  "visible": "#fides-overlay #fides-banner"
3001
+ },
3002
+ {
3003
+ "eval": "EVAL_FIDES_DETECT_POPUP"
2887
3004
  }
2888
3005
  ],
2889
3006
  "optIn": [
2890
3007
  {
2891
- "waitForThenClick": "#fides-banner [data-testid=\"Accept all-btn\"]"
3008
+ "waitForThenClick": "#fides-banner .fides-accept-all-button"
2892
3009
  }
2893
3010
  ],
2894
3011
  "optOut": [
2895
3012
  {
2896
- "waitForThenClick": "#fides-banner [data-testid=\"Reject all-btn\"]"
3013
+ "waitForThenClick": "#fides-banner .fides-reject-all-button"
2897
3014
  }
2898
3015
  ]
2899
3016
  },
@@ -3738,29 +3855,34 @@
3738
3855
  },
3739
3856
  "then": [
3740
3857
  {
3741
- "waitForThenClick": "#lanyard_root div[class*=buttons] > button[class*=secondaryButton]",
3858
+ "waitForThenClick": "#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",
3742
3859
  "comment": "can be either settings or reject button"
3743
3860
  }
3744
3861
  ]
3745
3862
  },
3746
3863
  {
3747
- "waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]",
3864
+ "waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",
3748
3865
  "timeout": 1000,
3749
3866
  "optional": true
3750
3867
  },
3751
3868
  {
3752
3869
  "if": {
3753
- "exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]"
3870
+ "exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"
3754
3871
  },
3755
3872
  "then": [
3756
3873
  {
3757
- "waitForThenClick": "#lanyard_root button[class*=rejectButton]"
3874
+ "waitForThenClick": "#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]"
3758
3875
  },
3759
3876
  {
3760
- "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1)"
3877
+ "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]"
3761
3878
  }
3762
3879
  ]
3763
3880
  }
3881
+ ],
3882
+ "test": [
3883
+ {
3884
+ "eval": "EVAL_KETCH_TEST"
3885
+ }
3764
3886
  ]
3765
3887
  },
3766
3888
  {
@@ -5162,6 +5284,42 @@
5162
5284
  }
5163
5285
  ]
5164
5286
  },
5287
+ {
5288
+ "name": "roblox",
5289
+ "vendorUrl": "https://roblox.com",
5290
+ "cosmetic": false,
5291
+ "runContext": {
5292
+ "main": true,
5293
+ "frame": false,
5294
+ "urlPattern": "^https://(www\\.)?roblox\\.com/"
5295
+ },
5296
+ "prehideSelectors": [],
5297
+ "detectCmp": [
5298
+ {
5299
+ "exists": ".cookie-banner-wrapper"
5300
+ }
5301
+ ],
5302
+ "detectPopup": [
5303
+ {
5304
+ "visible": ".cookie-banner-wrapper .cookie-banner"
5305
+ }
5306
+ ],
5307
+ "optIn": [
5308
+ {
5309
+ "waitForThenClick": ".cookie-banner-wrapper button.btn-cta-lg"
5310
+ }
5311
+ ],
5312
+ "optOut": [
5313
+ {
5314
+ "waitForThenClick": ".cookie-banner-wrapper button.btn-secondary-lg"
5315
+ }
5316
+ ],
5317
+ "test": [
5318
+ {
5319
+ "eval": "EVAL_ROBLOX_TEST"
5320
+ }
5321
+ ]
5322
+ },
5165
5323
  {
5166
5324
  "name": "rog-forum.asus.com",
5167
5325
  "runContext": {
@@ -6583,27 +6741,32 @@
6583
6741
  },
6584
6742
  {
6585
6743
  "name": "uswitch.com",
6744
+ "runContext": {
6745
+ "main": true,
6746
+ "frame": false,
6747
+ "urlPattern": "^https://(www\\.)?uswitch\\.com/"
6748
+ },
6586
6749
  "prehideSelectors": [
6587
- "#cookie-banner-wrapper"
6750
+ ".ucb"
6588
6751
  ],
6589
6752
  "detectCmp": [
6590
6753
  {
6591
- "exists": "#cookie-banner-wrapper"
6754
+ "exists": ".ucb-banner"
6592
6755
  }
6593
6756
  ],
6594
6757
  "detectPopup": [
6595
6758
  {
6596
- "visible": "#cookie-banner-wrapper"
6759
+ "visible": ".ucb-banner"
6597
6760
  }
6598
6761
  ],
6599
6762
  "optIn": [
6600
6763
  {
6601
- "click": "#cookie_banner_accept_mobile"
6764
+ "waitForThenClick": ".ucb-banner .ucb-btn-accept"
6602
6765
  }
6603
6766
  ],
6604
6767
  "optOut": [
6605
6768
  {
6606
- "click": "#cookie_banner_save"
6769
+ "waitForThenClick": ".ucb-banner .ucb-btn-save"
6607
6770
  }
6608
6771
  ]
6609
6772
  },
@@ -92,6 +92,7 @@
92
92
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
93
93
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
94
94
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
95
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
95
96
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
96
97
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
97
98
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -101,6 +102,7 @@
101
102
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
102
103
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
103
104
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
105
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
104
106
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
105
107
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
106
108
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -115,6 +117,7 @@
115
117
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
116
118
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
117
119
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
120
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
118
121
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
119
122
  document.documentElement.classList.forEach((cls) => {
120
123
  if (cls.startsWith("sd-cmp-"))
@@ -539,6 +539,7 @@
539
539
  EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
540
540
  EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
541
541
  EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
542
+ EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
542
543
  EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
543
544
  EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
544
545
  EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
@@ -548,6 +549,7 @@
548
549
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
549
550
  EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
550
551
  EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
552
+ EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
551
553
  EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
552
554
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
553
555
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
@@ -562,6 +564,7 @@
562
564
  EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
563
565
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
564
566
  EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
567
+ EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
565
568
  EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
566
569
  document.documentElement.classList.forEach((cls) => {
567
570
  if (cls.startsWith("sd-cmp-"))
@@ -1434,10 +1437,11 @@
1434
1437
  if (this.click("#_evidon-decline-button")) {
1435
1438
  return true;
1436
1439
  }
1437
- hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
1438
- this.click("#_evidon-option-button");
1440
+ hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
1441
+ await this.waitForThenClick("#_evidon-option-button");
1439
1442
  await this.waitForElement("#evidon-prefdiag-overlay", 5e3);
1440
- this.click("#evidon-prefdiag-decline");
1443
+ await this.wait(500);
1444
+ await this.waitForThenClick("#evidon-prefdiag-decline");
1441
1445
  return true;
1442
1446
  }
1443
1447
  async optIn() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "Autoconsent",
4
- "version": "2024.5.2",
4
+ "version": "2024.5.28",
5
5
  "background": {
6
6
  "service_worker": "background.bundle.js"
7
7
  },