Bachelorarbeit: "Ein Tool zur Erklärung von Datenschutzrichtlinien"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

143 lines
3.9 KiB

/* *
* This function creates the cookie and ads context in the popup
* returns a string containg a html.
* */
async function handleCookies(){
result = "";
$("#cookie-cards").empty();
var allcookies = [];
await browser.cookies.getAll({}).then(response => {
allcookies = response;
});
let tabs = browser.tabs.query({currentWindow: true, active: true}).then(tabs => {
var activeTab = tabs.pop();
console.log(activeTab.url);
browser.cookies.getAll({url: activeTab.url}).then(cookies => {
let regex = new RegExp("https?:\/\/(www\.)?[^\/]+\/");
console.log(thirdpartylinks);
let result_thirdpartyscripts = [];
let result_thirdlinks = "";
for(let i = 0; i < thirdpartylinks.length; i++){
let tmp = thirdpartylinks[i];
let tmp_arr = tmp.split("/");
//console.log(tmp.split("/"));
console.log(tmp_arr);
let tmp_perfect = tmp_arr[2].split(".");
if(tmp_perfect.length < 3){
if(!result_thirdlinks.includes(tmp_arr[2]) && tmp_arr[2].includes(".")){
result_thirdlinks += "<a href='https://duckduckgo.com/?q="+tmp_arr[2]+"'>"+ tmp_arr[2] +"</a>";
result_thirdpartyscripts.push(tmp_arr[2]);
}
} else {
let result_domain = tmp_perfect[tmp_perfect.length-2]+"."+tmp_perfect[tmp_perfect.length-1];
if(!result_thirdlinks.includes(result_domain) && tmp_arr[2].includes(".")){
result_thirdpartyscripts.push(result_domain);
result_thirdlinks += "<a href='https://duckduckgo.com/?q="+result_domain+"'>"+ result_domain +"</a>";
}
}
}
//let url = activeTab.url.match(regex);
let url = activeTab.url.split("/");
cookies_third_list = [];
console.log(result_thirdpartyscripts);
console.log(allcookies.length);
for(let i = 0; i < allcookies.length; i++){
let tmp = allcookies[i];
for(let j = 0; j < result_thirdpartyscripts.length; j++){
if(allcookies.domain === result_thirdpartyscripts){
cookies_third_list.push(tmp);
}
if(allcookies.domain === "."+result_thirdpartyscripts){
cookies_third_list.push(tmp);
}
}
}
console.log(cookies_third_list);
console.log(url[2]);
if(url[2].length == 0){
url[2] = "";
}
let active_cookies = "";
if (cookies.length === 0){
active_cookies= "0 Cookies active.";
} else if(cookies.length === 1){
active_cookies= "1 Cookie active.";
} else {
active_cookies = cookies.length+" Cookies active.";
}
var domain = url[2];
$("#cookie-cards").append("<div id='cookie-cards'>"+
"<div class='mdc-card' id='cookie-card'>"
+ "<h3>"+url[2]+"</h3>"
+ "<p class='cookie-p'>"+active_cookies +"</p>"
+ "<p>This Companys can inflate third party cookies or an ad on this site to track you:</p>"
+ result_thirdlinks
+ "</div>"
+ "</div>"
);
if (cookies.length > 1){
for(let cookie of cookies){
let cookiename = cookie.name;
if (cookie.name.length > 10){
cookiename = cookie.value.substring(0,10) + "...";
}
let tmp = "<div class='mdc-card cookie-card'>"
+ "<p class='cookie-p'>Cookie Name: "+ cookiename+"<br>"
+ "Domain: " + cookie.domain
+ "</p>";
let img = "ok";
let src = "'"+browser.runtime.getURL("pic_data_base/"+img+".png'");
$("#cookie-cards").append(tmp + "<img src="+src+" width=64 height=64>"+ "</div>");
}
}
if (cookies_third_list.length > 1){
for(let cookie of cookies_third_list){
let cookiename = cookie.name;
if (cookie.name.length > 10){
cookiename = cookie.value.substring(0,10) + "...";
}
let tmp = "<div class='mdc-card cookie-card'>"
+ "<p class='cookie-p'>Cookie Name: "+ cookiename+"<br>"
+ "Domain: " + cookie.domain
+ "</p>";
let img = "warning";
let src = "'"+browser.runtime.getURL("pic_data_base/"+img+".png'");
$("#cookie-cards").append(tmp + "<img src="+src+" width=64 height=64>"+ "</div>");
}
}
});
});
return result;
}