@duckduckgo/autoconsent 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/Jenkinsfile +1 -1
  2. package/dist/addon-firefox/background.bundle.js +1 -1
  3. package/dist/addon-firefox/content.bundle.js +1 -1
  4. package/dist/addon-firefox/manifest.json +32 -0
  5. package/dist/addon-firefox/rules.json +905 -54
  6. package/dist/addon-mv3/background.bundle.js +1 -1
  7. package/dist/addon-mv3/content.bundle.js +1 -1
  8. package/dist/addon-mv3/manifest.json +34 -0
  9. package/dist/addon-mv3/rules.json +905 -54
  10. package/dist/autoconsent.cjs.js +1 -1
  11. package/dist/autoconsent.esm.js +1 -1
  12. package/dist/autoconsent.playwright.js +1 -1
  13. package/lib/cmps/all.ts +7 -0
  14. package/lib/cmps/base.ts +37 -24
  15. package/lib/cmps/consentmanager.ts +27 -4
  16. package/lib/cmps/conversant.ts +60 -0
  17. package/lib/cmps/klaro.ts +66 -0
  18. package/lib/cmps/sourcepoint-frame.ts +9 -8
  19. package/lib/cmps/sourcepoint-top.ts +5 -0
  20. package/lib/cmps/uniconsent.ts +70 -0
  21. package/lib/rules.ts +8 -1
  22. package/lib/web.ts +35 -25
  23. package/package.json +1 -1
  24. package/readme.md +29 -0
  25. package/rollup.config.js +10 -2
  26. package/rules/autoconsent/adroll.json +11 -0
  27. package/rules/autoconsent/affinity-serif-com.json +40 -0
  28. package/rules/autoconsent/aws-amazon.json +6 -1
  29. package/rules/autoconsent/axeptio.json +41 -0
  30. package/rules/autoconsent/clickio.json +18 -0
  31. package/rules/autoconsent/complianz-banner.json +13 -0
  32. package/rules/autoconsent/complianz-categories.json +17 -0
  33. package/rules/autoconsent/complianz-notice.json +14 -0
  34. package/rules/autoconsent/complianz-optin.json +20 -0
  35. package/rules/autoconsent/cookie-notice.json +3 -1
  36. package/rules/autoconsent/cookieinformation.json +14 -0
  37. package/rules/autoconsent/dsgvo.json +16 -0
  38. package/rules/autoconsent/eu-cookie-law.json +20 -0
  39. package/rules/autoconsent/ezoic.json +19 -0
  40. package/rules/autoconsent/iubenda.json +23 -0
  41. package/rules/autoconsent/jquery-cookiebar.json +25 -0
  42. package/rules/autoconsent/mediavine.json +20 -0
  43. package/rules/autoconsent/monzo-com.json +22 -0
  44. package/rules/autoconsent/moove.json +28 -0
  45. package/rules/autoconsent/paypal.json +4 -1
  46. package/rules/autoconsent/primebox.json +19 -0
  47. package/rules/autoconsent/sirdata.json +11 -0
  48. package/rules/autoconsent/tarteaucitron.json +18 -0
  49. package/rules/autoconsent/tealium.json +0 -1
  50. package/rules/autoconsent/termly.json +31 -0
  51. package/rules/autoconsent/testcmp.json +4 -1
  52. package/rules/autoconsent/uk-cookie-consent.json +15 -0
  53. package/rules/autoconsent/{usercentrics-1.json → usercentrics-api.json} +2 -2
  54. package/rules/autoconsent/usercentrics-button.json +14 -0
  55. package/rules/autoconsent/vodafone-de.json +5 -5
  56. package/rules/autoconsent/wp-cookie-notice.json +12 -0
  57. package/rules/rules.json +905 -54
  58. package/tests/adroll.spec.ts +15 -0
  59. package/tests/affinity-serif-com.spec.ts +5 -0
  60. package/tests/axeptio.spec.ts +9 -0
  61. package/tests/clickio.spec.ts +10 -0
  62. package/tests/complianz-banner.spec.ts +9 -0
  63. package/tests/complianz-categories.spec.ts +14 -0
  64. package/tests/{cookieconsent.spec.ts → complianz-notice.spec.ts} +1 -2
  65. package/tests/complianz-optin.spec.ts +6 -0
  66. package/tests/consentmanager.spec.ts +2 -1
  67. package/tests/conversant.spec.ts +10 -0
  68. package/tests/{cookienotice.spec.ts → cookie-notice.spec.ts} +0 -0
  69. package/tests/cookieinformation.spec.ts +10 -0
  70. package/tests/dsgvo.spec.ts +6 -0
  71. package/tests/eu-cookie-law.spec.ts +6 -0
  72. package/tests/ezoic.spec.ts +8 -0
  73. package/tests/iubenda.spec.ts +8 -0
  74. package/tests/jquery-cookiebar.spec.ts +6 -0
  75. package/tests/klaro.spec.ts +6 -2
  76. package/tests/mediavine.spec.ts +8 -0
  77. package/tests/monzo-com.spec.ts +5 -0
  78. package/tests/moove.spec.ts +13 -0
  79. package/tests/onetrust.spec.ts +2 -2
  80. package/tests/primebox.spec.ts +7 -0
  81. package/tests/sirdata.spec.ts +8 -0
  82. package/tests/tarteaucitron.spec.ts +9 -0
  83. package/tests/tealium.spec.ts +1 -1
  84. package/tests/termly.spec.ts +12 -0
  85. package/tests/trustarc.spec.ts +1 -9
  86. package/tests/uk-cookie-consent.spec.ts +7 -0
  87. package/tests/uniconsent.spec.ts +12 -0
  88. package/tests/{usercentrics-1.spec.ts → usercentrics-api.spec.ts} +3 -2
  89. package/tests/usercentrics-button.spec.ts +8 -0
  90. package/tests/wp-cookie-notice.spec.ts +8 -0
  91. package/rules/autoconsent/cookieconsent.json +0 -8
  92. package/rules/autoconsent/destatis-de.json +0 -8
  93. package/rules/autoconsent/klaro.json +0 -10
  94. package/tests/destatis.spec.ts +0 -7
