@duckduckgo/autoconsent 1.0.6 → 1.0.7

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.
@@ -701,7 +701,17 @@ function handleMessage(message, debug = false) {
701
701
  const elem = document.querySelectorAll(message.selector);
702
702
  const results = new Array(elem.length);
703
703
  elem.forEach((e, i) => {
704
- results[i] = e.offsetParent !== null || window.getComputedStyle(e).display !== "none"; // TODO: handle visibility and z-index?
704
+ // check for display: none
705
+ results[i] = false;
706
+ if (e.offsetParent !== null) {
707
+ results[i] = true;
708
+ }
709
+ else {
710
+ const css = window.getComputedStyle(e);
711
+ if (css.position === 'fixed' && css.display !== "none") { // fixed elements may be visible even if the parent is not
712
+ results[i] = true;
713
+ }
714
+ }
705
715
  });
706
716
  debug && console.log("[visible?]", message.selector, elem, results);
707
717
  if (results.length === 0) {
@@ -1190,6 +1200,8 @@ class Onetrust extends AutoConsentBase {
1190
1200
  await success(tab.wait(1000));
1191
1201
  await tab.clickElements("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked"); // optional step
1192
1202
  await success(tab.waitForThenClick(".save-preference-btn-handler,.js-consent-save", 1000));
1203
+ // popup doesn't disappear immediately
1204
+ await waitFor(async () => !(await tab.elementsAreVisible("#onetrust-banner-sdk")), 10, 500);
1193
1205
  return true;
1194
1206
  }
1195
1207
  async optIn(tab) {
@@ -697,7 +697,17 @@ function handleMessage(message, debug = false) {
697
697
  const elem = document.querySelectorAll(message.selector);
698
698
  const results = new Array(elem.length);
699
699
  elem.forEach((e, i) => {
700
- results[i] = e.offsetParent !== null || window.getComputedStyle(e).display !== "none"; // TODO: handle visibility and z-index?
700
+ // check for display: none
701
+ results[i] = false;
702
+ if (e.offsetParent !== null) {
703
+ results[i] = true;
704
+ }
705
+ else {
706
+ const css = window.getComputedStyle(e);
707
+ if (css.position === 'fixed' && css.display !== "none") { // fixed elements may be visible even if the parent is not
708
+ results[i] = true;
709
+ }
710
+ }
701
711
  });
702
712
  debug && console.log("[visible?]", message.selector, elem, results);
703
713
  if (results.length === 0) {
@@ -1186,6 +1196,8 @@ class Onetrust extends AutoConsentBase {
1186
1196
  await success(tab.wait(1000));
1187
1197
  await tab.clickElements("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked"); // optional step
1188
1198
  await success(tab.waitForThenClick(".save-preference-btn-handler,.js-consent-save", 1000));
1199
+ // popup doesn't disappear immediately
1200
+ await waitFor(async () => !(await tab.elementsAreVisible("#onetrust-banner-sdk")), 10, 500);
1189
1201
  return true;
1190
1202
  }
1191
1203
  async optIn(tab) {
@@ -956,6 +956,8 @@ class Onetrust extends AutoConsentBase {
956
956
  await success(tab.wait(1000));
957
957
  await tab.clickElements("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked"); // optional step
958
958
  await success(tab.waitForThenClick(".save-preference-btn-handler,.js-consent-save", 1000));
959
+ // popup doesn't disappear immediately
960
+ await waitFor(async () => !(await tab.elementsAreVisible("#onetrust-banner-sdk")), 10, 500);
959
961
  return true;
960
962
  }
961
963
  async optIn(tab) {
@@ -1,4 +1,4 @@
1
- import AutoConsentBase, { success } from "./base";
1
+ import AutoConsentBase, { success, waitFor } from "./base";
2
2
  export default class Onetrust extends AutoConsentBase {
3
3
  constructor() {
4
4
  super("Onetrust");
@@ -21,6 +21,8 @@ export default class Onetrust extends AutoConsentBase {
21
21
  await success(tab.wait(1000));
22
22
  await tab.clickElements("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked"); // optional step
23
23
  await success(tab.waitForThenClick(".save-preference-btn-handler,.js-consent-save", 1000));
24
+ // popup doesn't disappear immediately
25
+ await waitFor(async () => !(await tab.elementsAreVisible("#onetrust-banner-sdk")), 10, 500);
24
26
  return true;
25
27
  }
26
28
  async optIn(tab) {
@@ -1,4 +1,4 @@
1
- import AutoConsentBase, { success } from "./base";
1
+ import AutoConsentBase, { success, waitFor } from "./base";
2
2
  import { TabActor } from "../types";
3
3
 
4
4
  export default class Onetrust extends AutoConsentBase {
@@ -28,6 +28,12 @@ export default class Onetrust extends AutoConsentBase {
28
28
  await success(tab.wait(1000));
29
29
  await tab.clickElements("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked"); // optional step
30
30
  await success(tab.waitForThenClick(".save-preference-btn-handler,.js-consent-save", 1000));
31
+ // popup doesn't disappear immediately
32
+ await waitFor(
33
+ async () => !(await tab.elementsAreVisible("#onetrust-banner-sdk")),
34
+ 10,
35
+ 500
36
+ );
31
37
  return true;
32
38
  }
33
39
 
@@ -24,7 +24,17 @@ export default function handleMessage(message, debug = false) {
24
24
  const elem = document.querySelectorAll(message.selector);
25
25
  const results = new Array(elem.length);
26
26
  elem.forEach((e, i) => {
27
- results[i] = e.offsetParent !== null || window.getComputedStyle(e).display !== "none"; // TODO: handle visibility and z-index?
27
+ // check for display: none
28
+ results[i] = false;
29
+ if (e.offsetParent !== null) {
30
+ results[i] = true;
31
+ }
32
+ else {
33
+ const css = window.getComputedStyle(e);
34
+ if (css.position === 'fixed' && css.display !== "none") { // fixed elements may be visible even if the parent is not
35
+ results[i] = true;
36
+ }
37
+ }
28
38
  });
29
39
  debug && console.log("[visible?]", message.selector, elem, results);
30
40
  if (results.length === 0) {
@@ -24,7 +24,16 @@ export default function handleMessage(message: ContentScriptMessage, debug = fal
24
24
  const elem = document.querySelectorAll<HTMLElement>(message.selector);
25
25
  const results = new Array(elem.length);
26
26
  elem.forEach((e, i) => {
27
- results[i] = e.offsetParent !== null || window.getComputedStyle(e).display !== "none"; // TODO: handle visibility and z-index?
27
+ // check for display: none
28
+ results[i] = false;
29
+ if (e.offsetParent !== null) {
30
+ results[i] = true;
31
+ } else {
32
+ const css = window.getComputedStyle(e);
33
+ if (css.position === 'fixed' && css.display !== "none") { // fixed elements may be visible even if the parent is not
34
+ results[i] = true;
35
+ }
36
+ }
28
37
  });
29
38
  debug && console.log("[visible?]", message.selector, elem, results);
30
39
  if (results.length === 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckduckgo/autoconsent",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "",
5
5
  "main": "dist/autoconsent.cjs.js",
6
6
  "module": "dist/autoconsent.esm.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws.amazon.com",
3
- "prehideSelectors": ["#awsccc-cb-content", "#awsccc-cs-container-inner"],
3
+ "prehideSelectors": ["#awsccc-cb-content", "#awsccc-cs-container", "#awsccc-cs-modalOverlay", "#awsccc-cs-container-inner"],
4
4
  "detectCmp": [{ "exists": "#awsccc-cb-content" }],
5
5
  "detectPopup": [{ "visible": "#awsccc-cb-content" }],
6
6
  "optIn": [{ "click": "button[data-id=awsccc-cb-btn-accept" }],
@@ -2,7 +2,7 @@
2
2
  "name": "bundesregierung.de",
3
3
  "prehideSelectors": [".bpa-cookie-banner"],
4
4
  "detectCmp": [{ "exists": ".bpa-cookie-banner" }],
5
- "detectPopup": [{ "visible": ".bpa-module-full-hero" }],
5
+ "detectPopup": [{ "visible": ".bpa-cookie-banner .bpa-module-full-hero" }],
6
6
  "optIn": [{ "click": ".bpa-accept-all-button" }],
7
7
  "optOut": [
8
8
  {
package/rules/rules.json CHANGED
@@ -56,6 +56,8 @@
56
56
  "name": "aws.amazon.com",
57
57
  "prehideSelectors": [
58
58
  "#awsccc-cb-content",
59
+ "#awsccc-cs-container",
60
+ "#awsccc-cs-modalOverlay",
59
61
  "#awsccc-cs-container-inner"
60
62
  ],
61
63
  "detectCmp": [
@@ -146,7 +148,7 @@
146
148
  ],
147
149
  "detectPopup": [
148
150
  {
149
- "visible": ".bpa-module-full-hero"
151
+ "visible": ".bpa-cookie-banner .bpa-module-full-hero"
150
152
  }
151
153
  ],
152
154
  "optIn": [