diff --git a/src/js/back.js b/src/js/back.js index a7908fe..d7ffc93 100644 --- a/src/js/back.js +++ b/src/js/back.js @@ -18,31 +18,23 @@ "use strict"; -const {additionalPermission, browsingData, getStorage, setStorage, - addRequestListener, removeRequestListener, updateRequestObj, - addBlockAgentListener, removeBlockAgentListener, - deleteCookies} = require("./common"); +const {additionalPermission, browsingData, addRequestListener, + removeRequestListener, updateRequestObj, addBlockAgentListener, + removeBlockAgentListener, deleteCookies} = require("./common"); window.collectedRequests = []; const requestCollectionLength = 500; -function profileStart() +async function profileStart() { - getStorage("cookieWhitelist", function(data) - { - if (!data || !data.cookieWhitelist) - { - setStorage({"cookieWhitelist": {} }); - } - }); - getStorage("settingList", function(data) - { - deleteBrowsingData(data.settingList); - }); + const data = await browser.storage.local.get("cookieWhitelist"); + if (!data || !data.cookieWhitelist) + browser.storage.local.set({"cookieWhitelist": {} }); + const {settingList} = await browser.storage.local.get("settingList"); + deleteBrowsingData(settingList); } -//TODO: Find a solution to avoide duplication -getStorage("settingList", function(data) +browser.storage.local.get("settingList").then((data) => { if (data.settingList && data.settingList.collectHeaders) startCollectingRequests(); @@ -57,10 +49,10 @@ function deleteBrowsingData(data) return; // Filter "data" object to only match properties from "browsingData". - var browsingDataObj = Object.keys(data).filter(function(key) + let browsingDataObj = Object.keys(data).filter((key) => { return browsingData.includes(key); - }).reduce(function(accumulator, dataType) + }).reduce((accumulator, dataType) => { accumulator[dataType] = data[dataType]; return accumulator; @@ -68,7 +60,7 @@ function deleteBrowsingData(data) if (browsingDataObj.removeAll == true) { - browsingDataObj = browsingData.reduce(function(accumulator, dataType) + browsingDataObj = browsingData.reduce((accumulator, dataType) => { if (dataType != "removeAll") accumulator[dataType] = true; @@ -81,7 +73,7 @@ function deleteBrowsingData(data) deleteCookies(); } browsingDataObj.cookies = false; - chrome.browsingData.remove({}, browsingDataObj); + browser.browsingData.remove({}, browsingDataObj); } else { @@ -90,24 +82,22 @@ function deleteBrowsingData(data) deleteCookies(); } browsingDataObj.cookies = false; - chrome.browsingData.remove({}, browsingDataObj); + browser.browsingData.remove({}, browsingDataObj); } } -window.deleteBrowsingData = function() +window.deleteBrowsingData = async() => { - getStorage("settingList", function(data) - { - deleteBrowsingData(data.settingList); - }); + const {settingList} = await browser.storage.local.get("settingList"); + deleteBrowsingData(settingList); }; -window.startCollectingRequests = function() +window.startCollectingRequests = () => { addRequestListener(onSendHeaders, onHeadersReceived); }; -window.stopCollectingRequests = function() +window.stopCollectingRequests = () => { removeRequestListener(onSendHeaders, onHeadersReceived); }; @@ -132,41 +122,39 @@ function addToRequestArray(details) collectedRequests.push(details); } -chrome.storage.onChanged.addListener(function(change) +browser.storage.onChanged.addListener(async(change) => { if (change.settingList) { - chrome.permissions.contains(additionalPermission, function(result) + const result = await browser.permissions.contains(additionalPermission); + let newValue = change.settingList.newValue.collectHeaders; + let oldValue = change.settingList.oldValue; + if (!oldValue || newValue != oldValue.collectHeaders) { - var newValue = change.settingList.newValue.collectHeaders; - var oldValue = change.settingList.oldValue; - if (!oldValue || newValue != oldValue.collectHeaders) - { - if (result && newValue) - startCollectingRequests(); - else - stopCollectingRequests(); - } - - newValue = change.settingList.newValue.blockUserAgent; - oldValue = change.settingList.oldValue; - if (oldValue && newValue != oldValue.blockUserAgent) - { - if (result && newValue) - addBlockAgentListener(); - else - removeBlockAgentListener(); - } - }); + if (result && newValue) + startCollectingRequests(); + else + stopCollectingRequests(); + } + + newValue = change.settingList.newValue.blockUserAgent; + oldValue = change.settingList.oldValue; + if (oldValue && newValue != oldValue.blockUserAgent) + { + if (result && newValue) + addBlockAgentListener(); + else + removeBlockAgentListener(); + } } }); -chrome.permissions.onRemoved.addListener(function() +browser.permissions.onRemoved.addListener(() => { removeBlockAgentListener(); removeRequestListener(onSendHeaders, onHeadersReceived); }); // Fired on a profile start up -chrome.runtime.onInstalled.addListener(profileStart); -chrome.runtime.onStartup.addListener(profileStart); +browser.runtime.onInstalled.addListener(profileStart); +browser.runtime.onStartup.addListener(profileStart); diff --git a/src/js/common.js b/src/js/common.js index b306b1c..f1a79b5 100644 --- a/src/js/common.js +++ b/src/js/common.js @@ -28,36 +28,25 @@ const browsingData = ["removeAll", "appcache", "cache", "cookies", "downloads", "pluginData", "serviceWorkers", "webSQL"]; const getAllCookies = browser.cookies.getAll; const removeCookie = browser.cookies.remove; - -function getStorage(keys, callback) -{ - // See -> https://github.com/Manvel/Privacy-Manager/issues/24 - chrome.storage.local.get(keys, callback); -} - -function setStorage(items, callback) -{ - chrome.storage.local.set(items, callback); -} +const onBeforeSendHeaders = browser.webRequest.onBeforeSendHeaders; +const onSendHeaders = browser.webRequest.onSendHeaders; +const onHeadersReceived = browser.webRequest.onHeadersReceived; function getUrl(domain, path, isSecure) { return "http" + (isSecure ? "s" : "") + "://" + domain + path; } -function addRequestListener(onSendHeadersCallback, onHeadersReceivedCallback) +function addRequestListener(sendHeaders, headersReceived) { - browser.webRequest.onSendHeaders.addListener(onSendHeadersCallback, - {urls: [""]}, - ["requestHeaders"]); - browser.webRequest.onHeadersReceived.addListener(onHeadersReceivedCallback, - {urls: [""]}, - ["responseHeaders"]); + const urls = {urls: [""]}; + onSendHeaders.addListener(sendHeaders, urls, ["requestHeaders"]); + onHeadersReceived.addListener(headersReceived, urls, ["responseHeaders"]); } -function removeRequestListener(onSendHeadersCallback, onHeadersReceivedCallback) +function removeRequestListener(sendHeaders, headersReceived) { - chrome.webRequest.onSendHeaders.removeListener(onSendHeadersCallback); - chrome.webRequest.onHeadersReceived.removeListener(onHeadersReceivedCallback); + onSendHeaders.removeListener(sendHeaders); + onHeadersReceived.removeListener(headersReceived); } function updateRequestObj(details, actionType) @@ -71,27 +60,21 @@ function updateRequestObj(details, actionType) ******************************************************************************/ function addBlockAgentListener() { - chrome.webRequest.onBeforeSendHeaders.addListener(blockUserAgent, - {urls: [""]}, - ["blocking", "requestHeaders"]); + onBeforeSendHeaders.addListener(blockUserAgent, + {urls: [""]}, + ["blocking", "requestHeaders"]); } function removeBlockAgentListener() { - chrome.webRequest.onBeforeSendHeaders.removeListener(blockUserAgent); + onBeforeSendHeaders.removeListener(blockUserAgent); } function blockUserAgent(details) { - for (var i = 0; i < details.requestHeaders.length; ++i) - { - if (details.requestHeaders[i].name == "User-Agent") - { - details.requestHeaders.splice(i, 1); - break; - } - } - return {requestHeaders: details.requestHeaders}; + const filterUserAgent = (request) => request.name != "User-Agent"; + const requestHeaders = details.requestHeaders.filter(filterUserAgent); + return {requestHeaders}; } function removeStartDot(string) @@ -116,7 +99,7 @@ async function deleteCookies() } module.exports = {additionalPermission, browsingData, getAllCookies, - removeCookie, getStorage, setStorage, getUrl, - addRequestListener, removeRequestListener, - updateRequestObj, addBlockAgentListener, - removeBlockAgentListener, deleteCookies}; + removeCookie, getUrl, addRequestListener, + removeRequestListener, updateRequestObj, + addBlockAgentListener, removeBlockAgentListener, + deleteCookies}; diff --git a/src/js/ui/tabs/main.js b/src/js/ui/tabs/main.js index 5709187..c0bc049 100644 --- a/src/js/ui/tabs/main.js +++ b/src/js/ui/tabs/main.js @@ -38,8 +38,8 @@ async function generateMainContent() }); } - for (var i = 0; i < browsingData.length; i++) - addStorageToggle(browsingData[i], $("#startupClear ul")); + for (const dataName of browsingData) + addStorageToggle(dataName, $("#startupClear ul")); } async function onAction(action)