@duckduckgo/autoconsent 9.3.0 → 9.5.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 (46) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/addon-firefox/background.bundle.js +2 -2
  3. package/dist/addon-firefox/content.bundle.js +8 -5
  4. package/dist/addon-firefox/rules.json +414 -65
  5. package/dist/addon-mv3/background.bundle.js +2 -2
  6. package/dist/addon-mv3/content.bundle.js +8 -5
  7. package/dist/addon-mv3/rules.json +414 -65
  8. package/dist/autoconsent.cjs.js +8 -5
  9. package/dist/autoconsent.esm.js +8 -5
  10. package/dist/autoconsent.playwright.js +1 -1
  11. package/dist/autoconsent.unit.js +422 -70
  12. package/lib/cmps/base.ts +3 -1
  13. package/lib/cmps/consentmanager.ts +2 -0
  14. package/lib/cmps/sourcepoint-frame.ts +1 -1
  15. package/lib/cmps/uniconsent.ts +2 -2
  16. package/lib/eval-snippets.ts +2 -2
  17. package/package.json +3 -3
  18. package/rules/autoconsent/bahn-de.json +47 -0
  19. package/rules/autoconsent/complianz-categories.json +16 -7
  20. package/rules/autoconsent/complianz-notice.json +9 -3
  21. package/rules/autoconsent/complianz-opt-both.json +14 -0
  22. package/rules/autoconsent/complianz-optin.json +23 -10
  23. package/rules/autoconsent/cookie-law-info.json +4 -1
  24. package/rules/autoconsent/ecosia.json +28 -0
  25. package/rules/autoconsent/eu-cookie-compliance.json +10 -3
  26. package/rules/autoconsent/europa-eu.json +29 -0
  27. package/rules/autoconsent/fides.json +25 -0
  28. package/rules/autoconsent/instagram.json +31 -0
  29. package/rules/autoconsent/ketch.json +23 -20
  30. package/rules/autoconsent/osano.json +3 -4
  31. package/rules/autoconsent/paypal-us.json +3 -3
  32. package/rules/autoconsent/temu.json +28 -0
  33. package/rules/autoconsent/transcend.json +26 -0
  34. package/rules/autoconsent/xvideos.json +28 -0
  35. package/rules/rules.json +414 -65
  36. package/tests/bahn-de.spec.ts +5 -0
  37. package/tests/complianz-opt-both.spec.ts +5 -0
  38. package/tests/ecosia.spec.ts +5 -0
  39. package/tests/eu-cookie-compliance-banner.spec.ts +1 -1
  40. package/tests/europa-eu.spec.ts +6 -0
  41. package/tests/fides.spec.ts +5 -0
  42. package/tests/instagram.spec.ts +5 -0
  43. package/tests/ketch.spec.ts +1 -1
  44. package/tests/temu.spec.ts +5 -0
  45. package/tests/transcend.spec.ts +5 -0
  46. package/tests/xvideos.spec.ts +5 -0
@@ -487,6 +487,7 @@
487
487
  EVAL_ALMACMP_0: () => document.cookie.includes('"name":"Google","consent":false'),
488
488
  EVAL_AFFINITY_SERIF_COM_0: () => document.cookie.includes("serif_manage_cookies_viewed") && !document.cookie.includes("serif_allow_analytics"),
489
489
  EVAL_AXEPTIO_0: () => document.cookie.includes("axeptio_authorized_vendors=%2C%2C"),
490
+ EVAL_BAHN_TEST: () => utag.gdpr.getSelectedCategories().length === 1,
490
491
  EVAL_BING_0: () => document.cookie.includes("AL=0") && document.cookie.includes("AD=0") && document.cookie.includes("SM=0"),
491
492
  EVAL_BLOCKSY_0: () => document.cookie.includes("blocksy_cookies_consent_accepted=no"),
492
493
  EVAL_BORLABS_0: () => !JSON.parse(decodeURIComponent(document.cookie.split(";").find((c) => c.indexOf("borlabs-cookie") !== -1).split("=", 2)[1])).consents.statistics,
@@ -497,10 +498,9 @@
497
498
  EVAL_CLINCH_0: () => document.cookie.includes("ctc_rejected=1"),
498
499
  EVAL_COINBASE_0: () => JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length <= 1,
499
500
  EVAL_COMPLIANZ_BANNER_0: () => document.cookie.includes("cmplz_banner-status=dismissed"),
