uBlock/src/js/background.js

239 lines
11 KiB
JavaScript
Raw Normal View History

2014-06-24 00:42:43 +02:00
/*******************************************************************************
uBlock Origin - a browser extension to block requests.
Copyright (C) 2014-2016 Raymond Hill
2014-06-24 00:42:43 +02:00
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uBlock
*/
/* exported µBlock */
2014-06-24 00:42:43 +02:00
'use strict';
2014-06-24 00:42:43 +02:00
/******************************************************************************/
var µBlock = (function() {
/******************************************************************************/
2014-08-21 05:19:27 +02:00
var oneSecond = 1000;
var oneMinute = 60 * oneSecond;
var oneHour = 60 * oneMinute;
// var oneDay = 24 * oneHour;
2014-08-21 05:19:27 +02:00
/******************************************************************************/
var defaultExternalLists = [
'! Examples:',
'! https://easylist-downloads.adblockplus.org/fb_annoyances_full.txt',
'! https://easylist-downloads.adblockplus.org/yt_annoyances_full.txt',
2015-11-20 14:47:29 +01:00
''
].join('\n');
/******************************************************************************/
2014-06-24 00:42:43 +02:00
return {
2016-01-03 19:58:25 +01:00
firstInstall: false,
2014-06-24 00:42:43 +02:00
userSettings: {
advancedUserEnabled: false,
2016-09-16 23:41:17 +02:00
alwaysDetachLogger: false,
autoUpdate: true,
2015-12-13 06:56:30 +01:00
cloudStorageEnabled: false,
2014-06-27 23:06:42 +02:00
collapseBlocked: true,
colorBlindFriendly: false,
2014-10-04 20:50:50 +02:00
contextMenuEnabled: true,
2016-11-05 19:48:42 +01:00
dynamicFilteringEnabled: false,
externalLists: defaultExternalLists,
2015-02-18 15:15:59 +01:00
firewallPaneMinimized: true,
hyperlinkAuditingDisabled: true,
2016-08-13 22:42:58 +02:00
ignoreGenericCosmeticFilters: false,
largeMediaSize: 50,
2014-06-24 00:42:43 +02:00
parseAllABPHideFilters: true,
2015-06-01 21:03:22 +02:00
prefetchingDisabled: true,
2015-03-09 06:09:27 +01:00
requestLogMaxEntries: 1000,
showIconBadge: true,
2015-12-13 06:56:30 +01:00
tooltipsDisabled: false,
webrtcIPAddressHidden: false
2014-06-24 00:42:43 +02:00
},
hiddenSettingsDefault: {
ignoreRedirectFilters: false,
ignoreScriptInjectFilters: false,
popupFontSize: 'unset',
suspendTabsUntilReady: false
},
// This will be filled ASAP:
hiddenSettings: {},
// Features detection.
privacySettingsSupported: vAPI.browserSettings instanceof Object,
cloudStorageSupported: vAPI.cloud instanceof Object,
2015-04-07 03:26:05 +02:00
// https://github.com/chrisaljoudi/uBlock/issues/180
// Whitelist directives need to be loaded once the PSL is available
netWhitelist: {},
netWhitelistModifyTime: 0,
2015-01-24 18:06:22 +01:00
netWhitelistDefault: [
2015-04-27 16:54:13 +02:00
'about-scheme',
2015-01-24 18:06:22 +01:00
'behind-the-scene',
'chrome-extension-scheme',
'chrome-scheme',
2015-04-27 16:54:13 +02:00
'loopconversation.about-scheme',
2016-10-26 18:40:05 +02:00
'moz-extension-scheme',
2015-04-16 16:45:20 +02:00
'opera-scheme',
'vivaldi-scheme',
2015-04-16 16:45:20 +02:00
''
2016-10-26 18:40:05 +02:00
].join('\n'),
2014-06-24 00:42:43 +02:00
localSettings: {
blockedRequestCount: 0,
allowedRequestCount: 0
2014-06-24 00:42:43 +02:00
},
2016-10-08 16:15:31 +02:00
localSettingsLastModified: 0,
localSettingsLastSaved: 0,
2014-06-24 00:42:43 +02:00
2015-02-24 00:31:29 +01:00
// read-only
systemSettings: {
compiledMagic: 'zelhzxrhkfjr',
selfieMagic: 'zelhzxrhkfjr'
2015-02-24 00:31:29 +01:00
},
2015-03-07 05:36:09 +01:00
restoreBackupSettings: {
lastRestoreFile: '',
lastRestoreTime: 0,
lastBackupFile: '',
lastBackupTime: 0
},
2014-08-21 07:16:25 +02:00
// EasyList, EasyPrivacy and many others have an 4-day update period,
// as per list headers.
2015-02-13 18:10:10 +01:00
updateAssetsEvery: 97 * oneHour,
projectServerRoot: 'https://raw.githubusercontent.com/gorhill/uBlock/master/',
2014-06-25 03:46:37 +02:00
userFiltersPath: 'assets/user/filters.txt',
2014-09-08 23:46:58 +02:00
pslPath: 'assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat',
2014-06-24 00:42:43 +02:00
2014-07-25 22:12:20 +02:00
// permanent lists
permanentLists: {
2014-06-24 00:42:43 +02:00
// User
'assets/user/filters.txt': {
group: 'default'
},
2014-06-27 08:06:50 +02:00
// uBlock
'assets/ublock/filters.txt': {
2015-03-22 15:43:20 +01:00
title: 'uBlock filters',
group: 'default'
2014-06-27 08:06:50 +02:00
},
2014-07-23 04:46:57 +02:00
'assets/ublock/privacy.txt': {
2015-03-22 15:43:20 +01:00
title: 'uBlock filters Privacy',
2014-07-23 04:46:57 +02:00
group: 'default'
},
'assets/ublock/unbreak.txt': {
title: 'uBlock filters Unbreak',
group: 'default'
},
'assets/ublock/badware.txt': {
2015-06-17 15:21:44 +02:00
title: 'uBlock filters Badware risks',
group: 'default',
supportURL: 'https://github.com/gorhill/uBlock/wiki/Badware-risks',
instructionURL: 'https://github.com/gorhill/uBlock/wiki/Badware-risks'
2015-12-06 14:22:31 +01:00
},
'assets/ublock/experimental.txt': {
title: 'uBlock filters Experimental',
group: 'default',
off: true,
supportURL: 'https://github.com/gorhill/uBlock/wiki/Experimental-filters',
instructionURL: 'https://github.com/gorhill/uBlock/wiki/Experimental-filters'
2014-07-23 04:46:57 +02:00
}
2014-07-25 22:12:20 +02:00
},
// current lists
remoteBlacklists: {},
oldListToNewListMap: {
"assets/thirdparties/adblock.gardar.net/is.abp.txt": "http://adblock.gardar.net/is.abp.txt",
2015-09-13 16:26:36 +02:00
"assets/thirdparties/adblock.schack.dk/block.txt": "https://adblock.dk/block.csv",
"https://adblock.schack.dk/block.txt": "https://adblock.dk/block.csv",
"assets/thirdparties/dl.dropboxusercontent.com/u/1289327/abpxfiles/filtri.txt": "https://dl.dropboxusercontent.com/u/1289327/abpxfiles/filtri.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/advblock.txt": "https://easylist-downloads.adblockplus.org/advblock.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/bitblock.txt": "https://easylist-downloads.adblockplus.org/bitblock.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/easylist_noelemhide.txt": "https://easylist-downloads.adblockplus.org/easylist_noelemhide.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/easylistchina.txt": "https://easylist-downloads.adblockplus.org/easylistchina.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/easylistdutch.txt": "https://easylist-downloads.adblockplus.org/easylistdutch.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/easylistgermany.txt": "https://easylist-downloads.adblockplus.org/easylistgermany.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/easylistitaly.txt": "https://easylist-downloads.adblockplus.org/easylistitaly.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/fanboy-annoyance.txt": "https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/fanboy-social.txt": "https://easylist-downloads.adblockplus.org/fanboy-social.txt",
"assets/thirdparties/easylist-downloads.adblockplus.org/liste_fr.txt": "https://easylist-downloads.adblockplus.org/liste_fr.txt",
"assets/thirdparties/gitorious.org/adblock-latvian/adblock-latvian/raw/master_lists/latvian-list.txt": "https://notabug.org/latvian-list/adblock-latvian/raw/master/lists/latvian-list.txt",
"assets/thirdparties/home.fredfiber.no/langsholt/adblock.txt": "http://home.fredfiber.no/langsholt/adblock.txt",
"assets/thirdparties/hosts-file.net/ad-servers": "http://hosts-file.net/.%5Cad_servers.txt",
"assets/thirdparties/http://www.certyficate.it/adblock/adblock.txt": "https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt",
"assets/thirdparties/liste-ar-adblock.googlecode.com/hg/Liste_AR.txt": "https://liste-ar-adblock.googlecode.com/hg/Liste_AR.txt",
"assets/thirdparties/margevicius.lt/easylistlithuania.txt": "http://margevicius.lt/easylistlithuania.txt",
"assets/thirdparties/mirror1.malwaredomains.com/files/immortal_domains.txt": "http://malwaredomains.lehigh.edu/files/immortal_domains.txt",
"assets/thirdparties/raw.githubusercontent.com/AdBlockPlusIsrael/EasyListHebrew/master/EasyListHebrew.txt": "https://raw.githubusercontent.com/AdBlockPlusIsrael/EasyListHebrew/master/EasyListHebrew.txt",
"assets/thirdparties/raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt": "https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt",
"assets/thirdparties/raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt": "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt",
"assets/thirdparties/raw.githubusercontent.com/szpeter80/hufilter/master/hufilter.txt": "https://raw.githubusercontent.com/szpeter80/hufilter/master/hufilter.txt",
"assets/thirdparties/raw.githubusercontent.com/tomasko126/easylistczechandslovak/master/filters.txt": "https://raw.githubusercontent.com/tomasko126/easylistczechandslovak/master/filters.txt",
"assets/thirdparties/someonewhocares.org/hosts/hosts": "http://someonewhocares.org/hosts/hosts",
"assets/thirdparties/spam404bl.com/spam404scamlist.txt": "https://spam404bl.com/spam404scamlist.txt",
"assets/thirdparties/stanev.org/abp/adblock_bg.txt": "http://stanev.org/abp/adblock_bg.txt",
"assets/thirdparties/winhelp2002.mvps.org/hosts.txt": "http://winhelp2002.mvps.org/hosts.txt",
"assets/thirdparties/www.fanboy.co.nz/enhancedstats.txt": "https://www.fanboy.co.nz/enhancedstats.txt",
"assets/thirdparties/www.fanboy.co.nz/fanboy-antifacebook.txt": "https://www.fanboy.co.nz/fanboy-antifacebook.txt",
"assets/thirdparties/www.fanboy.co.nz/fanboy-korean.txt": "https://www.fanboy.co.nz/fanboy-korean.txt",
"assets/thirdparties/www.fanboy.co.nz/fanboy-swedish.txt": "https://www.fanboy.co.nz/fanboy-swedish.txt",
"assets/thirdparties/www.fanboy.co.nz/fanboy-ultimate.txt": "https://www.fanboy.co.nz/r/fanboy-ultimate.txt",
"assets/thirdparties/www.fanboy.co.nz/fanboy-vietnam.txt": "https://www.fanboy.co.nz/fanboy-vietnam.txt",
"assets/thirdparties/www.void.gr/kargig/void-gr-filters.txt": "https://www.void.gr/kargig/void-gr-filters.txt",
"assets/thirdparties/www.zoso.ro/pages/rolist.txt": "",
"https://iadb.azurewebsites.net/Finland_adb.txt": "http://adb.juvander.net/Finland_adb.txt",
"https://www.certyficate.it/adblock/adblock.txt": "https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt",
"https://raw.githubusercontent.com/heradhis/indonesianadblockrules/master/subscriptions/abpindo.txt": "https://raw.githubusercontent.com/ABPindo/indonesianadblockrules/master/subscriptions/abpindo.txt"
2014-07-23 04:46:57 +02:00
},
2014-06-24 00:42:43 +02:00
2015-02-13 18:10:10 +01:00
selfieAfter: 23 * oneMinute,
2014-09-08 23:46:58 +02:00
2014-06-24 00:42:43 +02:00
pageStores: {},
pageStoresToken: 0,
2014-06-24 00:42:43 +02:00
storageQuota: vAPI.storage.QUOTA_BYTES,
2014-06-24 00:42:43 +02:00
storageUsed: 0,
2014-09-08 23:46:58 +02:00
noopFunc: function(){},
apiErrorCount: 0,
mouseX: -1,
mouseY: -1,
mouseURL: '',
epickerTarget: '',
epickerEprom: null,
scriptlets: {
},
2014-06-24 00:42:43 +02:00
// so that I don't have to care for last comma
dummy: 0
};
/******************************************************************************/
})();
/******************************************************************************/