aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2020-05-02 17:24:46 -0500
committerJesús <heckyel@hyperbola.info>2020-05-02 17:24:46 -0500
commit88e55b7e0c00b529e28c1e65b86ee99254a65dfb (patch)
tree46c21183154892e4c9393aec987f83851739e815
parent647f758beebb00e60008ccfaa6cc4133c50b03ef (diff)
downloadematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.tar.lz
ematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.tar.xz
ematrix-88e55b7e0c00b529e28c1e65b86ee99254a65dfb.zip
Style changes
-rw-r--r--js/messaging.js707
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);
})();
-
-/******************************************************************************/