@duckduckgo/autoconsent 9.5.0 → 9.7.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 (74) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/addon-firefox/background.bundle.js +7 -0
  3. package/dist/addon-firefox/content.bundle.js +20 -6
  4. package/dist/addon-firefox/manifest.json +1 -1
  5. package/dist/addon-firefox/rules.json +948 -13
  6. package/dist/addon-mv3/background.bundle.js +7 -0
  7. package/dist/addon-mv3/content.bundle.js +20 -6
  8. package/dist/addon-mv3/manifest.json +1 -1
  9. package/dist/addon-mv3/rules.json +948 -13
  10. package/dist/autoconsent.cjs.js +20 -6
  11. package/dist/autoconsent.esm.js +20 -6
  12. package/dist/autoconsent.playwright.js +1 -1
  13. package/dist/autoconsent.unit.js +966 -17
  14. package/lib/eval-snippets.ts +7 -0
  15. package/lib/web.ts +13 -10
  16. package/package.json +1 -1
  17. package/rules/autoconsent/abconcerts.be.json +39 -0
  18. package/rules/autoconsent/aliexpress.json +39 -0
  19. package/rules/autoconsent/arbeitsagentur.json +36 -0
  20. package/rules/autoconsent/asus.json +43 -0
  21. package/rules/autoconsent/cookieacceptbar.json +26 -0
  22. package/rules/autoconsent/cookieconsent2.json +32 -0
  23. package/rules/autoconsent/cookieconsent3.json +29 -0
  24. package/rules/autoconsent/dndbeyond.json +31 -0
  25. package/rules/autoconsent/hashicorp.json +31 -0
  26. package/rules/autoconsent/hu-manity.json +28 -0
  27. package/rules/autoconsent/jdsports.json +39 -0
  28. package/rules/autoconsent/lineagrafica.json +26 -0
  29. package/rules/autoconsent/livejasmin.json +39 -0
  30. package/rules/autoconsent/om.json +40 -0
  31. package/rules/autoconsent/openli.json +26 -0
  32. package/rules/autoconsent/ourworldindata.json +28 -0
  33. package/rules/autoconsent/pabcogypsum.json +25 -0
  34. package/rules/autoconsent/productz.com.json +28 -0
  35. package/rules/autoconsent/reddit.json +19 -5
  36. package/rules/autoconsent/setapp.com.json +29 -0
  37. package/rules/autoconsent/svt.se.json +31 -0
  38. package/rules/autoconsent/taunton.json +36 -0
  39. package/rules/autoconsent/tealium.json +4 -4
  40. package/rules/autoconsent/termsfeed.json +26 -0
  41. package/rules/autoconsent/termsfeed3.json +27 -0
  42. package/rules/autoconsent/twitch-mobile.json +29 -0
  43. package/rules/autoconsent/webflow.json +34 -0
  44. package/rules/autoconsent/wolframalpha.json +29 -0
  45. package/rules/autoconsent/xe.com.json +39 -0
  46. package/rules/create-rule.mjs +2 -2
  47. package/rules/rules.json +948 -13
  48. package/tests/abconcerts.be.spec.ts +7 -0
  49. package/tests/aliexpress.spec.ts +6 -0
  50. package/tests/arbeitsagentur.spec.ts +5 -0
  51. package/tests/asus.spec.ts +6 -0
  52. package/tests/cookieacceptbar.spec.ts +6 -0
  53. package/tests/cookieconsent2.spec.ts +7 -0
  54. package/tests/cookieconsent3.spec.ts +5 -0
  55. package/tests/dndbeyond.spec.ts +5 -0
  56. package/tests/hashicorp.spec.ts +5 -0
  57. package/tests/hu-manity.spec.ts +7 -0
  58. package/tests/jdsports.spec.ts +5 -0
  59. package/tests/lineagrafica.spec.ts +5 -0
  60. package/tests/livejasmin.spec.ts +5 -0
  61. package/tests/om.spec.ts +9 -0
  62. package/tests/openli.spec.ts +6 -0
  63. package/tests/ourworldindata.spec.ts +5 -0
  64. package/tests/pabcogypsum.spec.ts +5 -0
  65. package/tests/productz.com.spec.ts +5 -0
  66. package/tests/setapp.com.spec.ts +5 -0
  67. package/tests/svt.se.spec.ts +5 -0
  68. package/tests/taunton.spec.ts +11 -0
  69. package/tests/termsfeed.spec.ts +6 -0
  70. package/tests/termsfeed3.spec.ts +7 -0
  71. package/tests/twitch-mobile.spec.ts +5 -0
  72. package/tests/webflow.spec.ts +7 -0
  73. package/tests/wolframalpha.spec.ts +5 -0
  74. package/tests/xe.com.spec.ts +5 -0
@@ -486,6 +486,7 @@
486
486
  EVAL_ADROLL_0: () => !document.cookie.includes("__adroll_fpc"),
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
+ EVAL_ARBEITSAGENTUR_TEST: () => document.cookie.includes("cookie_consent=denied"),
489
490
  EVAL_AXEPTIO_0: () => document.cookie.includes("axeptio_authorized_vendors=%2C%2C"),
490
491
  EVAL_BAHN_TEST: () => utag.gdpr.getSelectedCategories().length === 1,
491
492
  EVAL_BING_0: () => document.cookie.includes("AL=0") && document.cookie.includes("AD=0") && document.cookie.includes("SM=0"),
@@ -496,6 +497,8 @@
496
497
  EVAL_CC_BANNER2_0: () => !!document.cookie.match(/sncc=[^;]+D%3Dtrue/),
497
498
  EVAL_CLICKIO_0: () => document.cookie.includes("__lxG__consent__v2_daisybit="),
498
499
  EVAL_CLINCH_0: () => document.cookie.includes("ctc_rejected=1"),
500
+ EVAL_COOKIECONSENT2_TEST: () => document.cookie.includes("cc_cookie="),
501
+ EVAL_COOKIECONSENT3_TEST: () => document.cookie.includes("cc_cookie="),
499
502
  EVAL_COINBASE_0: () => JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length <= 1,
500
503
  EVAL_COMPLIANZ_BANNER_0: () => document.cookie.includes("cmplz_banner-status=dismissed"),
