diff options
author | Jesús <heckyel@hyperbola.info> | 2020-05-02 17:24:46 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2020-05-02 17:24:46 -0500 |
commit | 88e55b7e0c00b529e28c1e65b86ee99254a65dfb (patch) | |
tree | 46c21183154892e4c9393aec987f83851739e815 | |
parent | 647f758beebb00e60008ccfaa6cc4133c50b03ef (diff) | |
download | ematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.tar.lz ematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.tar.xz ematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.zip |
Style changes
-rw-r--r-- | js/messaging.js | 707 |
1 files changed, 300 insertions, 407 deletions
diff --git a/js/messaging.js b/js/messaging.js index 5b0c837..03d6481 100644 --- a/js/messaging.js +++ b/js/messaging.js @@ -23,131 +23,99 @@ 'use strict'; -/******************************************************************************/ -/******************************************************************************/ - // Default handler - -(function() { - +(function () { Cu.import('chrome://ematrix/content/lib/UriTools.jsm'); - var ηm = ηMatrix; - - /******************************************************************************/ + let ηm = ηMatrix; // Default is for commonly used message. - function onMessage(request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { case 'getAssetContent': - ηm.assets.get(request.url, { dontCache: true }, callback); + ηm.assets.get(request.url, { + dontCache: true, + }, callback); return; - case 'selectHostsFiles': ηm.selectHostsFiles(request, callback); return; - default: break; } // Sync - var response; + let response; - switch ( request.what ) { + switch (request.what) { case 'forceReloadTab': ηm.forceReload(request.tabId, request.bypassCache); break; - case 'forceUpdateAssets': ηm.scheduleAssetUpdater(0); - ηm.assets.updateStart({ delay: 2000 }); + ηm.assets.updateStart({ + delay: 2000, + }); break; - case 'getUserSettings': response = { userSettings: ηm.userSettings, matrixSwitches: { 'https-strict': ηm.pMatrix.evaluateSwitch('https-strict', '*') === 1, 'referrer-spoof': ηm.pMatrix.evaluateSwitch('referrer-spoof', '*') === 1, - 'noscript-spoof': ηm.pMatrix.evaluateSwitch('noscript-spoof', '*') === 1 - } + 'noscript-spoof': ηm.pMatrix.evaluateSwitch('noscript-spoof', '*') === 1, + }, }; break; - case 'gotoExtensionURL': ηm.gotoExtensionURL(request); break; - case 'gotoURL': ηm.gotoURL(request); break; - case 'mustBlock': - response = ηm.mustBlock( - request.scope, - request.hostname, - request.type - ); + response = ηm.mustBlock(request.scope, + request.hostname,request.type); break; - case 'readRawSettings': response = ηm.stringFromRawSettings(); break; - case 'reloadHostsFiles': ηm.reloadHostsFiles(); break; - case 'setMatrixSwitch': ηm.tMatrix.setSwitch(request.switchName, '*', request.state); - if ( ηm.pMatrix.setSwitch(request.switchName, '*', request.state) ) { + if (ηm.pMatrix.setSwitch(request.switchName, '*', request.state)) { ηm.saveMatrix(); } break; - case 'userSettings': - if ( request.hasOwnProperty('value') === false ) { + if (request.hasOwnProperty('value') === false) { request.value = undefined; } response = ηm.changeUserSettings(request.name, request.value); break; - case 'writeRawSettings': ηm.rawSettingsFromString(request.content); break; - default: return vAPI.messaging.UNHANDLED; } - callback(response); } - /******************************************************************************/ - vAPI.messaging.setup(onMessage); - - /******************************************************************************/ - })(); -/******************************************************************************/ -/******************************************************************************/ - -(function() { - +(function () { // popup.js - var ηm = ηMatrix; - - /******************************************************************************/ + let ηm = ηMatrix; // Constructor is faster than object literal - - var RowSnapshot = function(srcHostname, desHostname, desDomain) { + // ηMatrix: really? I'll take your word for it... + let RowSnapshot = function(srcHostname, desHostname, desDomain) { this.domain = desDomain; this.temporary = ηm.tMatrix.evaluateRowZXY(srcHostname, desHostname); this.permanent = ηm.pMatrix.evaluateRowZXY(srcHostname, desHostname); @@ -155,21 +123,22 @@ this.totals = RowSnapshot.counts.slice(); }; - RowSnapshot.counts = (function() { - var aa = []; - for ( var i = 0, n = ηm.Matrix.columnHeaderIndices.size; i < n; i++ ) { + RowSnapshot.counts = (function () { + let aa = []; + let n = ηm.Matrix.columnHeaderIndices.size + + for (let i=0; i<n; ++i) { aa[i] = 0; } + return aa; })(); - /******************************************************************************/ + let matrixSnapshot = function (pageStore, details) { + let ηmuser = ηm.userSettings; + let headerIndices = ηm.Matrix.columnHeaderIndices; - var matrixSnapshot = function(pageStore, details) { - var ηmuser = ηm.userSettings; - var headerIndices = ηm.Matrix.columnHeaderIndices; - - var r = { + let r = { appVersion: vAPI.app.version, blockedCount: pageStore.requestStats.blocked.all, collapseAllDomains: ηmuser.popupCollapseAllDomains, @@ -201,60 +170,75 @@ colorBlindFriendly: ηmuser.colorBlindFriendly, displayTextSize: ηmuser.displayTextSize, popupScopeLevel: ηmuser.popupScopeLevel - } + }, }; - if ( typeof details.scope === 'string' ) { + if (typeof details.scope === 'string') { r.scope = details.scope; - } else if ( ηmuser.popupScopeLevel === 'site' ) { + } else if (ηmuser.popupScopeLevel === 'site') { r.scope = r.hostname; - } else if ( ηmuser.popupScopeLevel === 'domain' ) { + } else if (ηmuser.popupScopeLevel === 'domain') { r.scope = r.domain; } - for ( var switchName of ηm.Matrix.switchNames ) { - r.tSwitches[switchName] = ηm.tMatrix.evaluateSwitchZ(switchName, r.scope); - r.pSwitches[switchName] = ηm.pMatrix.evaluateSwitchZ(switchName, r.scope); + for (let switchName of ηm.Matrix.switchNames) { + r.tSwitches[switchName] = + ηm.tMatrix.evaluateSwitchZ(switchName, r.scope); + + r.pSwitches[switchName] = + ηm.pMatrix.evaluateSwitchZ(switchName, r.scope); } // These rows always exist r.rows['*'] = new RowSnapshot(r.scope, '*', '*'); - r.rows['1st-party'] = new RowSnapshot(r.scope, '1st-party', '1st-party'); + r.rows['1st-party'] = new RowSnapshot(r.scope, + '1st-party', '1st-party'); r.rowCount += 1; - var reqType, reqHostname, reqDomain; - var desHostname; - var row, typeIndex; - var anyIndex = headerIndices.get('*'); - var pos, count; - - for ( var entry of pageStore.hostnameTypeCells ) { - pos = entry[0].indexOf(' '); - reqHostname = entry[0].slice(0, pos); - reqType = entry[0].slice(pos + 1); - // rhill 2013-10-23: hostname can be empty if the request is a data url + let anyIndex = headerIndices.get('*'); + for (let entry of pageStore.hostnameTypeCells) { + let pos = entry[0].indexOf(' '); + let reqHostname = entry[0].slice(0, pos); + let reqType = entry[0].slice(pos + 1); + + // rhill 2013-10-23: hostname can be empty if the request + // is a data url // https://github.com/gorhill/httpswitchboard/issues/26 - if ( reqHostname === '' ) { + if (reqHostname === '') { reqHostname = pageStore.pageHostname; } - reqDomain = UriTools.domainFromHostname(reqHostname) || reqHostname; + + let reqDomain = + UriTools.domainFromHostname(reqHostname) || reqHostname; // We want rows of self and ancestors - desHostname = reqHostname; + let desHostname = reqHostname; for (;;) { // If row exists, ancestors exist - if ( r.rows.hasOwnProperty(desHostname) !== false ) { break; } - r.rows[desHostname] = new RowSnapshot(r.scope, desHostname, reqDomain); + if (r.rows.hasOwnProperty(desHostname) !== false) { + break; + } + + r.rows[desHostname] = + new RowSnapshot(r.scope, desHostname, reqDomain); r.rowCount += 1; - if ( desHostname === reqDomain ) { break; } + + if (desHostname === reqDomain) { + break; + } + pos = desHostname.indexOf('.'); - if ( pos === -1 ) { break; } + if (pos === -1) { + break; + } + desHostname = desHostname.slice(pos + 1); } - count = entry[1].size; - typeIndex = headerIndices.get(reqType); - row = r.rows[reqHostname]; + let count = entry[1].size; + let typeIndex = headerIndices.get(reqType); + + let row = r.rows[reqHostname]; row.counts[typeIndex] += count; row.counts[anyIndex] += count; row = r.rows[reqDomain]; @@ -270,23 +254,19 @@ return r; }; - /******************************************************************************/ - - var matrixSnapshotFromTabId = function(details, callback) { - var matrixSnapshotIf = function(tabId, details) { - var pageStore = ηm.pageStoreFromTabId(tabId); - if ( pageStore === null ) { + let matrixSnapshotFromTabId = function (details, callback) { + let matrixSnapshotIf = function (tabId, details) { + let pageStore = ηm.pageStoreFromTabId(tabId); + if (pageStore === null) { callback('ENOTFOUND'); return; } // First verify whether we must return data or not. - if ( - ηm.tMatrix.modifiedTime === details.tMatrixModifiedTime && - ηm.pMatrix.modifiedTime === details.pMatrixModifiedTime && - pageStore.mtxContentModifiedTime === details.mtxContentModifiedTime && - pageStore.mtxCountModifiedTime === details.mtxCountModifiedTime - ) { + if (ηm.tMatrix.modifiedTime === details.tMatrixModifiedTime + && ηm.pMatrix.modifiedTime === details.pMatrixModifiedTime + && pageStore.mtxContentModifiedTime === details.mtxContentModifiedTime + && pageStore.mtxCountModifiedTime === details.mtxCountModifiedTime) { callback('ENOCHANGE'); return ; } @@ -295,20 +275,21 @@ }; // Specific tab id requested? - if ( details.tabId ) { + if (details.tabId) { matrixSnapshotIf(details.tabId, details); return; } // Fall back to currently active tab - var onTabReady = function(tab) { - if ( tab instanceof Object === false ) { + let onTabReady = function (tab) { + if (tab instanceof Object === false) { callback('ENOTFOUND'); return; } // Allow examination of behind-the-scene requests - var tabId = tab.url.lastIndexOf(vAPI.getURL('dashboard.html'), 0) !== 0 ? + let tabId = + tab.url.lastIndexOf(vAPI.getURL('dashboard.html'), 0) !== 0 ? tab.id : vAPI.noTabId; matrixSnapshotIf(tabId, details); @@ -317,69 +298,52 @@ vAPI.tabs.get(null, onTabReady); }; - /******************************************************************************/ - - var onMessage = function(request, sender, callback) { + let onMessage = function (request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { case 'matrixSnapshot': matrixSnapshotFromTabId(request, callback); return; - default: break; } // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { case 'toggleMatrixSwitch': - ηm.tMatrix.setSwitchZ( - request.switchName, - request.srcHostname, - ηm.tMatrix.evaluateSwitchZ(request.switchName, request.srcHostname) === false - ); + let switchZ = ηm.tMatrix.evaluateSwitchZ(request.switchName, + request.srcHostname) + ηm.tMatrix.setSwitchZ(request.switchName, + request.srcHostname, + switchZ === false); break; - case 'blacklistMatrixCell': - ηm.tMatrix.blacklistCell( - request.srcHostname, - request.desHostname, - request.type - ); + ηm.tMatrix.blacklistCell(request.srcHostname, + request.desHostname, + request.type); break; - case 'whitelistMatrixCell': - ηm.tMatrix.whitelistCell( - request.srcHostname, - request.desHostname, - request.type - ); + ηm.tMatrix.whitelistCell(request.srcHostname, + request.desHostname, + request.type); break; - case 'graylistMatrixCell': - ηm.tMatrix.graylistCell( - request.srcHostname, - request.desHostname, - request.type - ); + ηm.tMatrix.graylistCell(request.srcHostname, + request.desHostname, + request.type); break; - case 'applyDiffToPermanentMatrix': // aka "persist" - if ( ηm.pMatrix.applyDiff(request.diff, ηm.tMatrix) ) { + if (ηm.pMatrix.applyDiff(request.diff, ηm.tMatrix)) { ηm.saveMatrix(); } break; - case 'applyDiffToTemporaryMatrix': // aka "revert" ηm.tMatrix.applyDiff(request.diff, ηm.pMatrix); break; - case 'revertTemporaryMatrix': ηm.tMatrix.assign(ηm.pMatrix); break; - default: return vAPI.messaging.UNHANDLED; } @@ -388,95 +352,86 @@ }; vAPI.messaging.listen('popup.js', onMessage); - })(); -/******************************************************************************/ -/******************************************************************************/ - // content scripts +(function () { -(function() { - - var ηm = ηMatrix; - - /******************************************************************************/ + let ηm = ηMatrix; - var foundInlineCode = function(tabId, pageStore, details, type) { - if ( pageStore === null ) { return; } + let foundInlineCode = function (tabId, pageStore, details, type) { + if (pageStore === null) { + return; + } let pageHostname = pageStore.pageHostname; let ηmuri = UriTools.set(details.documentURI); let frameURL = UriTools.normalizedURI(); - var blocked = details.blocked; - if ( blocked === undefined ) { + let blocked = details.blocked; + if (blocked === undefined) { blocked = ηm.mustBlock(pageHostname, ηmuri.hostname, type); } - var mapTo = { + let mapTo = { css: 'style', - script: 'script' + script: 'script', }; // https://github.com/gorhill/httpswitchboard/issues/333 // Look-up here whether inline scripting is blocked for the frame. - var url = frameURL + '{inline_' + mapTo[type] + '}'; + let url = frameURL + '{inline_' + mapTo[type] + '}'; pageStore.recordRequest(type, url, blocked); ηm.logger.writeOne(tabId, 'net', pageHostname, url, type, blocked); }; - /******************************************************************************/ - - var contentScriptLocalStorageHandler = function(tabId, originURL) { - var tabContext = ηm.tabContextManager.lookup(tabId); - if ( tabContext === null ) { return; } + let contentScriptLocalStorageHandler = function (tabId, originURL) { + let tabContext = ηm.tabContextManager.lookup(tabId); + if (tabContext === null) { + return; + } - var blocked = ηm.mustBlock( - tabContext.rootHostname, - UriTools.hostnameFromURI(originURL), - 'cookie' - ); + let blocked = ηm.mustBlock(tabContext.rootHostname, + UriTools.hostnameFromURI(originURL), + 'cookie'); - var pageStore = ηm.pageStoreFromTabId(tabId); - if ( pageStore !== null ) { - var requestURL = originURL + '/{localStorage}'; + let pageStore = ηm.pageStoreFromTabId(tabId); + if (pageStore !== null) { + let requestURL = originURL + '/{localStorage}'; pageStore.recordRequest('cookie', requestURL, blocked); - ηm.logger.writeOne(tabId, 'net', tabContext.rootHostname, requestURL, 'cookie', blocked); + ηm.logger.writeOne(tabId, 'net', tabContext.rootHostname, + requestURL, 'cookie', blocked); } - var removeStorage = blocked && ηm.userSettings.deleteLocalStorage; - if ( removeStorage ) { + let removeStorage = blocked && ηm.userSettings.deleteLocalStorage; + if (removeStorage) { ηm.localStorageRemovedCounter++; } return removeStorage; }; - /******************************************************************************/ - // Evaluate many URLs against the matrix. - - var lookupBlockedCollapsibles = function(tabId, requests) { - if ( placeholdersReadTime < ηm.rawSettingsWriteTime ) { + let lookupBlockedCollapsibles = function (tabId, requests) { + if (placeholdersReadTime < ηm.rawSettingsWriteTime) { placeholders = undefined; } - if ( placeholders === undefined ) { + if (placeholders === undefined) { placeholders = { frame: ηm.rawSettings.framePlaceholder, - image: ηm.rawSettings.imagePlaceholder + image: ηm.rawSettings.imagePlaceholder, }; - if ( placeholders.frame ) { + if (placeholders.frame) { placeholders.frameDocument = - ηm.rawSettings.framePlaceholderDocument.replace( - '{{bg}}', - ηm.rawSettings.framePlaceholderBackground !== 'default' ? - ηm.rawSettings.framePlaceholderBackground : - ηm.rawSettings.placeholderBackground - ); + ηm.rawSettings + .framePlaceholderDocument + .replace('{{bg}}', + ηm.rawSettings.framePlaceholderBackground !== 'default' ? + ηm.rawSettings.framePlaceholderBackground : + ηm.rawSettings.placeholderBackground); } - if ( placeholders.image ) { + if (placeholders.image) { placeholders.imageBorder = ηm.rawSettings.imagePlaceholderBorder !== 'default' ? ηm.rawSettings.imagePlaceholderBorder : @@ -489,94 +444,96 @@ placeholdersReadTime = Date.now(); } - var response = { + let response = { blockedResources: [], hash: requests.hash, id: requests.id, - placeholders: placeholders + placeholders: placeholders, }; - var tabContext = ηm.tabContextManager.lookup(tabId); - if ( tabContext === null ) { + let tabContext = ηm.tabContextManager.lookup(tabId); + if (tabContext === null) { return response; } - var pageStore = ηm.pageStoreFromTabId(tabId); - if ( pageStore !== null ) { + let pageStore = ηm.pageStoreFromTabId(tabId); + if (pageStore !== null) { pageStore.lookupBlockedCollapsibles(requests, response); } return response; }; - var placeholders, - placeholdersReadTime = 0; + let placeholders; + let placeholdersReadTime = 0; - /******************************************************************************/ - - var onMessage = function(request, sender, callback) { + let onMessage = function (request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { default: break; } - var tabId = sender && sender.tab ? sender.tab.id || 0 : 0, - tabContext = ηm.tabContextManager.lookup(tabId), - rootHostname = tabContext && tabContext.rootHostname, - pageStore = ηm.pageStoreFromTabId(tabId); + let tabId = sender && sender.tab ? sender.tab.id || 0 : 0; + let tabContext = ηm.tabContextManager.lookup(tabId); + let rootHostname = tabContext && tabContext.rootHostname; + let pageStore = ηm.pageStoreFromTabId(tabId); // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { case 'contentScriptHasLocalStorage': - response = contentScriptLocalStorageHandler(tabId, request.originURL); + response = + contentScriptLocalStorageHandler(tabId, request.originURL); break; - case 'lookupBlockedCollapsibles': response = lookupBlockedCollapsibles(tabId, request); break; - case 'mustRenderNoscriptTags?': - if ( tabContext === null ) { break; } + if (tabContext === null) { + break; + } + response = - ηm.tMatrix.mustBlock(rootHostname, rootHostname, 'script') && - ηm.tMatrix.evaluateSwitchZ('noscript-spoof', rootHostname); - if ( pageStore !== null ) { + ηm.tMatrix.mustBlock(rootHostname, rootHostname, 'script') + && ηm.tMatrix.evaluateSwitchZ('noscript-spoof', rootHostname); + + if (pageStore !== null) { pageStore.hasNoscriptTags = true; } + // https://github.com/gorhill/uMatrix/issues/225 - // A good place to force an update of the page title, as at - // this point the DOM has been loaded. + // A good place to force an update of the page title, as + // at this point the DOM has been loaded. ηm.updateTitle(tabId); break; - case 'securityPolicyViolation': - if ( request.directive === 'worker-src' ) { - var url = UriTools.hostnameFromURI(request.blockedURI) !== '' ? + if (request.directive === 'worker-src') { + let url = UriTools.hostnameFromURI(request.blockedURI) !== '' ? request.blockedURI : request.documentURI; - if ( pageStore !== null ) { + + if (pageStore !== null) { pageStore.hasWebWorkers = true; pageStore.recordRequest('script', url, request.blocked); } - if ( tabContext !== null ) { - ηm.logger.writeOne(tabId, 'net', rootHostname, url, 'worker', request.blocked); + + if (tabContext !== null) { + ηm.logger.writeOne(tabId, 'net', rootHostname, + url, 'worker', request.blocked); } - } else if ( request.directive === 'script-src' ) { + } else if (request.directive === 'script-src') { foundInlineCode(tabId, pageStore, request, 'script'); - } else if ( request.directive === 'style-src' ) { + } else if (request.directive === 'style-src') { foundInlineCode(tabId, pageStore, request, 'css'); } break; - case 'shutdown?': - if ( tabContext !== null ) { - response = ηm.tMatrix.evaluateSwitchZ('matrix-off', rootHostname); + if (tabContext !== null) { + response = + ηm.tMatrix.evaluateSwitchZ('matrixb-off', rootHostname); } break; - default: return vAPI.messaging.UNHANDLED; } @@ -585,58 +542,41 @@ }; vAPI.messaging.listen('contentscript.js', onMessage); - - /******************************************************************************/ - })(); -/******************************************************************************/ -/******************************************************************************/ - // cloud-ui.js +(function () { -(function() { - - /******************************************************************************/ - - var ηm = ηMatrix; - - /******************************************************************************/ + let ηm = ηMatrix; - var onMessage = function(request, sender, callback) { + let onMessage = function (request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { case 'cloudGetOptions': - vAPI.cloud.getOptions(function(options) { + vAPI.cloud.getOptions(function (options) { options.enabled = ηm.userSettings.cloudStorageEnabled === true; callback(options); }); return; - case 'cloudSetOptions': vAPI.cloud.setOptions(request.options, callback); return; - case 'cloudPull': return vAPI.cloud.pull(request.datakey, callback); - case 'cloudPush': return vAPI.cloud.push(request.datakey, request.data, callback); - default: break; } // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { // For when cloud storage is disabled. case 'cloudPull': // fallthrough case 'cloudPush': break; - default: return vAPI.messaging.UNHANDLED; } @@ -644,56 +584,43 @@ callback(response); }; - /******************************************************************************/ - vAPI.messaging.listen('cloud-ui.js', onMessage); - })(); -/******************************************************************************/ -/******************************************************************************/ - // user-rules.js +(function () { -(function() { - - var ηm = ηMatrix; - - /******************************************************************************/ - - var onMessage = function(request, sender, callback) { + let ηm = ηMatrix; + let onMessage = function (request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { default: break; } // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { case 'getUserRules': response = { temporaryRules: ηm.tMatrix.toString(), - permanentRules: ηm.pMatrix.toString() + permanentRules: ηm.pMatrix.toString(), }; break; - case 'setUserRules': - if ( typeof request.temporaryRules === 'string' ) { + if (typeof request.temporaryRules === 'string') { ηm.tMatrix.fromString(request.temporaryRules); } - if ( typeof request.permanentRules === 'string' ) { + if (typeof request.permanentRules === 'string') { ηm.pMatrix.fromString(request.permanentRules); ηm.saveMatrix(); } response = { temporaryRules: ηm.tMatrix.toString(), - permanentRules: ηm.pMatrix.toString() + permanentRules: ηm.pMatrix.toString(), }; break; - default: return vAPI.messaging.UNHANDLED; } @@ -702,89 +629,79 @@ }; vAPI.messaging.listen('user-rules.js', onMessage); - })(); -/******************************************************************************/ -/******************************************************************************/ - // hosts-files.js +(function () { -(function() { - - var ηm = ηMatrix; + let ηm = ηMatrix; - /******************************************************************************/ - - var prepEntries = function(entries) { - var ηmuri = UriTools; - var entry; - for ( var k in entries ) { - if ( entries.hasOwnProperty(k) === false ) { + let prepEntries = function (entries) { + let ηmuri = UriTools; + let entry; + for (let k in entries) { + if (entries.hasOwnProperty(k) === false) { continue; } + entry = entries[k]; - if ( typeof entry.homeURL === 'string' ) { + + if (typeof entry.homeURL === 'string') { entry.homeHostname = ηmuri.hostnameFromURI(entry.homeURL); entry.homeDomain = ηmuri.domainFromHostname(entry.homeHostname); } } }; - /******************************************************************************/ - - var getLists = function(callback) { - var r = { + let getLists = function (callback) { + let r = { autoUpdate: ηm.userSettings.autoUpdate, available: null, cache: null, current: ηm.liveHostsFiles, - blockedHostnameCount: ηm.ubiquitousBlacklist.count + blockedHostnameCount: ηm.ubiquitousBlacklist.count, }; - var onMetadataReady = function(entries) { + + let onMetadataReady = function (entries) { r.cache = entries; prepEntries(r.cache); callback(r); }; - var onAvailableHostsFilesReady = function(lists) { + + let onAvailableHostsFilesReady = function (lists) { r.available = lists; prepEntries(r.available); ηm.assets.metadata(onMetadataReady); }; + ηm.getAvailableHostsFiles(onAvailableHostsFilesReady); }; - /******************************************************************************/ - - var onMessage = function(request, sender, callback) { - var ηm = ηMatrix; + let onMessage = function (request, sender, callback) { + let ηm = ηMatrix; // Async - switch ( request.what ) { + switch (request.what) { case 'getLists': return getLists(callback); - default: break; } // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { case 'purgeCache': ηm.assets.purge(request.assetKey); ηm.assets.remove('compiled/' + request.assetKey); break; - case 'purgeAllCaches': - if ( request.hard ) { + if (request.hard) { ηm.assets.remove(/./); } else { ηm.assets.purge(/./, 'public_suffix_list.dat'); } break; - default: return vAPI.messaging.UNHANDLED; } @@ -793,65 +710,58 @@ }; vAPI.messaging.listen('hosts-files.js', onMessage); - })(); -/******************************************************************************/ -/******************************************************************************/ - // about.js +(function () { -(function() { - - var ηm = ηMatrix; + let ηm = ηMatrix; - /******************************************************************************/ - - var restoreUserData = function(userData) { - var countdown = 4; - var onCountdown = function() { + let restoreUserData = function (userData) { + let countdown = 4; + let onCountdown = function () { countdown -= 1; - if ( countdown === 0 ) { + if (countdown === 0) { vAPI.app.restart(); } }; - var onAllRemoved = function() { + let onAllRemoved = function () { vAPI.storage.set(userData.settings, onCountdown); - vAPI.storage.set({ userMatrix: userData.rules }, onCountdown); - vAPI.storage.set({ liveHostsFiles: userData.hostsFiles }, onCountdown); - if ( userData.rawSettings instanceof Object ) { + vAPI.storage.set({ + userMatrix: userData.rules, + }, onCountdown); + vAPI.storage.set({ + liveHostsFiles: userData.hostsFiles, + }, onCountdown); + + if (userData.rawSettings instanceof Object) { ηMatrix.saveRawSettings(userData.rawSettings, onCountdown); } }; - // If we are going to restore all, might as well wipe out clean local - // storage + // If we are going to restore all, might as well wipe out + // clean local storage ηm.XAL.keyvalRemoveAll(onAllRemoved); }; - /******************************************************************************/ - - var resetUserData = function() { - var onAllRemoved = function() { + let resetUserData = function () { + let onAllRemoved = function () { vAPI.app.restart(); }; ηm.XAL.keyvalRemoveAll(onAllRemoved); }; - /******************************************************************************/ - - var onMessage = function(request, sender, callback) { + let onMessage = function (request, sender, callback) { // Async - switch ( request.what ) { + switch (request.what) { default: break; } // Sync - var response; - - switch ( request.what ) { + let response; + switch (request.what) { case 'getAllUserData': response = { app: vAPI.app.name, @@ -860,25 +770,21 @@ settings: ηm.userSettings, rules: ηm.pMatrix.toString(), hostsFiles: ηm.liveHostsFiles, - rawSettings: ηm.rawSettings + rawSettings: ηm.rawSettings, }; break; - case 'getSomeStats': response = { version: vAPI.app.version, storageUsed: ηm.storageUsed }; break; - case 'restoreAllUserData': restoreUserData(request.userData); break; - case 'resetAllUserData': resetUserData(); break; - default: return vAPI.messaging.UNHANDLED; } @@ -887,79 +793,66 @@ }; vAPI.messaging.listen('about.js', onMessage); +})(); - /******************************************************************************/ - /******************************************************************************/ - - // logger-ui.js - - (function() { - - /******************************************************************************/ - - var ηm = ηMatrix, - loggerURL = vAPI.getURL('logger-ui.html'); - - /******************************************************************************/ +// logger-ui.js +(function () { - var onMessage = function(request, sender, callback) { - // Async - switch ( request.what ) { - default: - break; - } + let ηm = ηMatrix; + let loggerURL = vAPI.getURL('logger-ui.html'); - // Sync - var response; + let onMessage = function (request, sender, callback) { + // Async + switch (request.what) { + default: + break; + } - switch ( request.what ) { - case 'readMany': - if ( - ηm.logger.ownerId !== undefined && - request.ownerId !== ηm.logger.ownerId - ) { - response = { unavailable: true }; - break; - } - var tabIds = {}; - for ( var tabId in ηm.pageStores ) { - var pageStore = ηm.pageStoreFromTabId(tabId); - if ( pageStore === null ) { continue; } - if ( pageStore.rawUrl.startsWith(loggerURL) ) { continue; } - tabIds[tabId] = pageStore.title || pageStore.rawUrl; - } + // Sync + let response; + switch (request.what) { + case 'readMany': + if (ηm.logger.ownerId !== undefined + && request.ownerId !== ηm.logger.ownerId) { response = { - colorBlind: false, - entries: ηm.logger.readAll(request.ownerId), - maxLoggedRequests: ηm.userSettings.maxLoggedRequests, - noTabId: vAPI.noTabId, - tabIds: tabIds, - tabIdsToken: ηm.pageStoresToken + unavailable: true, }; break; + } + let tabIds = {}; + for (let tabId in ηm.pageStores) { + let pageStore = ηm.pageStoreFromTabId(tabId); - case 'releaseView': - if ( request.ownerId === ηm.logger.ownerId ) { - ηm.logger.ownerId = undefined; + if (pageStore === null) { + continue; + } + if (pageStore.rawUrl.startsWith(loggerURL)) { + continue; } - break; - default: - return vAPI.messaging.UNHANDLED; + tabIds[tabId] = pageStore.title || pageStore.rawUrl; } - callback(response); - }; - - vAPI.messaging.listen('logger-ui.js', onMessage); - - /******************************************************************************/ - - })(); + response = { + colorBlind: false, + entries: ηm.logger.readAll(request.ownerId), + maxLoggedRequests: ηm.userSettings.maxLoggedRequests, + noTabId: vAPI.noTabId, + tabIds: tabIds, + tabIdsToken: ηm.pageStoresToken, + }; + break; + case 'releaseView': + if (request.ownerId === ηm.logger.ownerId) { + ηm.logger.ownerId = undefined; + } + break; + default: + return vAPI.messaging.UNHANDLED; + } - /******************************************************************************/ - /******************************************************************************/ + callback(response); + }; + vAPI.messaging.listen('logger-ui.js', onMessage); })(); - -/******************************************************************************/ |