@@ -31,6 +31,81 @@
31
31
  }
32
32
  ]
33
33
  },
34
+ {
35
+ "name": "Adroll",
36
+ "prehideSelectors": [
37
+ "#adroll_consent_container"
38
+ ],
39
+ "detectCmp": [
40
+ {
41
+ "exists": "#adroll_consent_container"
42
+ }
43
+ ],
44
+ "detectPopup": [
45
+ {
46
+ "visible": "#adroll_consent_container"
47
+ }
48
+ ],
49
+ "optIn": [
50
+ {
51
+ "waitForThenClick": "#adroll_consent_accept"
52
+ }
53
+ ],
54
+ "optOut": [
55
+ {
56
+ "waitForThenClick": "#adroll_consent_reject"
57
+ }
58
+ ],
59
+ "test": [
60
+ {
61
+ "eval": "!document.cookie.includes('__adroll_fpc')"
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "name": "affinity.serif.com",
67
+ "detectCmp": [
68
+ {
69
+ "exists": ".c-cookie-banner"
70
+ },
71
+ {
72
+ "exists": ".c-cookie-banner button"
73
+ }
74
+ ],
75
+ "detectPopup": [
76
+ {
77
+ "visible": ".c-cookie-banner"
78
+ }
79
+ ],
80
+ "optIn": [
81
+ {
82
+ "click": "button[data-qa=\"allow-all-cookies\"]"
83
+ }
84
+ ],
85
+ "optOut": [
86
+ {
87
+ "click": "button[data-qa=\"manage-cookies\"]"
88
+ },
89
+ {
90
+ "waitFor": ".c-cookie-banner ~ [role=\"dialog\"]"
91
+ },
92
+ {
93
+ "waitForThenClick": ".c-cookie-banner ~ [role=\"dialog\"] input[type=\"checkbox\"][value=\"true\"]",
94
+ "all": true
95
+ },
96
+ {
97
+ "click": ".c-cookie-banner ~ [role=\"dialog\"] .c-modal__action button"
98
+ }
99
+ ],
100
+ "test": [
101
+ {
102
+ "wait": 500
103
+ },
104
+ {
105
+ "eval": "document.cookie.includes('serif_manage_cookies_viewed') && !document.cookie.includes('serif_allow_analytics')"
106
+ }
107
+ ]
108
+ },
34
109
  {
35
110
  "name": "arzt-auskunft.de",
36
111
  "prehideSelectors": [
@@ -139,13 +214,55 @@
139
214
  "click": "button[data-id=awsccc-cb-btn-customize]"
140
215
  },
141
216
  {
142
- "eval": "Array.from(document.querySelectorAll('input[aria-checked=true')).forEach(e => e.click()) || true"
217
+ "waitFor": "input[aria-checked]"
218
+ },
219
+ {
220
+ "click": "input[aria-checked=true]",
221
+ "all": true,
222
+ "optional": true
143
223
  },
144
224
  {
145
225
  "click": "button[data-id=awsccc-cs-btn-save]"
146
226
  }
147
227
  ]
148
228
  },
229
+ {
230
+ "name": "axeptio",
231
+ "prehideSelectors": [
232
+ ".axeptio_widget"
233
+ ],
234
+ "detectCmp": [
235
+ {
236
+ "exists": ".axeptio_widget"
237
+ }
238
+ ],
239
+ "detectPopup": [
240
+ {
241
+ "visible": ".axeptio_widget"
242
+ }
243
+ ],
244
+ "optIn": [
245
+ {
246
+ "waitFor": ".axeptio-widget--open"
247
+ },
248
+ {
249
+ "click": "button#axeptio_btn_acceptAll"
250
+ }
251
+ ],
252
+ "optOut": [
253
+ {
254
+ "waitFor": ".axeptio-widget--open"
255
+ },
256
+ {
257
+ "click": "button#axeptio_btn_dismiss"
258
+ }
259
+ ],
260
+ "test": [
261
+ {
262
+ "eval": "document.cookie.includes('axeptio_authorized_vendors=%2C%2C')"
263
+ }
264
+ ]
265
+ },
149
266
  {
150
267
  "name": "baden-wuerttemberg.de",
151
268
  "prehideSelectors": [
@@ -300,6 +417,213 @@
300
417
  }
301
418
  ]
302
419
  },