501
504
  EVAL_COOKIE_LAW_INFO_0: () => CLI.disableAllCookies() || CLI.reject_close() || true,
@@ -512,6 +515,7 @@
512
515
  EVAL_COOKIEINFORMATION_2: () => document.cookie.includes("CookieInformationConsent="),
513
516
  EVAL_COOKIEYES_0: () => document.cookie.includes("advertisement:no"),
514
517
  EVAL_DAILYMOTION_0: () => !!document.cookie.match("dm-euconsent-v2"),
518
+ EVAL_DNDBEYOND_TEST: () => document.cookie.includes("cookie-consent=denied"),
515
519
  EVAL_DSGVO_0: () => !document.cookie.includes("sp_dsgvo_cookie_settings"),
516
520
  EVAL_DUNELM_0: () => document.cookie.includes("cc_functional=0") && document.cookie.includes("cc_targeting=0"),
517
521
  EVAL_ETSY_0: () => document.querySelectorAll(".gdpr-overlay-body input").forEach((toggle) => {
@@ -549,10 +553,12 @@
549
553
  EVAL_SIRDATA_0: () => document.cookie.includes("euconsent-v2"),
550
554
  EVAL_SNIGEL_0: () => !!document.cookie.match("snconsent"),
551
555
  EVAL_STEAMPOWERED_0: () => JSON.parse(decodeURIComponent(document.cookie.split(";").find((s) => s.trim().startsWith("cookieSettings")).split("=")[1])).preference_state === 2,
556
+ EVAL_SVT_TEST: () => document.cookie.includes('cookie-consent-1={"optedIn":true,"functionality":false,"statistics":false}'),
552
557
  EVAL_TAKEALOT_0: () => document.body.classList.remove("freeze") || (document.body.style = "") || true,
553
558
  EVAL_TARTEAUCITRON_0: () => tarteaucitron.userInterface.respondAll(false) || true,
554
559
  EVAL_TARTEAUCITRON_1: () => tarteaucitron.userInterface.respondAll(true) || true,
555
560
  EVAL_TARTEAUCITRON_2: () => document.cookie.match(/tarteaucitron=[^;]*/)[0].includes("false"),
561
+ EVAL_TAUNTON_TEST: () => document.cookie.includes("taunton_user_consent_submitted=true"),
556
562
  EVAL_TEALIUM_0: () => typeof window.utag !== "undefined" && typeof utag.gdpr === "object",
557
563
  EVAL_TEALIUM_1: () => utag.gdpr.setConsentValue(false) || true,
558
564
  EVAL_TEALIUM_DONOTSELL: () => utag.gdpr.dns?.setDnsState(false) || true,
@@ -577,6 +583,7 @@
577
583
  EVAL_WAITROSE_0: () => Array.from(document.querySelectorAll("label[id$=cookies-deny-label]")).forEach((e) => e.click()) || true,
578
584
  EVAL_WAITROSE_1: () => document.cookie.includes("wtr_cookies_advertising=0") && document.cookie.includes("wtr_cookies_analytics=0"),
579
585
  EVAL_WP_COOKIE_NOTICE_0: () => document.cookie.includes("wpl_viewed_cookie=no"),
586
+ EVAL_XE_TEST: () => document.cookie.includes("xeConsentState={%22performance%22:false%2C%22marketing%22:false%2C%22compliance%22:false}"),
580
587
  EVAL_XING_0: () => document.cookie.includes("userConsent=%7B%22marketing%22%3Afalse"),
581
588
  EVAL_YOUTUBE_DESKTOP_0: () => !!document.cookie.match(/SOCS=CAE/),
582
589
  EVAL_YOUTUBE_MOBILE_0: () => !!document.cookie.match(/SOCS=CAE/)
@@ -2070,8 +2077,14 @@
2070
2077
  }
2071
2078
  return foundCMPs;
2072
2079
  }
2080
+ /**
2081
+ * Detect if a CMP has a popup open. Fullfils with the CMP if a popup is open, otherwise rejects.
2082
+ */
2073
2083
  async detectPopup(cmp) {
2074
- const isOpen = await this.waitForPopup(cmp);
2084
+ const isOpen = await this.waitForPopup(cmp).catch((error) => {
2085
+ this.config.logs.errors && console.warn(`error waiting for a popup for ${cmp.name}`, error);
2086
+ return false;
2087
+ });
2075
2088
  if (isOpen) {
2076
2089
  this.updateState({ detectedPopups: this.state.detectedPopups.concat([cmp.name]) });
2077
2090
  this.sendContentMessage({
@@ -2079,15 +2092,16 @@
2079
2092
  cmp: cmp.name,
2080
2093
  url: location.href
2081
2094
  });
2095
+ return cmp;
2082
2096
  }
2083
- return cmp;
2097
+ throw new Error("Popup is not shown");
2084
2098
  }
2099
+ /**
2100
+ * Detect if any of the CMPs has a popup open. Returns a list of CMPs with open popups.
2101
+ */
2085
2102
  async detectPopups(cmps, onFirstPopupAppears) {
2086
2103
  const tasks = cmps.map(
2087
- (cmp) => this.detectPopup(cmp).catch((error) => {
2088
- this.config.logs.errors && console.warn(`error waiting for a popup for ${cmp.name}`, error);
2089
- throw error;
2090
- })
2104
+ (cmp) => this.detectPopup(cmp)
2091
2105
  );
2092
2106
  await Promise.any(tasks).then((cmp) => {
2093
2107
  onFirstPopupAppears(cmp);
@@ -2345,6 +2359,49 @@
2345
2359
  }
2346
2360
  ]
2347
2361
  },