500
- EVAL_COMPLIANZ_CATEGORIES_0: () => !!document.cookie.match(/cmplz_[^=]+=deny/),
501
- EVAL_COMPLIANZ_OPTIN_0: () => !!document.cookie.match(/cookieconsent_preferences_disabled=[^;]+/),
502
501
  EVAL_COOKIE_LAW_INFO_0: () => CLI.disableAllCookies() || CLI.reject_close() || true,
503
502
  EVAL_COOKIE_LAW_INFO_1: () => document.cookie.indexOf("cookielawinfo-checkbox-non-necessary=yes") === -1,
503
+ EVAL_COOKIE_LAW_INFO_DETECT: () => !!window.CLI,
504
504
  EVAL_COOKIE_MANAGER_POPUP_0: () => JSON.parse(document.cookie.split(";").find((c) => c.trim().startsWith("CookieLevel")).split("=")[1]).social === false,
505
505
  EVAL_COOKIEALERT_0: () => document.querySelector("body").removeAttribute("style") || true,
506
506
  EVAL_COOKIEALERT_1: () => document.querySelector("body").removeAttribute("style") || true,
@@ -807,6 +807,8 @@
807
807
  results.push(this._runRulesSequentially(rule.then));
808
808
  } else if (rule.else) {
809
809
  results.push(this._runRulesSequentially(rule.else));
810
+ } else {
811
+ results.push(true);
810
812
  }
811
813
  }
812
814
  if (rule.any) {
@@ -1289,7 +1291,7 @@
1289
1291
  this.waitForElement(".pm-features", 2e3).then((success) => success ? 2 : -1)
1290
1292
  ]);
1291
1293
  if (path === 0) {
1292
- await this.wait(1e3);
1294
+ await this.wait(1500);
1293
1295
  return this.click(rejectSelector1);
1294
1296
  } else if (path === 1) {
1295
1297
  this.click(rejectSelector2);
@@ -1354,6 +1356,7 @@
1354
1356
  await this.waitForElement(".cmptblbox", 2e3);
1355
1357
  this.click(".cmptdchoice > a[aria-checked=true]", true);
1356
1358
  this.click(".cmpboxbtnyescustomchoices");
1359
+ this.hide("#cmpwrapper,#cmpbox", "display");
1357
1360
  return true;
1358
1361
  }
1359
1362
  async optIn() {
@@ -1536,10 +1539,10 @@
1536
1539
  return false;
1537
1540
  }
1538
1541
  async detectCmp() {
1539
- return this.elementExists(".unic .unic-box,.unic .unic-bar");
1542
+ return this.elementExists(".unic .unic-box,.unic .unic-bar,.unic .unic-modal");
1540
1543
  }
1541
1544
  async detectPopup() {
1542
- return this.elementVisible(".unic .unic-box,.unic .unic-bar", "any");
1545
+ return this.elementVisible(".unic .unic-box,.unic .unic-bar,.unic .unic-modal", "any");
1543
1546
  }
1544
1547
  async optOut() {
1545
1548
  await this.waitForElement(".unic button", 1e3);
@@ -2793,6 +2796,55 @@
2793
2796
  }
2794
2797
  ]
2795
2798
  },
