Opened on 02/20/2015 at 10:11:41 AM
Closed on 04/20/2015 at 03:26:52 PM
Last modified on 06/03/2015 at 01:57:37 PM
#2021 closed change (fixed)
Replace FileSystem API with chrome.storage
Reported by: | sebastian | Assignee: | sebastian |
---|---|---|---|
Priority: | P3 | Milestone: | Adblock-Plus-1.9-for-Chrome-Opera-Safari |
Module: | Platform | Keywords: | |
Cc: | mapx, Ross | Blocked By: | #2040 |
Blocking: | Platform: | Unknown | |
Ready: | yes | Confidential: | no |
Tester: | Verified working: | yes | |
Review URL(s): |
http://codereview.adblockplus.org/5768064935133184 |
Description (last modified by sebastian)
Background
Currently Adblock Plus for Chrome uses the FileSystem API to store filter lists. However, that API didn't make it into the standard and is only implemented in Blink. Hence it is just a matter of time until it will be phased out.
What to change
Replace the FileSystem API with chrome.storage.local, and migrate filters for existing users.
Hint for testers
Make sure that subscriptions and user filters are preserved ...
- when updating from a version before this change.
- across browser restart, further extension updates, and crashes.
Attachments (0)
Change History (14)
comment:5 Changed on 02/25/2015 at 01:40:52 PM by sebastian
- Blocked By 2040 added
comment:7 Changed on 02/25/2015 at 04:50:08 PM by sebastian
- Owner set to sebastian
comment:8 Changed on 02/26/2015 at 12:12:36 PM by sebastian
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:9 Changed on 04/20/2015 at 03:26:52 PM by sebastian
- Milestone set to Adblock-Plus-for-Chrome-Opera-Safari-next
- Resolution set to fixed
- Status changed from reviewing to closed
- Verified working unset
comment:10 Changed on 04/21/2015 at 12:19:41 PM by Ross
I tested this going from build 1.8.12.1394 to 1.8.12.1422.
- Installed 1394. Added a new subscription (German EasyList), disabled AA and added a string to the filter and white lists.
- Upgraded to 1422. Preferences were preserved (as expected).
- Restarted Chrome. Preferences still preserved (as expected).
- Added new entries to the whitelist / toggled AA / Added EasyList China and restarted Chrome.
- Preferences are now back in the state set in Step 1.
Chrome 42.0.2311.90 / Windows 8.1 x64 / ABP: 1.8.12.1394 / 1.8.12.1422
comment:11 Changed on 04/21/2015 at 01:58:59 PM by sebastian
- Cc Ross added
- Review URL(s) modified (diff)
Reproduced. Calling removeRecursively() on the root directory fails. Hence, data originally stored with the FileSystem API are migrated again, every time the extension is loaded, overwriting changes.
comment:12 Changed on 04/21/2015 at 02:21:46 PM by sebastian
comment:13 Changed on 04/22/2015 at 10:13:08 PM by Ross
The problem in comment 10 is fixed. Preferences are preserved correctly from older builds, after browser restart and crashes (tested with "chrome://inducebrowsercrashforrealz"). Waiting until a later build than the recent fix (1423) is available to confirm the last point (further extension updates) then will set to verified working.
Chrome 42.0.2311.90 / Windows 8.1 x64 / ABP: 1.8.12.1394 / 1.8.12.1423
Opera 28.0.1750.51 / Windows 8.1 x64 / ABP: 1.8.12.1394 / 1.8.12.1423
Safari 6.2 / OS X 10.8.5 / ABP: 1.8.12.1394 / 1.8.12.1423
comment:14 Changed on 06/03/2015 at 01:57:37 PM by Ross
- Verified working set
https://hg.adblockplus.org/adblockpluschrome/rev/8c0c1215f94d