2362
+ {
2363
+ name: "abconcerts.be",
2364
+ vendorUrl: "https://unknown",
2365
+ intermediate: false,
2366
+ prehideSelectors: [
2367
+ "dialog.cookie-consent"
2368
+ ],
2369
+ detectCmp: [
2370
+ {
2371
+ exists: "dialog.cookie-consent form.cookie-consent__form"
2372
+ }
2373
+ ],
2374
+ detectPopup: [
2375
+ {
2376
+ visible: "dialog.cookie-consent form.cookie-consent__form"
2377
+ }
2378
+ ],
2379
+ optIn: [
2380
+ {
2381
+ waitForThenClick: "dialog.cookie-consent form.cookie-consent__form button[value=yes]"
2382
+ }
2383
+ ],
2384
+ optOut: [
2385
+ {
2386
+ if: {
2387
+ exists: "dialog.cookie-consent form.cookie-consent__form button[value=no]"
2388
+ },
2389
+ then: [
2390
+ {
2391
+ click: "dialog.cookie-consent form.cookie-consent__form button[value=no]"
2392
+ }
2393
+ ],
2394
+ else: [
2395
+ {
2396
+ click: "dialog.cookie-consent form.cookie-consent__form button.cookie-consent__options-toggle"
2397
+ },
2398
+ {
2399
+ waitForThenClick: 'dialog.cookie-consent form.cookie-consent__form button[value="save_options"]'
2400
+ }
2401
+ ]
2402
+ }
2403
+ ]
2404
+ },
2348
2405
  {
2349
2406
  name: "activobank.pt",
2350
2407
  runContext: {
@@ -2473,6 +2530,47 @@
2473
2530
  }
2474
2531
  ]
2475
2532
  },
2533
+ {
2534
+ name: "aliexpress",
2535
+ vendorUrl: "https://aliexpress.com/",
2536
+ runContext: {
2537
+ urlPattern: "^https://.*\\.aliexpress\\.com/"
2538
+ },
2539
+ prehideSelectors: [
2540
+ "#gdpr-new-container"
2541
+ ],
2542
+ detectCmp: [
2543
+ {
2544
+ exists: "#gdpr-new-container"
2545
+ }
2546
+ ],
2547
+ detectPopup: [
2548
+ {
2549
+ visible: "#gdpr-new-container"
2550
+ }
2551
+ ],
2552
+ optIn: [
2553
+ {
2554
+ waitForThenClick: "#gdpr-new-container .btn-accept"
2555
+ }
2556
+ ],
2557
+ optOut: [
2558
+ {
2559
+ waitForThenClick: "#gdpr-new-container .btn-more"
2560
+ },
2561
+ {
2562
+ waitFor: "#gdpr-new-container .gdpr-dialog-switcher"
2563
+ },
2564
+ {
2565
+ click: "#gdpr-new-container .switcher-on",
2566
+ all: true,
2567
+ optional: true
2568
+ },
2569
+ {
2570
+ click: "#gdpr-new-container .btn-save"
2571
+ }
2572
+ ]
2573
+ },
2476
2574
  {
2477
2575
  name: "almacmp",
2478
2576
  prehideSelectors: [
@@ -2602,6 +2700,89 @@
2602
2700
  }
2603
2701
  ]
2604
2702
  },
2703
+ {
2704
+ name: "arbeitsagentur",
2705
+ vendorUrl: "https://www.arbeitsagentur.de/",
2706
+ prehideSelectors: [
2707
+ ".modal-open bahf-cookie-disclaimer-dpl3"
2708
+ ],
2709
+ detectCmp: [
2710
+ {
2711
+ exists: "bahf-cookie-disclaimer-dpl3"
2712
+ }
2713
+ ],
2714
+ detectPopup: [
2715
+ {
2716
+ visible: "bahf-cookie-disclaimer-dpl3"
2717
+ }
2718
+ ],
2719
+ optIn: [
2720
+ {
2721
+ waitForThenClick: [
2722
+ "bahf-cookie-disclaimer-dpl3",
2723
+ "bahf-cd-modal-dpl3 .ba-btn-primary"
2724
+ ]
2725
+ }
2726
+ ],
2727
+ optOut: [
2728
+ {
2729
+ waitForThenClick: [
2730
+ "bahf-cookie-disclaimer-dpl3",
2731
+ "bahf-cd-modal-dpl3 .ba-btn-contrast"
2732
+ ]
2733
+ }
2734
+ ],
2735
+ test: [
2736
+ {
2737
+ eval: "EVAL_ARBEITSAGENTUR_TEST"
2738
+ }
2739
+ ]
2740
+ },
2741
+ {
2742
+ name: "asus",
2743
+ vendorUrl: "https://www.asus.com/",
2744
+ runContext: {
2745
+ urlPattern: "^https://www\\.asus\\.com/"
2746
+ },
2747
+ prehideSelectors: [
2748
+ "#cookie-policy-info,#cookie-policy-info-bg"
2749
+ ],
2750
+ detectCmp: [
2751
+ {
2752
+ exists: "#cookie-policy-info"
2753
+ }
2754
+ ],
2755
+ detectPopup: [
2756
+ {
2757
+ visible: "#cookie-policy-info"
2758
+ }
2759
+ ],
2760
+ optIn: [
2761
+ {
2762
+ waitForThenClick: '#cookie-policy-info [data-agree="Accept Cookies"]'
2763
+ }
2764
+ ],
2765
+ optOut: [
2766
+ {
2767
+ if: {
2768
+ exists: "#cookie-policy-info .btn-reject"
2769
+ },
2770
+ then: [
2771
+ {
2772
+ waitForThenClick: "#cookie-policy-info .btn-reject"
2773
+ }
2774
+ ],
2775
+ else: [
2776
+ {
2777
+ waitForThenClick: "#cookie-policy-info .btn-setting"
2778
+ },
2779
+ {
2780
+ waitForThenClick: '#cookie-policy-lightbox-wrapper [data-agree="Save Settings"]'
2781
+ }
2782
+ ]
2783
+ }
2784
+ ]
2785
+ },
2605
2786
  {
2606
2787
  name: "athlinks-com",
2607
2788
  runContext: {
@@ -3856,6 +4037,34 @@
3856
4037
  }
3857
4038
  ]
3858
4039
  },
4040
+ {
4041
+ name: "cookieacceptbar",
4042
+ vendorUrl: "https://unknown",
4043
+ cosmetic: true,
4044
+ prehideSelectors: [
4045
+ "#cookieAcceptBar.cookieAcceptBar"
4046
+ ],
4047
+ detectCmp: [
4048
+ {
4049
+ exists: "#cookieAcceptBar.cookieAcceptBar"
4050
+ }
4051
+ ],
4052
+ detectPopup: [
4053
+ {
4054
+ visible: "#cookieAcceptBar.cookieAcceptBar"
4055
+ }
4056
+ ],
4057
+ optIn: [
4058
+ {
4059
+ waitForThenClick: "#cookieAcceptBarConfirm"
4060
+ }
4061
+ ],
4062
+ optOut: [
4063
+ {
4064
+ hide: "#cookieAcceptBar.cookieAcceptBar"
4065
+ }
4066
+ ]
4067
+ },
3859
4068
  {
3860
4069
  name: "cookiealert",
3861
4070
  intermediate: false,
@@ -3904,6 +4113,75 @@
3904
4113
  }
