mirror of
https://github.com/gorhill/uBlock.git
synced 2024-11-16 23:42:39 +01:00
this fixes https://github.com/gorhill/uBlock/issues/63
This commit is contained in:
parent
d5465d3159
commit
2ecc81e35b
@ -974,16 +974,19 @@ var getLocalData = function(callback) {
|
||||
/******************************************************************************/
|
||||
|
||||
var backupUserData = function(callback) {
|
||||
var onUserFiltersReady = function(details) {
|
||||
var userData = {
|
||||
timeStamp: Date.now(),
|
||||
version: vAPI.app.version,
|
||||
userSettings: µb.userSettings,
|
||||
filterLists: µb.extractSelectedFilterLists(),
|
||||
netWhitelist: µb.stringFromWhitelist(µb.netWhitelist),
|
||||
dynamicFilteringString: µb.permanentFirewall.toString(),
|
||||
userFilters: details.content
|
||||
};
|
||||
var userData = {
|
||||
timeStamp: Date.now(),
|
||||
version: vAPI.app.version,
|
||||
userSettings: µb.userSettings,
|
||||
filterLists: {},
|
||||
netWhitelist: µb.stringFromWhitelist(µb.netWhitelist),
|
||||
dynamicFilteringString: µb.permanentFirewall.toString(),
|
||||
userFilters: ''
|
||||
};
|
||||
|
||||
var onSelectedListsReady = function(filterLists) {
|
||||
userData.filterLists = filterLists;
|
||||
|
||||
var now = new Date();
|
||||
var filename = vAPI.i18n('aboutBackupFilename')
|
||||
.replace('{{datetime}}', now.toLocaleString())
|
||||
@ -1001,6 +1004,12 @@ var backupUserData = function(callback) {
|
||||
getLocalData(callback);
|
||||
};
|
||||
|
||||
var onUserFiltersReady = function(details) {
|
||||
userData.userFilters = details.content;
|
||||
µb.extractSelectedFilterLists(onSelectedListsReady);
|
||||
};
|
||||
|
||||
|
||||
µb.assets.get('assets/user/filters.txt', onUserFiltersReady);
|
||||
};
|
||||
|
||||
@ -1050,7 +1059,7 @@ var restoreUserData = function(request) {
|
||||
/******************************************************************************/
|
||||
|
||||
var resetUserData = function() {
|
||||
vAPI.storage.clear(onAllRemoved);
|
||||
vAPI.storage.clear();
|
||||
|
||||
// Keep global counts, people can become quite attached to numbers
|
||||
µb.saveLocalSettings(true);
|
||||
|
@ -102,19 +102,40 @@
|
||||
// This will remove all unused filter list entries from
|
||||
// µBlock.remoteBlacklists`. This helps reduce the size of backup files.
|
||||
|
||||
µBlock.extractSelectedFilterLists = function() {
|
||||
var r = JSON.parse(JSON.stringify(this.remoteBlacklists));
|
||||
µBlock.extractSelectedFilterLists = function(callback) {
|
||||
var µb = this;
|
||||
|
||||
for ( var path in r ) {
|
||||
if ( r.hasOwnProperty(path) === false ) {
|
||||
continue;
|
||||
var onBuiltinListsLoaded = function(details) {
|
||||
var builtin;
|
||||
try {
|
||||
builtin = JSON.parse(details.content);
|
||||
} catch (e) {
|
||||
builtin = {};
|
||||
}
|
||||
if ( r[path].off !== false ) {
|
||||
delete r[path];
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
var result = JSON.parse(JSON.stringify(µb.remoteBlacklists));
|
||||
var builtinPath;
|
||||
var defaultState;
|
||||
|
||||
for ( var path in result ) {
|
||||
if ( result.hasOwnProperty(path) === false ) {
|
||||
continue;
|
||||
}
|
||||
builtinPath = path.replace(/^assets\/thirdparties\//, '');
|
||||
defaultState = builtin.hasOwnProperty(builtinPath) === false ||
|
||||
builtin[builtinPath].off === true;
|
||||
if ( result[path].off === true && result[path].off === defaultState ) {
|
||||
delete result[path];
|
||||
}
|
||||
}
|
||||
|
||||
callback(result);
|
||||
};
|
||||
|
||||
// https://github.com/gorhill/uBlock/issues/63
|
||||
// Get built-in block lists: this will help us determine whether a
|
||||
// specific list must be included in the result.
|
||||
this.assets.get('assets/ublock/filter-lists.json', onBuiltinListsLoaded);
|
||||
};
|
||||
|
||||
/******************************************************************************/
|
||||
|
Loading…
Reference in New Issue
Block a user