420
+ {
421
+ "name": "click.io",
422
+ "prehideSelectors": [
423
+ "#cl-consent"
424
+ ],
425
+ "detectCmp": [
426
+ {
427
+ "exists": "#cl-consent"
428
+ }
429
+ ],
430
+ "detectPopup": [
431
+ {
432
+ "visible": "#cl-consent"
433
+ }
434
+ ],
435
+ "optIn": [
436
+ {
437
+ "waitForThenClick": "#cl-consent [data-role=\"b_agree\"]"
438
+ }
439
+ ],
440
+ "optOut": [
441
+ {
442
+ "waitFor": "#cl-consent [data-role=\"b_options\"]"
443
+ },
444
+ {
445
+ "wait": 500
446
+ },
447
+ {
448
+ "click": "#cl-consent [data-role=\"b_options\"]"
449
+ },
450
+ {
451
+ "waitFor": ".cl-consent-popup.cl-consent-visible [data-role=\"alloff\"]"
452
+ },
453
+ {
454
+ "click": ".cl-consent-popup.cl-consent-visible [data-role=\"alloff\"]",
455
+ "all": true
456
+ },
457
+ {
458
+ "click": "[data-role=\"b_save\"]"
459
+ }
460
+ ],
461
+ "test": [
462
+ {
463
+ "eval": "document.cookie.includes('__lxG__consent__v2_daisybit=')",
464
+ "comment": "TODO: this only checks if we interacted at all"
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ "name": "Complianz banner",
470
+ "prehideSelectors": [
471
+ "#cmplz-cookiebanner-container"
472
+ ],
473
+ "detectCmp": [
474
+ {
475
+ "exists": "#cmplz-cookiebanner-container .cmplz-cookiebanner"
476
+ }
477
+ ],
478
+ "detectPopup": [
479
+ {
480
+ "visible": "#cmplz-cookiebanner-container .cmplz-cookiebanner",
481
+ "check": "any"
482
+ }
483
+ ],
484
+ "optIn": [
485
+ {
486
+ "waitForThenClick": ".cmplz-cookiebanner .cmplz-accept"
487
+ }
488
+ ],
489
+ "optOut": [
490
+ {
491
+ "waitForThenClick": ".cmplz-cookiebanner .cmplz-deny"
492
+ }
493
+ ],
494
+ "test": [
495
+ {
496
+ "eval": "document.cookie.includes('cmplz_banner-status=dismissed')"
497
+ }
498
+ ]
499
+ },
500
+ {
501
+ "name": "Complianz categories",
502
+ "prehideSelectors": [
503
+ ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
504
+ ],
505
+ "detectCmp": [
506
+ {
507
+ "exists": ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
508
+ }
509
+ ],
510
+ "detectPopup": [
511
+ {
512
+ "visible": ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
513
+ }
514
+ ],
515
+ "optIn": [
516
+ {
517
+ "click": ".cc-accept-all",
518
+ "optional": true
519
+ },
520
+ {
521
+ "click": ".cc-allow",
522
+ "optional": true
523
+ },
524
+ {
525
+ "click": ".cc-dismiss",
526
+ "optional": true
527
+ }
528
+ ],
529
+ "optOut": [
530
+ {
531
+ "click": ".cc-dismiss"
532
+ }
533
+ ],
534
+ "test": [
535
+ {
536
+ "eval": "!!document.cookie.match(/cmplz_[^=]+=deny/)"
537
+ }
538
+ ]
539
+ },
540
+ {
541
+ "name": "Complianz notice",
542
+ "prehideSelectors": [
543
+ ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
544
+ ],
545
+ "detectCmp": [
546
+ {
547
+ "exists": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
548
+ }
549
+ ],
550
+ "detectPopup": [
551
+ {
552
+ "visible": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
553
+ }
554
+ ],
555
+ "optIn": [
556
+ {
557
+ "click": ".cc-accept-all",
558
+ "optional": true
559
+ },
560
+ {
561
+ "click": ".cc-allow",
562
+ "optional": true
563
+ },
564
+ {
565
+ "click": ".cc-dismiss",
566
+ "optional": true
567
+ }
568
+ ],
569
+ "optOut": [
570
+ {
571
+ "hide": [
572
+ "[aria-describedby=\"cookieconsent:desc\"]"
573
+ ]
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "name": "Complianz optin",
579
+ "prehideSelectors": [
580
+ ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
581
+ ],
582
+ "detectCmp": [
583
+ {
584
+ "exists": ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
585
+ }
586
+ ],
587
+ "detectPopup": [
588
+ {
589
+ "visible": ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
590
+ }
591
+ ],
592
+ "optIn": [
593
+ {
594
+ "click": ".cc-accept-all",
595
+ "optional": true
596
+ },
597
+ {
598
+ "click": ".cc-allow",
599
+ "optional": true
600
+ },
601
+ {
602
+ "click": ".cc-dismiss",
603
+ "optional": true
604
+ }
605
+ ],
606
+ "optOut": [
607
+ {
608
+ "click": ".cc-settings"
609
+ },
610
+ {
611
+ "waitForVisible": "[aria-label=\"cookies preferences popup\"]"
612
+ },
613
+ {
614
+ "click": "[aria-label=\"cookies preferences popup\"] input[type=checkbox]:not([disabled])",
615
+ "all": true
616
+ },
617
+ {
618
+ "click": "[aria-label=\"cookies preferences popup\"] [aria-label=\"Accept Selected\"]"
619
+ }
620
+ ],
621
+ "test": [
622
+ {
623
+ "eval": "!!document.cookie.match(/cookieconsent_preferences_disabled=[^;]+/)"
624
+ }
625
+ ]
626
+ },
303
627
  {
304
628
  "name": "cookie-law-info",
305
629
  "prehideSelectors": [
@@ -343,7 +667,7 @@
343
667
  ],
344
668
  "detectCmp": [
345
669
  {
346
- "exists": "#cookie-notice"
670
+ "visible": "#cookie-notice .cookie-notice-container"
347
671
  }
348
672
  ],
349
673
  "detectPopup": [
@@ -367,30 +691,39 @@
367
691
  ]
368
692
  },
369
693
  {
370
- "name": "cookieconsent",
694
+ "name": "Cookie Information Banner",
371
695
  "prehideSelectors": [
372
- "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
696
+ "#cookie-information-template-wrapper"
373
697
  ],
374
698
  "detectCmp": [
375
699
  {
376
- "exists": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
700
+ "exists": "#cookie-information-template-wrapper"
377
701
  }
378
702
  ],
379
703
  "detectPopup": [
380
704
  {
381
- "visible": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
705
+ "visible": "#cookie-information-template-wrapper"
382
706
  }
383
707
  ],
384
708
  "optIn": [
385
709
  {
386
- "click": ".cc-dismiss"
710
+ "eval": "CookieInformation.submitAllCategories() || true"
387
711
  }
388
712
  ],
389
713
  "optOut": [
390
714
  {
391
715
  "hide": [
392
- "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
393
- ]
716
+ "#cookie-information-template-wrapper"
717
+ ],
718
+ "comment": "some templates don't hide the banner automatically"
719
+ },
720
+ {
721
+ "eval": "CookieInformation.declineAllCategories() || true"
722
+ }
723
+ ],
724
+ "test": [
725
+ {
726
+ "eval": "document.cookie.includes('CookieInformationConsent=')"
394
727
  }
395
728
  ]
396
729
  },
@@ -450,55 +783,61 @@
450
783
  ]
451
784
  },
452
785
  {
453
- "name": "destatis.de",
454
- "prehideSelectors": [
455
- "div[aria-labelledby=cookiebannerhead]"
456
- ],
786
+ "name": "Drupal",
457
787
  "detectCmp": [
458
788
  {
459
- "exists": ".cookiebannerbox"
789
+ "exists": "#drupalorg-crosssite-gdpr"
460
790
  }
461
791
  ],
462
792
  "detectPopup": [
463
793
  {
464
- "visible": ".cookiebannerbox"
794
+ "visible": "#drupalorg-crosssite-gdpr"
465
795
  }
466
796
  ],
467
797
  "optOut": [
468
798
  {
469
- "hide": [
470
- ".cookiebannerbox"
471
- ]
799
+ "click": ".no"
472
800
  }
473
801
  ],
474
802
  "optIn": [
475
803
  {
476
- "click": [
477
- ".cookiebannerbox .close"
478
- ]
804
+ "click": ".yes"
479
805
  }
480
806
  ]
481
807
  },
482
808
  {
483
- "name": "Drupal",
809
+ "name": "WP DSGVO Tools",
810
+ "link": "https://wordpress.org/plugins/shapepress-dsgvo/",
811
+ "prehideSelectors": [
812
+ ".sp-dsgvo"
813
+ ],
484
814
  "detectCmp": [
485
815
  {
486
- "exists": "#drupalorg-crosssite-gdpr"
816
+ "exists": ".sp-dsgvo.sp-dsgvo-popup-overlay"
487
817
  }
488
818
  ],
489
819
  "detectPopup": [
490
820
  {
491
- "visible": "#drupalorg-crosssite-gdpr"
821
+ "visible": ".sp-dsgvo.sp-dsgvo-popup-overlay",
822
+ "check": "any"
823
+ }
824
+ ],
825
+ "optIn": [
826
+ {
827
+ "click": ".sp-dsgvo-privacy-btn-accept-all",
828
+ "all": true
492
829
  }
493
830
  ],
494
831
  "optOut": [
495
832
  {
496
- "click": ".no"
833
+ "hide": [
834
+ ".sp-dsgvo.sp-dsgvo-popup-overlay"
835
+ ]
497
836
  }
498
837
  ],
499
- "optIn": [
838
+ "test": [
500
839
  {
501
- "click": ".yes"
840
+ "eval": "!document.cookie.includes('sp_dsgvo_cookie_settings')"
502
841
  }
503
842
  ]
504
843
  },
@@ -611,6 +950,88 @@
611
950
  }
612
951
  ]
