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