Skip to content

Update webext-sdk dependency to 0.7.2

Background / User story

We need to integrate a version of EWE that provides us with core ad blocking functionality that's compatible with Manifest v3, so that we can generate a first version of Adblock Plus based on Manifest v3. Furthermore, we need full support for the SDK API (e.g. EWE.reporting.onBlockableItem) in order to avoid/minimize regressions in Adblock Plus.

EWE milestone: https://gitlab.com/eyeo/adblockplus/abc/webext-sdk/-/milestones/19

Dependency changes

Integration changes

  • Legal: TBD
  • Development:
    • Use @adblockinc/rules/dist/index/adblockplus.json index file also for Manifest v2 builds.
    • Adjust code to avoid or handle errors thrown by EWE.subscriptions.enable()/disable()/remove() when calling it for a subscription that's not installed.
    • Ensure that allowlisting.{onUnauthorized|setAllowlistingCallback|setAuthorizedKeys} are called synchronously when the extension loads
    • Ensure that recommendation URLs are not hardcoded, as they will be different in Manifest v3.
    • Use EWE.subscriptions.getMigrationErrors() to log errors that occurred during the data migration.

Hints for testers

We have partially skipped Feature QA for #1070 (closed), #1080 (closed) and #1086 (closed), because we couldn't verify that everything works as expected under Manifest v3 without filters being applied and generating filter hits.

  • Default filter lists (incl. for Acceptable Ads) should be preinstalled and available/configurable via the UI on Manifest v2 (and v3) as before (e.g. users should be able to add/remove default filter lists).
  • Adding/removing/enabling/disabling filter lists should not lead to any errors.
  • Experimental Allowlisting API should work in Manifest v3.
  • If any filter list couldn't be migrated from Manifest v2 to v3 (e.g. because it's a third-party filter list), the JavaScript console should show a message about it. Due to https://gitlab.com/eyeo/adblockplus/abc/webext-sdk/-/issues/385, the message may only be shown after the extension gets reloaded.
Edited by Thomas Greiner
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information