613
952
  },
953
+ {
954
+ "name": "EU Cookie Law",
955
+ "prehideSelectors": [
956
+ ".pea_cook_wrapper,.pea_cook_more_info_popover"
957
+ ],
958
+ "detectCmp": [
959
+ {
960
+ "exists": ".pea_cook_wrapper"
961
+ }
962
+ ],
963
+ "detectPopup": [
964
+ {
965
+ "wait": 500
966
+ },
967
+ {
968
+ "visible": ".pea_cook_wrapper"
969
+ }
970
+ ],
971
+ "optIn": [
972
+ {
973
+ "click": "#pea_cook_btn"
974
+ }
975
+ ],
976
+ "optOut": [
977
+ {
978
+ "hide": [
979
+ ".pea_cook_wrapper"
980
+ ]
981
+ }
982
+ ],
983
+ "test": [
984
+ {
985
+ "eval": "!document.cookie.includes('euCookie')"
986
+ }
987
+ ]
988
+ },
989
+ {
990
+ "name": "EZoic",
991
+ "prehideSelectors": [
992
+ "#ez-cookie-dialog-wrapper"
993
+ ],
994
+ "detectCmp": [
995
+ {
996
+ "exists": "#ez-cookie-dialog-wrapper"
997
+ }
998
+ ],
999
+ "detectPopup": [
1000
+ {
1001
+ "visible": "#ez-cookie-dialog-wrapper"
1002
+ }
1003
+ ],
1004
+ "optIn": [
1005
+ {
1006
+ "click": "#ez-accept-all",
1007
+ "optional": true
1008
+ },
1009
+ {
1010
+ "eval": "ezCMP.handleAcceptAllClick()",
1011
+ "optional": true
1012
+ }
1013
+ ],
1014
+ "optOut": [
1015
+ {
1016
+ "click": "#ez-manage-settings"
1017
+ },
1018
+ {
1019
+ "waitFor": "#ez-cookie-dialog input[type=checkbox]"
1020
+ },
1021
+ {
1022
+ "click": "#ez-cookie-dialog input[type=checkbox][checked]",
1023
+ "all": true
1024
+ },
1025
+ {
1026
+ "click": "#ez-save-settings"
1027
+ }
1028
+ ],
1029
+ "test": [
1030
+ {
1031
+ "eval": "!!document.cookie.match(/ezCMPCookieConsent=[^;]+\\|2=0\\|3=0\\|4=0/)"
1032
+ }
1033
+ ]
1034
+ },
614
1035
  {
615
1036
  "name": "funding-choices",
616
1037
  "prehideSelectors": [
@@ -774,6 +1195,43 @@
774
1195
  }
775
1196
  ]
