Skip to content
Snippets Groups Projects
Commit b612da1f authored by didierfred's avatar didierfred
Browse files

resolve sonar issues

parent e37d86e5
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@
"use strict";
let config ;
let config;
let started = "off";
let debug_mode = false;
......@@ -19,9 +19,9 @@ let debug_mode = false;
// if configuration exist
if (localStorage.getItem('config')) {
console.log("Load standard config");
config= JSON.parse(localStorage.getItem('config'));
config= JSON.parse(localStorage.getItem('config'));
// If config 1.0 (Simple Modify headers V1.2) , save to format 1.1
// If config 1.0 (Simple Modify headers V1.2) , save to format 1.1
if (config.format_version==="1.0") {
config.format_version="1.1";
for (let line of config.headers) line.apply_on="req";
......@@ -49,7 +49,7 @@ else {
headers.push({action:to_modify[0],url_contains:"",header_name:to_modify[1],header_value:to_modify[2],comment:"",apply_on:"req",status:to_modify[3]});
}
config = {format_version:"1.1",target_page:localStorage.getItem('targetPage'),headers:headers,debug_mode:false};
// save old config in new format
// save old config in new format
localStorage.setItem("config",JSON.stringify(config));
}
//else no config exists, create a default one
......@@ -58,13 +58,13 @@ else {
let headers = [];
headers.push({url_contains:"",action:"add",header_name:"test-header-name",header_value:"test-header-value",comment:"test",apply_on:"req",status:"on"});
config = {format_version:"1.1",target_page:"https://httpbin.org/*",headers:headers,debug_mode:false};
// save configuration
// save configuration
localStorage.setItem("config",JSON.stringify(config));
}
}
// If no started value stored , use a default one
// If no started value stored , use a default one
if (!localStorage.getItem('started')) localStorage.setItem('started',started);
else started = localStorage.getItem('started');
......@@ -74,12 +74,12 @@ if (started==="on") {
chrome.browserAction.setIcon({ path: "icons/modify-green-32.png"});
}
// listen for change in configuration or start/stop
// listen for change in configuration or start/stop
chrome.runtime.onMessage.addListener(notify);
/*
* Standard function to log messages
* Standard function to log messages
*
*/
......@@ -98,12 +98,15 @@ function rewriteRequestHeader(e) {
if (to_modify.action==="add"){
let new_header = {"name" :to_modify.header_name,"value":to_modify.header_value};
e.requestHeaders.push(new_header);
if (config.debug_mode) log("Add request header : name=" + to_modify.header_name + ",value=" + to_modify.header_value + " for url " + e.url);
if (config.debug_mode) log("Add request header : name=" + to_modify.header_name +
",value=" + to_modify.header_value + " for url " + e.url);
}
else if (to_modify.action==="modify") {
for (let header of e.requestHeaders) {
if (header.name.toLowerCase() === to_modify.header_name.toLowerCase()) {
if (config.debug_mode) log("Modify request header : name= " + to_modify.header_name + ",old value=" + header.value + ",new value=" + to_modify.header_value + " for url " + e.url);
if (config.debug_mode) log("Modify request header : name= " + to_modify.header_name +
",old value=" + header.value + ",new value=" + to_modify.header_value +
" for url " + e.url);
header.value = to_modify.header_value;
}
}
......@@ -115,7 +118,8 @@ function rewriteRequestHeader(e) {
}
if (index!==-1) {
e.requestHeaders.splice(index,1);
if (config.debug_mode) log("Delete request header : name=" + to_modify.header_name.toLowerCase() + " for url " + e.url);
if (config.debug_mode) log("Delete request header : name=" + to_modify.header_name.toLowerCase() +
" for url " + e.url);
}
}
}
......@@ -136,12 +140,14 @@ function rewriteResponseHeader(e) {
if (to_modify.action==="add") {
let new_header = {"name" :to_modify.header_name,"value":to_modify.header_value};
e.responseHeaders.push(new_header);
if (config.debug_mode) log("Add response header : name=" + to_modify.header_name + ",value=" + to_modify.header_value + " for url " + e.url);
if (config.debug_mode) log("Add response header : name=" + to_modify.header_name
+ ",value=" + to_modify.header_value + " for url " + e.url);
}
else if (to_modify.action==="modify") {
for (let header of e.responseHeaders) {
if (header.name.toLowerCase() === to_modify.header_name.toLowerCase()) {
if (config.debug_mode) log("Modify response header : name= " + to_modify.header_name + ",old value=" + header.value + ",new value=" + to_modify.header_value + " for url " + e.url);
if (config.debug_mode) log("Modify response header : name= " + to_modify.header_name + ",old value="
+ header.value + ",new value=" + to_modify.header_value + " for url " + e.url);
header.value = to_modify.header_value;
}
}
......@@ -153,7 +159,8 @@ function rewriteResponseHeader(e) {
}
if (index!==-1) {
e.responseHeaders.splice(index,1);
if (config.debug_mode) log("Delete response header : name=" + to_modify.header_name.toLowerCase() + " for url " + e.url);
if (config.debug_mode) log("Delete response header : name=" + to_modify.header_name.toLowerCase()
+ " for url " + e.url);
}
}
}
......@@ -165,8 +172,8 @@ function rewriteResponseHeader(e) {
/*
* Listen for message form config.js
* if message is reload : reload the configuration
* if message is on : start the modify header
* if message is reload : reload the configuration
* if message is on : start the modify header
* if message is off : stop the modify header
*
**/
......@@ -174,7 +181,7 @@ function notify(message) {
if (message==="reload") {
if (config.debug_mode) log("Reload configuration");
config=JSON.parse(localStorage.getItem("config"));
if (started==="on") {
if (started==="on") {
removeListener();
addListener();
}
......@@ -212,7 +219,7 @@ function addListener() {
/*
* Remove the two listener
* Remove the two listener
*
*/
function removeListener() {
......
......@@ -28,8 +28,8 @@ window.onload = function() {
let config = JSON.parse(localStorage.getItem("config"));
if (config.debug_mode) document.getElementById("debug_mode").checked = true;
if (typeof config.show_comments === 'undefined') document.getElementById("show_comments").checked = true;
else if (config.show_comments) document.getElementById("show_comments").checked = true;
if (typeof config.show_comments === 'undefined') document.getElementById("show_comments").checked = true;
else if (config.show_comments) document.getElementById("show_comments").checked = true;
else show_comments=false;
if (config.use_url_contains) {
......@@ -50,11 +50,11 @@ window.onload = function() {
document.getElementById('exit_parameters_screen_button').addEventListener('click',function (e) {hideParametersScreen();});
started = localStorage.getItem("started");
if (started==="on") document.getElementById("start_img").src = "img/stop.png";
if (started==="on") document.getElementById("start_img").src = "img/stop.png";
document.getElementById('show_comments').addEventListener('click',function (e) {showCommentsClick();});
document.getElementById('use_url_contains').addEventListener('click',function (e) {useUrlContainsClick();});
reshapeTable();
reshapeTable();
}
......@@ -87,23 +87,29 @@ function useUrlContainsClick() {
/**
* Add a new configuration line on the UI
* Add a new configuration line on the UI
**/
function appendLine(url_contains,action,header_name,header_value,comment,apply_on,status) {
let html = "<td";
if (!use_url_contains) html=html+" hidden";
html = html + "><input class=\""+ input_field_style+ "\" id=\"url_contains"+ line_number + "\"></input></td>";
html = html + "<td><select class=\"form_control select_field\" id=\"select_action" + line_number + "\" disable=false><option value=\"add\">Add</option><option value=\"modify\">Modify</option><option value=\"delete\">Delete</option></select></td>";
html = html + "<td><select class=\"form_control select_field\" id=\"select_action" + line_number
+ "\" disable=false><option value=\"add\">Add</option><option value=\"modify\">Modify</option><option value=\"delete\">Delete</option></select></td>";
html = html + "<td><input class=\"" + input_field_style + "\" id=\"header_name"+ line_number + "\"></input></td>";
html = html + "<td><input class=\"" + input_field_style + "\" id=\"header_value"+ line_number + "\"></input></td>";
html = html + "<td";
if (!show_comments) html=html+" hidden";
html = html + "><input class=\""+ input_field_style + "\" id=\"comment"+ line_number + "\"></input></td>";
html = html + "<td><select class=\"form_control select_field\" id=\"apply_on" + line_number + "\"><option value=\"req\"> Request </option><option value=\"res\">Response</option></select></td>";
html = html + "<td><a href=\"#\" title=\"Activate/Descativate rule\" id=\"activate_button" + line_number + "\" class=\"btn btn-primary btn-sm\">ON <span class=\"glyphicon glyphicon-ok\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Move line up\" id=\"up_button" + line_number + "\" class=\"btn btn-default btn-sm\"> <span class=\"glyphicon glyphicon-arrow-up\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Move line down\" id=\"down_button" + line_number + "\" class=\"btn btn-default btn-sm\"> <span class=\"glyphicon glyphicon-arrow-down\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Delete line\" id=\"delete_button" + line_number + "\" class=\"btn btn-primary btn-sm\"> <span class=\"glyphicon glyphicon-trash\"></span></a></td>";
html = html + "<td><select class=\"form_control select_field\" id=\"apply_on"
+ line_number + "\"><option value=\"req\"> Request </option><option value=\"res\">Response</option></select></td>";
html = html + "<td><a href=\"#\" title=\"Activate/Descativate rule\" id=\"activate_button"
+ line_number + "\" class=\"btn btn-primary btn-sm\">ON <span class=\"glyphicon glyphicon-ok\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Move line up\" id=\"up_button"
+ line_number + "\" class=\"btn btn-default btn-sm\"> <span class=\"glyphicon glyphicon-arrow-up\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Move line down\" id=\"down_button"
+ line_number + "\" class=\"btn btn-default btn-sm\"> <span class=\"glyphicon glyphicon-arrow-down\"></span></a></td>";
html = html + "<td><a href=\"#\" title=\"Delete line\" id=\"delete_button"
+ line_number + "\" class=\"btn btn-primary btn-sm\"> <span class=\"glyphicon glyphicon-trash\"></span></a></td>";
let newTR = document.createElement("tr");
newTR.id="line" + line_number;
......@@ -147,7 +153,7 @@ function getButtonStatus(button) {
function switchActivateButton(button_number) {
const activate_button = document.getElementById("activate_button"+button_number);
// Button is ON
// Button is ON
if (getButtonStatus(activate_button)==="on") setButtonStatus(activate_button,"off");
// Button is OFF
else setButtonStatus(activate_button,"on");
......@@ -173,7 +179,7 @@ function reshapeTable() {
for (let i=0;i<tr_elements.length;i++) {
tr_elements[i].childNodes[4].childNodes[0].className=input_field_style;
tr_elements[i].childNodes[4].childNodes[0].className=input_field_style;
tr_elements[i].childNodes[4].hidden = (!show_comments);
tr_elements[i].childNodes[3].childNodes[0].className=input_field_style;
tr_elements[i].childNodes[2].childNodes[0].className=input_field_style;
......@@ -181,7 +187,7 @@ function reshapeTable() {
tr_elements[i].childNodes[0].hidden = (!use_url_contains);
}
th_elements[4].hidden = (!show_comments);
th_elements[0].hidden = (!use_url_contains);
th_elements[0].hidden = (!use_url_contains);
}
......@@ -205,10 +211,11 @@ function create_configuration_data() {
const status = getButtonStatus(tr_elements[i].childNodes[6].childNodes[0]);
headers.push({url_contains:url_contains,action:action,header_name:header_name,header_value:header_value,comment:comment,apply_on:apply_on,status:status});
}
if (document.getElementById("debug_mode").checked) debug_mode=true ;
if (document.getElementById("show_comments").checked) show_comments=true ;
if (document.getElementById("use_url_contains").checked) use_url_contains=true ;
let to_export = {format_version:"1.2",target_page:document.getElementById('targetPage').value,headers:headers,debug_mode:debug_mode,show_comments:show_comments,use_url_contains:use_url_contains};
if (document.getElementById("debug_mode").checked) debug_mode=true;
if (document.getElementById("show_comments").checked) show_comments=true;
if (document.getElementById("use_url_contains").checked) use_url_contains=true;
let to_export = {format_version:"1.2",target_page:document.getElementById('targetPage').value,headers:headers,
debug_mode:debug_mode,show_comments:show_comments,use_url_contains:use_url_contains};
return JSON.stringify(to_export);
}
......@@ -228,7 +235,7 @@ function isTargetValid(target) {
if (target===" ") return true;
if (target==="*") return true;
let targets=target.split(";");
for (i in targets) {
for (let i in targets) {
if (!targets[i].match("(http|https|[\*]):\/\/([\*][\.][^\*]*|[^\*]*|[\*])\/")) return false;
}
return true;
......@@ -242,7 +249,7 @@ function isTargetValid(target) {
function saveData() {
if (!isTargetValid(document.getElementById('targetPage').value)) alert("Warning: Url patterns are invalid");
localStorage.setItem("config",create_configuration_data());
localStorage.setItem("config",create_configuration_data());
chrome.runtime.sendMessage("reload");
return true;
}
......@@ -256,7 +263,7 @@ function exportData() {
// Create file data
let to_export= create_configuration_data();
// Create file to save
// Create file to save
let a = document.createElement('a');
a.href = 'data:attachment/json,' + encodeURIComponent(to_export);
a.target = 'download';
......@@ -300,7 +307,7 @@ function readSingleFile(e) {
let reader = new FileReader();
reader.onload = function(e) {
let contents = e.target.result;
let config="";
let config="";
try {
config = JSON.parse(contents);
// check file format
......@@ -326,9 +333,9 @@ function readSingleFile(e) {
config.use_url_contains=false;
}
// store the conf in the local storage
// store the conf in the local storage
localStorage.setItem("config",JSON.stringify(config));
// load the new conf
// load the new conf
chrome.runtime.sendMessage("reload");
// reload the configuration page with the new conf
document.location.href="config.html";
......@@ -338,17 +345,19 @@ function readSingleFile(e) {
if (config[0].action) {
let headers = [];
for (let line_to_load of config) {
var enabled = "off";
var enabled = "off";
if (line_to_load.enabled) enabled = "on";
if (line_to_load.action==="Filter") line_to_load.action="delete"; headers.push({url_contains:"",action:line_to_load.action.toLowerCase(),header_name:line_to_load.name,header_value:line_to_load.value,comment:line_to_load.comment,apply_on:"req",status:enabled});
if (line_to_load.action==="Filter") line_to_load.action="delete";
headers.push({url_contains:"",action:line_to_load.action.toLowerCase(),header_name:line_to_load.name,
header_value:line_to_load.value,comment:line_to_load.comment,apply_on:"req",status:enabled});
}
let to_load = {format_version:"1.2",target_page:"",headers:headers,debug_mode:false,show_comments:true,use_url_contains:false};
// store the conf in the local storage
// store the conf in the local storage
localStorage.setItem("config",JSON.stringify(to_load));
// load the new conf
chrome.runtime.sendMessage("reload");
// reload the configuration page with the new conf
document.location.href="config.html";
document.location.href="config.html";
}
else alert("invalid file format");
}
......@@ -394,7 +403,7 @@ function invertLine(line1, line2) {
// if a line does not exist , do nothing
if ((line1===0)||(line2===0)||(line1>=line_number)||(line2>=line_number)) return;
// Save data for line 1
// Save data for line 1
const select_action1= document.getElementById("select_action"+line1).value;
const url_contains1 = document.getElementById("url_contains"+line1).value;
const header_name1 = document.getElementById("header_name"+line1).value;
......@@ -431,7 +440,7 @@ function startModify() {
localStorage.setItem("started","on");
chrome.runtime.sendMessage("on");
started = "on";
document.getElementById("start_img").src = "img/stop.png";
document.getElementById("start_img").src = "img/stop.png";
}
else {
localStorage.setItem("started","off");
......
......@@ -11,24 +11,22 @@
var started = "off";
window.onload = function() {
document.getElementById('config').addEventListener('click',function (e) {start_config();});
document.getElementById('start_stop').addEventListener('click',function (e) {start_modify();});
started = localStorage.getItem("started");
if (started=="on") document.getElementById("start_stop").value = "Stop";
} ;
if (started==="on") document.getElementById("start_stop").value = "Stop";
}
function start_modify()
{
if (started=="off")
if (started==="off")
{
localStorage.setItem("started","on");
chrome.runtime.sendMessage("on");
started = "on";
document.getElementById("start_stop").value = "Stop";
document.getElementById("start_stop").value = "Stop";
}
else
{
......@@ -38,7 +36,7 @@ function start_modify()
document.getElementById("start_stop").value = "Start";
}
// if exists reload config tab , to get the start/stop information correct
// if exists reload config tab , to get the start/stop information correct
chrome.tabs.query({currentWindow: true},reloadConfigTab);
}
......@@ -48,15 +46,13 @@ function reloadConfigTab(tabs)
{
var config_tab;
// search for config tab
for (let tab of tabs)
// search for config tab
for (let tab of tabs)
{
if (tab.url.startsWith(chrome.extension.getURL(""))) config_tab = tab;
}
// config tab exists , reload it
// config tab exists , reload it
if (config_tab) chrome.tabs.reload(config_tab.id);
}
......@@ -71,13 +67,13 @@ function loadConfigTab(tabs)
{
var config_tab;
// search for config tab
for (let tab of tabs)
// search for config tab
for (let tab of tabs)
{
if (tab.url.startsWith(chrome.extension.getURL(""))) config_tab = tab;
}
// config tab exits , put the focus on it
// config tab exits , put the focus on it
if (config_tab) chrome.tabs.update(config_tab.id,{active:true})
// else create a new tab
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment