Skip to content

Commit

Permalink
#2 - Switched existing vars to let and const and additional code mode…
Browse files Browse the repository at this point in the history
…rnization
  • Loading branch information
Manvel committed Dec 15, 2019
1 parent 0932532 commit 7928a9c
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 95 deletions.
98 changes: 43 additions & 55 deletions src/js/back.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -57,18 +49,18 @@ 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;
}, {});

if (browsingDataObj.removeAll == true)
{
browsingDataObj = browsingData.reduce(function(accumulator, dataType)
browsingDataObj = browsingData.reduce((accumulator, dataType) =>
{
if (dataType != "removeAll")
accumulator[dataType] = true;
Expand All @@ -81,7 +73,7 @@ function deleteBrowsingData(data)
deleteCookies();
}
browsingDataObj.cookies = false;
chrome.browsingData.remove({}, browsingDataObj);
browser.browsingData.remove({}, browsingDataObj);
}
else
{
Expand All @@ -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);
};
Expand All @@ -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);
59 changes: 21 additions & 38 deletions src/js/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -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: ["<all_urls>"]},
["requestHeaders"]);
browser.webRequest.onHeadersReceived.addListener(onHeadersReceivedCallback,
{urls: ["<all_urls>"]},
["responseHeaders"]);
const urls = {urls: ["<all_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)
Expand All @@ -71,27 +60,21 @@ function updateRequestObj(details, actionType)
******************************************************************************/
function addBlockAgentListener()
{
chrome.webRequest.onBeforeSendHeaders.addListener(blockUserAgent,
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]);
onBeforeSendHeaders.addListener(blockUserAgent,
{urls: ["<all_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)
Expand All @@ -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};
4 changes: 2 additions & 2 deletions src/js/ui/tabs/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 7928a9c

Please sign in to comment.