Update webext-sdk dependency to 0.6.0
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 an first version of Adblock Plus based on Manifest v3.
EWE milestone: %WebExt SDK 0.6.0 in eyeo/adblockplus/abc/webext-sdk
Dependency changes
- Name: webext-sdk
- New version: 0.6.0
-
Breaking changes:
-
ewe.start()
no longer installs default subscriptions (useewe.subscriptions.addDefaults()
instead). -
snippets.setLibrary()
now expects snippet functions to be provided via callback functions. - Some functions were made asynchronous:
filters.getAllowingFilters()
filters.isResourceAllowlisted()
subscriptions.add()
subscriptions.disable()
subscriptions.enable()
subscriptions.getDownloadable()
subscriptions.getFilters()
subscriptions.getForFilter()
subscriptions.has()
subscriptions.remove()
-
-
Other changes:
-
ewe.start()
can be provided a list of subscriptions for Manifest v3. -
ewe.start()
can return warnings. - Recommendations contain some additional properties.
-
Integration changes
- Legal: TBD
-
Development:
- Increase minimum supported Chromium version to 102 due to our and EWE's usage of
browser.storage.session
. - Import snippets from
@eyeo/snippets
as a module instead of fetching snippets.json file, in order to pass it toEWE.snippets.setLibrary()
(requires fix in 0.5.3).
- Increase minimum supported Chromium version to 102 due to our and EWE's usage of
Hints for testers
We have partially skipped Feature QA for #1070 (closed), #1080 (closed) and #1086 (closed), #1071 (closed), because we couldn't verify that everything works as expected under Manifest v3 without filters being applied and generating filter hits.
This dependency update does not integrate static filter lists yet, which will be added as part of #1069 (closed). Therefore ad blocking functionality (incl. subscription management) under Manifest v3 is not expected to work yet. Everything should continue to work as expected under Manifest v2 though, including:
- Initialization
- Preinstall default filter lists only on first-run, or when filter settings are expected to be restored.
- Adding/updating/removing custom filters
- Preinstalling filter lists defined via "additional_subscriptions" preference.
- Domain/page allowlisting (incl. in mobile settings page).
- Enabling disabled filters in filter lists.
- Reflecting state/changes in UI.
- Adding/updating/removing filter lists
- Correct filter lists should be used for the respective features (e.g. EasyPrivacy for privacy protection, EasyListGermany+EasyList for German language).
- Acceptable Ads checkboxes should work as expected.
- Reflecting state/changes in UI.
- Snippets
- Displaying items in developer tools panel
- Block element feature
- Language recommendation feature
- Uninstall URL