2799
+ {
2800
+ name: "bahn-de",
2801
+ vendorUrl: "https://www.bahn.de/",
2802
+ cosmetic: false,
2803
+ runContext: {
2804
+ main: true,
2805
+ frame: false,
2806
+ urlPattern: "^https://(www\\.)?bahn\\.de/"
2807
+ },
2808
+ intermediate: false,
2809
+ prehideSelectors: [],
2810
+ detectCmp: [
2811
+ {
2812
+ exists: [
2813
+ "body > div:first-child",
2814
+ "#consent-layer"
2815
+ ]
2816
+ }
2817
+ ],
2818
+ detectPopup: [
2819
+ {
2820
+ visible: [
2821
+ "body > div:first-child",
2822
+ "#consent-layer"
2823
+ ]
2824
+ }
2825
+ ],
2826
+ optIn: [
2827
+ {
2828
+ waitForThenClick: [
2829
+ "body > div:first-child",
2830
+ "#consent-layer .js-accept-all-cookies"
2831
+ ]
2832
+ }
2833
+ ],
2834
+ optOut: [
2835
+ {
2836
+ waitForThenClick: [
2837
+ "body > div:first-child",
2838
+ "#consent-layer .js-accept-essential-cookies"
2839
+ ]
2840
+ }
2841
+ ],
2842
+ test: [
2843
+ {
2844
+ eval: "EVAL_BAHN_TEST"
2845
+ }
2846
+ ]
2847
+ },
2796
2848
  {
2797
2849
  name: "bbb.org",
2798
2850
  runContext: {
@@ -3460,26 +3512,42 @@
3460
3512
  ],
3461
3513
  optIn: [
3462
3514
  {
3463
- click: ".cc-accept-all",
3464
- optional: true
3465
- },
3466
- {
3467
- click: ".cc-allow",
3468
- optional: true
3469
- },
3470
- {
3471
- click: ".cc-dismiss",
3472
- optional: true
3515
+ any: [
3516
+ {
3517
+ click: ".cc-accept-all"
3518
+ },
3519
+ {
3520
+ click: ".cc-allow-all"
3521
+ },
3522
+ {
3523
+ click: ".cc-allow"
3524
+ },
3525
+ {
3526
+ click: ".cc-dismiss"
3527
+ }
3528
+ ]
3473
3529
  }
3474
3530
  ],
3475
3531
  optOut: [
3476
3532
  {
3477
- click: ".cc-dismiss"
3478
- }
3479
- ],
3480
- test: [
3481
- {
3482
- eval: "EVAL_COMPLIANZ_CATEGORIES_0"
3533
+ if: {
3534
+ exists: '.cc-type-categories[aria-describedby="cookieconsent:desc"] .cc-dismiss'
3535
+ },
3536
+ then: [
3537
+ {
3538
+ click: ".cc-dismiss"
3539
+ }
3540
+ ],
3541
+ else: [
3542
+ {
3543
+ click: ".cc-type-categories input[type=checkbox]:not([disabled]):checked",
3544
+ all: true,
3545
+ optional: true
3546
+ },
3547
+ {
3548
+ click: ".cc-save"
3549
+ }
3550
+ ]
3483
3551
  }
3484
3552
  ]
3485
3553
  },
@@ -3491,12 +3559,12 @@
3491
3559
  cosmetic: true,
3492
3560
  detectCmp: [
3493
3561
  {
3494
- exists: '.cc-type-info[aria-describedby="cookieconsent:desc"]'
3562
+ exists: '.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'
3495
3563
  }
3496
3564
  ],
3497
3565
  detectPopup: [
3498
3566
  {
3499
- visible: '.cc-type-info[aria-describedby="cookieconsent:desc"]'
3567
+ visible: '.cc-type-info[aria-describedby="cookieconsent:desc"] .cc-compliance .cc-btn'
3500
3568
  }
3501
3569
  ],
3502
3570
  optIn: [
@@ -3515,23 +3583,35 @@
3515
3583
  ],
3516
3584
  optOut: [
3517
3585
  {
3518
- hide: '[aria-describedby="cookieconsent:desc"]'
3586
+ if: {
3587
+ exists: ".cc-deny"
3588
+ },
3589
+ then: [
3590
+ {
3591
+ click: ".cc-deny"
3592
+ }
3593
+ ],
3594
+ else: [
3595
+ {
3596
+ hide: '[aria-describedby="cookieconsent:desc"]'
3597
+ }
3598
+ ]
3519
3599
  }
3520
3600
  ]
3521
3601
  },
