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):

https://codereview.adblockplus.org/30033563/

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

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.

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:3 Changed on 04/10/2019 at 01:31:37 PM by diegocarloslima

  • Description modified (diff)

comment:4 Changed on 04/10/2019 at 02:16:11 PM by diegocarloslima

  • Description modified (diff)

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

Add Comment

Modify Ticket

Change Properties
Action
as reviewing .
as The resolution will be set. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from diegocarloslima.
 
Note: See TracTickets for help on using tickets.