Opened on 03/28/2019 at 11:35:30 AM
Last modified on 04/10/2019 at 02:19:00 PM
#7415 reviewing defect
ABP data is not being migrated
Reported by: | diegocarloslima | Assignee: | diegocarloslima |
---|---|---|---|
Priority: | P2 | Milestone: | Adblock-Browser-for-Android-1.4.1 |
Module: | Adblock-Browser-for-Android | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Platform: | Adblock Browser for Android | |
Ready: | yes | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description (last modified by diegocarloslima)
Environment
OnePlus 5
Android 9
How to reproduce
Install version 1.4.0 from the Play Store
Launch ABB, and go to three-dots menu > Settings > Ad blocking
Subscribe to some filter lists under "Languages" and "More blocking options"
Add a domain under "Whitelisted websites"
Tap "Acceptable Ads" and deselect the checkbox
Quit ABB
Install version 1.5.0
Observed behaviour
Only the English filter list is enabled, the whitelisted sites list is empty, and Acceptable Ads are enabled again.
Expected behaviour
The same filter lists are enabled as prior to the upgrade, the whitelisted domain is still whitelisted, and Acceptable Ads setting is disabled.
Hints for testers
This can be verified working by installing ABB 1.4.0 -> 1.4.1 -> 1.5.0
There's just one remark: When 1.4.1 is installed, it doesn't migrate the data from the old location to the webextension storage right away.
The ABP extension storage needs to be in the dirty state to perform a save operation. Usually, without any specific user action, the dirty state is achieved after 1 hour the app is updated. Its important that a save is performed before updating to 1.5.0, otherwise the data wont be migrated.
Another way to force a save without having to wait is to change any ad blocking setting while in 1.4.1 (e.g. add a filter list language, whitelist some website, toggle AA)
Attachments (0)
Change History (5)
comment:1 Changed on 03/28/2019 at 11:42:48 AM by diegocarloslima
comment:2 Changed on 03/28/2019 at 02:01:56 PM by diegocarloslima
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:5 Changed on 04/10/2019 at 02:19:00 PM by mario
- Milestone set to Milestone Adblock-Browser-for-Android-1.4.1
After some digging into the extension code, I found the reason why this is happenning. Basically, ABB 1.4.0 is based on FF 56 and uses ABP 2.9.1. This extension version should be responsible for transitioning the storage location from the patterns.ini to the new webextensions storage system (more info here).
The thing is, that the extension doesnt perform this migration for adblockbrowser ID, only for firefox and fennec2. Thats why when ABB 1.5.0 is installed, which is based on FF 59.0.2 and uses ABP 3.2, it tries to read from the webextension storage and doesn't find anything, since the data hasn't been previously migrated.
The best way to solve this is to create an intermediate ABB version (1.4.1), which is still based on FF 56 and uses a modified version of ABP 2.9.1, which will properly migrate the data.