@duckduckgo/autoconsent 16.62.0 → 17.0.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 (139) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/dist/addon-firefox/background.bundle.js +1 -0
  3. package/dist/addon-firefox/compact-rules.json +1 -1
  4. package/dist/addon-firefox/content.bundle.js +176 -36
  5. package/dist/addon-firefox/manifest.json +1 -1
  6. package/dist/addon-firefox/popup.bundle.js +1 -0
  7. package/dist/addon-firefox/rule-index.json +1 -1
  8. package/dist/addon-firefox/rules.json +1 -1
  9. package/dist/addon-mv3/background.bundle.js +1 -0
  10. package/dist/addon-mv3/compact-rules.json +1 -1
  11. package/dist/addon-mv3/content.bundle.js +176 -36
  12. package/dist/addon-mv3/manifest.json +1 -1
  13. package/dist/addon-mv3/popup.bundle.js +1 -0
  14. package/dist/addon-mv3/rule-index.json +1 -1
  15. package/dist/addon-mv3/rules.json +1 -1
  16. package/dist/autoconsent.cjs.js +176 -36
  17. package/dist/autoconsent.esm.js +176 -36
  18. package/dist/autoconsent.playwright.js +179 -36
  19. package/dist/autoconsent.standalone.js +177 -37
  20. package/dist/heuristics.cjs.js +14 -1
  21. package/dist/heuristics.mjs +14 -1
  22. package/dist/types/heuristics.d.ts +12 -3
  23. package/dist/types/types.d.ts +12 -1
  24. package/lib/cmps/base.ts +5 -1
  25. package/lib/heuristic-patterns.ts +17 -1
  26. package/lib/heuristics.ts +240 -45
  27. package/lib/types.ts +16 -1
  28. package/lib/utils.ts +1 -0
  29. package/package.json +2 -2
  30. package/readme.md +1 -1
  31. package/rules/autoconsent/appconsent-legacy.json +22 -1
  32. package/rules/autoconsent/asrock.json +44 -0
  33. package/rules/autoconsent/beetle-tracking.json +22 -0
  34. package/rules/autoconsent/casier-judiciaire-justice-gouv-fr.json +40 -0
  35. package/rules/autoconsent/civilservicejobs-service-gov-uk.json +38 -0
  36. package/rules/autoconsent/ckies.json +1 -1
  37. package/rules/autoconsent/consentmo.json +5 -2
  38. package/rules/autoconsent/cookie-script.json +34 -15
  39. package/rules/autoconsent/cookiesinfo-closecookies.json +9 -0
  40. package/rules/autoconsent/dack365.json +35 -0
  41. package/rules/autoconsent/epaas.json +18 -1
  42. package/rules/autoconsent/eu-cookie-law-popup.json +33 -0
  43. package/rules/autoconsent/fascicolosanitario-lombardia.json +14 -0
  44. package/rules/autoconsent/fnsp-cookieconsent.json +30 -0
  45. package/rules/autoconsent/fod-fujitv.json +13 -0
  46. package/rules/autoconsent/fundingchoices.json +12 -2
  47. package/rules/autoconsent/hkdir.json +33 -0
  48. package/rules/autoconsent/hyrabostad.json +21 -0
  49. package/rules/autoconsent/insided.json +15 -0
  50. package/rules/autoconsent/jokul-cookie-consent.json +28 -0
  51. package/rules/autoconsent/kartverket.json +46 -0
  52. package/rules/autoconsent/lego.json +27 -5
  53. package/rules/autoconsent/luxmed.json +33 -0
  54. package/rules/autoconsent/mars-cookies-prompt.json +20 -0
  55. package/rules/autoconsent/meta-cookie-dialog.json +37 -0
  56. package/rules/autoconsent/mittanbud.json +33 -0
  57. package/rules/autoconsent/niedziela-pl.json +35 -0
  58. package/rules/autoconsent/nikkeibp.json +10 -0
  59. package/rules/autoconsent/onecom-cookie-banner.json +25 -0
  60. package/rules/autoconsent/oslosportslager.no.json +34 -0
  61. package/rules/autoconsent/plex.tv.json +52 -0
  62. package/rules/autoconsent/poki.json +37 -0
  63. package/rules/autoconsent/polisen-se.json +26 -0
  64. package/rules/autoconsent/radio-canada.json +28 -0
  65. package/rules/autoconsent/regjeringen.no.json +13 -0
  66. package/rules/autoconsent/roll20.json +50 -0
  67. package/rules/autoconsent/romeo.json +47 -0
  68. package/rules/autoconsent/sirdata.json +8 -3
  69. package/rules/autoconsent/site-notifications-cookie-usage.json +25 -0
  70. package/rules/autoconsent/sparebank1-optin.json +10 -0
  71. package/rules/autoconsent/stockholm-stad.json +42 -0
  72. package/rules/autoconsent/stright.json +19 -1
  73. package/rules/autoconsent/stripchat.com.json +26 -5
  74. package/rules/autoconsent/tri-table.json +6 -2
  75. package/rules/autoconsent/tvp.json +27 -0
  76. package/rules/autoconsent/urvaerket.json +33 -0
  77. package/rules/autoconsent/vinnova-se.json +50 -0
  78. package/rules/autoconsent/volvocars-com.json +23 -2
  79. package/rules/autoconsent/vortex-consent.json +33 -0
  80. package/rules/autoconsent/vue-cookie-accept-decline.json +42 -0
  81. package/rules/compact-rules.json +1 -1
  82. package/rules/rule-index.json +1 -1
  83. package/rules/rules.json +1 -1
  84. package/tests/appconsent-legacy.spec.ts +1 -1
  85. package/tests/asrock.spec.ts +3 -0
  86. package/tests/beetle-tracking.spec.ts +3 -0
  87. package/tests/casier-judiciaire-justice-gouv-fr.spec.ts +3 -0
  88. package/tests/civilservicejobs-service-gov-uk.spec.ts +3 -0
  89. package/tests/consentmo.spec.ts +2 -0
  90. package/tests/cookie-script.spec.ts +5 -0
  91. package/tests/cookiesinfo-closecookies.spec.ts +8 -0
  92. package/tests/dack365.spec.ts +3 -0
  93. package/tests/epaas.spec.ts +3 -0
  94. package/tests/eu-cookie-law-popup.spec.ts +8 -0
  95. package/tests/fascicolosanitario-lombardia.spec.ts +3 -0
  96. package/tests/fnsp-cookieconsent.spec.ts +9 -0
  97. package/tests/fod-fujitv.spec.ts +3 -0
  98. package/tests/fundingchoices.spec.ts +7 -1
  99. package/tests/hkdir.spec.ts +10 -0
  100. package/tests/hyrabostad.spec.ts +3 -0
  101. package/tests/insided.spec.ts +9 -0
  102. package/tests/jokul-cookie-consent.spec.ts +3 -0
  103. package/tests/kartverket.spec.ts +3 -0
  104. package/tests/luxmed.spec.ts +3 -0
  105. package/tests/mars-cookies-prompt.spec.ts +3 -0
  106. package/tests/meta-cookie-dialog.spec.ts +14 -0
  107. package/tests/mittanbud.spec.ts +3 -0
  108. package/tests/niedziela-pl.spec.ts +3 -0
  109. package/tests/nikkeibp.spec.ts +8 -0
  110. package/tests/onecom-cookie-banner.spec.ts +5 -0
  111. package/tests/oslosportslager.no.spec.ts +3 -0
  112. package/tests/plex.tv.spec.ts +5 -0
  113. package/tests/poki.spec.ts +6 -0
  114. package/tests/polisen-se.spec.ts +3 -0
  115. package/tests/radio-canada.spec.ts +15 -0
  116. package/tests/regjeringen.no.spec.ts +3 -0
  117. package/tests/roll20.spec.ts +3 -0
  118. package/tests/romeo.spec.ts +3 -0
  119. package/tests/sirdata.spec.ts +13 -1
  120. package/tests/site-notifications-cookie-usage.spec.ts +3 -0
  121. package/tests/sparebank1-optin.spec.ts +8 -0
  122. package/tests/stockholm-stad.spec.ts +7 -0
  123. package/tests/stright.spec.ts +11 -0
  124. package/tests/stripchat.com.spec.ts +4 -1
  125. package/tests/tri-table.spec.ts +1 -1
  126. package/tests/tvp.spec.ts +3 -0
  127. package/tests/urvaerket.spec.ts +13 -0
  128. package/tests/vinnova-se.spec.ts +6 -0
  129. package/tests/volvocars-com.spec.ts +1 -1
  130. package/tests/vortex-consent.spec.ts +18 -0
  131. package/tests/vue-cookie-accept-decline.spec.ts +8 -0
  132. package/tests-wtr/heuristics/get-actionable-popups.ts +41 -7
  133. package/tests-wtr/heuristics/get-potential-popups.test.ts +235 -4
  134. package/tests-wtr/heuristics/heuristic-cmp.ts +16 -1
  135. package/tests-wtr/heuristics/heuristics-utils.test.ts +49 -0
  136. package/rules/generated/auto_CA_plex.tv_ee4.json +0 -40
  137. package/rules/generated/auto_CA_support.plex.tv_gn3.json +0 -40
  138. package/tests/generated/auto_CA_plex.tv_ee4.spec.ts +0 -2
  139. package/tests/generated/auto_CA_support.plex.tv_gn3.spec.ts +0 -6
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "asrock",
3
+ "vendorUrl": "https://www.asrock.com/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://(\\w+\\.)?asrock\\.com/"
6
+ },
7
+ "prehideSelectors": [],
8
+ "detectCmp": [
9
+ {
10
+ "exists": "#AcceptCookies2 #MrktConfirm"
11
+ }
12
+ ],
13
+ "detectPopup": [
14
+ {
15
+ "visible": "#AcceptCookies"
16
+ }
17
+ ],
18
+ "optIn": [
19
+ {
20
+ "waitForThenClick": "#AcceptCookies input[onclick*=SetCookie]"
21
+ }
22
+ ],
23
+ "optOut": [
24
+ {
25
+ "waitForThenClick": "#AcceptCookies input[onclick*=AcceptCookies2]"
26
+ },
27
+ {
28
+ "waitForVisible": "#AcceptCookies2"
29
+ },
30
+ {
31
+ "click": "#AcceptCookies2 input[type=checkbox]:checked",
32
+ "all": true,
33
+ "optional": true
34
+ },
35
+ {
36
+ "click": "#AcceptCookies2 input[onclick*=SetCookie]"
37
+ }
38
+ ],
39
+ "test": [
40
+ {
41
+ "cookieContains": "MrktConfirm=false"
42
+ }
43
+ ]
44
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "beetle-tracking",
3
+ "vendorUrl": "https://beetle-tracking.com/",
4
+ "prehideSelectors": ["beetle-tracking-consent-modal"],
5
+ "detectCmp": [{ "exists": ["beetle-tracking-consent-modal", ".consent"] }],
6
+ "detectPopup": [{ "visible": ["beetle-tracking-consent-modal", ".consent__dialog-wrapper"] }],
7
+ "optIn": [
8
+ {
9
+ "waitForThenClick": ["beetle-tracking-consent-modal", ".consent__button-accept-all"],
10
+ "retry": 10,
11
+ "retryInterval": 500
12
+ }
13
+ ],
14
+ "optOut": [
15
+ {
16
+ "waitForThenClick": ["beetle-tracking-consent-modal", ".consent__button-decline-all"],
17
+ "retry": 10,
18
+ "retryInterval": 500
19
+ }
20
+ ],
21
+ "test": [{ "cookieContains": "\"bt_marketing\":false" }]
22
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "casier-judiciaire-justice-gouv-fr",
3
+ "vendorUrl": "https://casier-judiciaire.justice.gouv.fr/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://casier-judiciaire\\.justice\\.gouv\\.fr/"
6
+ },
7
+ "prehideSelectors": ["#cookie_banner #myModal"],
8
+ "detectCmp": [
9
+ {
10
+ "exists": "#cookie_banner #myModal #popupCross"
11
+ }
12
+ ],
13
+ "detectPopup": [
14
+ {
15
+ "visible": "#cookie_banner #myModal"
16
+ }
17
+ ],
18
+ "optIn": [
19
+ {
20
+ "waitForThenClick": "#myModal #popupCross"
21
+ }
22
+ ],
23
+ "optOut": [
24
+ {
25
+ "waitForThenClick": "#myModal #popupCross"
26
+ },
27
+ {
28
+ "waitForVisible": "#cookie_banner #myModal",
29
+ "check": "none",
30
+ "timeout": 2000,
31
+ "optional": true
32
+ }
33
+ ],
34
+ "test": [
35
+ {
36
+ "visible": "#cookie_banner #myModal",
37
+ "check": "none"
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "civilservicejobs-service-gov-uk",
3
+ "runContext": {
4
+ "urlPattern": "^https?://(\\w+\\.)?civilservicejobs\\.service\\.gov\\.uk/"
5
+ },
6
+ "prehideSelectors": ["#csr-cookie-message"],
7
+ "detectCmp": [
8
+ {
9
+ "exists": "#csr-cookie-message #accept_essential_cookies_button"
10
+ }
11
+ ],
12
+ "detectPopup": [
13
+ {
14
+ "visible": "#csr-cookie-message #accept_essential_cookies_button"
15
+ }
16
+ ],
17
+ "optIn": [
18
+ {
19
+ "waitForThenClick": "#csr-cookie-message #accept_all_cookies_button"
20
+ }
21
+ ],
22
+ "optOut": [
23
+ {
24
+ "waitForThenClick": "#csr-cookie-message #accept_essential_cookies_button"
25
+ },
26
+ {
27
+ "waitForVisible": "#csr-cookie-message",
28
+ "check": "none",
29
+ "timeout": 2000,
30
+ "optional": true
31
+ }
32
+ ],
33
+ "test": [
34
+ {
35
+ "cookieContains": "cookies_accepted=essential"
36
+ }
37
+ ]
38
+ }
@@ -4,7 +4,7 @@
4
4
  "prehideSelectors": [".cc-individual-cookie-settings"],
5
5
  "detectCmp": [
6
6
  {
7
- "exists": ".cc-individual-cookie-settings"
7
+ "exists": ".cc-individual-cookie-settings #cookie-settings-reject-all"
8
8
  }
9
9
  ],
10
10
  "detectPopup": [
@@ -55,7 +55,7 @@
55
55
  {
56
56
  "waitForVisible": [
57
57
  "csm-cookie-consent",
58
- ".csm-wrapper .cc-deny, .csm-wrapper [data-csm-button-type='accept_selected']"
58
+ ".csm-wrapper .cc-deny, .csm-wrapper [data-csm-button-type='accept_selected'], .csm-wrapper [data-preferences-csm-button-type='accept_selected']"
59
59
  ]
60
60
  },
61
61
  {
@@ -69,7 +69,10 @@
69
69
  ],
70
70
  "else": [
71
71
  {
72
- "click": ["csm-cookie-consent", ".csm-wrapper [data-csm-button-type='accept_selected']"]
72
+ "click": [
73
+ "csm-cookie-consent",
74
+ ".csm-wrapper [data-csm-button-type='accept_selected'], .csm-wrapper [data-preferences-csm-button-type='accept_selected']"
75
+ ]
73
76
  }
74
77
  ]
75
78
  }
@@ -9,27 +9,46 @@
9
9
  "if": { "exists": "#cookiescript_reject" },
10
10
  "then": [{ "wait": 100 }, { "click": "#cookiescript_reject" }],
11
11
  "else": [
12
- { "click": "#cookiescript_manage" },
13
- { "waitForVisible": ".cookiescript_fsd_main, #cookiescript_save", "timeout": 3000, "optional": true },
14
12
  {
15
- "if": { "exists": ".cookiescript_fsd_main" },
16
- "then": [{ "waitForThenClick": "#cookiescript_reject" }],
17
- "else": [
13
+ "if": { "exists": "#cookiescript_manage" },
14
+ "then": [
15
+ { "click": "#cookiescript_manage" },
16
+ { "waitForVisible": ".cookiescript_fsd_main, #cookiescript_save", "timeout": 3000, "optional": true },
18
17
  {
19
- "if": { "visible": "#cookiescript_save" },
20
- "then": [
18
+ "if": { "exists": ".cookiescript_fsd_main" },
19
+ "then": [{ "waitForThenClick": "#cookiescript_reject" }],
20
+ "else": [
21
21
  {
22
- "if": {
23
- "exists": "#cookiescript_injected input.cookiescript_checkbox_input:checked:not(:disabled), .cookiescript_banner_container input.cokiescript_checkbox:checked:not(:disabled)"
24
- },
22
+ "if": { "visible": "#cookiescript_save" },
25
23
  "then": [
26
24
  {
27
- "click": "#cookiescript_injected input.cookiescript_checkbox_input:checked:not(:disabled), .cookiescript_banner_container input.cokiescript_checkbox:checked:not(:disabled)",
28
- "all": true
29
- }
30
- ]
25
+ "if": {
26
+ "exists": "#cookiescript_injected input.cookiescript_checkbox_input:checked:not(:disabled), .cookiescript_banner_container input.cokiescript_checkbox:checked:not(:disabled)"
27
+ },
28
+ "then": [
29
+ {
30
+ "click": "#cookiescript_injected input.cookiescript_checkbox_input:checked:not(:disabled), .cookiescript_banner_container input.cokiescript_checkbox:checked:not(:disabled)",
31
+ "all": true
32
+ }
33
+ ]
34
+ },
35
+ { "waitForThenClick": "#cookiescript_save", "retry": 6, "retryInterval": 1000 }
36
+ ],
37
+ "else": [{ "click": "#cookiescript_close, .cookiescript_close_btn" }]
38
+ }
39
+ ]
40
+ }
41
+ ],
42
+ "else": [
43
+ {
44
+ "if": { "exists": "#cookiescript_save" },
45
+ "then": [
46
+ {
47
+ "click": "#cookiescript_injected input.cookiescript_checkbox_input:checked:not(:disabled), .cookiescript_banner_container input.cokiescript_checkbox:checked:not(:disabled)",
48
+ "all": true,
49
+ "optional": true
31
50
  },
32
- { "waitForThenClick": "#cookiescript_save", "retry": 6, "retryInterval": 1000 }
51
+ { "click": "#cookiescript_save" }
33
52
  ],
34
53
  "else": [{ "click": "#cookiescript_close, .cookiescript_close_btn" }]
35
54
  }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "cookiesinfo-closecookies",
3
+ "prehideSelectors": [],
4
+ "detectCmp": [{ "exists": "#cookiesInfo #closeCookies" }],
5
+ "detectPopup": [{ "visible": "#cookiesInfo #closeCookies" }],
6
+ "optIn": [{ "waitForThenClick": "#cookiesInfo #closeCookies" }],
7
+ "optOut": [{ "waitForThenClick": "#cookiesInfo #closeCookies" }],
8
+ "test": [{ "waitForVisible": "#cookiesInfo", "check": "none", "timeout": 2000 }]
9
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "dack365",
3
+ "vendorUrl": "https://www.dack365.se/",
4
+ "prehideSelectors": [".cookie-consent-banner:has(#FormCookieConsentAll)"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".cookie-consent-banner #FormCookieConsentAll"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": ".cookie-consent-banner .btn-cookie-consent-settings"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "waitForThenClick": ".cookie-consent-banner .btn-cookie-consent-allow-all"
18
+ }
19
+ ],
20
+ "optOut": [
21
+ {
22
+ "waitForThenClick": ".cookie-consent-banner .btn-cookie-consent-settings"
23
+ },
24
+ {
25
+ "waitForThenClick": ".modal-cookie-consent .btn-cookie-consent-modal-disallow-all"
26
+ }
27
+ ],
28
+ "test": [
29
+ {
30
+ "waitForVisible": ".cookie-consent-banner",
31
+ "check": "none",
32
+ "timeout": 5000
33
+ }
34
+ ]
35
+ }
@@ -11,7 +11,24 @@
11
11
  "else": [
12
12
  { "waitForThenClick": ["epaas-consent-drawer-shell", "button.personalize-button"] },
13
13
  { "waitFor": ["epaas-consent-drawer-shell", "epaas-policy-page-shell"] },
14
- { "waitForThenClick": ["epaas-consent-drawer-shell", "button.save-button"] }
14
+ {
15
+ "waitFor": ["epaas-consent-drawer-shell", "epaas-policy-page-shell", "label[class*='category-header__switch']"],
16
+ "optional": true
17
+ },
18
+ {
19
+ "click": ["epaas-consent-drawer-shell", "epaas-policy-page-shell", "label.category-header__switch--on input"],
20
+ "all": true,
21
+ "optional": true
22
+ },
23
+ { "waitFor": ["epaas-consent-drawer-shell", "section.consentDrawer.layered button.accept-button"] },
24
+ {
25
+ "if": { "exists": ["epaas-consent-drawer-shell", "button.save-button"] },
26
+ "then": [{ "click": ["epaas-consent-drawer-shell", "button.save-button"] }],
27
+ "else": [
28
+ { "waitFor": ["epaas-consent-drawer-shell", "epaas-policy-page-shell", "label.category-header__switch--off"] },
29
+ { "click": ["epaas-consent-drawer-shell", "button.accept-button"] }
30
+ ]
31
+ }
15
32
  ]
16
33
  }
17
34
  ],
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "eu-cookie-law-popup",
3
+ "vendorUrl": "https://github.com/wimagguc/jquery-eu-cookie-law-popup",
4
+ "prehideSelectors": [".eupopup-container"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".eupopup-container > .eupopup-closebutton"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": ".eupopup-container > .eupopup-closebutton",
13
+ "check": "any"
14
+ }
15
+ ],
16
+ "optIn": [
17
+ {
18
+ "waitForThenClick": ".eupopup-container .eupopup-button_1"
19
+ }
20
+ ],
21
+ "optOut": [
22
+ {
23
+ "waitForThenClick": ".eupopup-container > .eupopup-closebutton"
24
+ }
25
+ ],
26
+ "test": [
27
+ {
28
+ "waitForVisible": ".eupopup-container > .eupopup-closebutton",
29
+ "check": "none",
30
+ "timeout": 2000
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "fascicolosanitario-lombardia",
3
+ "vendorUrl": "https://www.fascicolosanitario.regione.lombardia.it/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://(\\w+\\.)?fascicolosanitario\\.regione\\.lombardia\\.it/"
6
+ },
7
+ "cosmetic": false,
8
+ "prehideSelectors": ["#cookie-bar"],
9
+ "detectCmp": [{ "exists": "#cookie-bar #cookieBarClose" }],
10
+ "detectPopup": [{ "visible": "#cookie-bar[aria-hidden=\"false\"]" }],
11
+ "optIn": [{ "waitForThenClick": "#cookie-bar #cookieBarClose .cookie-bar-close" }],
12
+ "optOut": [{ "waitForThenClick": "#cookie-bar #cookieBarClose .cookie-bar-close" }],
13
+ "test": [{ "cookieContains": "FSE-COOKIEBAR=hide" }]
14
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "fnsp-cookieconsent",
3
+ "vendorUrl": "https://www.helse-bergen.no/",
4
+ "prehideSelectors": ["[class*=\"_cookieconsent-banner--open_\"]"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": "[class*=\"_cookieconsent-banner_\"] [class*=\"_cookieconsent__button-container_\"]"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": "[class*=\"_cookieconsent-banner--open_\"] [class*=\"_cookieconsent--initial_\"]"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "waitForThenClick": "[class*=\"_cookieconsent--initial_\"] [class*=\"_cookieconsent__button-container_\"] > button:nth-child(1)"
18
+ }
19
+ ],
20
+ "optOut": [
21
+ {
22
+ "waitForThenClick": "[class*=\"_cookieconsent--initial_\"] [class*=\"_cookieconsent__button-container_\"] > button:nth-child(2)"
23
+ }
24
+ ],
25
+ "test": [
26
+ {
27
+ "cookieContains": "%22analyticsConsent%22%3Afalse%2C%22thirdPartyConsent%22%3Afalse%2C%22surveyConsent%22%3Afalse"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "fod-fujitv",
3
+ "vendorUrl": "https://fod.fujitv.co.jp/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://fod\\.fujitv\\.co\\.jp/"
6
+ },
7
+ "prehideSelectors": [".cookieCheckContainer"],
8
+ "detectCmp": [{ "visible": ".cookieCheckContainer .closeBtn" }],
9
+ "detectPopup": [{ "visible": ".cookieCheckContainer" }],
10
+ "optIn": [{ "waitForThenClick": ".cookieCheckContainer .closeBtn" }],
11
+ "optOut": [{ "waitForThenClick": ".cookieCheckContainer .closeBtn" }],
12
+ "test": [{ "cookieContains": "ACP=1" }]
13
+ }
@@ -4,9 +4,19 @@
4
4
  "detectCmp": [{ "exists": ".fc-consent-root" }],
5
5
  "detectPopup": [{ "exists": ".fc-dialog-container" }],
6
6
  "optOut": [
7
- { "click": ".fc-cta-do-not-consent,.fc-cta-manage-options" },
7
+ {
8
+ "if": { "exists": ".fc-cta-do-not-consent,.fc-cta-manage-options" },
9
+ "then": [{ "click": ".fc-cta-do-not-consent,.fc-cta-manage-options" }],
10
+ "else": [{ "exists": ".fc-li-only-placeholder" }]
11
+ },
8
12
  { "click": ".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked", "all": true, "optional": true },
9
13
  { "click": ".fc-confirm-choices", "optional": true }
10
14
  ],
11
- "optIn": [{ "click": ".fc-cta-consent" }]
15
+ "optIn": [
16
+ {
17
+ "if": { "exists": ".fc-cta-consent" },
18
+ "then": [{ "click": ".fc-cta-consent" }],
19
+ "else": [{ "exists": ".fc-li-only-placeholder" }, { "click": ".fc-confirm-choices" }]
20
+ }
21
+ ]
12
22
  }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "hkdir",
3
+ "vendorUrl": "https://hkdir.no/",
4
+ "prehideSelectors": [".hkd-cookie-banner"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".hkd-cookie-banner .hkd-cookie-banner-button-group"
8
+ },
9
+ {
10
+ "exists": "next-route-announcer"
11
+ }
12
+ ],
13
+ "detectPopup": [
14
+ {
15
+ "visible": ".hkd-cookie-banner"
16
+ }
17
+ ],
18
+ "optIn": [
19
+ {
20
+ "waitForThenClick": ".hkd-cookie-banner-button-group > button:nth-of-type(1)"
21
+ }
22
+ ],
23
+ "optOut": [
24
+ {
25
+ "waitForThenClick": ".hkd-cookie-banner-button-group > button:nth-of-type(2)"
26
+ }
27
+ ],
28
+ "test": [
29
+ {
30
+ "cookieContains": "cookie-consent=essential"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "hyrabostad.se",
3
+ "vendorUrl": "https://www.hyrabostad.se/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://(www\\.)?hyrabostad\\.se/"
6
+ },
7
+ "prehideSelectors": ["#consent-container"],
8
+ "detectCmp": [{ "exists": "#consent-container #consent" }],
9
+ "detectPopup": [{ "visible": "#consent-container #consent" }],
10
+ "optIn": [{ "waitForThenClick": "#consent button[onclick*='saveCookieSettings(true)']" }],
11
+ "optOut": [
12
+ { "waitForThenClick": "#consent button[data-bs-target='#cookieSettings']" },
13
+ { "waitForVisible": "#cookieSettings .modal-footer" },
14
+ {
15
+ "if": { "exists": "#grantAdStorageCookies:checked" },
16
+ "then": [{ "click": "#grantAdStorageCookies:checked" }]
17
+ },
18
+ { "waitForThenClick": "#cookieSettings button[onclick*='saveCookieSettings(false)']", "retry": 3, "retryInterval": 400 }
19
+ ],
20
+ "test": [{ "visible": "#consent-container #consent,#cookieSettings", "check": "none" }]
21
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "insided",
3
+ "vendorUrl": "https://www.gainsight.com/customer-communities/",
4
+ "cosmetic": false,
5
+ "runContext": {
6
+ "main": true,
7
+ "frame": false
8
+ },
9
+ "prehideSelectors": ["[data-preact=\"cookie-banner/index\"] .js-cookiebar"],
10
+ "detectCmp": [{ "exists": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
11
+ "detectPopup": [{ "visible": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
12
+ "optIn": [{ "waitForThenClick": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-accept" }],
13
+ "optOut": [{ "waitForThenClick": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
14
+ "test": [{ "visible": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny", "check": "none" }]
15
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "jokul-cookie-consent",
3
+ "vendorUrl": "https://jokul.fremtind.no/",
4
+ "prehideSelectors": [],
5
+ "detectCmp": [{ "exists": "[data-testid=\"jkl-cookie-consent-godta\"]" }],
6
+ "detectPopup": [{ "visible": "[data-testid=\"jkl-cookie-consent-godta\"]" }],
7
+ "optIn": [
8
+ {
9
+ "if": { "exists": "[data-testid=\"jkl-cookie-consent-godta-alle\"]" },
10
+ "then": [{ "waitForThenClick": "[data-testid=\"jkl-cookie-consent-godta-alle\"]" }],
11
+ "else": [{ "waitForThenClick": "[data-testid=\"jkl-cookie-consent-godta\"]" }]
12
+ }
13
+ ],
14
+ "optOut": [
15
+ {
16
+ "if": { "exists": "[data-testid=\"jkl-cookie-consent-nekt\"]" },
17
+ "then": [{ "waitForThenClick": "[data-testid=\"jkl-cookie-consent-nekt\"]" }],
18
+ "else": [
19
+ {
20
+ "if": { "exists": "[id^=\"jkl-cookie-modal\"] input[type=\"checkbox\"]:checked" },
21
+ "then": [{ "click": "[id^=\"jkl-cookie-modal\"] input[type=\"checkbox\"]:checked", "all": true }]
22
+ },
23
+ { "waitForThenClick": "[data-testid=\"jkl-cookie-consent-godta\"]" }
24
+ ]
25
+ }
26
+ ],
27
+ "test": [{ "cookieContains": "\"statistics\":\"denied\"" }]
28
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "kartverket",
3
+ "vendorUrl": "https://eiendomsregisteret.kartverket.no/",
4
+ "cosmetic": false,
5
+ "runContext": {
6
+ "urlPattern": "^https?://([a-z0-9-]+\\.)?kartverket\\.no/"
7
+ },
8
+ "prehideSelectors": ["#root > .chakra-stack:has(> div > p > a[href=\"/cookies\"])"],
9
+ "detectCmp": [
10
+ {
11
+ "exists": "button[aria-label^=\"Tilpass informasjonskap\"]"
12
+ }
13
+ ],
14
+ "detectPopup": [
15
+ {
16
+ "visible": "button[aria-label^=\"Tilpass informasjonskap\"]"
17
+ }
18
+ ],
19
+ "optIn": [
20
+ {
21
+ "waitForThenClick": "button[aria-label^=\"Tilpass informasjonskap\"] + button"
22
+ }
23
+ ],
24
+ "optOut": [
25
+ {
26
+ "waitForThenClick": "button[aria-label^=\"Tilpass informasjonskap\"]"
27
+ },
28
+ {
29
+ "waitForVisible": "xpath///button[contains(., \"Lagre val\")]"
30
+ },
31
+ {
32
+ "click": ".kvib-switch__root[data-state=\"checked\"]",
33
+ "optional": true
34
+ },
35
+ {
36
+ "click": "xpath///button[contains(., \"Lagre val\")]"
37
+ }
38
+ ],
39
+ "test": [
40
+ {
41
+ "waitForVisible": "xpath///button[contains(., \"Lagre val\")]",
42
+ "check": "none",
43
+ "timeout": 1000
44
+ }
45
+ ]
46
+ }
@@ -4,23 +4,45 @@
4
4
  "urlPattern": "^https?://(www\\.)?lego\\.com/"
5
5
  },
6
6
  "prehideSelectors": ["[class*=\"ConsentModal_consent-modal__modal-overlay\"]"],
7
- "detectCmp": [{ "exists": "[data-test=\"cookie-necessary-button\"]" }],
8
- "detectPopup": [{ "visible": "[data-test=\"cookie-necessary-button\"]" }],
7
+ "detectCmp": [
8
+ {
9
+ "any": [{ "exists": "[data-test=\"cookie-necessary-button\"]" }, { "exists": "[data-test=\"age-gate-overlay\"]" }]
10
+ }
11
+ ],
12
+ "detectPopup": [
13
+ {
14
+ "comment": "the consent modal is only usable after the visitor leaves the site selector gate",
15
+ "any": [{ "visible": "[data-test=\"cookie-necessary-button\"]" }, { "visible": "[data-test=\"age-gate-overlay\"]" }]
16
+ }
17
+ ],
9
18
  "optOut": [
19
+ {
20
+ "comment": "without AGE_GATE the modal is briefly shown, then replaced by the site selector gate and re-rendered after it",
21
+ "any": [{ "cookieContains": "AGE_GATE=" }, { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "timeout": 3000 }],
22
+ "optional": true
23
+ },
24
+ { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "check": "none", "timeout": 120000 },
10
25
  { "waitForThenClick": "[data-test=\"cookie-necessary-button\"]" },
11
26
  {
12
- "any": [{ "cookieContains": "AGE_GATE=" }, { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "timeout": 1000 }],
27
+ "any": [{ "cookieContains": "AGE_GATE=" }, { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "timeout": 3000 }],
13
28
  "optional": true
14
29
  },
15
30
  {
16
31
  "if": { "visible": "[data-test=\"age-gate-overlay\"]" },
17
32
  "then": [
18
- { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "check": "none", "timeout": 30000 },
33
+ { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "check": "none", "timeout": 120000 },
19
34
  { "waitForThenClick": "[data-test=\"cookie-necessary-button\"]", "timeout": 5000 }
20
35
  ],
21
36
  "optional": true
22
37
  }
23
38
  ],
24
- "optIn": [{ "waitForThenClick": "[data-test=\"cookie-accept-all\"]" }],
39
+ "optIn": [
40
+ {
41
+ "any": [{ "cookieContains": "AGE_GATE=" }, { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "timeout": 3000 }],
42
+ "optional": true
43
+ },
44
+ { "waitForVisible": "[data-test=\"age-gate-overlay\"]", "check": "none", "timeout": 120000 },
45
+ { "waitForThenClick": "[data-test=\"cookie-accept-all\"]" }
46
+ ],
25
47
  "test": [{ "cookieContains": "%22key%22%3A%22analytics%22%2C%22value%22%3Afalse" }]
26
48
  }