3522
3602
  {
3523
- name: "Complianz optin",
3603
+ name: "Complianz opt-both",
3524
3604
  prehideSelectors: [
3525
- '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3605
+ '[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'
3526
3606
  ],
3527
3607
  detectCmp: [
3528
3608
  {
3529
- exists: '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3609
+ exists: '[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'
3530
3610
  }
3531
3611
  ],
3532
3612
  detectPopup: [
3533
3613
  {
3534
- visible: '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3614
+ visible: '[aria-describedby="cookieconsent:desc"] .cc-type-opt-both'
3535
3615
  }
3536
3616
  ],
3537
3617
  optIn: [
@@ -3550,24 +3630,78 @@
3550
3630
  ],
3551
3631
  optOut: [
3552
3632
  {
3553
- click: ".cc-settings"
3554
- },
3633
+ waitForThenClick: ".cc-deny"
3634
+ }
3635
+ ]
3636
+ },
3637
+ {
3638
+ name: "Complianz optin",
3639
+ prehideSelectors: [
3640
+ '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3641
+ ],
3642
+ detectCmp: [
3555
3643
  {
3556
- waitForVisible: '[aria-label="cookies preferences popup"]'
3557
- },
3644
+ exists: '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3645
+ }
3646
+ ],
3647
+ detectPopup: [
3558
3648
  {
3559
- click: '[aria-label="cookies preferences popup"] input[type=checkbox]:not([disabled]):checked',
3560
- all: true,
3561
- optional: true
3562
- },
3649
+ visible: '.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'
3650
+ }
3651
+ ],
3652
+ optIn: [
3563
3653
  {
3564
- click: '[aria-label="cookies preferences popup"] [aria-label="Accept Selected"], [aria-label="cookies preferences popup"] [aria-label="Save my choice"], .cc-btn-accept-selected, .cc-deny',
3565
- optional: true
3654
+ any: [
3655
+ {
3656
+ click: ".cc-accept-all"
3657
+ },
3658
+ {
3659
+ click: ".cc-allow"
3660
+ },
3661
+ {
3662
+ click: ".cc-dismiss"
3663
+ }
3664
+ ]
3566
3665
  }
3567
3666
  ],
3568
- test: [
3667
+ optOut: [
3569
3668
  {
3570
- eval: "EVAL_COMPLIANZ_OPTIN_0"
3669
+ if: {
3670
+ visible: ".cc-deny"
3671
+ },
3672
+ then: [
3673
+ {
3674
+ click: ".cc-deny"
3675
+ }
3676
+ ],
3677
+ else: [
3678
+ {
3679
+ if: {
3680
+ visible: ".cc-settings"
3681
+ },
3682
+ then: [
3683
+ {
3684
+ waitForThenClick: ".cc-settings"
3685
+ },
3686
+ {
3687
+ waitForVisible: ".cc-settings-view"
3688
+ },
3689
+ {
3690
+ click: ".cc-settings-view input[type=checkbox]:not([disabled]):checked",
3691
+ all: true,
3692
+ optional: true
3693
+ },
3694
+ {
3695
+ click: ".cc-settings-view .cc-btn-accept-selected"
3696
+ }
3697
+ ],
3698
+ else: [
3699
+ {
3700
+ click: ".cc-dismiss"
3701
+ }
3702
+ ]
3703
+ }
3704
+ ]
3571
3705
  }
3572
3706
  ]
3573
3707
  },
@@ -3579,6 +3713,9 @@
3579
3713
  detectCmp: [
3580
3714
  {
3581
3715
  exists: "#cookie-law-info-bar"
3716
+ },
3717
+ {
3718
+ eval: "EVAL_COOKIE_LAW_INFO_DETECT"
3582
3719
  }
3583
3720
  ],
3584
3721
  detectPopup: [
@@ -4289,6 +4426,36 @@
4289
4426
  }
4290
4427
  ]
4291
4428
  },
