@duckduckgo/autoconsent 14.67.0 → 14.69.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 (67) hide show
  1. package/AGENTS.md +36 -11
  2. package/CHANGELOG.md +39 -0
  3. package/data/coverage.json +5846 -2663
  4. package/dist/addon-firefox/background.bundle.js +0 -2
  5. package/dist/addon-firefox/compact-rules.json +1 -1
  6. package/dist/addon-firefox/content.bundle.js +17 -5
  7. package/dist/addon-firefox/manifest.json +1 -1
  8. package/dist/addon-firefox/rules.json +1 -1
  9. package/dist/addon-mv3/background.bundle.js +0 -2
  10. package/dist/addon-mv3/compact-rules.json +1 -1
  11. package/dist/addon-mv3/content.bundle.js +17 -5
  12. package/dist/addon-mv3/manifest.json +1 -1
  13. package/dist/addon-mv3/rules.json +1 -1
  14. package/dist/autoconsent.cjs.js +17 -5
  15. package/dist/autoconsent.esm.js +17 -5
  16. package/dist/autoconsent.extra.cjs.js +17 -5
  17. package/dist/autoconsent.extra.esm.js +17 -5
  18. package/dist/autoconsent.playwright.js +17 -5
  19. package/dist/types/eval-snippets.d.ts +0 -2
  20. package/dist/types/heuristics.d.ts +1 -0
  21. package/docs/rule-syntax.md +32 -1
  22. package/lib/eval-snippets.ts +0 -3
  23. package/lib/heuristics.ts +18 -3
  24. package/package.json +1 -1
  25. package/rules/autoconsent/elsevier-pure.json +31 -0
  26. package/rules/autoconsent/facebook.json +21 -7
  27. package/rules/autoconsent/fullertonhotels.com.json +37 -0
  28. package/rules/autoconsent/geni.com.json +8 -5
  29. package/rules/autoconsent/remarkable.com.json +6 -27
  30. package/rules/autoconsent/unicourt.json +5 -5
  31. package/rules/compact-rules.json +1 -1
  32. package/rules/generated/auto_AU_flysaa.com_qsm.json +10 -9
  33. package/rules/generated/auto_DE_immobilien.sparkasse.de_zj7.json +10 -10
  34. package/rules/generated/auto_GB_www2.hm.com_0.json +15 -6
  35. package/rules/rules.json +1 -1
  36. package/tests/elsevier-pure.spec.ts +11 -0
  37. package/tests/fullertonhotels.com.spec.ts +6 -0
  38. package/tests/generated/auto_GB_www2.hm.com_0.spec.ts +16 -0
  39. package/tests-wtr/heuristics/get-actionable-popups.html +24 -0
  40. package/tests-wtr/heuristics/get-actionable-popups.ts +36 -0
  41. package/tests-wtr/heuristics/heuristics-utils.test.ts +43 -0
  42. package/rules/autoconsent/mediavine.json +0 -17
  43. package/rules/autoconsent/national-lottery-co-uk.json +0 -11
  44. package/rules/autoconsent/ouraring.json +0 -36
  45. package/rules/generated/auto_AU_discover.utas.edu.au_k2n.json +0 -37
  46. package/rules/generated/auto_AU_experts.deakin.edu.au_0kw.json +0 -40
  47. package/rules/generated/auto_AU_experts.griffith.edu.au_oi0.json +0 -37
  48. package/rules/generated/auto_AU_fullertonhotels.com_y46.json +0 -40
  49. package/rules/generated/auto_AU_profiles.uts.edu.au_ouv.json +0 -37
  50. package/rules/generated/auto_AU_scholars.latrobe.edu.au_li6.json +0 -40
  51. package/rules/generated/auto_CA_discover.research.utoronto.ca_vtf.json +0 -40
  52. package/rules/generated/auto_CA_remarkable.com_kt9.json +0 -40
  53. package/rules/generated/auto_DE_www2.hm.com_beo.json +0 -40
  54. package/rules/generated/auto_GB_profiles.ucl.ac.uk_lpo.json +0 -40
  55. package/tests/generated/auto_AU_discover.utas.edu.au_k2n.spec.ts +0 -6
  56. package/tests/generated/auto_AU_experts.deakin.edu.au_0kw.spec.ts +0 -6
  57. package/tests/generated/auto_AU_experts.griffith.edu.au_oi0.spec.ts +0 -6
  58. package/tests/generated/auto_AU_fullertonhotels.com_y46.spec.ts +0 -6
  59. package/tests/generated/auto_AU_profiles.uts.edu.au_ouv.spec.ts +0 -6
  60. package/tests/generated/auto_AU_scholars.latrobe.edu.au_li6.spec.ts +0 -6
  61. package/tests/generated/auto_CA_discover.research.utoronto.ca_vtf.spec.ts +0 -6
  62. package/tests/generated/auto_CA_remarkable.com_kt9.spec.ts +0 -2
  63. package/tests/generated/auto_DE_www2.hm.com_beo.spec.ts +0 -6
  64. package/tests/generated/auto_GB_profiles.ucl.ac.uk_lpo.spec.ts +0 -6
  65. package/tests/mediavine.spec.ts +0 -5
  66. package/tests/national-lottery.spec.ts +0 -5
  67. package/tests/ouraring.spec.ts +0 -3