776
1197
  },
1198
+ {
1199
+ "name": "iubenda",
1200
+ "prehideSelectors": [
1201
+ "#iubenda-cs-banner"
1202
+ ],
1203
+ "detectCmp": [
1204
+ {
1205
+ "exists": "#iubenda-cs-banner"
1206
+ }
1207
+ ],
1208
+ "detectPopup": [
1209
+ {
1210
+ "visible": ".iubenda-cs-accept-btn"
1211
+ }
1212
+ ],
1213
+ "optIn": [
1214
+ {
1215
+ "click": ".iubenda-cs-accept-btn"
1216
+ }
1217
+ ],
1218
+ "optOut": [
1219
+ {
1220
+ "click": ".iubenda-cs-customize-btn"
1221
+ },
1222
+ {
1223
+ "eval": "document.querySelectorAll('.purposes-item input[type=checkbox]:not([disabled])').forEach(x => {if(x.checked) x.click()}) || true"
1224
+ },
1225
+ {
1226
+ "click": "#iubFooterBtn"
1227
+ }
1228
+ ],
1229
+ "test": [
1230
+ {
1231
+ "eval": "!!document.cookie.match(/_iub_cs-\\d+=/)"
1232
+ }
1233
+ ]
1234
+ },
777
1235
  {
778
1236
  "name": "johnlewis.com",
779
1237
  "prehideSelectors": [
@@ -812,30 +1270,41 @@
812
1270
  ]
813
1271
  },
814
1272
  {
815
- "name": "klaro",
1273
+ "name": "jquery.cookieBar",
1274
+ "comment": "https://github.com/kovarp/jquery.cookieBar",
1275
+ "prehideSelectors": [
1276
+ ".cookie-bar"
1277
+ ],
816
1278
  "detectCmp": [
817
1279
  {
818
- "exists": ".klaro > .cookie-notice"
1280
+ "exists": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"
819
1281
  }
820
1282
  ],
821
1283
  "detectPopup": [
822
1284
  {
823
- "visible": ".klaro > .cookie-notice"
1285
+ "visible": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",
1286
+ "check": "any"
824
1287
  }
825
1288
  ],
826
1289
  "optIn": [
827
1290
  {
828
- "click": ".cm-btn-success"
1291
+ "click": ".cookie-bar .cookie-bar__btn"
829
1292
  }
830
1293
  ],
831
1294
  "optOut": [
832
1295
  {
833
- "click": ".cn-decline"
1296
+ "hide": [
1297
+ ".cookie-bar"
1298
+ ]
834
1299
  }
835
1300
  ],
836
1301
  "test": [
837
1302
  {
838
- "eval": "Object.values(klaro.getManager().consents).every(c => !c)"
1303
+ "visible": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",
1304
+ "check": "none"
1305
+ },
1306
+ {
1307
+ "eval": "!document.cookie.includes('cookies-state=accepted')"
839
1308
  }
840
1309
  ]
841
1310
  },
@@ -878,19 +1347,58 @@
878
1347
  "exists": "div[aria-labelledby^=pwa-consent-layer-title]"
879
1348
  }
880
1349
  ],
881
- "detectPopup": [
1350
+ "detectPopup": [
1351
+ {
1352
+ "exists": "div[aria-labelledby^=pwa-consent-layer-title]"
1353
+ }
1354
+ ],
1355
+ "optOut": [
1356
+ {
1357
+ "click": "button[data-test^=pwa-consent-layer-deny-all]"
1358
+ }
1359
+ ],
1360
+ "optIn": [
1361
+ {
1362
+ "click": "button[data-test^=pwa-consent-layer-accept-all"
1363
+ }
1364
+ ]
1365
+ },
1366
+ {
1367
+ "name": "Mediavine",
1368
+ "prehideSelectors": [
1369
+ "[data-name=\"mediavine-gdpr-cmp\"]"
1370
+ ],
1371
+ "detectCmp": [
1372
+ {
1373
+ "exists": "[data-name=\"mediavine-gdpr-cmp\"]"
1374
+ }
1375
+ ],
1376
+ "detectPopup": [
1377
+ {
1378
+ "wait": 500
1379
+ },
1380
+ {
1381
+ "visible": "[data-name=\"mediavine-gdpr-cmp\"]"
1382
+ }
1383
+ ],
1384
+ "optIn": [
882
1385
  {
883
- "exists": "div[aria-labelledby^=pwa-consent-layer-title]"
1386
+ "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"primary\"]"
884
1387
  }
885
1388
  ],
886
1389
  "optOut": [
887
1390
  {
888
- "click": "button[data-test^=pwa-consent-layer-deny-all]"
889
- }
890
- ],
891
- "optIn": [
1391
+ "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [data-view=\"manageSettings\"]"
1392
+ },
892
1393
  {
893
- "click": "button[data-test^=pwa-consent-layer-accept-all"
1394
+ "waitFor": "[data-name=\"mediavine-gdpr-cmp\"] input[type=checkbox]"
1395
+ },
1396
+ {
1397
+ "eval": "document.querySelectorAll(\"[data-name=\\\"mediavine-gdpr-cmp\\\"] input[type=checkbox]\").forEach(x => x.checked && x.click()) || true",
1398
+ "optional": true
1399
+ },
1400
+ {
1401
+ "click": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"secondary\"]"
894
1402
  }
895
1403
  ]