4429
+ {
4430
+ name: "ecosia",
4431
+ vendorUrl: "https://www.ecosia.org/",
4432
+ runContext: {
4433
+ urlPattern: "^https://www\\.ecosia\\.org/"
4434
+ },
4435
+ prehideSelectors: [
4436
+ ".cookie-wrapper"
4437
+ ],
4438
+ detectCmp: [
4439
+ {
4440
+ exists: ".cookie-wrapper > .cookie-notice"
4441
+ }
4442
+ ],
4443
+ detectPopup: [
4444
+ {
4445
+ visible: ".cookie-wrapper > .cookie-notice"
4446
+ }
4447
+ ],
4448
+ optIn: [
4449
+ {
4450
+ waitForThenClick: "[data-test-id=cookie-notice-accept]"
4451
+ }
4452
+ ],
4453
+ optOut: [
4454
+ {
4455
+ waitForThenClick: "[data-test-id=cookie-notice-reject]"
4456
+ }
4457
+ ]
4458
+ },
4292
4459
  {
4293
4460
  name: "etsy",
4294
4461
  prehideSelectors: [
@@ -4333,12 +4500,12 @@
4333
4500
  name: "eu-cookie-compliance-banner",
4334
4501
  detectCmp: [
4335
4502
  {
4336
- exists: ".eu-cookie-compliance-banner-info"
4503
+ exists: "body.eu-cookie-compliance-popup-open"
4337
4504
  }
4338
4505
  ],
4339
4506
  detectPopup: [
4340
4507
  {
4341
- exists: ".eu-cookie-compliance-popup-open"
4508
+ exists: "body.eu-cookie-compliance-popup-open"
4342
4509
  }
4343
4510
  ],
4344
4511
  optIn: [
@@ -4348,8 +4515,14 @@
4348
4515
  ],
4349
4516
  optOut: [
4350
4517
  {
4351
- click: ".decline-button,.eu-cookie-compliance-save-preferences-button",
4352
- optional: true
4518
+ if: {
4519
+ visible: ".decline-button,.eu-cookie-compliance-save-preferences-button"
4520
+ },
4521
+ then: [
4522
+ {
4523
+ click: ".decline-button,.eu-cookie-compliance-save-preferences-button"
4524
+ }
4525
+ ]
4353
4526
  },
4354
4527
  {
4355
4528
  hide: ".eu-cookie-compliance-banner-info, #sliding-popup"
@@ -4396,6 +4569,37 @@
4396
4569
  }
4397
4570
  ]
4398
4571
  },
4572
+ {
4573
+ name: "europa-eu",
4574
+ vendorUrl: "https://ec.europa.eu/",
4575
+ runContext: {
4576
+ urlPattern: "^https://[^/]*europa\\.eu/"
4577
+ },
4578
+ prehideSelectors: [
4579
+ "#cookie-consent-banner"
4580
+ ],
4581
+ detectCmp: [
4582
+ {
4583
+ exists: ".cck-container"
4584
+ }
4585
+ ],
4586
+ detectPopup: [
4587
+ {
4588
+ visible: ".cck-container"
4589
+ }
4590
+ ],
4591
+ optIn: [
4592
+ {
4593
+ waitForThenClick: '.cck-actions-button[href="#accept"]'
4594
+ }
4595
+ ],
4596
+ optOut: [
4597
+ {
4598
+ waitForThenClick: '.cck-actions-button[href="#refuse"]',
4599
+ hide: ".cck-container"
4600
+ }
4601
+ ]
4602
+ },
4399
4603
  {
4400
4604
  name: "EZoic",
4401
4605
  prehideSelectors: [
@@ -4482,6 +4686,33 @@
4482
4686
  }
4483
4687
  ]
4484
4688
  },
4689
+ {
4690
+ name: "fides",
4691
+ vendorUrl: "https://github.com/ethyca/fides",
4692
+ prehideSelectors: [
4693
+ "#fides-overlay"
4694
+ ],
4695
+ detectCmp: [
4696
+ {
4697
+ exists: "#fides-overlay #fides-banner"
4698
+ }
4699
+ ],
4700
+ detectPopup: [
4701
+ {
4702
+ visible: "#fides-overlay #fides-banner"
4703
+ }
4704
+ ],
4705
+ optIn: [
4706
+ {
4707
+ waitForThenClick: '#fides-banner [data-testid="Accept all-btn"]'
4708
+ }
4709
+ ],
4710
+ optOut: [
4711
+ {
4712
+ waitForThenClick: '#fides-banner [data-testid="Reject all-btn"]'
4713
+ }
4714
+ ]
4715
+ },
4485
4716
  {
4486
4717
  name: "funding-choices",
4487
4718
  prehideSelectors: [
@@ -4891,6 +5122,39 @@
4891
5122
  }
4892
5123
  ]
4893
5124
  },
