@duckduckgo/autoconsent 14.82.0 → 14.84.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/AGENTS.md +3 -1
- package/CHANGELOG.md +27 -0
- package/dist/addon-firefox/background.bundle.js +7 -0
- package/dist/addon-firefox/compact-rules.json +1 -1
- package/dist/addon-firefox/content.bundle.js +16 -2
- package/dist/addon-firefox/manifest.json +1 -1
- package/dist/addon-firefox/popup.bundle.js +20 -0
- package/dist/addon-firefox/popup.html +14 -0
- package/dist/addon-firefox/rules.json +1 -1
- package/dist/addon-mv3/background.bundle.js +7 -0
- package/dist/addon-mv3/compact-rules.json +1 -1
- package/dist/addon-mv3/content.bundle.js +16 -2
- package/dist/addon-mv3/manifest.json +1 -1
- package/dist/addon-mv3/popup.bundle.js +20 -0
- package/dist/addon-mv3/popup.html +14 -0
- package/dist/addon-mv3/rules.json +1 -1
- package/dist/autoconsent.cjs.js +16 -2
- package/dist/autoconsent.esm.js +16 -2
- package/dist/autoconsent.extra.cjs.js +16 -2
- package/dist/autoconsent.extra.esm.js +16 -2
- package/dist/autoconsent.playwright.js +16 -2
- package/dist/types/types.d.ts +1 -0
- package/lib/types.ts +1 -0
- package/lib/utils.ts +1 -0
- package/lib/web.ts +17 -3
- package/package.json +1 -1
- package/rules/autoconsent/escaparium.ca.json +35 -0
- package/rules/compact-rules.json +1 -1
- package/rules/rules.json +1 -1
- package/tests/escaparium.ca.spec.ts +3 -0
- package/tests-wtr/lifecycle/wait-for-popup.html +14 -0
- package/tests-wtr/lifecycle/wait-for-popup.ts +214 -0
package/AGENTS.md
CHANGED
|
@@ -107,6 +107,7 @@ shadow root or same-origin iframe.
|
|
|
107
107
|
- **Paywalls do not need to be handled.** If the website presents the choice to pay or agree to cookies, the correct solution is to disable the feature on that site, so no code changes required in this case.
|
|
108
108
|
- If the pop-up has an explicit "reject"-like button, you should first consider why HEURISTIC rule didn't handle it. A fix to the heuristic rule is always preferred to a new rule, as long as it doesn't cause potential false-positives on other sites.
|
|
109
109
|
- **Watch out for race conditions**. A common pitfall is that a rule starts clicking before JS handlers are ready. If you detect this, add an appropriate wait step before the click, preferably based on a specific DOM state. Unconditional `wait` is a LAST RESORT because it leads to a poor UX.
|
|
110
|
+
- **Watch out for false positive detections**. Always verify that the rule does NOT match after the popup is dismissed and the page is reloaded. Over-detection can lead to reload loops.
|
|
110
111
|
- **selfTests are optional.** It is okay to NOT have a self-test, or have it failing as long as the popup is handled correctly. Confirm this with screenshots.
|
|
111
112
|
- If you cover a new CMP or a new flavor of the existing CMP, ALWAYS try to look for more examples of that case, and add to the spec file.
|
|
112
113
|
- `detectCmp` and `detectPopup` must be fast. Do NOT use waiting steps — the engine retries automatically.
|
|
@@ -157,4 +158,5 @@ After creating or modifying a rule:
|
|
|
157
158
|
2. `npm run rule-syntax-check` — validate rule JSON against schema
|
|
158
159
|
3. `npx playwright test tests/<name>.spec.ts` — run the E2E test
|
|
159
160
|
4. `npm run prepublish` — full build including extension bundle
|
|
160
|
-
5.
|
|
161
|
+
5. Validate that the rule stops matching after the popup is dismissed and the page is reloaded (unless it's a cosmetic rule).
|
|
162
|
+
6. Check the rule works across geographic regions using available regional-testing tooling.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
# v14.84.0 (Tue May 19 2026)
|
|
2
|
+
|
|
3
|
+
#### 🚀 Enhancement
|
|
4
|
+
|
|
5
|
+
- Add escaparium.ca site-specific rule [#1354](https://github.com/duckduckgo/autoconsent/pull/1354) ([@cursoragent](https://github.com/cursoragent) [@sammacbeth](https://github.com/sammacbeth))
|
|
6
|
+
|
|
7
|
+
#### Authors: 2
|
|
8
|
+
|
|
9
|
+
- Cursor Agent ([@cursoragent](https://github.com/cursoragent))
|
|
10
|
+
- Sam Macbeth ([@sammacbeth](https://github.com/sammacbeth))
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# v14.83.0 (Sat May 16 2026)
|
|
15
|
+
|
|
16
|
+
#### 🚀 Enhancement
|
|
17
|
+
|
|
18
|
+
- Add a hint about reload loops [#1352](https://github.com/duckduckgo/autoconsent/pull/1352) ([@muodov](https://github.com/muodov))
|
|
19
|
+
- Use MutationObserver in waitForPopup to avoid premature timeout [#1207](https://github.com/duckduckgo/autoconsent/pull/1207) ([@cursoragent](https://github.com/cursoragent) [@muodov](https://github.com/muodov))
|
|
20
|
+
|
|
21
|
+
#### Authors: 2
|
|
22
|
+
|
|
23
|
+
- Cursor Agent ([@cursoragent](https://github.com/cursoragent))
|
|
24
|
+
- Maxim Tsoy ([@muodov](https://github.com/muodov))
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
1
28
|
# v14.82.0 (Fri May 15 2026)
|
|
2
29
|
|
|
3
30
|
#### 🚀 Enhancement
|
|
@@ -697,6 +697,7 @@
|
|
|
697
697
|
enableGeneratedRules: true,
|
|
698
698
|
enableHeuristicDetection: false,
|
|
699
699
|
enableHeuristicAction: false,
|
|
700
|
+
enablePopupMutationObserver: false,
|
|
700
701
|
detectRetries: 20,
|
|
701
702
|
isMainWorld: false,
|
|
702
703
|
prehideTimeout: 2e3,
|
|
@@ -726,6 +727,12 @@
|
|
|
726
727
|
if (!storedConfig.enableHeuristicDetection) {
|
|
727
728
|
storedConfig.enableHeuristicDetection = true;
|
|
728
729
|
}
|
|
730
|
+
if (storedConfig.enablePopupMutationObserver === void 0) {
|
|
731
|
+
storedConfig.enablePopupMutationObserver = true;
|
|
732
|
+
}
|
|
733
|
+
if (storedConfig.enableHeuristicAction === void 0) {
|
|
734
|
+
storedConfig.enableHeuristicAction = true;
|
|
735
|
+
}
|
|
729
736
|
if (!storedConfig.logs) {
|
|
730
737
|
storedConfig.logs = {
|
|
731
738
|
lifecycle: true,
|