896
1404
  },
@@ -977,6 +1485,95 @@
977
1485
  }
978
1486
  ]
979
1487
  },
1488
+ {
1489
+ "name": "monzo.com",
1490
+ "prehideSelectors": [
1491
+ ".cookie-alert, cookie-alert__content"
1492
+ ],
1493
+ "detectCmp": [
1494
+ {
1495
+ "exists": "div.cookie-alert[role=\"dialog\"]"
1496
+ },
1497
+ {
1498
+ "exists": "a[href*=\"monzo\"]"
1499
+ }
1500
+ ],
1501
+ "detectPopup": [
1502
+ {
1503
+ "visible": ".cookie-alert__content"
1504
+ }
1505
+ ],
1506
+ "optIn": [
1507
+ {
1508
+ "click": ".js-accept-cookie-policy"
1509
+ }
1510
+ ],
1511
+ "optOut": [
1512
+ {
1513
+ "click": ".js-decline-cookie-policy"
1514
+ }
1515
+ ],
1516
+ "test": [
1517
+ {
1518
+ "eval": "document.cookie.includes('_cookies_banner_dismissed=true') && !document.cookie.includes('_cookie_advertising_accepted')"
1519
+ }
1520
+ ]
1521
+ },
1522
+ {
1523
+ "name": "Moove",
1524
+ "prehideSelectors": [
1525
+ "#moove_gdpr_cookie_info_bar"
1526
+ ],
1527
+ "detectCmp": [
1528
+ {
1529
+ "exists": "#moove_gdpr_cookie_info_bar"
1530
+ }
1531
+ ],
1532
+ "detectPopup": [
1533
+ {
1534
+ "visible": "#moove_gdpr_cookie_info_bar"
1535
+ }
1536
+ ],
1537
+ "optIn": [
1538
+ {
1539
+ "waitForThenClick": ".moove-gdpr-infobar-allow-all"
1540
+ }
1541
+ ],
1542
+ "optOut": [
1543
+ {
1544
+ "if": {
1545
+ "exists": "#moove_gdpr_cookie_info_bar .change-settings-button"
1546
+ },
1547
+ "then": [
1548
+ {
1549
+ "click": "#moove_gdpr_cookie_info_bar .change-settings-button"
1550
+ },
1551
+ {
1552
+ "waitForVisible": "#moove_gdpr_cookie_modal"
1553
+ },
1554
+ {
1555
+ "eval": "document.querySelectorAll('#moove_gdpr_cookie_modal input').forEach(i => { if (!i.disabled) i.checked = false }) || true"
1556
+ },
1557
+ {
1558
+ "click": ".moove-gdpr-modal-save-settings"
1559
+ }
1560
+ ],
1561
+ "else": [
1562
+ {
1563
+ "hide": [
1564
+ "#moove_gdpr_cookie_info_bar"
1565
+ ]
1566
+ }
1567
+ ]
1568
+ }
1569
+ ],
1570
+ "test": [
1571
+ {
1572
+ "visible": "#moove_gdpr_cookie_info_bar",
1573
+ "check": "none"
1574
+ }
1575
+ ]
1576
+ },
980
1577
  {
981
1578
  "name": "motor-talk.de",
982
1579
  "prehideSelectors": [
@@ -1226,11 +1823,52 @@
1226
1823
  }
1227
1824
  ],
1228
1825
  "test": [
1826
+ {
1827
+ "wait": 500
1828
+ },
1229
1829
  {
1230
1830
  "eval": "document.cookie.includes('cookie_prefs') === true"
1231
1831
  }
1232
1832
  ]
1233
1833
  },
1834
+ {
1835
+ "name": "PrimeBox CookieBar",
1836
+ "prehideSelectors": [
1837
+ "#cookie-bar"
1838
+ ],
1839
+ "detectCmp": [
1840
+ {
1841
+ "exists": "#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"
1842
+ }
1843
+ ],
1844
+ "detectPopup": [
1845
+ {
1846
+ "visible": "#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",
1847
+ "check": "any"
1848
+ }
1849
+ ],
1850
+ "optIn": [
1851
+ {
1852
+ "waitForThenClick": "#cookie-bar .cb-enable"
1853
+ }
1854
+ ],
1855
+ "optOut": [
1856
+ {
1857
+ "click": "#cookie-bar .cb-disable",
1858
+ "optional": true
1859
+ },
1860
+ {
1861
+ "hide": [
1862
+ "#cookie-bar"
1863
+ ]
1864
+ }
1865
+ ],
1866
+ "test": [
1867
+ {
1868
+ "eval": "!document.cookie.includes('cb-enabled=accepted')"
1869
+ }
1870
+ ]
1871
+ },
1234
1872
  {
1235
1873
  "name": "quantcast",
1236
1874
  "prehideSelectors": [
@@ -1273,6 +1911,37 @@
1273
1911
  }
1274
1912
  ]
