-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle popup right after first popup detected (#326) #327
Conversation
I'd like to accept every code style fixes. Please, feel free to leave a comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @seia-soto, I really appreciate your help! This looks great to me, but I'd like @sammacbeth to have a second look since this is a core change.
Note that this is a holiday season, so a turnaround may be a bit slow 🙏
lib/web.ts
Outdated
this.detectPopup(cmps[i]) | ||
.then(cmp => { | ||
foundCmps.push(cmp) | ||
|
||
if (foundCmps.length === 1) { | ||
onFirstPopupAppears(cmp) | ||
} | ||
}) | ||
.catch(error => { | ||
enableLogs && console.warn(`error waiting for a popup for ${cmps[i].name}`, error) | ||
}) | ||
.finally(() => { | ||
if (++completed === l) { | ||
resolve(foundCmps) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this be rewritten with async
/await
? I find that easier to follow, and matches the code-style in the rest of the project.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I converted the function using Promise.race
and Promise.allSettled
. Generally agreeing to code-style problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- changing as later review stated that Promise.any should be used.
Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com>
Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com>
I'm holding off on merging here, as I noticed an increase in test failures when running the Playwright tests from #323 on this branch. I need to investigate if this might have caused a regression. |
We may return unassigned `result` variable before the callback function of `onFirstPopupAppears` because Promise of `detectPopups` can be resolved before the Promise of `handlePopup`.
@sammacbeth @muodov Sorry for making confusion. I found that
|
@seia-soto Can you rebase with main? Then I'll run a new round of tests to check if this fix is working correctly. |
Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com>
Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com>
We may return unassigned `result` variable before the callback function of `onFirstPopupAppears` because Promise of `detectPopups` can be resolved before the Promise of `handlePopup`.
@sammacbeth done! |
Thanks, it looks like there was an issue with the rebase because your diff is now much too large. I created a clean branch and cherry-picked your commits to test: https://github.com/duckduckgo/autoconsent/tree/sam/327-rebase My testing found that this change is failing in quite a few cases with this error: For example, try the following sites: |
@sammacbeth Hi sam, it seems like we can simply put error handler there. Can you rerun your test on the following branch? https://github.com/seia-soto/autoconsent/tree/sam/327-rebase |
Thanks @seia-soto. This looks to work better. Can you open a new PR based on that branch (or fix the merge and conflicts on this PR), then I'll give this another pass. |
# Conflicts: # lib/web.ts
@muodov Please, take a look into the result of merge so your recent feature push can work properly :) Maybe it's better to see total diff: https://github.com/duckduckgo/autoconsent/pull/327/files |
@seia-soto the merge update looks good to me |
@sammacbeth I'm now ready to merge! |
FYI #365 |
* Add a deferred check for usercentrics (duckduckgo#322) * Update CHANGELOG.md [skip ci] * Bump version to: 6.6.1 [skip ci] * Add a rule for csu-landtag.de (duckduckgo#324) * Add a rule for roofingmegastore.co.uk (duckduckgo#325) refs ghostery/broken-page-reports#344 * Add a rule for ciaopeople.it (duckduckgo#320) * Add a rule for ohga.it refs ghostery/broken-page-reports#318 * Rename ohga.it to ciaopeople.it and add relations - ohga.it - lexplain.it - wamily.it - fanpage.it * Add test for ciaopeople-it and remove obsoletes * Update tests/ciaopeople-it.spec.ts --------- Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * Update CHANGELOG.md [skip ci] * Bump version to: 6.7.0 [skip ci] * Fix CSP errors when running eval rules in MV3 extension (duckduckgo#318) * Pass eval snippet function directly to avoid CSP errors * Make microsoft rule pass on github * Update CHANGELOG.md [skip ci] * Bump version to: 7.0.0 [skip ci] * Improve Tealium support (duckduckgo#315) * Publish coverage data (duckduckgo#330) Co-authored-by: Dax the Deployer <dax@duckduckgo.com> * iWink rule (duckduckgo#123) * iWink rule * Make iWink rule more specific --------- Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * Update CHANGELOG.md [skip ci] * Bump version to: 7.1.0 [skip ci] * Bump the dev-dependencies group with 4 updates (duckduckgo#328) Bumps the dev-dependencies group with 4 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [chai](https://github.com/chaijs/chai) and [esbuild](https://github.com/evanw/esbuild). Updates `@typescript-eslint/eslint-plugin` from 6.15.0 to 6.17.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.17.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.15.0 to 6.17.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.17.0/packages/parser) Updates `chai` from 4.3.10 to 5.0.0 - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](chaijs/chai@v4.3.10...v5.0.0) Updates `esbuild` from 0.19.9 to 0.19.11 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](evanw/esbuild@v0.19.9...v0.19.11) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: chai dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: esbuild dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Single selector in hide rules (duckduckgo#334) * Improve Tealium rule * Change compile target for the test bundle to support optional chaining in evals * Add test cases for tealium * Make the hide rule accept a single selector (duckduckgo#316) * Make the `hide` rule accept a single selector instead of a list * Change the Hide rule in json files * Update element selector docs * Add a note about hide rule only supporting CSS selectors * Update CHANGELOG.md [skip ci] * Bump version to: 8.0.0 [skip ci] * Add a rule for hema.com (duckduckgo#319) * Add a rule for hema.com `hema.com` includes Cookiebot CMP script inside their website but it's unused in actual. * Remove unnecessary wait in the cookiebot rule * Tweak the hema rule * Add runContext for hema-com Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> * Adjust rule trigger for hema Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> --------- Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> * Test a subset of sites found in the coverage crawl in CI (duckduckgo#323) * Add a test to test a subset of sites from the coverage data * Run subset test on Jenkins * Use webkit for CI * Make number of sites configurable * Allow other branches to be checked out. * Run tests together in a single step * Add browser to description * Increase the test timeout * Update test result paths * Don't upload screenshots * Improve env block * Revert test root * Only use sites where the popup is open by default as examples (duckduckgo#336) * Add a rule for ing.de (duckduckgo#337) Testing this site results in IP address ban. * Update CHANGELOG.md [skip ci] * Bump version to: 8.1.0 [skip ci] * Klaro: fix toggle selectors (duckduckgo#339) * Klaro: use "disable all" button when available. * Exclude 'required-only' * Support multiline eval snippets and update klaro to test all possible APIs * Improve Klaro self test snippet * Tidy spacing * Handle some more design variants * Update CHANGELOG.md [skip ci] * Bump version to: 8.2.0 [skip ci] * Bump the dev-dependencies group with 3 updates (duckduckgo#335) Bumps the dev-dependencies group with 3 updates: [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@types/chrome` from 0.0.254 to 0.0.256 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) Updates `@typescript-eslint/eslint-plugin` from 6.17.0 to 6.18.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.18.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.17.0 to 6.18.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.18.0/packages/parser) --- updated-dependencies: - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Configurable logs (duckduckgo#332) * Make logs togglable via config * Wrap rule executors in a class instance * Refactor unit tests * Make logs toggleable from the extension popup * Rename rule-executors to dom-actions * Make logs more granular * Normalize config before initialization * Fix dom actions tests * post-merge mixes * Remove commented lines * Update CHANGELOG.md [skip ci] * Bump version to: 9.0.0 [skip ci] * Add a rule for lightbox CMP (duckduckgo#329) * Add a rule for voba-rhein-erft-koeln.de refs ghostery/broken-page-reports#420 * Rename to lightbox and add relevant websites * feat: add a detailed rule for lightbox Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> --------- Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * Update CHANGELOG.md [skip ci] * Bump version to: 9.1.0 [skip ci] * Handle popup right after first popup detected (duckduckgo#326) (duckduckgo#327) * Handle popup right after first popup detected (duckduckgo#326) refs duckduckgo#326 refs duckduckgo#319 * Remove useless additional function call * Remove useless default for function argument * Convert Promise based `detectPopups` to async/await Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> * fix: only accept fullfilled promises Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * fix: await on first popup appears callback We may return unassigned `result` variable before the callback function of `onFirstPopupAppears` because Promise of `detectPopups` can be resolved before the Promise of `handlePopup`. * Handle popup right after first popup detected (duckduckgo#326) refs duckduckgo#326 refs duckduckgo#319 * Remove useless additional function call * Remove useless default for function argument * Convert Promise based `detectPopups` to async/await Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> * fix: only accept fullfilled promises Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * fix: await on first popup appears callback We may return unassigned `result` variable before the callback function of `onFirstPopupAppears` because Promise of `detectPopups` can be resolved before the Promise of `handlePopup`. * fix: unhandled exception --------- Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> * Update CHANGELOG.md [skip ci] * Bump version to: 9.2.0 [skip ci] * Handle absence of structuredClone() (duckduckgo#356) * Update CHANGELOG.md [skip ci] * Bump version to: 9.2.1 [skip ci] * Update the EZoic rule (duckduckgo#344) * Fix the Canonical rule (duckduckgo#345) * Add rules from Jan 10 Ghostery fixes (duckduckgo#341) * Add a rule for canyon.com refs ghostery/broken-page-reports#277 * Add a rule for transip.nl This website requires us to be redirect to opt-out. Successful test wasn't generated. * Add a rule for rog-forum.asus.com * Add a rule for hetzner.com * Add a rule for strato.de * Remove cosmetic flags * Update CHANGELOG.md [skip ci] * Bump version to: 9.3.0 [skip ci] * Add rule for bahn.de (duckduckgo#348) * Complianz regression fixes (duckduckgo#347) * Update the rule Complianz-optin * Fix Complianz-categories * Fix more Complianz sites * Increase timeout in the sourcepoint rule (duckduckgo#349) * Make a rejecting osano rule (duckduckgo#350) * Update CHANGELOG.md [skip ci] * Bump version to: 9.4.0 [skip ci] * Improve cookie-law-info rule (duckduckgo#352) * Add extra hiding to workaround pop-ups that are shown on mouse mve after opt-out (duckduckgo#353) * Support another version of uniconsent (duckduckgo#355) * More site-specific rules (duckduckgo#358) * Add rule for instagram * Add rules for europa.eu * Add rule for xvideos * Add rule for temu * Add rule for ecosia * Add rule for verizon * Add rule for fides CMP (duckduckgo#359) * Bump the dev-dependencies group with 7 updates (duckduckgo#360) Bumps the dev-dependencies group with 7 updates: | Package | From | To | | --- | --- | --- | | [@playwright/test](https://github.com/microsoft/playwright) | `1.40.1` | `1.41.1` | | [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.256` | `0.0.259` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `6.18.0` | `6.20.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `6.18.0` | `6.20.0` | | [chai](https://github.com/chaijs/chai) | `5.0.0` | `5.0.3` | | [esbuild](https://github.com/evanw/esbuild) | `0.19.11` | `0.20.0` | | [web-ext](https://github.com/mozilla/web-ext) | `7.9.0` | `7.11.0` | Updates `@playwright/test` from 1.40.1 to 1.41.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.40.1...v1.41.1) Updates `@types/chrome` from 0.0.256 to 0.0.259 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) Updates `@typescript-eslint/eslint-plugin` from 6.18.0 to 6.20.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.20.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.18.0 to 6.20.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.20.0/packages/parser) Updates `chai` from 5.0.0 to 5.0.3 - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](chaijs/chai@v5.0.0...v5.0.3) Updates `esbuild` from 0.19.11 to 0.20.0 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](evanw/esbuild@v0.19.11...v0.20.0) Updates `web-ext` from 7.9.0 to 7.11.0 - [Release notes](https://github.com/mozilla/web-ext/releases) - [Commits](mozilla/web-ext@7.9.0...7.11.0) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: chai dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: esbuild dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: web-ext dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: paypal-us (duckduckgo#361) * Fix Ketch and eu-cookie-compliance (duckduckgo#351) * Improve the Ketch rule * Better handle `if` without `else` * Improve eu-cookie-compliance rule * Address PR comments * Update CHANGELOG.md [skip ci] * Bump version to: 9.5.0 [skip ci] * Fix reddit rule (duckduckgo#362) * Handle Tealium implicit modal (duckduckgo#363) * Add rule for webflow (duckduckgo#364) * regression fix: Do not run opt-out unless a pop-up is actually shown (duckduckgo#365) * Update CHANGELOG.md [skip ci] * Bump version to: 9.6.0 [skip ci] * More site-specific pop-ups (duckduckgo#366) * Add rule for asus.com * Add rule for xe.com * Add rule for ourworldindata * Add rule for svt.se * Rule for productz.com * Add rule for dndbeyond * tweak the default rule template * Cosmetic rule for wolframalpha * Rule for arbeitsagentur * Add rule for jdsports * Add rule for hashicorp * Rule for setapp.com * Add rule for livejasmin * Add a rule for mobile twitch notice * Add rule for aliexpress * Work around randomized classnames in livejasmin and svt * More rules for common CMPs (duckduckgo#367) * Add rule for openli * Add rule for cookieconsent v2.x.x * Add rule for cookieconsent v3 * Add rule for cookieacceptbar * Add rules for termsfeed * Rule for hu-manity * Rule for OM Cookie manager * Rule for pabcogypsum.com * Rule for abconcerts.be * Add a rule for Taunton sites * Add a rule for lineagrafica * tweak taunton rule * Address PR comments * Update CHANGELOG.md [skip ci] * Bump version to: 9.7.0 [skip ci] * Avoid :has selectors in detect rules (duckduckgo#370) * Update CHANGELOG.md [skip ci] * Bump version to: 9.7.1 [skip ci] * tweak some site-specific rules to support mobile versions (duckduckgo#371) * Update CHANGELOG.md [skip ci] * Bump version to: 9.7.2 [skip ci] * Publish coverage data (duckduckgo#372) Co-authored-by: Dax the Deployer <dax@duckduckgo.com> * Bump the dev-dependencies group with 5 updates (duckduckgo#374) Bumps the dev-dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [@playwright/test](https://github.com/microsoft/playwright) | `1.41.1` | `1.41.2` | | [@puppeteer/replay](https://github.com/puppeteer/replay) | `2.13.4` | `3.0.0` | | [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.259` | `0.0.260` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `6.20.0` | `6.21.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `6.20.0` | `6.21.0` | Updates `@playwright/test` from 1.41.1 to 1.41.2 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.41.1...v1.41.2) Updates `@puppeteer/replay` from 2.13.4 to 3.0.0 - [Release notes](https://github.com/puppeteer/replay/releases) - [Changelog](https://github.com/puppeteer/replay/blob/main/CHANGELOG.md) - [Commits](puppeteer/replay@v2.13.4...v3.0.0) Updates `@types/chrome` from 0.0.259 to 0.0.260 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) Updates `@typescript-eslint/eslint-plugin` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/parser) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@puppeteer/replay" dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Setup github status reporting for Jenkins multibranch job (duckduckgo#373) * Setup github status reporting for Jenkins multibranch job * Disable junit checks publishing * Ensure correct branch is checked out on multi-branch runs * Suppress logging in CI * Fix some issues with stale commits * Mark run as failed if there are too many failures * Update action-asana-sync (duckduckgo#378) * Update asana.yml * Bump the dev-dependencies group with 4 updates (duckduckgo#377) Bumps the dev-dependencies group with 4 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [chai](https://github.com/chaijs/chai) and [mocha](https://github.com/mochajs/mocha). Updates `@typescript-eslint/eslint-plugin` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/parser) Updates `chai` from 5.0.3 to 5.1.0 - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](chaijs/chai@v5.0.3...v5.1.0) Updates `mocha` from 10.2.0 to 10.3.0 - [Release notes](https://github.com/mochajs/mocha/releases) - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - [Commits](mochajs/mocha@v10.2.0...v10.3.0) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-major dependency-group: dev-dependencies - dependency-name: chai dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: mocha dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump the dev-dependencies group with 7 updates (duckduckgo#382) Bumps the dev-dependencies group with 7 updates: | Package | From | To | | --- | --- | --- | | [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) | `4.3.11` | `4.3.12` | | [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.260` | `0.0.261` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `7.0.1` | `7.1.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `7.0.1` | `7.1.0` | | [auto](https://github.com/intuit/auto) | `11.0.4` | `11.1.1` | | [esbuild](https://github.com/evanw/esbuild) | `0.20.0` | `0.20.1` | | [eslint](https://github.com/eslint/eslint) | `8.56.0` | `8.57.0` | Updates `@types/chai` from 4.3.11 to 4.3.12 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai) Updates `@types/chrome` from 0.0.260 to 0.0.261 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome) Updates `@typescript-eslint/eslint-plugin` from 7.0.1 to 7.1.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 7.0.1 to 7.1.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.0/packages/parser) Updates `auto` from 11.0.4 to 11.1.1 - [Release notes](https://github.com/intuit/auto/releases) - [Changelog](https://github.com/intuit/auto/blob/main/CHANGELOG.md) - [Commits](intuit/auto@v11.0.4...v11.1.1) Updates `esbuild` from 0.20.0 to 0.20.1 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](evanw/esbuild@v0.20.0...v0.20.1) Updates `eslint` from 8.56.0 to 8.57.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](eslint/eslint@v8.56.0...v8.57.0) --- updated-dependencies: - dependency-name: "@types/chai" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@types/chrome" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: auto dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: esbuild dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Support reject button in clinch (duckduckgo#375) * Update CHANGELOG.md [skip ci] * Bump version to: 10.0.0 [skip ci] * Publish coverage data (duckduckgo#383) Co-authored-by: Dax the Deployer <dax@duckduckgo.com> * sync package-lock.json --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: HoJeong Go <seia@outlook.kr> Co-authored-by: Sam Macbeth <runner@fv-az1113-302.v4dlmfbwbvlezlyjnbnry1jt3f.cx.internal.cloudapp.net> Co-authored-by: Maxim Tsoy <maks.tsoy@gmail.com> Co-authored-by: Sam Macbeth <runner@fv-az979-838.lnrek1131jeubcfwnjesvv4kld.dx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1022-218.qszcca3gaylehey5nrg125joga.dx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <sammacbeth@users.noreply.github.com> Co-authored-by: Dax the Deployer <dax@duckduckgo.com> Co-authored-by: Tomassie91 <github@tomasklinkenberg.nl> Co-authored-by: Sam Macbeth <runner@fv-az1435-110.w10t344lelvuxfmjd4pvrrtsxg.cx.internal.cloudapp.net> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Macbeth <runner@fv-az735-909.3fam5btdjptetor2mdbeum0p5b.dx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <smacbeth@duckduckgo.com> Co-authored-by: Sam Macbeth <runner@fv-az532-920.yhfsaq54z0vebhuvdla3z0z0vh.cx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az885-671.m43iyx0u3v4e1h2pvvlabjukza.cx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az881-524.kxqfgnpkrxgetcyd3drl2yrtfd.ex.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1538-407.upsp13a5k4ou3ds4kr34xzh2lh.cx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1055-919.mrg2vkl14epehdn0xjtgmxanmg.phxx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az802-90.15taxv3x2l5urdl5ou4x200swd.phxx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az569-219.howdd30p31kevpcfp33h0nwd0f.bx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az735-561.3fam5btdjptetor2mdbeum0p5b.dx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az777-164.lfui0zr1uqperkldaumeavowed.bx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1242-670.5v455grvumqehdtexsenyv1bfb.ex.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1487-932.vpy2y30pan5uhaa0ktko4c43jh.ex.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az564-163.umv0eqcl5qku3cwf2dcfspuvdc.ex.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1198-835.olij14r4f4eezasrnq2weippdh.phxx.internal.cloudapp.net> Co-authored-by: Sam Macbeth <runner@fv-az1532-911.r45ftdqj0iiudj1ovfs3chqk3e.ex.internal.cloudapp.net>
This PR adds immediate processing of first appeared popup to fix #326 . Instead of waiting all promises, I added a callback to handle first appearing popup.
By using callback, the popup code won't be disturbed by other CMP detection codes. Also, I could maintain the code consistency.
Code summarization:
This PR also includes the following changes:
Array.prototype.map
iteration to single loop to filter out CMPs including cosmetic rules (performance reasons)test-results/
and.DS_Store
to.gitignore
Some suggestions:
contributing.md
file for future contributorsrefs #326
refs #319