@duckduckgo/autoconsent 10.8.0 → 10.10.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 +5 -9
- package/CHANGELOG.md +44 -0
- package/ci/asana-create-tasks.js +2 -2
- package/ci/clients_pr_template.md +3 -0
- package/dist/addon-firefox/background.bundle.js +3 -0
- package/dist/addon-firefox/content.bundle.js +7 -3
- package/dist/addon-firefox/manifest.json +1 -1
- package/dist/addon-firefox/rules.json +182 -19
- package/dist/addon-mv3/background.bundle.js +3 -0
- package/dist/addon-mv3/content.bundle.js +7 -3
- package/dist/addon-mv3/manifest.json +1 -1
- package/dist/addon-mv3/rules.json +182 -19
- package/dist/autoconsent.cjs.js +7 -3
- package/dist/autoconsent.esm.js +7 -3
- package/dist/autoconsent.playwright.js +1 -1
- package/dist/autoconsent.unit.js +189 -22
- package/lib/cmps/evidon.ts +4 -3
- package/lib/eval-snippets.ts +3 -0
- package/package.json +1 -1
- package/readme.md +2 -4
- package/rules/autoconsent/aquasana-com.json +12 -3
- package/rules/autoconsent/complianz-opt-out.json +12 -1
- package/rules/autoconsent/cookiecuttr.json +37 -0
- package/rules/autoconsent/ebay.json +31 -0
- package/rules/autoconsent/ens-modal.json +3 -1
- package/rules/autoconsent/ens-notify-banner.json +4 -2
- package/rules/autoconsent/fides.json +5 -2
- package/rules/autoconsent/ketch.json +8 -5
- package/rules/autoconsent/roblox.json +36 -0
- package/rules/autoconsent/uswitch.json +10 -5
- package/rules/rules.json +182 -19
- package/tests/aquasana-com.spec.ts +4 -1
- package/tests/cookiecuttr.spec.ts +7 -0
- package/tests/ebay.spec.ts +7 -0
- package/tests/fides.spec.ts +1 -0
- package/tests/ketch.spec.ts +6 -0
- package/tests/roblox.spec.ts +5 -0
package/dist/autoconsent.unit.js
CHANGED
|
@@ -544,6 +544,7 @@
|
|
|
544
544
|
EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes("euCookie"),
|
|
545
545
|
EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
|
|
546
546
|
EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
|
|
547
|
+
EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
|
|
547
548
|
EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
|
|
548
549
|
EVAL_HEMA_TEST_0: () => document.cookie.includes("cookies_rejected=1"),
|
|
549
550
|
EVAL_IUBENDA_0: () => document.querySelectorAll(".purposes-item input[type=checkbox]:not([disabled])").forEach((x) => {
|
|
@@ -553,6 +554,7 @@
|
|
|
553
554
|
EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
|
|
554
555
|
EVAL_IWINK_TEST: () => document.cookie.includes("cookie_permission_granted=no"),
|
|
555
556
|
EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes("cookies-state=accepted"),
|
|
557
|
+
EVAL_KETCH_TEST: () => document.cookie.includes("_ketch_consent_v1_"),
|
|
556
558
|
EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
|
|
557
559
|
EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
|
|
558
560
|
EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
|
|
@@ -567,6 +569,7 @@
|
|
|
567
569
|
EVAL_PRIMEBOX_0: () => !document.cookie.includes("cb-enabled=accepted"),
|
|
568
570
|
EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
|
|
569
571
|
EVAL_REDDIT_0: () => document.cookie.includes("eu_cookie={%22opted%22:true%2C%22nonessential%22:false}"),
|
|
572
|
+
EVAL_ROBLOX_TEST: () => document.cookie.includes("RBXcb"),
|
|
570
573
|
EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
|
|
571
574
|
document.documentElement.classList.forEach((cls) => {
|
|
572
575
|
if (cls.startsWith("sd-cmp-"))
|
|
@@ -1439,10 +1442,11 @@
|
|
|
1439
1442
|
if (this.click("#_evidon-decline-button")) {
|
|
1440
1443
|
return true;
|
|
1441
1444
|
}
|
|
1442
|
-
hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
|
|
1443
|
-
this.
|
|
1445
|
+
hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
|
|
1446
|
+
await this.waitForThenClick("#_evidon-option-button");
|
|
1444
1447
|
await this.waitForElement("#evidon-prefdiag-overlay", 5e3);
|
|
1445
|
-
this.
|
|
1448
|
+
await this.wait(500);
|
|
1449
|
+
await this.waitForThenClick("#evidon-prefdiag-decline");
|
|
1446
1450
|
return true;
|
|
1447
1451
|
}
|
|
1448
1452
|
async optIn() {
|
|
@@ -2763,7 +2767,6 @@
|
|
|
2763
2767
|
},
|
|
2764
2768
|
{
|
|
2765
2769
|
name: "aquasana.com",
|
|
2766
|
-
cosmetic: true,
|
|
2767
2770
|
prehideSelectors: [
|
|
2768
2771
|
"#consent-tracking"
|
|
2769
2772
|
],
|
|
@@ -2779,12 +2782,24 @@
|
|
|
2779
2782
|
],
|
|
2780
2783
|
optIn: [
|
|
2781
2784
|
{
|
|
2782
|
-
|
|
2785
|
+
waitForThenClick: "#consent-tracking .affirm.btn"
|
|
2783
2786
|
}
|
|
2784
2787
|
],
|
|
2785
2788
|
optOut: [
|
|
2786
2789
|
{
|
|
2787
|
-
|
|
2790
|
+
if: {
|
|
2791
|
+
exists: "#consent-tracking .decline.btn"
|
|
2792
|
+
},
|
|
2793
|
+
then: [
|
|
2794
|
+
{
|
|
2795
|
+
click: "#consent-tracking .decline.btn"
|
|
2796
|
+
}
|
|
2797
|
+
],
|
|
2798
|
+
else: [
|
|
2799
|
+
{
|
|
2800
|
+
hide: "#consent-tracking"
|
|
2801
|
+
}
|
|
2802
|
+
]
|
|
2788
2803
|
}
|
|
2789
2804
|
]
|
|
2790
2805
|
},
|
|
@@ -3960,7 +3975,20 @@
|
|
|
3960
3975
|
],
|
|
3961
3976
|
else: [
|
|
3962
3977
|
{
|
|
3963
|
-
|
|
3978
|
+
if: {
|
|
3979
|
+
exists: ".cmp-pref-link"
|
|
3980
|
+
},
|
|
3981
|
+
then: [
|
|
3982
|
+
{
|
|
3983
|
+
click: ".cmp-pref-link"
|
|
3984
|
+
},
|
|
3985
|
+
{
|
|
3986
|
+
waitForThenClick: ".cmp-body [id*=rejectAll]"
|
|
3987
|
+
},
|
|
3988
|
+
{
|
|
3989
|
+
waitForThenClick: ".cmp-body .cmp-save-btn"
|
|
3990
|
+
}
|
|
3991
|
+
]
|
|
3964
3992
|
}
|
|
3965
3993
|
]
|
|
3966
3994
|
}
|
|
@@ -4354,6 +4382,51 @@
|
|
|
4354
4382
|
}
|
|
4355
4383
|
]
|
|
4356
4384
|
},
|
|
4385
|
+
{
|
|
4386
|
+
name: "cookiecuttr",
|
|
4387
|
+
vendorUrl: "https://github.com/cdwharton/cookieCuttr",
|
|
4388
|
+
cosmetic: false,
|
|
4389
|
+
runContext: {
|
|
4390
|
+
main: true,
|
|
4391
|
+
frame: false,
|
|
4392
|
+
urlPattern: ""
|
|
4393
|
+
},
|
|
4394
|
+
prehideSelectors: [
|
|
4395
|
+
".cc-cookies"
|
|
4396
|
+
],
|
|
4397
|
+
detectCmp: [
|
|
4398
|
+
{
|
|
4399
|
+
exists: ".cc-cookies .cc-cookie-accept"
|
|
4400
|
+
}
|
|
4401
|
+
],
|
|
4402
|
+
detectPopup: [
|
|
4403
|
+
{
|
|
4404
|
+
visible: ".cc-cookies .cc-cookie-accept"
|
|
4405
|
+
}
|
|
4406
|
+
],
|
|
4407
|
+
optIn: [
|
|
4408
|
+
{
|
|
4409
|
+
waitForThenClick: ".cc-cookies .cc-cookie-accept"
|
|
4410
|
+
}
|
|
4411
|
+
],
|
|
4412
|
+
optOut: [
|
|
4413
|
+
{
|
|
4414
|
+
if: {
|
|
4415
|
+
exists: ".cc-cookies .cc-cookie-decline"
|
|
4416
|
+
},
|
|
4417
|
+
then: [
|
|
4418
|
+
{
|
|
4419
|
+
click: ".cc-cookies .cc-cookie-decline"
|
|
4420
|
+
}
|
|
4421
|
+
],
|
|
4422
|
+
else: [
|
|
4423
|
+
{
|
|
4424
|
+
hide: ".cc-cookies"
|
|
4425
|
+
}
|
|
4426
|
+
]
|
|
4427
|
+
}
|
|
4428
|
+
]
|
|
4429
|
+
},
|
|
4357
4430
|
{
|
|
4358
4431
|
name: "cookiefirst.com",
|
|
4359
4432
|
prehideSelectors: [
|
|
@@ -4914,6 +4987,39 @@
|
|
|
4914
4987
|
}
|
|
4915
4988
|
]
|
|
4916
4989
|
},
|
|
4990
|
+
{
|
|
4991
|
+
name: "ebay",
|
|
4992
|
+
vendorUrl: "https://ebay.com",
|
|
4993
|
+
cosmetic: false,
|
|
4994
|
+
runContext: {
|
|
4995
|
+
main: true,
|
|
4996
|
+
frame: false,
|
|
4997
|
+
urlPattern: "^https://(www\\.)?ebay\\.([.a-z]+)/"
|
|
4998
|
+
},
|
|
4999
|
+
prehideSelectors: [
|
|
5000
|
+
"#gdpr-banner"
|
|
5001
|
+
],
|
|
5002
|
+
detectCmp: [
|
|
5003
|
+
{
|
|
5004
|
+
exists: "#gdpr-banner"
|
|
5005
|
+
}
|
|
5006
|
+
],
|
|
5007
|
+
detectPopup: [
|
|
5008
|
+
{
|
|
5009
|
+
visible: "#gdpr-banner"
|
|
5010
|
+
}
|
|
5011
|
+
],
|
|
5012
|
+
optIn: [
|
|
5013
|
+
{
|
|
5014
|
+
waitForThenClick: "#gdpr-banner-accept"
|
|
5015
|
+
}
|
|
5016
|
+
],
|
|
5017
|
+
optOut: [
|
|
5018
|
+
{
|
|
5019
|
+
waitForThenClick: "#gdpr-banner-decline"
|
|
5020
|
+
}
|
|
5021
|
+
]
|
|
5022
|
+
},
|
|
4917
5023
|
{
|
|
4918
5024
|
name: "ecosia",
|
|
4919
5025
|
vendorUrl: "https://www.ecosia.org/",
|
|
@@ -4956,7 +5062,7 @@
|
|
|
4956
5062
|
],
|
|
4957
5063
|
detectPopup: [
|
|
4958
5064
|
{
|
|
4959
|
-
visible: "
|
|
5065
|
+
visible: "#ensModalWrapper[style*=block]"
|
|
4960
5066
|
}
|
|
4961
5067
|
],
|
|
4962
5068
|
optIn: [
|
|
@@ -4965,6 +5071,12 @@
|
|
|
4965
5071
|
}
|
|
4966
5072
|
],
|
|
4967
5073
|
optOut: [
|
|
5074
|
+
{
|
|
5075
|
+
wait: 500
|
|
5076
|
+
},
|
|
5077
|
+
{
|
|
5078
|
+
visible: "#ensModalWrapper[style*=block]"
|
|
5079
|
+
},
|
|
4968
5080
|
{
|
|
4969
5081
|
waitForThenClick: ".ensCheckbox:checked",
|
|
4970
5082
|
all: true
|
|
@@ -4986,7 +5098,7 @@
|
|
|
4986
5098
|
],
|
|
4987
5099
|
detectPopup: [
|
|
4988
5100
|
{
|
|
4989
|
-
visible: "#ensNotifyBanner"
|
|
5101
|
+
visible: "#ensNotifyBanner[style*=block]"
|
|
4990
5102
|
}
|
|
4991
5103
|
],
|
|
4992
5104
|
optIn: [
|
|
@@ -4996,7 +5108,13 @@
|
|
|
4996
5108
|
],
|
|
4997
5109
|
optOut: [
|
|
4998
5110
|
{
|
|
4999
|
-
|
|
5111
|
+
wait: 500
|
|
5112
|
+
},
|
|
5113
|
+
{
|
|
5114
|
+
visible: "#ensNotifyBanner[style*=block]"
|
|
5115
|
+
},
|
|
5116
|
+
{
|
|
5117
|
+
waitForThenClick: "#ensRejectAll,#rejectAll,#ensRejectBanner,.rejectAll"
|
|
5000
5118
|
}
|
|
5001
5119
|
]
|
|
5002
5120
|
},
|
|
@@ -5273,16 +5391,19 @@
|
|
|
5273
5391
|
detectPopup: [
|
|
5274
5392
|
{
|
|
5275
5393
|
visible: "#fides-overlay #fides-banner"
|
|
5394
|
+
},
|
|
5395
|
+
{
|
|
5396
|
+
eval: "EVAL_FIDES_DETECT_POPUP"
|
|
5276
5397
|
}
|
|
5277
5398
|
],
|
|
5278
5399
|
optIn: [
|
|
5279
5400
|
{
|
|
5280
|
-
waitForThenClick:
|
|
5401
|
+
waitForThenClick: "#fides-banner .fides-accept-all-button"
|
|
5281
5402
|
}
|
|
5282
5403
|
],
|
|
5283
5404
|
optOut: [
|
|
5284
5405
|
{
|
|
5285
|
-
waitForThenClick:
|
|
5406
|
+
waitForThenClick: "#fides-banner .fides-reject-all-button"
|
|
5286
5407
|
}
|
|
5287
5408
|
]
|
|
5288
5409
|
},
|
|
@@ -6127,29 +6248,34 @@
|
|
|
6127
6248
|
},
|
|
6128
6249
|
then: [
|
|
6129
6250
|
{
|
|
6130
|
-
waitForThenClick: "#lanyard_root div[class*=buttons] > button[class*=secondaryButton]",
|
|
6251
|
+
waitForThenClick: "#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",
|
|
6131
6252
|
comment: "can be either settings or reject button"
|
|
6132
6253
|
}
|
|
6133
6254
|
]
|
|
6134
6255
|
},
|
|
6135
6256
|
{
|
|
6136
|
-
waitFor: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]",
|
|
6257
|
+
waitFor: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",
|
|
6137
6258
|
timeout: 1e3,
|
|
6138
6259
|
optional: true
|
|
6139
6260
|
},
|
|
6140
6261
|
{
|
|
6141
6262
|
if: {
|
|
6142
|
-
exists: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]"
|
|
6263
|
+
exists: "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"
|
|
6143
6264
|
},
|
|
6144
6265
|
then: [
|
|
6145
6266
|
{
|
|
6146
|
-
waitForThenClick: "#lanyard_root button[class*=rejectButton]"
|
|
6267
|
+
waitForThenClick: "#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]"
|
|
6147
6268
|
},
|
|
6148
6269
|
{
|
|
6149
|
-
click: "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1)"
|
|
6270
|
+
click: "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]"
|
|
6150
6271
|
}
|
|
6151
6272
|
]
|
|
6152
6273
|
}
|
|
6274
|
+
],
|
|
6275
|
+
test: [
|
|
6276
|
+
{
|
|
6277
|
+
eval: "EVAL_KETCH_TEST"
|
|
6278
|
+
}
|
|
6153
6279
|
]
|
|
6154
6280
|
},
|
|
6155
6281
|
{
|
|
@@ -7551,6 +7677,42 @@
|
|
|
7551
7677
|
}
|
|
7552
7678
|
]
|
|
7553
7679
|
},
|
|
7680
|
+
{
|
|
7681
|
+
name: "roblox",
|
|
7682
|
+
vendorUrl: "https://roblox.com",
|
|
7683
|
+
cosmetic: false,
|
|
7684
|
+
runContext: {
|
|
7685
|
+
main: true,
|
|
7686
|
+
frame: false,
|
|
7687
|
+
urlPattern: "^https://(www\\.)?roblox\\.com/"
|
|
7688
|
+
},
|
|
7689
|
+
prehideSelectors: [],
|
|
7690
|
+
detectCmp: [
|
|
7691
|
+
{
|
|
7692
|
+
exists: ".cookie-banner-wrapper"
|
|
7693
|
+
}
|
|
7694
|
+
],
|
|
7695
|
+
detectPopup: [
|
|
7696
|
+
{
|
|
7697
|
+
visible: ".cookie-banner-wrapper .cookie-banner"
|
|
7698
|
+
}
|
|
7699
|
+
],
|
|
7700
|
+
optIn: [
|
|
7701
|
+
{
|
|
7702
|
+
waitForThenClick: ".cookie-banner-wrapper button.btn-cta-lg"
|
|
7703
|
+
}
|
|
7704
|
+
],
|
|
7705
|
+
optOut: [
|
|
7706
|
+
{
|
|
7707
|
+
waitForThenClick: ".cookie-banner-wrapper button.btn-secondary-lg"
|
|
7708
|
+
}
|
|
7709
|
+
],
|
|
7710
|
+
test: [
|
|
7711
|
+
{
|
|
7712
|
+
eval: "EVAL_ROBLOX_TEST"
|
|
7713
|
+
}
|
|
7714
|
+
]
|
|
7715
|
+
},
|
|
7554
7716
|
{
|
|
7555
7717
|
name: "rog-forum.asus.com",
|
|
7556
7718
|
runContext: {
|
|
@@ -8972,27 +9134,32 @@
|
|
|
8972
9134
|
},
|
|
8973
9135
|
{
|
|
8974
9136
|
name: "uswitch.com",
|
|
9137
|
+
runContext: {
|
|
9138
|
+
main: true,
|
|
9139
|
+
frame: false,
|
|
9140
|
+
urlPattern: "^https://(www\\.)?uswitch\\.com/"
|
|
9141
|
+
},
|
|
8975
9142
|
prehideSelectors: [
|
|
8976
|
-
"
|
|
9143
|
+
".ucb"
|
|
8977
9144
|
],
|
|
8978
9145
|
detectCmp: [
|
|
8979
9146
|
{
|
|
8980
|
-
exists: "
|
|
9147
|
+
exists: ".ucb-banner"
|
|
8981
9148
|
}
|
|
8982
9149
|
],
|
|
8983
9150
|
detectPopup: [
|
|
8984
9151
|
{
|
|
8985
|
-
visible: "
|
|
9152
|
+
visible: ".ucb-banner"
|
|
8986
9153
|
}
|
|
8987
9154
|
],
|
|
8988
9155
|
optIn: [
|
|
8989
9156
|
{
|
|
8990
|
-
|
|
9157
|
+
waitForThenClick: ".ucb-banner .ucb-btn-accept"
|
|
8991
9158
|
}
|
|
8992
9159
|
],
|
|
8993
9160
|
optOut: [
|
|
8994
9161
|
{
|
|
8995
|
-
|
|
9162
|
+
waitForThenClick: ".ucb-banner .ucb-btn-save"
|
|
8996
9163
|
}
|
|
8997
9164
|
]
|
|
8998
9165
|
},
|
package/lib/cmps/evidon.ts
CHANGED
|
@@ -29,12 +29,13 @@ export default class Evidon extends AutoConsentCMPBase {
|
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background");
|
|
33
|
-
this.
|
|
32
|
+
hideElements(getStyleElement(), "#evidon-prefdiag-overlay,#evidon-prefdiag-background,#_evidon-background");
|
|
33
|
+
await this.waitForThenClick("#_evidon-option-button");
|
|
34
34
|
|
|
35
35
|
await this.waitForElement("#evidon-prefdiag-overlay", 5000);
|
|
36
36
|
|
|
37
|
-
this.
|
|
37
|
+
await this.wait(500);
|
|
38
|
+
await this.waitForThenClick("#evidon-prefdiag-decline");
|
|
38
39
|
return true;
|
|
39
40
|
}
|
|
40
41
|
|
package/lib/eval-snippets.ts
CHANGED
|
@@ -94,12 +94,14 @@ export const snippets = {
|
|
|
94
94
|
EVAL_EU_COOKIE_LAW_0: () => !document.cookie.includes('euCookie'),
|
|
95
95
|
EVAL_EZOIC_0: () => ezCMP.handleAcceptAllClick(),
|
|
96
96
|
EVAL_EZOIC_1: () => !!document.cookie.match(/ez-consent-tcf/),
|
|
97
|
+
EVAL_FIDES_DETECT_POPUP: () => window.Fides?.initialized,
|
|
97
98
|
EVAL_GOOGLE_0: () => !!document.cookie.match(/SOCS=CAE/),
|
|
98
99
|
EVAL_HEMA_TEST_0: () => document.cookie.includes('cookies_rejected=1'),
|
|
99
100
|
EVAL_IUBENDA_0: () => document.querySelectorAll('.purposes-item input[type=checkbox]:not([disabled])').forEach(x => {if(x.checked) x.click()}) || true,
|
|
100
101
|
EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
|
|
101
102
|
EVAL_IWINK_TEST: () => document.cookie.includes('cookie_permission_granted=no'),
|
|
102
103
|
EVAL_JQUERY_COOKIEBAR_0: () => !document.cookie.includes('cookies-state=accepted'),
|
|
104
|
+
EVAL_KETCH_TEST: () => document.cookie.includes('_ketch_consent_v1_'),
|
|
103
105
|
EVAL_MEDIAVINE_0: () => document.querySelectorAll("[data-name=\"mediavine-gdpr-cmp\"] input[type=checkbox]").forEach(x => x.checked && x.click()) || true,
|
|
104
106
|
EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Reject|Ablehnen'))[0].click() || true,
|
|
105
107
|
EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click() || true,
|
|
@@ -111,6 +113,7 @@ export const snippets = {
|
|
|
111
113
|
EVAL_PRIMEBOX_0: () => !document.cookie.includes('cb-enabled=accepted'),
|
|
112
114
|
EVAL_PUBTECH_0: () => document.cookie.includes('euconsent-v2') && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)) ,
|
|
113
115
|
EVAL_REDDIT_0: () => document.cookie.includes('eu_cookie={%22opted%22:true%2C%22nonessential%22:false}'),
|
|
116
|
+
EVAL_ROBLOX_TEST: () => document.cookie.includes('RBXcb'),
|
|
114
117
|
EVAL_SIRDATA_UNBLOCK_SCROLL: () => {
|
|
115
118
|
document.documentElement.classList.forEach(cls => {
|
|
116
119
|
if (cls.startsWith('sd-cmp-')) document.documentElement.classList.remove(cls)
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -12,10 +12,8 @@ The web extension can be built with the following steps:
|
|
|
12
12
|
```bash
|
|
13
13
|
# Download dependencies
|
|
14
14
|
npm ci
|
|
15
|
-
# Build
|
|
16
|
-
npm run
|
|
17
|
-
# Build JS bundles (rules must be built first)
|
|
18
|
-
npm run bundle
|
|
15
|
+
# Build the extension
|
|
16
|
+
npm run prepublish
|
|
19
17
|
```
|
|
20
18
|
|
|
21
19
|
The extension-specific code can be found in the `addon` directory. There are two versions of the
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aquasana.com",
|
|
3
|
-
"cosmetic": true,
|
|
4
3
|
"prehideSelectors": ["#consent-tracking"],
|
|
5
4
|
"detectCmp": [{ "exists": "#consent-tracking" }],
|
|
6
5
|
"detectPopup": [{ "exists": "#consent-tracking" }],
|
|
7
|
-
"optIn": [
|
|
8
|
-
|
|
6
|
+
"optIn": [
|
|
7
|
+
{
|
|
8
|
+
"waitForThenClick": "#consent-tracking .affirm.btn"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"optOut": [
|
|
12
|
+
{
|
|
13
|
+
"if": { "exists": "#consent-tracking .decline.btn" },
|
|
14
|
+
"then": [{ "click": "#consent-tracking .decline.btn" }],
|
|
15
|
+
"else": [{ "hide": "#consent-tracking" }]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
9
18
|
}
|
|
@@ -39,7 +39,18 @@
|
|
|
39
39
|
],
|
|
40
40
|
"else": [
|
|
41
41
|
{
|
|
42
|
-
"
|
|
42
|
+
"if": { "exists": ".cmp-pref-link" },
|
|
43
|
+
"then": [
|
|
44
|
+
{
|
|
45
|
+
"click": ".cmp-pref-link"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"waitForThenClick": ".cmp-body [id*=rejectAll]"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"waitForThenClick": ".cmp-body .cmp-save-btn"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
43
54
|
}
|
|
44
55
|
]
|
|
45
56
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cookiecuttr",
|
|
3
|
+
"vendorUrl": "https://github.com/cdwharton/cookieCuttr",
|
|
4
|
+
"cosmetic": false,
|
|
5
|
+
"runContext": {
|
|
6
|
+
"main": true,
|
|
7
|
+
"frame": false,
|
|
8
|
+
"urlPattern": ""
|
|
9
|
+
},
|
|
10
|
+
"prehideSelectors": [".cc-cookies"],
|
|
11
|
+
"detectCmp": [
|
|
12
|
+
{
|
|
13
|
+
"exists": ".cc-cookies .cc-cookie-accept"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"detectPopup": [
|
|
17
|
+
{
|
|
18
|
+
"visible": ".cc-cookies .cc-cookie-accept"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"optIn": [
|
|
22
|
+
{
|
|
23
|
+
"waitForThenClick": ".cc-cookies .cc-cookie-accept"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"optOut": [
|
|
27
|
+
{
|
|
28
|
+
"if": { "exists": ".cc-cookies .cc-cookie-decline" },
|
|
29
|
+
"then": [{
|
|
30
|
+
"click": ".cc-cookies .cc-cookie-decline"
|
|
31
|
+
}],
|
|
32
|
+
"else": [{
|
|
33
|
+
"hide": ".cc-cookies"
|
|
34
|
+
}]
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ebay",
|
|
3
|
+
"vendorUrl": "https://ebay.com",
|
|
4
|
+
"cosmetic": false,
|
|
5
|
+
"runContext": {
|
|
6
|
+
"main": true,
|
|
7
|
+
"frame": false,
|
|
8
|
+
"urlPattern": "^https://(www\\.)?ebay\\.([.a-z]+)/"
|
|
9
|
+
},
|
|
10
|
+
"prehideSelectors": ["#gdpr-banner"],
|
|
11
|
+
"detectCmp": [
|
|
12
|
+
{
|
|
13
|
+
"exists": "#gdpr-banner"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"detectPopup": [
|
|
17
|
+
{
|
|
18
|
+
"visible": "#gdpr-banner"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"optIn": [
|
|
22
|
+
{
|
|
23
|
+
"waitForThenClick": "#gdpr-banner-accept"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"optOut": [
|
|
27
|
+
{
|
|
28
|
+
"waitForThenClick": "#gdpr-banner-decline"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
"name": "Ensighten ensModal",
|
|
3
3
|
"prehideSelectors": [".ensModal"],
|
|
4
4
|
"detectCmp": [{ "exists": ".ensModal" }],
|
|
5
|
-
"detectPopup": [{ "visible": "
|
|
5
|
+
"detectPopup": [{ "visible": "#ensModalWrapper[style*=block]" }],
|
|
6
6
|
"optIn": [
|
|
7
7
|
{ "waitForThenClick": "#modalAcceptButton" }
|
|
8
8
|
],
|
|
9
9
|
"optOut": [
|
|
10
|
+
{ "wait": 500 },
|
|
11
|
+
{ "visible": "#ensModalWrapper[style*=block]" },
|
|
10
12
|
{ "waitForThenClick": ".ensCheckbox:checked", "all": true },
|
|
11
13
|
{ "waitForThenClick": "#ensSave" }
|
|
12
14
|
]
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
"name": "Ensighten ensNotifyBanner",
|
|
3
3
|
"prehideSelectors": ["#ensNotifyBanner"],
|
|
4
4
|
"detectCmp": [{ "exists": "#ensNotifyBanner" }],
|
|
5
|
-
"detectPopup": [{ "visible": "#ensNotifyBanner" }],
|
|
5
|
+
"detectPopup": [{ "visible": "#ensNotifyBanner[style*=block]" }],
|
|
6
6
|
"optIn": [
|
|
7
7
|
{ "waitForThenClick": "#ensCloseBanner" }
|
|
8
8
|
],
|
|
9
9
|
"optOut": [
|
|
10
|
-
{ "
|
|
10
|
+
{ "wait": 500 },
|
|
11
|
+
{ "visible": "#ensNotifyBanner[style*=block]" },
|
|
12
|
+
{ "waitForThenClick": "#ensRejectAll,#rejectAll,#ensRejectBanner,.rejectAll" }
|
|
11
13
|
]
|
|
12
14
|
}
|
|
@@ -10,16 +10,19 @@
|
|
|
10
10
|
"detectPopup": [
|
|
11
11
|
{
|
|
12
12
|
"visible": "#fides-overlay #fides-banner"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"eval": "EVAL_FIDES_DETECT_POPUP"
|
|
13
16
|
}
|
|
14
17
|
],
|
|
15
18
|
"optIn": [
|
|
16
19
|
{
|
|
17
|
-
"waitForThenClick": "#fides-banner
|
|
20
|
+
"waitForThenClick": "#fides-banner .fides-accept-all-button"
|
|
18
21
|
}
|
|
19
22
|
],
|
|
20
23
|
"optOut": [
|
|
21
24
|
{
|
|
22
|
-
"waitForThenClick": "#fides-banner
|
|
25
|
+
"waitForThenClick": "#fides-banner .fides-reject-all-button"
|
|
23
26
|
}
|
|
24
27
|
]
|
|
25
28
|
}
|
|
@@ -40,24 +40,27 @@
|
|
|
40
40
|
},
|
|
41
41
|
"then": [
|
|
42
42
|
{
|
|
43
|
-
"waitForThenClick":"#lanyard_root div[class*=buttons] > button[class*=secondaryButton]",
|
|
43
|
+
"waitForThenClick": "#lanyard_root div[class*=buttons] > button[class*=secondaryButton], #lanyard_root button[class*=buttons-secondary]",
|
|
44
44
|
"comment": "can be either settings or reject button"
|
|
45
45
|
}
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
"waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]",
|
|
49
|
+
"waitFor": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences",
|
|
50
50
|
"timeout": 1000,
|
|
51
51
|
"optional": true
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"if": {
|
|
55
|
-
"exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description]"
|
|
55
|
+
"exists": "#lanyard_root [aria-describedby=preference-description],#lanyard_root [aria-describedby=modal-description], #ketch-preferences"
|
|
56
56
|
},
|
|
57
57
|
"then": [
|
|
58
|
-
{ "waitForThenClick": "#lanyard_root button[class*=rejectButton]" },
|
|
59
|
-
{ "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1)" }
|
|
58
|
+
{ "waitForThenClick": "#lanyard_root button[class*=rejectButton], #lanyard_root button[class*=rejectAllButton]" },
|
|
59
|
+
{ "click": "#lanyard_root button[class*=confirmButton],#lanyard_root div[class*=actions_] > button:nth-child(1), #lanyard_root button[class*=actionButton]" }
|
|
60
60
|
]
|
|
61
61
|
}
|
|
62
|
+
],
|
|
63
|
+
"test": [
|
|
64
|
+
{ "eval": "EVAL_KETCH_TEST" }
|
|
62
65
|
]
|
|
63
66
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "roblox",
|
|
3
|
+
"vendorUrl": "https://roblox.com",
|
|
4
|
+
"cosmetic": false,
|
|
5
|
+
"runContext": {
|
|
6
|
+
"main": true,
|
|
7
|
+
"frame": false,
|
|
8
|
+
"urlPattern": "^https://(www\\.)?roblox\\.com/"
|
|
9
|
+
},
|
|
10
|
+
"prehideSelectors": [],
|
|
11
|
+
"detectCmp": [
|
|
12
|
+
{
|
|
13
|
+
"exists": ".cookie-banner-wrapper"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"detectPopup": [
|
|
17
|
+
{
|
|
18
|
+
"visible": ".cookie-banner-wrapper .cookie-banner"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"optIn": [
|
|
22
|
+
{
|
|
23
|
+
"waitForThenClick": ".cookie-banner-wrapper button.btn-cta-lg"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"optOut": [
|
|
27
|
+
{
|
|
28
|
+
"waitForThenClick": ".cookie-banner-wrapper button.btn-secondary-lg"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"test": [
|
|
32
|
+
{
|
|
33
|
+
"eval": "EVAL_ROBLOX_TEST"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|