3905
4114
  ]
3906
4115
  },
4116
+ {
4117
+ name: "cookieconsent2",
4118
+ vendorUrl: "https://www.github.com/orestbida/cookieconsent",
4119
+ comment: "supports v2.x.x of the library",
4120
+ prehideSelectors: [
4121
+ "#cc--main"
4122
+ ],
4123
+ detectCmp: [
4124
+ {
4125
+ exists: "#cc--main"
4126
+ }
4127
+ ],
4128
+ detectPopup: [
4129
+ {
4130
+ visible: "#cm"
4131
+ },
4132
+ {
4133
+ exists: "#s-all-bn"
4134
+ }
4135
+ ],
4136
+ optIn: [
4137
+ {
4138
+ waitForThenClick: "#s-all-bn"
4139
+ }
4140
+ ],
4141
+ optOut: [
4142
+ {
4143
+ waitForThenClick: "#s-rall-bn"
4144
+ }
4145
+ ],
4146
+ test: [
4147
+ {
4148
+ eval: "EVAL_COOKIECONSENT2_TEST"
4149
+ }
4150
+ ]
4151
+ },
4152
+ {
4153
+ name: "cookieconsent3",
4154
+ vendorUrl: "https://www.github.com/orestbida/cookieconsent",
4155
+ comment: "supports v3.x.x of the library",
4156
+ prehideSelectors: [
4157
+ "#cc-main"
4158
+ ],
4159
+ detectCmp: [
4160
+ {
4161
+ exists: "#cc-main"
4162
+ }
4163
+ ],
4164
+ detectPopup: [
4165
+ {
4166
+ visible: "#cc-main .cm-wrapper"
4167
+ }
4168
+ ],
4169
+ optIn: [
4170
+ {
4171
+ waitForThenClick: ".cm__btn[data-role=all]"
4172
+ }
4173
+ ],
4174
+ optOut: [
4175
+ {
4176
+ waitForThenClick: ".cm__btn[data-role=necessary]"
4177
+ }
4178
+ ],
4179
+ test: [
4180
+ {
4181
+ eval: "EVAL_COOKIECONSENT3_TEST"
4182
+ }
4183
+ ]
4184
+ },
3907
4185
  {
3908
4186
  name: "cookiefirst.com",
3909
4187
  prehideSelectors: [
@@ -4334,6 +4612,41 @@
4334
4612
  }
4335
4613
  ]
4336
4614
  },
4615
+ {
4616
+ name: "dndbeyond",
4617
+ vendorUrl: "https://www.dndbeyond.com/",
4618
+ runContext: {
4619
+ urlPattern: "^https://www\\.dndbeyond\\.com/"
4620
+ },
4621
+ prehideSelectors: [
4622
+ "[id^=cookie-consent-banner]"
4623
+ ],
4624
+ detectCmp: [
4625
+ {
4626
+ exists: "[id^=cookie-consent-banner]"
4627
+ }
4628
+ ],
4629
+ detectPopup: [
4630
+ {
4631
+ visible: "[id^=cookie-consent-banner]"
4632
+ }
4633
+ ],
4634
+ optIn: [
4635
+ {
4636
+ waitForThenClick: "#cookie-consent-granted"
4637
+ }
4638
+ ],
4639
+ optOut: [
4640
+ {
4641
+ waitForThenClick: "#cookie-consent-denied"
4642
+ }
4643
+ ],
4644
+ test: [
4645
+ {
4646
+ eval: "EVAL_DNDBEYOND_TEST"
4647
+ }
4648
+ ]
4649
+ },
4337
4650
  {
4338
4651
  name: "Drupal",
4339
4652
  detectCmp: [
@@ -4888,6 +5201,39 @@
4888
5201
  }
4889
5202
  ]
4890
5203
  },
5204
+ {
5205
+ name: "hashicorp",
5206
+ vendorUrl: "https://hashicorp.com/",
5207
+ runContext: {
5208
+ urlPattern: "^https://[^.]*\\.hashicorp\\.com/"
5209
+ },
5210
+ prehideSelectors: [
5211
+ "[data-testid=consent-banner]"
5212
+ ],
5213
+ detectCmp: [
5214
+ {
5215
+ exists: "[data-testid=consent-banner]"
5216
+ }
5217
+ ],
5218
+ detectPopup: [
5219
+ {
5220
+ visible: "[data-testid=consent-banner]"
5221
+ }
5222
+ ],
5223
+ optIn: [
5224
+ {
5225
+ waitForThenClick: "[data-testid=accept]"
5226
+ }
5227
+ ],
5228
+ optOut: [
5229
+ {
5230
+ waitForThenClick: "[data-testid=manage-preferences]"
5231
+ },
5232
+ {
5233
+ waitForThenClick: "[data-testid=consent-mgr-dialog] [data-ga-button=save-preferences]"
5234
+ }
5235
+ ]
5236
+ },
4891
5237
  {
4892
5238
  name: "healthline-media",
4893
5239
  prehideSelectors: [
@@ -5037,10 +5383,40 @@
5037
5383
  ]
5038
5384
  },
5039
5385
  {
5040
- name: "hubspot",
5386
+ name: "hu-manity",
5387
+ vendorUrl: "https://hu-manity.co/",
5388
+ prehideSelectors: [
5389
+ "#hu.hu-wrapper"
5390
+ ],
5041
5391
  detectCmp: [
5042
5392
  {
5043
- exists: "#hs-eu-cookie-confirmation"
5393
+ exists: "#hu.hu-visible"
5394
+ }
5395
+ ],
5396
+ detectPopup: [
5397
+ {
5398
+ visible: "#hu.hu-visible"
5399
+ }
5400
+ ],
5401
+ optIn: [
5402
+ {
5403
+ waitForThenClick: "[data-hu-action=cookies-notice-consent-choices-3]"
5404
+ },
5405
+ {
5406
+ waitForThenClick: "#hu-cookies-save"
5407
+ }
5408
+ ],
5409
+ optOut: [
5410
+ {
5411
+ waitForThenClick: "#hu-cookies-save"
5412
+ }
5413
+ ]
5414
+ },
5415
+ {
5416
+ name: "hubspot",
5417
+ detectCmp: [
5418
+ {
5419
+ exists: "#hs-eu-cookie-confirmation"
5044
5420
  }
5045
5421
  ],
5046
5422
  detectPopup: [
@@ -5280,6 +5656,51 @@
5280
5656
  }
5281
5657
  ]