5125
+ {
5126
+ name: "instagram",
5127
+ vendorUrl: "https://instagram.com",
5128
+ runContext: {
5129
+ urlPattern: "^https://www\\.instagram\\.com/"
5130
+ },
5131
+ prehideSelectors: [
5132
+ ".x78zum5.xdt5ytf.xg6iff7.x1n2onr6"
5133
+ ],
5134
+ detectCmp: [
5135
+ {
5136
+ exists: ".x1qjc9v5.x9f619.x78zum5.xdt5ytf.x1iyjqo2.xl56j7k"
5137
+ }
5138
+ ],
5139
+ detectPopup: [
5140
+ {
5141
+ visible: ".x1qjc9v5.x9f619.x78zum5.xdt5ytf.x1iyjqo2.xl56j7k"
5142
+ }
5143
+ ],
5144
+ optIn: [
5145
+ {
5146
+ waitForThenClick: "._a9--._a9_0"
5147
+ }
5148
+ ],
5149
+ optOut: [
5150
+ {
5151
+ waitForThenClick: "._a9--._a9_1"
5152
+ },
5153
+ {
5154
+ wait: 2e3
5155
+ }
5156
+ ]
5157
+ },
4894
5158
  {
4895
5159
  name: "ionos.de",
4896
5160
  prehideSelectors: [
@@ -5136,6 +5400,7 @@
5136
5400
  },
5137
5401
  {
5138
5402
  name: "ketch",
5403
+ vendorUrl: "https://www.ketch.com",
5139
5404
  runContext: {
5140
5405
  frame: false,
5141
5406
  main: true
@@ -5161,7 +5426,7 @@
5161
5426
  },
5162
5427
  then: [
5163
5428
  {
5164
- waitForThenClick: "#lanyard_root div[class^='buttons'] > :nth-child(2)"
5429
+ waitForThenClick: "#lanyard_root div[class*=buttons] > :nth-child(2)"
5165
5430
  },
5166
5431
  {
5167
5432
  click: "#lanyard_root button[class='confirmButton']"
@@ -5169,43 +5434,42 @@
5169
5434
  ],
5170
5435
  else: [
5171
5436
  {
5172
- waitForThenClick: "#lanyard_root div[class^='buttons'] > :nth-child(2)"
5437
+ waitForThenClick: "#lanyard_root div[class*=buttons] > :nth-child(2)"
5173
5438
  }
5174
5439
  ]
5175
5440
  }
5176
5441
  ],
5177
5442
  optOut: [
5178
5443
  {
5179
- click: "#lanyard_root button[class^='link']",
5444
+ if: {
5445
+ exists: "#lanyard_root [aria-describedby=banner-description]"
5446
+ },
5447
+ then: [
5448
+ {
5449
+ waitForThenClick: "#lanyard_root div[class*=buttons] > button[class*=secondaryButton]",
5450
+ comment: "can be either settings or reject button"
5451
+ }
5452
+ ]
5453
+ },
5454
+ {
5455
+ waitFor: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]",
5456
+ timeout: 1e3,
5180
5457
  optional: true
5181
5458
  },
5182
5459
  {
5183
5460
  if: {
5184
- exists: "#lanyard_root button[class*='confirmButton']"
5461
+ exists: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]"
5185
5462
  },
5186
5463
  then: [
5187
5464
  {
5188
- waitForThenClick: "#lanyard_root button[class*='rejectButton']"
5465
+ waitForThenClick: "#lanyard_root button[class*=rejectButton]"
5189
5466
  },
5190
5467
  {
5191
- click: "#lanyard_root button[class*='confirmButton']"
5192
- }
5193
- ],
5194
- else: [
5195
- {
5196
- click: "#lanyard_root div[class^='buttons'] > :nth-child(1)",
5197
- optional: true
5198
- },
5199
- {
5200
- waitForThenClick: "#lanyard_root input:checked"
5201
- },
5202
- {
5203
- click: "#consentsTab > div:nth-child(2) > div > div[class^='actions'] > button:nth-child(1)"
5468
+ click: "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1)"
5204
5469
  }
5205
5470
  ]
5206
5471
  }
5207
- ],
5208
- test: []
5472
+ ]
5209
5473
  },
5210
5474
  {
5211
5475
  name: "kleinanzeigen-de",
@@ -5903,9 +6167,8 @@
5903
6167
  {
5904
6168
  name: "osano",
5905
6169
  prehideSelectors: [
5906
- ".osano-cm-window"
6170
+ ".osano-cm-window,.osano-cm-dialog"
5907
6171
  ],
5908
- cosmetic: true,
5909
6172
  detectCmp: [
5910
6173
  {
5911
6174
  exists: ".osano-cm-window"
@@ -5924,7 +6187,7 @@
5924
6187
  ],
5925
6188
  optOut: [
5926
6189
  {
5927
- hide: ".osano-cm-window"
6190
+ waitForThenClick: ".osano-cm-denyAll"
5928
6191
  }
5929
6192
  ]
5930
6193
  },
@@ -5961,12 +6224,12 @@
5961
6224
  ],
5962
6225
  detectCmp: [
5963
6226
  {
5964
- exists: "#ccpaCookieBanner, .privacy-modal-content"
6227
+ exists: "#ccpaCookieBanner, .privacy-sheet-content"
5965
6228
  }
5966
6229
  ],
5967
6230
  detectPopup: [
5968
6231
  {
5969
- exists: "#ccpaCookieBanner, .privacy-modal-content"
6232
+ exists: "#ccpaCookieBanner, .privacy-sheet-content"
5970
6233
  }
5971
6234
  ],
5972
6235
  optIn: [
@@ -5986,7 +6249,7 @@
5986
6249
  ],
5987
6250
  else: [
5988
6251
  {
5989
- waitForVisible: ".privacy-modal-content #formContent"
6252
+ waitForVisible: ".privacy-sheet-content #formContent"
5990
6253
  },
5991
6254
  {
5992
6255
  click: "#formContent .cookiepref-11m2iee-checkbox_base input:checked",
@@ -6798,6 +7061,36 @@
6798
7061
  }
6799
7062
  ]
6800
7063
  },