@@ -548,7 +548,6 @@
548
548
  if (x.checked) x.click();
549
549
  }) || true,
550
550
  EVAL_IUBENDA_1: () => !!document.cookie.match(/_iub_cs-\d+=/),
551
- EVAL_MEDIAVINE_0: () => document.querySelectorAll('[data-name="mediavine-gdpr-cmp"] input[type=checkbox]').forEach((x) => x.checked && x.click()) || true,
552
551
  EVAL_MICROSOFT_0: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Reject|Ablehnen"))[0].click() || true,
553
552
  EVAL_MICROSOFT_1: () => Array.from(document.querySelectorAll("div > button")).filter((el) => el.innerText.match("Accept|Annehmen"))[0].click() || true,
554
553
  EVAL_MICROSOFT_2: () => !!document.cookie.match("MSCC|GHCC"),
@@ -564,7 +563,6 @@
564
563
  ).status === "deny",
565
564
  EVAL_POVR_GOBACK: () => window.history.back() || true,
566
565
  EVAL_PUBTECH_0: () => document.cookie.includes("euconsent-v2") && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)),
567
- EVAL_REMARKABLE_TEST: () => !!localStorage.getItem("rmCookieConsent"),
568
566
  EVAL_SHOPIFY_TEST: () => document.cookie.includes("gdpr_cookie_consent=0") || document.cookie.includes("_tracking_consent=") && JSON.parse(
569
567
  decodeURIComponent(
570
568
  document.cookie.split(";").find((s) => s.trim().startsWith("_tracking_consent")).split("=")[1]
@@ -1542,6 +1540,15 @@
1542
1540
  }
1543
1541
  return potentialPopups;
1544
1542
  }
1543
+ function isDialogLikeElement(node) {
1544
+ if (node.tagName === "DIALOG" && node.hasAttribute("open")) {
1545
+ return true;
1546
+ }
1547
+ if (node.getAttribute("role") === "dialog" || node.getAttribute("aria-modal") === "true") {
1548
+ return true;
1549
+ }
1550
+ return false;
1551
+ }
1545
1552
  function getPopupLikeElements() {
1546
1553
  const walker = document.createTreeWalker(
1547
1554
  document.documentElement,
@@ -1552,9 +1559,14 @@
1552
1559
  if (node.tagName === "BODY") {
1553
1560
  return NodeFilter.FILTER_SKIP;
1554
1561
  }
1555
- const cssPosition = window.getComputedStyle(node).position;
1556
- if ((cssPosition === "fixed" || cssPosition === "sticky") && isElementVisible(node)) {
1557
- return NodeFilter.FILTER_ACCEPT;
1562
+ if (isElementVisible(node)) {
1563
+ const cssPosition = window.getComputedStyle(node).position;
1564
+ if (cssPosition === "fixed" || cssPosition === "sticky") {
1565
+ return NodeFilter.FILTER_ACCEPT;
1566
+ }
1567
+ if (isDialogLikeElement(node)) {
1568
+ return NodeFilter.FILTER_ACCEPT;
1569
+ }
1558
1570
  }
1559
1571
  return NodeFilter.FILTER_SKIP;
1560
1572
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "Autoconsent",
4
- "version": "2026.3.28",
4
+ "version": "2026.4.8",
5
5
  "background": {
6
6
  "scripts": [
7
7
  "background.bundle.js"