5282
5658
  },
5659
+ {
5660
+ name: "jdsports",
5661
+ vendorUrl: "https://www.jdsports.co.uk/",
5662
+ runContext: {
5663
+ urlPattern: "^https://www\\.jdsports\\."
5664
+ },
5665
+ prehideSelectors: [
5666
+ ".miniConsent,#PrivacyPolicyBanner"
5667
+ ],
5668
+ detectCmp: [
5669
+ {
5670
+ exists: ".miniConsent,#PrivacyPolicyBanner"
5671
+ }
5672
+ ],
5673
+ detectPopup: [
5674
+ {
5675
+ visible: ".miniConsent,#PrivacyPolicyBanner"
5676
+ }
5677
+ ],
5678
+ optIn: [
5679
+ {
5680
+ waitForThenClick: ".miniConsent .accept-all-cookies"
5681
+ }
5682
+ ],
5683
+ optOut: [
5684
+ {
5685
+ if: {
5686
+ exists: "#PrivacyPolicyBanner"
5687
+ },
5688
+ then: [
5689
+ {
5690
+ hide: "#PrivacyPolicyBanner"
5691
+ }
5692
+ ],
5693
+ else: [
5694
+ {
5695
+ waitForThenClick: "#cookie-settings"
5696
+ },
5697
+ {
5698
+ waitForThenClick: "#reject-all-cookies"
5699
+ }
5700
+ ]
5701
+ }
5702
+ ]
5703
+ },
5283
5704
  {
5284
5705
  name: "johnlewis.com",
5285
5706
  prehideSelectors: [
@@ -5564,6 +5985,34 @@
5564
5985
  }
5565
5986
  ]
5566
5987
  },
5988
+ {
5989
+ name: "lineagrafica",
5990
+ vendorUrl: "https://addons.prestashop.com/en/legal/8734-eu-cookie-law-gdpr-banner-blocker.html",
5991
+ cosmetic: true,
5992
+ prehideSelectors: [
5993
+ "#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"
5994
+ ],
5995
+ detectCmp: [
5996
+ {
5997
+ exists: "#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"
5998
+ }
5999
+ ],
6000
+ detectPopup: [
6001
+ {
6002
+ exists: "#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"
6003
+ }
6004
+ ],
6005
+ optIn: [
6006
+ {
6007
+ waitForThenClick: "#lgcookieslaw_accept"
6008
+ }
6009
+ ],
6010
+ optOut: [
6011
+ {
6012
+ hide: "#lgcookieslaw_banner,#lgcookieslaw_modal,.lgcookieslaw-overlay"
6013
+ }
6014
+ ]
6015
+ },
5567
6016
  {
5568
6017
  name: "linkedin.com",
5569
6018
  prehideSelectors: [
@@ -5608,6 +6057,47 @@
5608
6057
  }
5609
6058
  ]
5610
6059
  },
6060
+ {
6061
+ name: "livejasmin",
6062
+ vendorUrl: "https://www.livejasmin.com/",
6063
+ runContext: {
6064
+ urlPattern: "^https://www\\.livejasmin\\.com/"
6065
+ },
6066
+ prehideSelectors: [
6067
+ "#consent_modal"
6068
+ ],
6069
+ detectCmp: [
6070
+ {
6071
+ exists: "#consent_modal"
6072
+ }
6073
+ ],
6074
+ detectPopup: [
6075
+ {
6076
+ visible: "#consent_modal"
6077
+ }
6078
+ ],
6079
+ optIn: [
6080
+ {
6081
+ waitForThenClick: "#consent_modal button[data-testid=ButtonStyledButton]:first-of-type"
6082
+ }
6083
+ ],
6084
+ optOut: [
6085
+ {
6086
+ waitForThenClick: "#consent_modal button[data-testid=ButtonStyledButton]:nth-of-type(2)"
6087
+ },
6088
+ {
6089
+ waitForVisible: "[data-testid=PrivacyPreferenceCenterWithConsentCookieContent]"
6090
+ },
6091
+ {
6092
+ click: "[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] input[data-testid=PrivacyPreferenceCenterWithConsentCookieSwitch]:checked",
6093
+ optional: true,
6094
+ all: true
6095
+ },
6096
+ {
6097
+ waitForThenClick: "[data-testid=PrivacyPreferenceCenterWithConsentCookieContent] button[data-testid=ButtonStyledButton]:last-child"
6098
+ }
6099
+ ]
6100
+ },
5611
6101
  {
5612
6102
  name: "macpaw.com",
5613
6103
  cosmetic: true,
@@ -6089,6 +6579,50 @@
6089
6579
  }
6090
6580
  ]
6091
6581
  },
6582
+ {
6583
+ name: "om",
6584
+ vendorUrl: "https://olli-machts.de/en/extension/cookie-manager",
6585
+ prehideSelectors: [
6586
+ ".tx-om-cookie-consent"
6587
+ ],
6588
+ detectCmp: [
6589
+ {
6590
+ exists: ".tx-om-cookie-consent .active[data-omcookie-panel]"
6591
+ }
6592
+ ],
6593
+ detectPopup: [
6594
+ {
6595
+ exists: ".tx-om-cookie-consent .active[data-omcookie-panel]"
6596
+ }
6597
+ ],
6598
+ optIn: [
6599
+ {
6600
+ waitForThenClick: "[data-omcookie-panel-save=all]"
6601
+ }
6602
+ ],
6603
+ optOut: [
6604
+ {
6605
+ if: {
6606
+ exists: "[data-omcookie-panel-save=min]"
6607
+ },
6608
+ then: [
6609
+ {
6610
+ waitForThenClick: "[data-omcookie-panel-save=min]"
6611
+ }
6612
+ ],
6613
+ else: [
6614
+ {
6615
+ click: "input[data-omcookie-panel-grp]:checked:not(:disabled)",
6616
+ all: true,
6617
+ optional: true
6618
+ },
6619
+ {
6620
+ waitForThenClick: "[data-omcookie-panel-save=save]"
6621
+ }
6622
+ ]
6623
+ }
6624
+ ]
6625
+ },
6092
6626
  {
6093
6627
  name: "onlyFans.com",
6094
6628
  prehideSelectors: [
@@ -6121,6 +6655,34 @@
6121
6655
  }
6122
6656
  ]