7064
+ {
7065
+ name: "temu",
7066
+ vendorUrl: "https://temu.com",
7067
+ runContext: {
7068
+ urlPattern: "^https://[^/]*temu\\.com/"
7069
+ },
7070
+ prehideSelectors: [
7071
+ "._2d-8vq-W,._1UdBUwni"
7072
+ ],
7073
+ detectCmp: [
7074
+ {
7075
+ exists: "._3YCsmIaS"
7076
+ }
7077
+ ],
7078
+ detectPopup: [
7079
+ {
7080
+ visible: "._3YCsmIaS"
7081
+ }
7082
+ ],
7083
+ optIn: [
7084
+ {
7085
+ waitForThenClick: "._3fKiu5wx._3zN5SumS._3tAK973O.IYOfhWEs.VGNGF1pA"
7086
+ }
7087
+ ],
7088
+ optOut: [
7089
+ {
7090
+ waitForThenClick: "._3fKiu5wx._1_XToJBF._3tAK973O.IYOfhWEs.VGNGF1pA"
7091
+ }
7092
+ ]
7093
+ },
6801
7094
  {
6802
7095
  name: "Termly",
6803
7096
  prehideSelectors: [
@@ -7107,6 +7400,37 @@
7107
7400
  }
7108
7401
  ]
7109
7402
  },
7403
+ {
7404
+ name: "transcend",
7405
+ vendorUrl: "https://unknown",
7406
+ cosmetic: true,
7407
+ prehideSelectors: [
7408
+ "#transcend-consent-manager"
7409
+ ],
7410
+ detectCmp: [
7411
+ {
7412
+ exists: "#transcend-consent-manager"
7413
+ }
7414
+ ],
7415
+ detectPopup: [
7416
+ {
7417
+ visible: "#transcend-consent-manager"
7418
+ }
7419
+ ],
7420
+ optIn: [
7421
+ {
7422
+ waitForThenClick: [
7423
+ "#transcend-consent-manager",
7424
+ "#consentManagerMainDialog .inner-container button"
7425
+ ]
7426
+ }
7427
+ ],
7428
+ optOut: [
7429
+ {
7430
+ hide: "#transcend-consent-manager"
7431
+ }
7432
+ ]
7433
+ },
7110
7434
  {
7111
7435
  name: "transip-nl",
7112
7436
  runContext: {
@@ -7931,6 +8255,34 @@
7931
8255
  }
7932
8256
  ]
7933
8257
  },
8258
+ {
8259
+ name: "xvideos",
8260
+ vendorUrl: "https://xvideos.com",
8261
+ runContext: {
8262
+ urlPattern: "^https://[^/]*xvideos\\.com/"
8263
+ },
8264
+ prehideSelectors: [],
8265
+ detectCmp: [
8266
+ {
8267
+ exists: ".disclaimer-opened #disclaimer-cookies"
8268
+ }
8269
+ ],
8270
+ detectPopup: [
8271
+ {
8272
+ visible: ".disclaimer-opened #disclaimer-cookies"
8273
+ }
8274
+ ],
8275
+ optIn: [
8276
+ {
8277
+ waitForThenClick: "#disclaimer-accept_cookies"
8278
+ }
8279
+ ],
8280
+ optOut: [
8281
+ {
8282
+ waitForThenClick: "#disclaimer-reject_cookies"
8283
+ }
8284
+ ]
8285
+ },
7934
8286
  {
7935
8287
  name: "Yahoo",
7936
8288
  runContext: {