@duckduckgo/autoconsent 16.51.0 → 16.53.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.
- package/.github/workflows/ddg-release.yml +2 -2
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +94 -0
- package/dist/addon-firefox/compact-rules.json +1 -1
- package/dist/addon-firefox/content.bundle.js +4 -1
- package/dist/addon-firefox/manifest.json +1 -1
- package/dist/addon-firefox/rule-index.json +1 -1
- package/dist/addon-firefox/rules.json +1 -1
- package/dist/addon-mv3/compact-rules.json +1 -1
- package/dist/addon-mv3/content.bundle.js +4 -1
- package/dist/addon-mv3/manifest.json +1 -1
- package/dist/addon-mv3/rule-index.json +1 -1
- package/dist/addon-mv3/rules.json +1 -1
- package/dist/autoconsent.cjs.js +4 -1
- package/dist/autoconsent.esm.js +4 -1
- package/dist/autoconsent.playwright.js +4 -1
- package/dist/autoconsent.standalone.js +5 -2
- package/docs/rule-syntax.md +1 -1
- package/lib/dom-actions.ts +5 -1
- package/package.json +2 -2
- package/rules/autoconsent/accurx.json +26 -0
- package/rules/autoconsent/aliexpress.json +37 -13
- package/rules/autoconsent/burpee-com.json +22 -10
- package/rules/autoconsent/ccm19.json +31 -0
- package/rules/autoconsent/channel4.json +5 -5
- package/rules/autoconsent/citizensadvice.json +43 -0
- package/rules/autoconsent/civic-cookie-control.json +9 -9
- package/rules/autoconsent/clasohlson.com.json +13 -0
- package/rules/autoconsent/cm-cookie-manager.json +20 -0
- package/rules/autoconsent/community.screwfix.com.json +23 -0
- package/rules/autoconsent/complianz-optin.json +11 -1
- package/rules/autoconsent/concept3d.json +19 -0
- package/rules/autoconsent/conextra.json +18 -0
- package/rules/autoconsent/cookie-script.json +23 -2
- package/rules/autoconsent/cookiecuttr.json +3 -2
- package/rules/autoconsent/craft-cookie-consent.json +65 -0
- package/rules/autoconsent/cz-eshop-cookies-consent.json +9 -0
- package/rules/autoconsent/depop.json +16 -14
- package/rules/autoconsent/dsgvo.json +8 -2
- package/rules/autoconsent/dwaalzin-nu.json +13 -0
- package/rules/autoconsent/elsevier.json +3 -3
- package/rules/autoconsent/eneba.json +66 -0
- package/rules/autoconsent/ensighten.json +2 -2
- package/rules/autoconsent/europa-eu.json +11 -7
- package/rules/autoconsent/finna.json +29 -0
- package/rules/autoconsent/head-fi.json +35 -0
- package/rules/autoconsent/istore-co-za.json +18 -0
- package/rules/autoconsent/kiwico.json +48 -0
- package/rules/autoconsent/la-becanerie.json +13 -0
- package/rules/autoconsent/lta.json +22 -0
- package/rules/autoconsent/meteored.json +40 -0
- package/rules/autoconsent/mizuno-com.json +13 -0
- package/rules/autoconsent/mobirise-cookies-alert-cosmetic.json +30 -0
- package/rules/autoconsent/mobirise-cookies-alert.json +34 -0
- package/rules/autoconsent/msg-cookie.json +9 -0
- package/rules/autoconsent/pigu.json +35 -0
- package/rules/autoconsent/plentyshop.json +27 -0
- package/rules/autoconsent/posthog.json +35 -0
- package/rules/autoconsent/quantcast.json +96 -34
- package/rules/autoconsent/quick-cookie-consent.json +70 -0
- package/rules/autoconsent/schadefonds.json +15 -0
- package/rules/autoconsent/service2school.json +45 -0
- package/rules/autoconsent/sportmedizin-rheuma.json +17 -0
- package/rules/autoconsent/tealium.json +10 -4
- package/rules/autoconsent/tracsis-delay-repay.json +13 -0
- package/rules/autoconsent/truendo.json +28 -0
- package/rules/autoconsent/truevault-polaris.json +8 -0
- package/rules/autoconsent/ubisoft-com.json +64 -0
- package/rules/autoconsent/volvocars-com.json +1 -1
- package/rules/autoconsent/wbd-legal-terms.json +28 -10
- package/rules/compact-rules.json +1 -1
- package/rules/rule-index.json +1 -1
- package/rules/rules.json +1 -1
- package/tests/accurx.spec.ts +3 -0
- package/tests/aliexpress.spec.ts +5 -1
- package/tests/burpee-com.spec.ts +3 -0
- package/tests/ccm19.spec.ts +11 -0
- package/tests/channel4.spec.ts +7 -3
- package/tests/citizensadvice.spec.ts +3 -0
- package/tests/civic-cookie-control.spec.ts +9 -1
- package/tests/clasohlson.com.spec.ts +3 -0
- package/tests/cm-cookie-manager.spec.ts +11 -0
- package/tests/community.screwfix.com.spec.ts +5 -0
- package/tests/complianz-optin.spec.ts +5 -1
- package/tests/concept3d.spec.ts +8 -0
- package/tests/conextra.spec.ts +8 -0
- package/tests/cookie-script.spec.ts +8 -3
- package/tests/cookiecuttr.spec.ts +8 -1
- package/tests/craft-cookie-consent.spec.ts +9 -0
- package/tests/cz-eshop-cookies-consent.spec.ts +10 -0
- package/tests/depop.spec.ts +3 -1
- package/tests/dsgvo.spec.ts +8 -10
- package/tests/dwaalzin-nu.spec.ts +6 -0
- package/tests/elsevier.spec.ts +5 -1
- package/tests/eneba.spec.ts +3 -0
- package/tests/europa-eu.spec.ts +6 -1
- package/tests/finna.spec.ts +3 -0
- package/tests/head-fi.spec.ts +3 -0
- package/tests/istore-co-za.spec.ts +3 -0
- package/tests/kiwico.spec.ts +5 -0
- package/tests/la-becanerie.spec.ts +3 -0
- package/tests/lta.spec.ts +7 -0
- package/tests/meteored.spec.ts +9 -0
- package/tests/mizuno-com.spec.ts +7 -0
- package/tests/mobirise-cookies-alert-cosmetic.spec.ts +8 -0
- package/tests/mobirise-cookies-alert.spec.ts +3 -0
- package/tests/msg-cookie.spec.ts +10 -0
- package/tests/pigu.spec.ts +3 -0
- package/tests/plentyshop.spec.ts +7 -0
- package/tests/posthog.spec.ts +3 -0
- package/tests/quantcast.spec.ts +15 -7
- package/tests/quick-cookie-consent.spec.ts +8 -0
- package/tests/schadefonds.spec.ts +3 -0
- package/tests/service2school.spec.ts +3 -0
- package/tests/sportmedizin-rheuma.spec.ts +3 -0
- package/tests/tealium.spec.ts +3 -0
- package/tests/tracsis-delay-repay.spec.ts +6 -0
- package/tests/truendo.spec.ts +9 -0
- package/tests/ubisoft-com.spec.ts +12 -0
- package/tests/wbd-legal-terms.spec.ts +2 -0
- package/tests-wtr/dom-actions/dom-actions.click.ts +18 -0
- package/Dockerfile +0 -9
- package/rules/autoconsent/sandhills.json +0 -26
- package/tests/sandhills.spec.ts +0 -8
|
@@ -8,71 +8,133 @@
|
|
|
8
8
|
],
|
|
9
9
|
"detectPopup": [
|
|
10
10
|
{
|
|
11
|
-
"
|
|
11
|
+
"comment": "#qc-cmp2-ui is the GDPR dialog, #qc-cmp2-usp the US 'Do Not Process My Personal Information' (USP/MSPA) dialog",
|
|
12
|
+
"visible": "#qc-cmp2-ui,#qc-cmp2-usp"
|
|
12
13
|
}
|
|
13
14
|
],
|
|
14
15
|
"optOut": [
|
|
15
16
|
{
|
|
17
|
+
"comment": "US dialog: opt out with the toggles, then confirm",
|
|
16
18
|
"if": {
|
|
17
|
-
"exists": "#
|
|
19
|
+
"exists": "#qc-cmp2-usp"
|
|
18
20
|
},
|
|
19
21
|
"then": [
|
|
20
22
|
{
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
"waitFor": "#qc-cmp2-usp .qc-cmp2-list-item-header,#qc-cmp2-usp .qc-cmp2-toggle-switch",
|
|
24
|
+
"timeout": 2000,
|
|
25
|
+
"optional": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"comment": "some sites render the opt-out list collapsed, without toggles until it's expanded",
|
|
29
|
+
"click": "#qc-cmp2-usp .qc-cmp2-list-item:not(:has(.qc-cmp2-toggle-switch)) > .qc-cmp2-list-item-header",
|
|
30
|
+
"all": true,
|
|
31
|
+
"optional": true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"waitFor": "#qc-cmp2-usp .qc-cmp2-toggle-switch",
|
|
35
|
+
"timeout": 2000,
|
|
36
|
+
"optional": true
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"comment": "each toggle reads 'I want to opt-out of ...', so switching them on is the opt-out",
|
|
40
|
+
"click": "#qc-cmp2-usp .qc-cmp2-toggle-switch > button[aria-checked=\"false\"]",
|
|
41
|
+
"all": true,
|
|
42
|
+
"optional": true
|
|
43
|
+
},
|
|
25
44
|
{
|
|
26
|
-
"
|
|
45
|
+
"waitForThenClick": "#qc-cmp2-usp .qc-usp-ui-form-content button[mode=\"primary\"]",
|
|
27
46
|
"timeout": 2000
|
|
28
47
|
},
|
|
29
48
|
{
|
|
49
|
+
"comment": "confirming opens a success modal that stays until it's closed",
|
|
50
|
+
"waitForThenClick": "#qc-cmp2-mspa-success-modal button",
|
|
51
|
+
"timeout": 2000,
|
|
52
|
+
"optional": true
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"else": [
|
|
56
|
+
{
|
|
57
|
+
"comment": "match the reject button even while it's disabled: falling through to the branch below would click it too early",
|
|
30
58
|
"if": {
|
|
31
|
-
"exists": "
|
|
59
|
+
"exists": "#disagree-btn"
|
|
32
60
|
},
|
|
33
61
|
"then": [
|
|
34
62
|
{
|
|
35
|
-
"
|
|
63
|
+
"comment": "the reject button renders disabled with a loader, and clicks on it are dropped until it's enabled",
|
|
64
|
+
"waitForThenClick": "#disagree-btn:not([disabled])",
|
|
65
|
+
"timeout": 5000
|
|
36
66
|
}
|
|
37
67
|
],
|
|
38
68
|
"else": [
|
|
39
69
|
{
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
"waitForVisible": "#qc-cmp2-ui .qc-cmp2-consent-info"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"click": ".qc-cmp2-toggle-switch > button[aria-checked=\"true\"]",
|
|
47
|
-
"all": true,
|
|
48
|
-
"optional": true
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"click": [
|
|
52
|
-
".qc-cmp2-main",
|
|
53
|
-
"xpath///button[contains(., 'REJECT ALL') or contains(., 'ALLE VERWERPEN') or contains(., 'ΑΠΟΡΡΙΠΤΩ ΤΑ ΠΑΝΤΑ') or contains(., 'RESPINGERE TOTALĂ') or contains(., 'ALLE ABLEHNEN') or contains(., 'ODRZUCENIE') or contains(., 'BLOQUEAR TODO') or contains(., 'REJEITAR TODOS') or contains(., 'RIFIUTA TUTTO') or contains(., 'TOUT REFUSER') or contains(., 'ОТКЛОНИТЬ ВСЕХ')]"
|
|
54
|
-
],
|
|
55
|
-
"optional": true
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"wait": 500
|
|
70
|
+
"waitFor": ".qc-cmp2-summary-buttons button[mode=\"secondary\"]",
|
|
71
|
+
"timeout": 2000
|
|
59
72
|
},
|
|
60
73
|
{
|
|
74
|
+
"comment": "without #disagree-btn, a secondary button in second place rejects; otherwise reject from the 'more options' screen",
|
|
61
75
|
"if": {
|
|
62
|
-
"exists": ".qc-cmp2-buttons
|
|
76
|
+
"exists": ".qc-cmp2-summary-buttons button[mode=\"secondary\"]:nth-of-type(2)"
|
|
63
77
|
},
|
|
64
78
|
"then": [
|
|
65
79
|
{
|
|
66
|
-
"click": ".qc-cmp2-buttons
|
|
80
|
+
"click": ".qc-cmp2-summary-buttons button[mode=\"secondary\"]:nth-of-type(2)"
|
|
67
81
|
}
|
|
68
82
|
],
|
|
69
83
|
"else": [
|
|
70
84
|
{
|
|
71
|
-
"
|
|
85
|
+
"click": ".qc-cmp2-summary-buttons button[mode=\"secondary\"]:nth-of-type(1)"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"waitForVisible": "#qc-cmp2-ui .qc-cmp2-consent-info"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"comment": "turn off the purposes that are switched on by default",
|
|
92
|
+
"click": ".qc-cmp2-toggle-switch > button[aria-checked=\"true\"]",
|
|
93
|
+
"all": true,
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"comment": "'Reject all' has a localized label",
|
|
98
|
+
"click": [
|
|
72
99
|
".qc-cmp2-main",
|
|
73
|
-
"xpath///button[contains(.,'
|
|
100
|
+
"xpath///button[contains(., 'REJECT ALL') or contains(., 'ALLE VERWERPEN') or contains(., 'ΑΠΟΡΡΙΠΤΩ ΤΑ ΠΑΝΤΑ') or contains(., 'RESPINGERE TOTALĂ') or contains(., 'ALLE ABLEHNEN') or contains(., 'ODRZUCENIE') or contains(., 'BLOQUEAR TODO') or contains(., 'REJEITAR TODOS') or contains(., 'RIFIUTA TUTTO') or contains(., 'TOUT REFUSER') or contains(., 'ОТКЛОНИТЬ ВСЕХ')]"
|
|
74
101
|
],
|
|
75
|
-
"
|
|
102
|
+
"optional": true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"comment": "'Reject all' can save and close the dialog on its own; give it up to 1s to close before the visibility check",
|
|
106
|
+
"waitForVisible": "#qc-cmp2-ui",
|
|
107
|
+
"check": "none",
|
|
108
|
+
"timeout": 1000,
|
|
109
|
+
"optional": true
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"comment": "only save if 'Reject all' left the dialog open",
|
|
113
|
+
"if": {
|
|
114
|
+
"visible": "#qc-cmp2-ui"
|
|
115
|
+
},
|
|
116
|
+
"then": [
|
|
117
|
+
{
|
|
118
|
+
"comment": "'Save & Exit' is the primary button in the desktop layout; otherwise match its localized label",
|
|
119
|
+
"if": {
|
|
120
|
+
"exists": ".qc-cmp2-buttons-desktop > button[mode=primary]"
|
|
121
|
+
},
|
|
122
|
+
"then": [
|
|
123
|
+
{
|
|
124
|
+
"click": ".qc-cmp2-buttons-desktop > button[mode=primary]"
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"else": [
|
|
128
|
+
{
|
|
129
|
+
"waitForThenClick": [
|
|
130
|
+
".qc-cmp2-main",
|
|
131
|
+
"xpath///button[contains(.,'SAVE & EXIT') or contains(.,'SALVA ED ESCI') or contains(.,'GUARDAR Y SALIR') or contains(.,'SPEICHERN & VERLASSEN')"
|
|
132
|
+
],
|
|
133
|
+
"timeout": 5000
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
]
|
|
76
138
|
}
|
|
77
139
|
]
|
|
78
140
|
}
|
|
@@ -83,7 +145,7 @@
|
|
|
83
145
|
],
|
|
84
146
|
"optIn": [
|
|
85
147
|
{
|
|
86
|
-
"click": ".qc-cmp2-summary-buttons
|
|
148
|
+
"click": ".qc-cmp2-summary-buttons button[mode=\"primary\"]"
|
|
87
149
|
}
|
|
88
150
|
]
|
|
89
151
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "quick-cookie-consent",
|
|
3
|
+
"vendorUrl": "https://privacypolicies.com/cookie-consent/",
|
|
4
|
+
"prehideSelectors": [".cookieconsent-popup:has(.ui-icon-wrench)"],
|
|
5
|
+
"detectCmp": [
|
|
6
|
+
{
|
|
7
|
+
"exists": ".cookieconsent-popup .cookieconsent-button-wrap button:has(.ui-icon-wrench)"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"detectPopup": [
|
|
11
|
+
{
|
|
12
|
+
"visible": ".cookieconsent-popup .cookieconsent-button-wrap button:has(.ui-icon-wrench)"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"optIn": [
|
|
16
|
+
{
|
|
17
|
+
"waitForThenClick": ".cookieconsent-popup .cookieconsent-button-wrap button:has(.ui-icon-close)"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"optOut": [
|
|
21
|
+
{
|
|
22
|
+
"waitForThenClick": ".cookieconsent-popup .cookieconsent-button-wrap button:has(.ui-icon-wrench)"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"waitForVisible": ".cookieconsent-edit-settings .cookieconsent-level-changer"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"if": {
|
|
29
|
+
"exists": ".cookieconsent-level-changer > a:nth-of-type(2).activated"
|
|
30
|
+
},
|
|
31
|
+
"then": [
|
|
32
|
+
{
|
|
33
|
+
"click": ".cookieconsent-level-changer > a:first-of-type"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"if": {
|
|
39
|
+
"exists": ".cookieconsent-edit-settings .cookieconsent-dialog-close-btn"
|
|
40
|
+
},
|
|
41
|
+
"then": [
|
|
42
|
+
{
|
|
43
|
+
"click": ".cookieconsent-edit-settings .cookieconsent-dialog-close-btn"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"else": [
|
|
47
|
+
{
|
|
48
|
+
"click": ".cookieconsent-edit-settings .cookieconsent-dialog-close"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"test": [
|
|
54
|
+
{
|
|
55
|
+
"cookieContains": "cookie_consent_level="
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"cookieContains": "cookie_consent_level=tracking",
|
|
59
|
+
"negated": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"cookieContains": "cookie_consent_level=targeting",
|
|
63
|
+
"negated": true
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"cookieContains": "cookie_consent_level=functional",
|
|
67
|
+
"negated": true
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "schadefonds",
|
|
3
|
+
"vendorUrl": "https://www.schadefonds.nl/",
|
|
4
|
+
"runContext": {
|
|
5
|
+
"urlPattern": "^https?://(www\\.)?schadefonds\\.nl/"
|
|
6
|
+
},
|
|
7
|
+
"prehideSelectors": [".cc-window[aria-describedby=\"cookieconsent:desc\"]"],
|
|
8
|
+
"detectCmp": [{ "exists": ".cc-window.cc-type-info[aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }],
|
|
9
|
+
"detectPopup": [{ "visible": ".cc-window.cc-type-info[aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }],
|
|
10
|
+
"optIn": [{ "waitForThenClick": ".cc-window[aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }],
|
|
11
|
+
"optOut": [
|
|
12
|
+
{ "waitFor": "body.cookie-overlay", "timeout": 2000, "optional": true },
|
|
13
|
+
{ "waitForThenClick": ".cc-window[aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "service2school",
|
|
3
|
+
"vendorUrl": "https://service2school.org/",
|
|
4
|
+
"runContext": {
|
|
5
|
+
"urlPattern": "^https?://(www\\.)?service2school\\.org/"
|
|
6
|
+
},
|
|
7
|
+
"prehideSelectors": [".cookie-banner-mount-point", "#hs-eu-cookie-confirmation"],
|
|
8
|
+
"detectCmp": [
|
|
9
|
+
{
|
|
10
|
+
"exists": ".cookie-banner-mount-point section[aria-label='Cookie banner'] button.accept"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"cookieContains": "__hs_opt_out=",
|
|
14
|
+
"negated": true
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"detectPopup": [
|
|
18
|
+
{
|
|
19
|
+
"visible": ".cookie-banner-mount-point section[aria-label='Cookie banner']"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"optIn": [
|
|
23
|
+
{
|
|
24
|
+
"waitForThenClick": ".cookie-banner-mount-point button.accept"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"waitForThenClick": "#hs-eu-confirmation-button",
|
|
28
|
+
"timeout": 5000
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"optOut": [
|
|
32
|
+
{
|
|
33
|
+
"hide": ".cookie-banner-mount-point"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"waitForThenClick": "#hs-eu-decline-button",
|
|
37
|
+
"timeout": 5000
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"test": [
|
|
41
|
+
{
|
|
42
|
+
"cookieContains": "__hs_opt_out=yes"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sportmedizin-rheuma",
|
|
3
|
+
"vendorUrl": "https://www.sportmedizin-rheuma.de/",
|
|
4
|
+
"cosmetic": true,
|
|
5
|
+
"runContext": {
|
|
6
|
+
"urlPattern": "^https?://(www\\.)?sportmedizin-rheuma\\.de/"
|
|
7
|
+
},
|
|
8
|
+
"prehideSelectors": [".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"],
|
|
9
|
+
"detectCmp": [{ "exists": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"] .cc-compliance .cc-btn" }],
|
|
10
|
+
"detectPopup": [{ "visible": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"] .cc-compliance .cc-btn" }],
|
|
11
|
+
"optIn": [{ "waitForThenClick": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }],
|
|
12
|
+
"optOut": [
|
|
13
|
+
{ "hide": "[aria-describedby=\"cookieconsent:desc\"], .cc_overlay_bg" },
|
|
14
|
+
{ "stylesheet": "body#home { overflow: visible !important; }" }
|
|
15
|
+
],
|
|
16
|
+
"minimumRuleStepVersion": 3
|
|
17
|
+
}
|
|
@@ -6,11 +6,17 @@
|
|
|
6
6
|
"optOut": [
|
|
7
7
|
{ "eval": "EVAL_TEALIUM_1" },
|
|
8
8
|
{ "eval": "EVAL_TEALIUM_DONOTSELL" },
|
|
9
|
-
{ "hide": "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal" },
|
|
10
9
|
{
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
10
|
+
"if": { "exists": "#__tealiumGDPRecModal #rejectAll" },
|
|
11
|
+
"then": [{ "waitForThenClick": "#__tealiumGDPRecModal #rejectAll" }],
|
|
12
|
+
"else": [
|
|
13
|
+
{ "hide": "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#__tealiumImplicitmodal" },
|
|
14
|
+
{
|
|
15
|
+
"waitForThenClick": "#cm-acceptNone,.js-accept-essential-cookies,#continueWithoutAccepting,#no_consent,#consent_prompt_decline,#teal-decline-consent",
|
|
16
|
+
"timeout": 1000,
|
|
17
|
+
"optional": true
|
|
18
|
+
}
|
|
19
|
+
]
|
|
14
20
|
}
|
|
15
21
|
],
|
|
16
22
|
"optIn": [{ "hide": "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs" }, { "eval": "EVAL_TEALIUM_2" }],
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tracsis-delay-repay",
|
|
3
|
+
"vendorUrl": "https://www.delayrepaycompensation.com/",
|
|
4
|
+
"cosmetic": false,
|
|
5
|
+
"prehideSelectors": [".my-cookie-wrapper.cc-window"],
|
|
6
|
+
"detectCmp": [{ "exists": ".my-cookie-wrapper [aria-describedby=\"cookieconsent:desc\"] .cc-reject-all" }],
|
|
7
|
+
"detectPopup": [{ "visible": ".my-cookie-wrapper [aria-describedby=\"cookieconsent:desc\"] .cc-reject-all" }],
|
|
8
|
+
"optIn": [{ "waitForThenClick": ".my-cookie-wrapper:not(.cc-invisible) [aria-describedby=\"cookieconsent:desc\"] .cc-dismiss" }],
|
|
9
|
+
"optOut": [
|
|
10
|
+
{ "waitForThenClick": ".my-cookie-wrapper:not(.cc-invisible) [aria-describedby=\"cookieconsent:desc\"] .cc-reject-all", "retry": 2 }
|
|
11
|
+
],
|
|
12
|
+
"test": [{ "cookieContains": "cookieconsent_dismissed1=reject_all" }]
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "truendo",
|
|
3
|
+
"prehideSelectors": ["#truendo_container .tru_cookie-dialog_wrapper"],
|
|
4
|
+
"detectCmp": [{ "exists": "#truendo_container .tru_cookie-dialog_wrapper" }],
|
|
5
|
+
"detectPopup": [{ "visible": "#truendo_container .tru_cookie-dialog_wrapper" }],
|
|
6
|
+
"optIn": [
|
|
7
|
+
{
|
|
8
|
+
"waitForThenClick": ".tru_cookie-dialog_wrapper [data-cy=banner-ack-btn], .tru_cookie-dialog_wrapper #tru_accept_btn, .tru_cookie-dialog_wrapper button.tru_cookie-dialog_ok:not(#tru_deselect_btn)"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"optOut": [
|
|
12
|
+
{
|
|
13
|
+
"if": { "exists": ".tru_cookie-dialog_accept-only" },
|
|
14
|
+
"then": [{ "click": ".tru_cookie-dialog_accept-only .tru_cookie-dialog_message a[href='']" }],
|
|
15
|
+
"else": [
|
|
16
|
+
{
|
|
17
|
+
"click": ".tru_cookie-dialog_wrapper [data-cy=banner-options-btn], .tru_cookie-dialog_wrapper [data-cy=optionsBtn], .tru_cookie-dialog_wrapper #tru_options_btn"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{ "waitForVisible": "#truendo_container [data-cy=action-button-necessary]", "timeout": 2000, "optional": true },
|
|
22
|
+
{
|
|
23
|
+
"if": { "visible": "#truendo_container [data-cy=action-button-necessary]" },
|
|
24
|
+
"then": [{ "click": "#truendo_container [data-cy=action-button-necessary]" }]
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"test": [{ "cookieContains": "%22marketing%22%3Afalse" }]
|
|
28
|
+
}
|
|
@@ -44,6 +44,14 @@
|
|
|
44
44
|
"all": true,
|
|
45
45
|
"optional": true
|
|
46
46
|
},
|
|
47
|
+
{
|
|
48
|
+
"click": [
|
|
49
|
+
"#polaris-css-lockdown-container",
|
|
50
|
+
".polaris-preferences-widget input[type=checkbox]:checked:not([disabled])"
|
|
51
|
+
],
|
|
52
|
+
"all": true,
|
|
53
|
+
"optional": true
|
|
54
|
+
},
|
|
47
55
|
{
|
|
48
56
|
"click": ["#polaris-css-lockdown-container", ".polaris-preferences-widget__save_button"]
|
|
49
57
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ubisoft.com",
|
|
3
|
+
"vendorUrl": "https://www.ubisoft.com/",
|
|
4
|
+
"runContext": {
|
|
5
|
+
"urlPattern": "^https?://(\\w+\\.)?ubisoft\\.com/"
|
|
6
|
+
},
|
|
7
|
+
"prehideSelectors": ["#privacy_modal", "#footer_tc_privacy"],
|
|
8
|
+
"detectCmp": [
|
|
9
|
+
{
|
|
10
|
+
"exists": "#privacy__modal__close, #footer_tc_privacy #privacy__links__center"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"detectPopup": [
|
|
14
|
+
{
|
|
15
|
+
"visible": "#privacy__modal__close, #footer_tc_privacy",
|
|
16
|
+
"check": "any"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"optIn": [
|
|
20
|
+
{
|
|
21
|
+
"if": {
|
|
22
|
+
"exists": "#privacy__modal__accept"
|
|
23
|
+
},
|
|
24
|
+
"then": [
|
|
25
|
+
{
|
|
26
|
+
"waitForThenClick": "#privacy__modal__accept"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"else": [
|
|
30
|
+
{
|
|
31
|
+
"waitForThenClick": "#footer_tc_privacy_button"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"optOut": [
|
|
37
|
+
{
|
|
38
|
+
"if": {
|
|
39
|
+
"exists": "#privacy__modal__close"
|
|
40
|
+
},
|
|
41
|
+
"then": [
|
|
42
|
+
{
|
|
43
|
+
"waitForThenClick": "#privacy__modal__close"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"else": [
|
|
47
|
+
{
|
|
48
|
+
"waitForThenClick": "#footer_tc_privacy #privacy__links__center"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"waitForThenClick": "#privacy_options #options_tc_privacy_button"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"test": [
|
|
57
|
+
{
|
|
58
|
+
"cookieContains": "UBI_PRIVACY_POLICY_VIEWED=true"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"cookieContains": "UBI_PRIVACY_ADS_OPTOUT=true"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
@@ -1,32 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wbd-legal-terms",
|
|
3
3
|
"vendorUrl": "https://www.wbd.com/",
|
|
4
|
-
"comment": "Terms-and-cookies notice with only an Agree button.
|
|
4
|
+
"comment": "Terms-and-cookies notice with only an Agree button. The <dialog> variant is modal, so hiding it with CSS leaves the page inert; close it without submitting the form instead. The MUI modal variant cannot be dismissed, so it is hidden.",
|
|
5
5
|
"cosmetic": true,
|
|
6
6
|
"minimumRuleStepVersion": 2,
|
|
7
7
|
"detectCmp": [
|
|
8
8
|
{
|
|
9
|
-
"exists": "dialog#ltp-dialog"
|
|
9
|
+
"exists": "dialog#ltp-dialog, [id=\"id/ltp\"]"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"detectPopup": [
|
|
13
13
|
{
|
|
14
|
-
"visible": "dialog#ltp-dialog[open]"
|
|
14
|
+
"visible": "dialog#ltp-dialog[open], [id=\"id/ltp/banner\"]",
|
|
15
|
+
"check": "any"
|
|
15
16
|
}
|
|
16
17
|
],
|
|
17
18
|
"optIn": [
|
|
18
19
|
{
|
|
19
|
-
"waitForThenClick": "#ltp-submit-btn"
|
|
20
|
+
"waitForThenClick": "#ltp-submit-btn, [id=\"id/ltp/banner/button\"]"
|
|
20
21
|
}
|
|
21
22
|
],
|
|
22
23
|
"optOut": [
|
|
23
24
|
{
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
"if": {
|
|
26
|
+
"exists": "dialog#ltp-dialog"
|
|
27
|
+
},
|
|
28
|
+
"then": [
|
|
29
|
+
{
|
|
30
|
+
"eval": "EVAL_WBD_LTP_CLOSE"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"removeClass": "is-NoScroll",
|
|
34
|
+
"selector": "body",
|
|
35
|
+
"optional": true
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"else": [
|
|
39
|
+
{
|
|
40
|
+
"hide": "[id=\"id/ltp\"]"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"addStyle": "overflow: auto !important",
|
|
44
|
+
"selector": "body",
|
|
45
|
+
"optional": true
|
|
46
|
+
}
|
|
47
|
+
]
|
|
30
48
|
}
|
|
31
49
|
]
|
|
32
50
|
}
|