6123
6657
  },
6658
+ {
6659
+ name: "openli",
6660
+ vendorUrl: "https://openli.com",
6661
+ prehideSelectors: [
6662
+ ".legalmonster-cleanslate"
6663
+ ],
6664
+ detectCmp: [
6665
+ {
6666
+ exists: ".legalmonster-cleanslate"
6667
+ }
6668
+ ],
6669
+ detectPopup: [
6670
+ {
6671
+ visible: ".legalmonster-cleanslate #lm-cookie-wall-container",
6672
+ check: "any"
6673
+ }
6674
+ ],
6675
+ optIn: [
6676
+ {
6677
+ waitForThenClick: "#lm-accept-all"
6678
+ }
6679
+ ],
6680
+ optOut: [
6681
+ {
6682
+ waitForThenClick: "#lm-accept-necessary"
6683
+ }
6684
+ ]
6685
+ },
6124
6686
  {
6125
6687
  name: "opera.com",
6126
6688
  vendorUrl: "https://unknown",
@@ -6217,6 +6779,63 @@
6217
6779
  }
6218
6780
  ]
6219
6781
  },
6782
+ {
6783
+ name: "ourworldindata",
6784
+ vendorUrl: "https://ourworldindata.org/",
6785
+ runContext: {
6786
+ urlPattern: "^https://ourworldindata\\.org/"
6787
+ },
6788
+ prehideSelectors: [
6789
+ ".cookie-manager"
6790
+ ],
6791
+ detectCmp: [
6792
+ {
6793
+ exists: ".cookie-manager"
6794
+ }
6795
+ ],
6796
+ detectPopup: [
6797
+ {
6798
+ visible: ".cookie-manager .cookie-notice.open"
6799
+ }
6800
+ ],
6801
+ optIn: [
6802
+ {
6803
+ waitForThenClick: ".cookie-notice [data-test=accept]"
6804
+ }
6805
+ ],
6806
+ optOut: [
6807
+ {
6808
+ waitForThenClick: ".cookie-notice [data-test=reject]"
6809
+ }
6810
+ ]
6811
+ },
6812
+ {
6813
+ name: "pabcogypsum",
6814
+ vendorUrl: "https://unknown",
6815
+ prehideSelectors: [
6816
+ ".js-cookie-notice:has(#cookie_settings-form)"
6817
+ ],
6818
+ detectCmp: [
6819
+ {
6820
+ exists: ".js-cookie-notice:has(#cookie_settings-form)"
6821
+ }
6822
+ ],
6823
+ detectPopup: [
6824
+ {
6825
+ visible: ".js-cookie-notice:has(#cookie_settings-form)"
6826
+ }
6827
+ ],
6828
+ optIn: [
6829
+ {
6830
+ waitForThenClick: ".js-cookie-notice button[value=allow]"
6831
+ }
6832
+ ],
6833
+ optOut: [
6834
+ {
6835
+ waitForThenClick: ".js-cookie-notice button[value=disable]"
6836
+ }
6837
+ ]
6838
+ },
6220
6839
  {
6221
6840
  name: "paypal-us",
6222
6841
  prehideSelectors: [
@@ -6508,6 +7127,34 @@
6508
7127
  }
6509
7128
  ]
6510
7129
  },
7130
+ {
7131
+ name: "productz.com",
7132
+ vendorUrl: "https://productz.com/",
7133
+ runContext: {
7134
+ urlPattern: "^https://productz\\.com/"
7135
+ },
7136
+ prehideSelectors: [],
7137
+ detectCmp: [
7138
+ {
7139
+ exists: ".c-modal.is-active"
7140
+ }
7141
+ ],
7142
+ detectPopup: [
7143
+ {
7144
+ visible: ".c-modal.is-active"
7145
+ }
7146
+ ],
7147
+ optIn: [
7148
+ {
7149
+ waitForThenClick: ".c-modal.is-active .is-accept"
7150
+ }
7151
+ ],
7152
+ optOut: [
7153
+ {
7154
+ waitForThenClick: ".c-modal.is-active .is-dismiss"
7155
+ }
7156
+ ]
7157
+ },
6511
7158
  {
6512
7159
  name: "pubtech",
6513
7160
  prehideSelectors: [
@@ -6599,26 +7246,32 @@
6599
7246
  urlPattern: "^https://www\\.reddit\\.com/"
6600
7247
  },
6601
7248
  prehideSelectors: [
6602
- 'section:has(a[href^="https://www.reddit.com/policies/cookies"])'
7249
+ "[bundlename=reddit_cookie_banner]"
6603
7250
  ],
6604
7251
  detectCmp: [
6605
7252
  {
6606
- exists: 'section:has(a[href^="https://www.reddit.com/policies/cookies"])'
7253
+ exists: "reddit-cookie-banner"
6607
7254
  }
6608
7255
  ],
6609
7256
  detectPopup: [
6610
7257
  {
6611
- visible: 'section:has(a[href^="https://www.reddit.com/policies/cookies"])'
7258
+ visible: "reddit-cookie-banner"
6612
7259
  }
6613
7260
  ],
6614
7261
  optIn: [
6615
7262
  {
6616
- waitForThenClick: `section:has(a[href^="https://www.reddit.com/policies/cookies"]) section[class^='_'] > section:first-child form button`
7263
+ waitForThenClick: [
7264
+ "reddit-cookie-banner",
7265
+ "#accept-all-cookies-button > button"
7266
+ ]
6617
7267
  }
6618
7268
  ],
6619
7269
  optOut: [
6620
7270
  {
6621
- waitForThenClick: `section:has(a[href^="https://www.reddit.com/policies/cookies"]) section[class^='_'] > section:last-child form button`
7271
+ waitForThenClick: [
7272
+ "reddit-cookie-banner",
7273
+ "#reject-nonessential-cookies-button > button"
7274
+ ]
6622
7275
  }
6623
7276
  ],
6624
7277
  test: [
@@ -6721,6 +7374,35 @@
6721
7374
  }
6722
7375
  ]
