Update webext-sdk dependency to 0.8.0
Background / User story
We want to bring in additional fixes and features to improve our Manifest v3 extension.
EWE milestone: %WebExt SDK 0.8.0 in eyeo/adblockplus/abc/webext-sdk
Dependency changes
- Name: webext-sdk
- New version: 0.8.0
-
Breaking changes:
-
subscriptions.getMigrationErrors()
was made asynchronous and no longer returns all migration errors. -
subscriptions.getMigrationErrors()
now returns theSubscription
object. -
eyeo/adblockplus/abc/webext-sdk#320 - Made
notifications
APIs asynchronous. -
eyeo/adblockplus/abc/webext-sdk#321 - Made
debugging.setElementHidingDebugMode()
anddebugging.setElementHidingDebugStyle()
asynchronous. -
eyeo/adblockplus/abc/webext-sdk#340 - Removed
subscriptions.removeAll()
. -
eyeo/adblockplus/abc/webext-sdk#365 - Subscriptions returned by
subscriptions.getDownloadables()
include certain properties only if they're downloadable:downloading
downloadCount
downloadStatus
expires
lastDownload
lastSuccess
softExpiration
version
- No dNR rules files are generated anymore for "circumvention"-type filter lists.
-
-
Other changes:
- Added
filters.getMigrationErrors()
. -
eyeo/adblockplus/abc/webext-sdk#321 -
debugging
settings are kept across extension restarts. -
eyeo/adblockplus/abc/webext-sdk#386 -
npm run build
now also generates dNR rules files. -
eyeo/adblockplus/abc/webext-sdk#420 - Added
debugging.clearDebugOptions()
. - eyeo/adblockplus/abc/webext-sdk#438 - Upgraded to adblockpluscore 0.11.0.
- Manifest v3
- eyeo/adblockplus/abc/webext-sdk#343 - "circumvention"-type filter list are being updated dynamically.
- eyeo/adblockplus/abc/webext-sdk#380 - Added sitekey support.
- eyeo/adblockplus/abc/webext-sdk#404 - Added regex filter support.
- Service worker compatibility (eyeo/adblockplus/abc/webext-sdk#320, eyeo/adblockplus/abc/webext-sdk#321, eyeo/adblockplus/abc/webext-sdk#325)
- Added
Integration changes
- Legal: TBD
-
Development:
- Adjust usage of the following APIs accordingly:
debugging.setElementHidingDebugMode()
debugging.setElementHidingDebugStyle()
notifications.getDownloadCount()
notifications.getIgnoredCategories()
notifications.markAsShown()
notifications.shouldIgnoreNotifications()
notifications.showNext()
notifications.showNotification()
notifications.start()
notifications.toggleIgnoreCategory()
subscriptions.getDownloadables()
subscriptions.getMigrationErrors()
- Use
filters.getMigrationErrors()
alongsidesubscriptions.getMigrationErrors()
. -
Regenerate rules files.(see #1327 (closed)) - If necessary, adjust usage of
debugging
APIs, as its state no longer needs to be persisted. - If necessary, adjust usage of local notifications, as they're now being persisted.
- If necessary, adjust to changes to "circumvention"-type filter lists generation/download behavior.
- Check whether eyeo/adblockplus/abc/adblockpluscore#478 (closed) has any negative impact on the
reinitialized
state during initialization.
- Adjust usage of the following APIs accordingly:
Hints for testers
- There should be no permission warnings when upgrading from Manifest v2 to v3.
- Request blocking should continue to work on all websites.
We changed the extension permissions for blocking requests to only apply to those sites that we have host permissions for. We currently have those for all sites, but this is expected to change at some point in the future. - Element hiding debug mode should work as expected.
- Notifications should work as expected (incl. opting-in/out of notifications; download count attached to uninstall URL).
- Local notifications (i.e. day-1, problem and updates notifications) should not be shown multiple times in the same session.
- Removing all filter lists should lead to the settings being reinitialized and the "problem" notification being shown.
- On subsequent extension restarts (see eyeo/adblockplus/abc/webext-sdk#385), error messages should be shown in background page JavaScript console for each subscription and filter migration error that occurred.
Note that this issue doesn't include the changes from #1327 (closed) and #1328 (closed) yet, so under Manifest v3 the following is not expected to work yet:
- Considering non-downloadable filter lists in the UI (e.g. last updated data shown in settings page, download status shown in issue report data)
- Regular expression filters support
- Omitting inclusion of downloadable filter lists (i.e. "circumvention"-type filter lists) in the extension build