1275
1913
  },
1914
+ {
1915
+ "name": "Sirdata",
1916
+ "prehideSelectors": [
1917
+ "#sd-cmp"
1918
+ ],
1919
+ "detectCmp": [
1920
+ {
1921
+ "exists": "#sd-cmp"
1922
+ }
1923
+ ],
1924
+ "detectPopup": [
1925
+ {
1926
+ "visible": "#sd-cmp"
1927
+ }
1928
+ ],
1929
+ "optIn": [
1930
+ {
1931
+ "waitForThenClick": "#sd-cmp .sd-cmp-3cRQ2"
1932
+ }
1933
+ ],
1934
+ "optOut": [
1935
+ {
1936
+ "waitForThenClick": "#sd-cmp .sd-cmp-1pO44"
1937
+ }
1938
+ ],
1939
+ "test": [
1940
+ {
1941
+ "eval": "document.cookie.includes('euconsent-v2')"
1942
+ }
1943
+ ]
1944
+ },
1276
1945
  {
1277
1946
  "name": "snigel",
1278
1947
  "detectCmp": [
@@ -1338,6 +2007,39 @@
1338
2007
  }
1339
2008
  ]
1340
2009
  },
2010
+ {
2011
+ "name": "tarteaucitron.js",
2012
+ "prehideSelectors": [
2013
+ "#tarteaucitronRoot"
2014
+ ],
2015
+ "detectCmp": [
2016
+ {
2017
+ "exists": "#tarteaucitronRoot"
2018
+ }
2019
+ ],
2020
+ "detectPopup": [
2021
+ {
2022
+ "visible": "#tarteaucitronRoot #tarteaucitronAlertSmall,#tarteaucitronRoot #tarteaucitronAlertBig",
2023
+ "check": "any"
2024
+ }
2025
+ ],
2026
+ "optIn": [
2027
+ {
2028
+ "eval": "tarteaucitron.userInterface.respondAll(true) || true"
2029
+ }
2030
+ ],
2031
+ "optOut": [
2032
+ {
2033
+ "eval": "tarteaucitron.userInterface.respondAll(false) || true"
2034
+ }
2035
+ ],
2036
+ "test": [
2037
+ {
2038
+ "eval": "document.cookie.match(/tarteaucitron=[^;]*/)[0].includes('false')",
2039
+ "comment": "sometimes there are required categories, so we check that at least something is false"
2040
+ }
2041
+ ]
2042
+ },
1341
2043
  {
1342
2044
  "name": "Tealium",
1343
2045
  "prehideSelectors": [
@@ -1357,13 +2059,6 @@
1357
2059
  }
1358
2060
  ],
1359
2061
  "optOut": [
1360
- {
1361
- "hide": [
1362
- "#__tealiumGDPRecModal",
1363
- "#__tealiumGDPRcpPrefs",
1364
- "#consent-layer"
1365
- ]
1366
- },
1367
2062
  {
1368
2063
  "waitForThenClick": "#cm-acceptNone,.js-accept-essential-cookies",
1369
2064
  "timeout": 1000
@@ -1388,6 +2083,66 @@
1388
2083
  }
1389
2084
  ]
1390
2085
  },
2086
+ {
2087
+ "name": "Termly",
2088
+ "prehideSelectors": [
2089
+ "#termly-code-snippet-support"
2090
+ ],
2091
+ "detectCmp": [
2092
+ {
2093
+ "exists": "#termly-code-snippet-support"
2094
+ }
2095
+ ],
2096
+ "detectPopup": [
2097
+ {
2098
+ "visible": "#termly-code-snippet-support div"
2099
+ }
2100
+ ],
2101
+ "optIn": [
2102
+ {
2103
+ "waitForThenClick": "[data-tid=\"banner-accept\"]"
2104
+ }
2105
+ ],
2106
+ "optOut": [
2107
+ {
2108
+ "if": {
2109
+ "exists": "[data-tid=\"banner-decline\"]"
2110
+ },
2111
+ "then": [
2112
+ {
2113
+ "click": "[data-tid=\"banner-decline\"]"
2114
+ }
2115
+ ],
2116
+ "else": [
2117
+ {
2118
+ "click": ".t-preference-button"
2119
+ },
2120
+ {
2121
+ "wait": 500
2122
+ },
2123
+ {
2124
+ "if": {
2125
+ "exists": ".t-declineAllButton"
2126
+ },
2127
+ "then": [
2128
+ {
2129
+ "click": ".t-declineAllButton"
2130
+ }
2131
+ ],
2132
+ "else": [
2133
+ {
2134
+ "waitForThenClick": ".t-preference-modal input[type=checkbox][checked]:not([disabled])",
2135
+ "all": true
2136
+ },
2137
+ {
2138
+ "waitForThenClick": ".t-saveButton"
2139
+ }
2140
+ ]
2141
+ }
2142
+ ]
2143
+ }
2144
+ ]
2145
+ },
1391
2146
  {
1392
2147
  "name": "Test page CMP",
1393
2148
  "prehideSelectors": [
@@ -1404,6 +2159,9 @@
1404
2159
  }
1405
2160
  ],