6723
7376
  },
7377
+ {
7378
+ name: "setapp.com",
7379
+ vendorUrl: "https://setapp.com/",
7380
+ cosmetic: true,
7381
+ runContext: {
7382
+ urlPattern: "^https://setapp\\.com/"
7383
+ },
7384
+ prehideSelectors: [],
7385
+ detectCmp: [
7386
+ {
7387
+ exists: ".cookie-banner.js-cookie-banner"
7388
+ }
7389
+ ],
7390
+ detectPopup: [
7391
+ {
7392
+ visible: ".cookie-banner.js-cookie-banner"
7393
+ }
7394
+ ],
7395
+ optIn: [
7396
+ {
7397
+ waitForThenClick: ".cookie-banner.js-cookie-banner button"
7398
+ }
7399
+ ],
7400
+ optOut: [
7401
+ {
7402
+ hide: ".cookie-banner.js-cookie-banner"
7403
+ }
7404
+ ]
7405
+ },
6724
7406
  {
6725
7407
  name: "sibbo",
6726
7408
  prehideSelectors: [
@@ -6934,6 +7616,41 @@
6934
7616
  }
6935
7617
  ]
6936
7618
  },
7619
+ {
7620
+ name: "svt.se",
7621
+ vendorUrl: "https://www.svt.se/",
7622
+ runContext: {
7623
+ urlPattern: "^https://www\\.svt\\.se/"
7624
+ },
7625
+ prehideSelectors: [
7626
+ "[class*=CookieConsent__root___]"
7627
+ ],
7628
+ detectCmp: [
7629
+ {
7630
+ exists: "[class*=CookieConsent__root___]"
7631
+ }
7632
+ ],
7633
+ detectPopup: [
7634
+ {
7635
+ visible: "[class*=CookieConsent__modal___]"
7636
+ }
7637
+ ],
7638
+ optIn: [
7639
+ {
7640
+ waitForThenClick: "[class*=CookieConsent__modal___] > div > button[class*=primary]"
7641
+ }
7642
+ ],
7643
+ optOut: [
7644
+ {
7645
+ waitForThenClick: "[class*=CookieConsent__modal___] > div > button[class*=secondary]:nth-child(2)"
7646
+ }
7647
+ ],
7648
+ test: [
7649
+ {
7650
+ eval: "EVAL_SVT_TEST"
7651
+ }
7652
+ ]
7653
+ },
6937
7654
  {
6938
7655
  name: "takealot.com",
6939
7656
  cosmetic: true,
@@ -7005,14 +7722,54 @@
7005
7722
  }
7006
7723
  ]
7007
7724
  },
7725
+ {
7726
+ name: "taunton",
7727
+ vendorUrl: "https://www.taunton.com/",
7728
+ prehideSelectors: [
7729
+ "#taunton-user-consent__overlay"
7730
+ ],
7731
+ detectCmp: [
7732
+ {
7733
+ exists: "#taunton-user-consent__overlay"
7734
+ }
7735
+ ],
7736
+ detectPopup: [
7737
+ {
7738
+ exists: "#taunton-user-consent__overlay:not([aria-hidden=true])"
7739
+ }
7740
+ ],
7741
+ optIn: [
7742
+ {
7743
+ click: "#taunton-user-consent__toolbar input[type=checkbox]:not(:checked)"
7744
+ },
7745
+ {
7746
+ click: "#taunton-user-consent__toolbar button[type=submit]"
7747
+ }
7748
+ ],
7749
+ optOut: [
7750
+ {
7751
+ click: "#taunton-user-consent__toolbar input[type=checkbox]:checked",
7752
+ optional: true,
7753
+ all: true
7754
+ },
7755
+ {
7756
+ click: "#taunton-user-consent__toolbar button[type=submit]"
7757
+ }
7758
+ ],
7759
+ test: [
7760
+ {
7761
+ eval: "EVAL_TAUNTON_TEST"
7762
+ }
7763
+ ]
7764
+ },
7008
7765
  {
7009
7766
  name: "Tealium",
7010
7767
  prehideSelectors: [
7011
- "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#consent-layer"
7768
+ "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal,#consent-layer"
7012
7769
  ],
7013
7770
  detectCmp: [
7014
7771
  {
7015
- exists: "#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *"
7772
+ exists: "#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *"
7016
7773
  },
7017
7774
  {
7018
7775
  eval: "EVAL_TEALIUM_0"
@@ -7020,7 +7777,7 @@
7020
7777
  ],
7021
7778
  detectPopup: [
7022
7779
  {
7023
- visible: "#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *",
7780
+ visible: "#__tealiumGDPRecModal *,#__tealiumGDPRcpPrefs *,#__tealiumImplicitmodal *",
7024
7781
  check: "any"
7025
7782
  }
7026
7783
  ],
@@ -7032,7 +7789,7 @@
7032
7789
  eval: "EVAL_TEALIUM_DONOTSELL"
7033
7790
  },
7034
7791
  {
7035
- hide: "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs"
7792
+ hide: "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal"
7036
7793
  },
7037
7794
  {
7038
7795
  waitForThenClick: "#cm-acceptNone,.js-accept-essential-cookies",
@@ -7151,6 +7908,63 @@
7151
7908
  }
7152
7909
  ]
7153
7910
  },