1406
2161
  "optIn": [
2162
+ {
2163
+ "waitFor": "#accept-all"
2164
+ },
1407
2165
  {
1408
2166
  "click": "#accept-all"
1409
2167
  }
@@ -1475,7 +2233,40 @@
1475
2233
  ]
1476
2234
  },
1477
2235
  {
1478
- "name": "usercentrics-1",
2236
+ "name": "UK Cookie Consent",
2237
+ "prehideSelectors": [
2238
+ "#catapult-cookie-bar"
2239
+ ],
2240
+ "detectCmp": [
2241
+ {
2242
+ "exists": "#catapult-cookie-bar"
2243
+ }
2244
+ ],
2245
+ "detectPopup": [
2246
+ {
2247
+ "exists": ".has-cookie-bar #catapult-cookie-bar"
2248
+ }
2249
+ ],
2250
+ "optIn": [
2251
+ {
2252
+ "click": "#catapultCookie"
2253
+ }
2254
+ ],
2255
+ "optOut": [
2256
+ {
2257
+ "hide": [
2258
+ "#catapult-cookie-bar"
2259
+ ]
2260
+ }
2261
+ ],
2262
+ "test": [
2263
+ {
2264
+ "eval": "!document.cookie.includes('catAccCookies')"
2265
+ }
2266
+ ]
2267
+ },
2268
+ {
2269
+ "name": "usercentrics-api",
1479
2270
  "detectCmp": [
1480
2271
  {
1481
2272
  "exists": "#usercentrics-root"
@@ -1483,7 +2274,7 @@
1483
2274
  ],
1484
2275
  "detectPopup": [
1485
2276
  {
1486
- "eval": "!!document.querySelector('#usercentrics-root').shadowRoot.querySelector('#uc-center-container')"
2277
+ "eval": "typeof UC_UI === 'object'"
1487
2278
  }
1488
2279
  ],
1489
2280
  "optIn": [
@@ -1511,6 +2302,34 @@
1511
2302
  }
1512
2303
  ]
1513
2304
  },
2305
+ {
2306
+ "name": "usercentrics-button",
2307
+ "detectCmp": [
2308
+ {
2309
+ "exists": "#usercentrics-button"
2310
+ }
2311
+ ],
2312
+ "detectPopup": [
2313
+ {
2314
+ "visible": "#usercentrics-button #uc-btn-accept-banner"
2315
+ }
2316
+ ],
2317
+ "optIn": [
2318
+ {
2319
+ "click": "#usercentrics-button #uc-btn-accept-banner"
2320
+ }
2321
+ ],
2322
+ "optOut": [
2323
+ {
2324
+ "click": "#usercentrics-button #uc-btn-deny-banner"
2325
+ }
2326
+ ],
2327
+ "test": [
2328
+ {
2329
+ "eval": "JSON.parse(localStorage.getItem('usercentrics')).consents.every(c => c.isEssential || !c.consentStatus)"
2330
+ }
2331
+ ]
2332
+ },
1514
2333
  {
1515
2334
  "name": "uswitch.com",
1516
2335
  "prehideSelectors": [
@@ -1539,6 +2358,9 @@
1539
2358
  },
1540
2359
  {
1541
2360
  "name": "vodafone.de",
2361
+ "runContext": {
2362
+ "url": "https://www.vodafone.de/"
2363
+ },
1542
2364
  "prehideSelectors": [
1543
2365
  ".dip-consent,.dip-consent-container"
1544
2366
  ],
@@ -1554,15 +2376,12 @@
1554
2376
  ],
1555
2377
  "optOut": [
1556
2378
  {
1557
- "click": ".dip-consent-btn.white-btn"
1558
- },
1559
- {
1560
- "eval": "Array.from(document.querySelectorAll('.dip-consent-btn.red-btn')).filter(e => e.innerText === 'Auswahl bestätigen')[0].click() || true"
2379
+ "click": ".dip-consent-btn[tabindex=\"2\"]"
1561
2380
  }
1562
2381
  ],
1563
2382
  "optIn": [
1564
2383
  {
1565
- "click": ".dip-consent-btn.red-btn"
2384
+ "click": ".dip-consent-btn[tabindex=\"1\"]"
1566
2385
  }
1567
2386
  ]
1568
2387
  },
@@ -1631,6 +2450,38 @@
1631
2450
  }
1632
2451
  ]
1633
2452
  },
2453
+ {
2454
+ "name": "WP Cookie Notice for GDPR",
2455
+ "comment": "https://wordpress.org/plugins/gdpr-cookie-consent/",
2456
+ "prehideSelectors": [
2457
+ "#gdpr-cookie-consent-bar"
2458
+ ],
2459
+ "detectCmp": [
2460
+ {
2461
+ "exists": "#gdpr-cookie-consent-bar"
2462
+ }
2463
+ ],
2464
+ "detectPopup": [
2465
+ {
2466
+ "visible": "#gdpr-cookie-consent-bar"
2467
+ }
2468
+ ],
2469
+ "optIn": [
2470
+ {
2471
+ "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_accept"
2472
+ }
2473
+ ],
2474
+ "optOut": [
2475
+ {
2476
+ "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_reject"
2477
+ }
2478
+ ],
2479
+ "test": [
2480
+ {
2481
+ "eval": "document.cookie.includes('wpl_viewed_cookie=no')"
2482
+ }
2483
+ ]
2484
+ },
1634
2485
  {
1635
2486
  "name": "xing.com",
1636
2487
  "detectCmp": [