7911
+ {
7912
+ name: "termsfeed",
7913
+ vendorUrl: "https://termsfeed.com",
7914
+ comment: "v4.x.x",
7915
+ prehideSelectors: [
7916
+ ".termsfeed-com---nb"
7917
+ ],
7918
+ detectCmp: [
7919
+ {
7920
+ exists: ".termsfeed-com---nb"
7921
+ }
7922
+ ],
7923
+ detectPopup: [
7924
+ {
7925
+ visible: ".termsfeed-com---nb"
7926
+ }
7927
+ ],
7928
+ optIn: [
7929
+ {
7930
+ waitForThenClick: ".cc-nb-okagree"
7931
+ }
7932
+ ],
7933
+ optOut: [
7934
+ {
7935
+ waitForThenClick: ".cc-nb-reject"
7936
+ }
7937
+ ]
7938
+ },
7939
+ {
7940
+ name: "termsfeed3",
7941
+ vendorUrl: "https://termsfeed.com",
7942
+ comment: "v3.x.x",
7943
+ cosmetic: true,
7944
+ prehideSelectors: [
7945
+ ".cc_dialog.cc_css_reboot"
7946
+ ],
7947
+ detectCmp: [
7948
+ {
7949
+ exists: ".cc_dialog.cc_css_reboot"
7950
+ }
7951
+ ],
7952
+ detectPopup: [
7953
+ {
7954
+ visible: ".cc_dialog.cc_css_reboot"
7955
+ }
7956
+ ],
7957
+ optIn: [
7958
+ {
7959
+ waitForThenClick: ".cc_dialog.cc_css_reboot .cc_b_ok"
7960
+ }
7961
+ ],
7962
+ optOut: [
7963
+ {
7964
+ hide: ".cc_dialog.cc_css_reboot"
7965
+ }
7966
+ ]
7967
+ },
7154
7968
  {
7155
7969
  name: "Test page cosmetic CMP",
7156
7970
  cosmetic: true,
@@ -7609,6 +8423,35 @@
7609
8423
  }
7610
8424
  ]
7611
8425
  },
8426
+ {
8427
+ name: "twitch-mobile",
8428
+ vendorUrl: "https://m.twitch.tv/",
8429
+ cosmetic: true,
8430
+ runContext: {
8431
+ urlPattern: "^https?://m\\.twitch\\.tv"
8432
+ },
8433
+ prehideSelectors: [],
8434
+ detectCmp: [
8435
+ {
8436
+ exists: '.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"])'
8437
+ }
8438
+ ],
8439
+ detectPopup: [
8440
+ {
8441
+ visible: '.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"])'
8442
+ }
8443
+ ],
8444
+ optIn: [
8445
+ {
8446
+ waitForThenClick: '.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"]) button'
8447
+ }
8448
+ ],
8449
+ optOut: [
8450
+ {
8451
+ hide: '.ReactModal__Overlay:has([href="https://www.twitch.tv/p/cookie-policy"])'
8452
+ }
8453
+ ]
8454
+ },
7612
8455
  {
7613
8456
  name: "twitch.tv",
7614
8457
  runContext: {
@@ -7996,6 +8839,42 @@
7996
8839
  }
7997
8840
  ]
7998
8841
  },
8842
+ {
8843
+ name: "webflow",
8844
+ vendorUrl: "https://webflow.com/",
8845
+ prehideSelectors: [
8846
+ ".fs-cc-components"
8847
+ ],
8848
+ detectCmp: [
8849
+ {
8850
+ exists: ".fs-cc-components"
8851
+ }
8852
+ ],
8853
+ detectPopup: [
8854
+ {
8855
+ visible: ".fs-cc-components"
8856
+ },
8857
+ {
8858
+ visible: "[fs-cc=banner]"
8859
+ }
8860
+ ],
8861
+ optIn: [
8862
+ {
8863
+ wait: 500
8864
+ },
8865
+ {
8866
+ waitForThenClick: "[fs-cc=banner] [fs-cc=allow]"
8867
+ }
8868
+ ],
8869
+ optOut: [
8870
+ {
8871
+ wait: 500
8872
+ },
8873
+ {
8874
+ waitForThenClick: "[fs-cc=banner] [fs-cc=deny]"
8875
+ }
8876
+ ]
8877
+ },
7999
8878
  {
8000
8879
  name: "wetransfer.com",
8001
8880
  detectCmp: [
@@ -8049,6 +8928,35 @@
8049
8928
  }
8050
8929
  ]
8051
8930
  },
8931
+ {
8932
+ name: "wolframalpha",
8933
+ vendorUrl: "https://www.wolframalpha.com",
8934
+ prehideSelectors: [],
8935
+ cosmetic: true,
8936
+ runContext: {
8937
+ urlPattern: "^https://www\\.wolframalpha\\.com/"
8938
+ },
8939
+ detectCmp: [
8940
+ {
8941
+ exists: "section._a_yb"
8942
+ }
8943
+ ],
8944
+ detectPopup: [
8945
+ {
8946
+ visible: "section._a_yb"
8947
+ }
8948
+ ],
8949
+ optIn: [
8950
+ {
8951
+ waitForThenClick: "section._a_yb button"
8952
+ }
8953
+ ],
8954
+ optOut: [
8955
+ {
8956
+ hide: "section._a_yb"
8957
+ }
8958
+ ]
8959
+ },
8052
8960
  {
8053
8961
  name: "woo-commerce-com",
8054
8962
  prehideSelectors: [
@@ -8141,6 +9049,47 @@
8141
9049
  }
8142
9050
  ]
8143
9051
  },
9052
+ {
9053
+ name: "xe.com",
9054
+ vendorUrl: "https://www.xe.com/",
9055
+ runContext: {
9056
+ urlPattern: "^https://www\\.xe\\.com/"
9057
+ },
9058
+ prehideSelectors: [
9059
+ "[class*=ConsentBanner]"
9060
+ ],
9061
+ detectCmp: [
9062
+ {
9063
+ exists: "[class*=ConsentBanner]"
9064
+ }
9065
+ ],
9066
+ detectPopup: [
9067
+ {
9068
+ visible: "[class*=ConsentBanner]"
9069
+ }
9070
+ ],
9071
+ optIn: [
9072
+ {
9073
+ waitForThenClick: "[class*=ConsentBanner] .egnScw"
9074
+ }
9075
+ ],
9076
+ optOut: [
9077
+ {
9078
+ wait: 1e3
9079
+ },
9080
+ {
9081
+ waitForThenClick: "[class*=ConsentBanner] .frDWEu"
9082
+ },
9083
+ {
9084
+ waitForThenClick: "[class*=ConsentBanner] .hXIpFU"
9085
+ }
9086
+ ],
9087
+ test: [
9088
+ {
9089
+ eval: "EVAL_XE_TEST"
9090
+ }
9091
+ ]
9092
+ },
8144
9093
  {
8145
9094
  name: "xhamster-eu",
8146
9095
  prehideSelectors: [