aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contact_finder.js12
-rw-r--r--html/display_panel/content/display-panel.html13
-rw-r--r--html/display_panel/content/main_panel.js46
-rw-r--r--html/display_panel/content/panel-styles.css7
-rw-r--r--main_background.js30
5 files changed, 67 insertions, 41 deletions
diff --git a/contact_finder.js b/contact_finder.js
index 69b9254..a46ccab 100644
--- a/contact_finder.js
+++ b/contact_finder.js
@@ -215,18 +215,6 @@ function find_contacts(){
}
console.log("final result:");
console.log(res);
- /*
- console.log("********************************************************");
- console.log("%c RESULTS: ","color: #dd0000;");
- console.log("%c " + phone_num.length + "%c phone numbers","color: red;","color: purple;");
- console.log("%c " + twitlinks.length + "%c twitter links","color: red;","color: purple;");
- console.log("%c " + identi.length + "%c identi.ca links","color: red;","color: purple;");
- console.log("%c " + contact_pages.length + "%c possible contact pages","color: red;","color: purple;");
- console.log("********************************************************");
- */
-
-
-
}
// need to have this so the handler doesn't take too long
function handler(){
diff --git a/html/display_panel/content/display-panel.html b/html/display_panel/content/display-panel.html
index 5fc1242..e8345ae 100644
--- a/html/display_panel/content/display-panel.html
+++ b/html/display_panel/content/display-panel.html
@@ -29,8 +29,8 @@
<body>
<script src="main_panel.js"></script>
- <div class="title-area">
- <div>
+ <div style="float:left; display:inline;" class="title-area">
+ <div>
<a class="libre"
id="ljs-settings"
href="javascript:void"
@@ -44,10 +44,13 @@
>gnu.org/software/librejs</a>
</div>
<div>
- <strong>LibreJS 7.0</strong>
+ <strong>LibreJS 7.0 <br><br></strong>
</div>
- </div>
-
+ </div>
+ <div id="buttons" style="float:right; display:inline;" class="title-area">
+ <div id="buttons-l" style="float:center;"></div>
+ <div id="buttons-r" style="float:right; clear: right;"></div>
+ </div>
<div id="info">
<div id="whitelisted">
<h2 class="blocked-js"></h2>
diff --git a/html/display_panel/content/main_panel.js b/html/display_panel/content/main_panel.js
index 19cad89..54db745 100644
--- a/html/display_panel/content/main_panel.js
+++ b/html/display_panel/content/main_panel.js
@@ -62,12 +62,15 @@ function write_elements(data,name,color){
var button_html_3 = '<div style="float:right"><input id="temp3" type="button" value="forget preference"></input></div>';
var heading = document.getElementById(name).getElementsByTagName("h2")[0];
var list = document.getElementById(name).getElementsByTagName("ul")[0];
- if(data[name] === undefined || data[name].length == 0){
+ if(typeof(data[name]) == "undefined" || data[name].length == 0){
// default message
list.innerHTML = "<li>No "+ name +" scripts on this page.</li>"
+ data[name] = [];
} else{
heading.innerHTML = "<h2 class='blocked-js'>List of <div style='display:inline; color:"+color+";'>" + name.toUpperCase() + "</div> javascript in " + data["url"]+":</h2>";
}
+ console.log(data);
+ console.log(data[name]);
// Iterate over data[name] and generate bulleted list
for(var i = 0; i < data[name].length; i++){
list.innerHTML += "<li><b>"+data[name][i][0]+ ":</b><br>" + data[name][i][1]+"\n"+button_html+"<br><br>\n"+button_html_2+"<br><br>\n"+button_html_3+"</li>";
@@ -96,16 +99,26 @@ function write_elements(data,name,color){
var temp = current_blocked_data[name][parseInt(info.path[0].id.match(/\d/g)[1])];
console.log("Forget preferences for script " + temp[0]);
var script_name = this.parentElement.parentElement.parentElement.parentElement.id;
- this.parentElement.parentElement.getElementsByTagName("b")[0].insertAdjacentHTML("beforebegin","<h3>Refresh the page to revaluate this script.</h3>");
- myPort.postMessage({"forget": temp});
+ if(this.parentElement.parentElement.innerHTML.indexOf("Refresh the page") == -1){
+ this.parentElement.parentElement.getElementsByTagName("b")[0].insertAdjacentHTML("beforebegin","<h3>Refresh the page to revaluate this script.</h3>");
+ myPort.postMessage({"forget": temp});
+ }
});
}
}
}
-
-
+/**
+* displays the button specified by HTML string "button"
+*/
+var num_buttons = 0;
+function write_button(button,lr,callback){
+
+ document.getElementById("buttons-"+lr).insertAdjacentHTML("beforeend","<div id='buttonno_"+num_buttons+"'>" + button + "</div>");
+ document.getElementById("buttonno_"+num_buttons).addEventListener("click",callback);
+ num_buttons = num_buttons + 1;
+}
/**
* update the HTML of the pop-up window.
* If return_HTML is true, it returns the HTML of the popup window without updating it.
@@ -124,13 +137,13 @@ function generate_HTML(blocked_data){
current_blocked_data = blocked_data;//unused?
// This should send a message to invoke the content finder
- var button_complain = '<a id="complain-contact" class="button white" href="#"><span>Complain to site owner</span></a>';
+ var button_complain = '<a id="complain-contact" class="button white" href="#">Complain to site owner</a>';
// This should update the persistent options
- var button_allow_all = '<a id="allow-button" class="button white" href="#"><span>Allow all scripts in this page</span></a>';
+ var button_allow_all = '<a id="allow-button" class="button white" href="#">Allow all scripts in this page</a>';
// This will call "Forget preferences" on every script.
- var button_block_nonfree = '<a id="disallow-button" class="button white" href="#"><span>Block all nonfree/nontrivial scripts from this page</span></a>';
+ var button_block_nonfree = '<a id="disallow-button" class="button white" href="#">Block all nonfree/nontrivial scripts from this page</a>';
// This should send a message that calls "open_popup_tab()" in the background script
- var button_new_tab = '<a id="open-in-tab" class="button white" href="#"><span>Open this report in a new tab</span></a>';
+ var button_new_tab = '<a id="open-in-tab" class="button white" href="#">Open this report in a new tab</a>';
var to_clr = document.getElementsByClassName("blocked-js");
@@ -141,6 +154,21 @@ function generate_HTML(blocked_data){
write_elements(blocked_data,"whitelisted","green");
write_elements(blocked_data,"blocked","red");
write_elements(blocked_data,"blacklisted","red");
+
+ if( blocked_data["blacklisted"].length != 0 || blocked_data["blocked"].length != 0 ||
+ blocked_data["whitelisted"].length != 0 || blocked_data["accepted"].length != 0){
+ write_button(button_allow_all,"l",function(){console.log("button_allow_all");});
+ write_button(button_block_nonfree,"r",function(){console.log("button_block_nonfree");});
+ write_button(button_complain,"l",function(){console.log("button_complain");});
+ write_button(button_new_tab,"r",function(){
+ myPort.postMessage({"open_popup_tab": blocked_data});
+ });
+ } else{
+ write_button(button_new_tab,"l",function(){
+ // NOTE: does not
+ myPort.postMessage({"open_popup_tab": blocked_data});
+ });
+ }
}
myPort.onMessage.addListener(function(m) {
diff --git a/html/display_panel/content/panel-styles.css b/html/display_panel/content/panel-styles.css
index 075c0d2..802c7f9 100644
--- a/html/display_panel/content/panel-styles.css
+++ b/html/display_panel/content/panel-styles.css
@@ -93,7 +93,6 @@ ul.blocked-js ul li, ul.accepted-js ul li, ul.dryrun-js ul li {
float:right;
padding:10px;
display:none;
- clear:both;
margin:10px;
}
@@ -109,13 +108,7 @@ ul.blocked-js ul li, ul.accepted-js ul li, ul.dryrun-js ul li {
text-decoration: none;
font: 14px/100% Arial, Helvetica, sans-serif;
padding: .5em 2em .55em;
- text-shadow: 0 1px 1px rgba(0,0,0,.3);
- -webkit-border-radius: .5em;
- -moz-border-radius: .5em;
border-radius: .5em;
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
- box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.small.button {
font-size:11px;
diff --git a/main_background.js b/main_background.js
index 75a5917..0d8fb13 100644
--- a/main_background.js
+++ b/main_background.js
@@ -48,9 +48,15 @@ function options_listener(changes, area){
* by opening a new tab with whatever HTML is in the popup
* at the moment.
*/
-function open_popup_tab(){
+var active_connections = {};
+var unused_data = {};
+function open_popup_tab(data){
+ console.log(data);
function gotPopup(popupURL){
- var creating = webex.tabs.create({"url":popupURL});
+ var creating = webex.tabs.create({"url":popupURL},function(a){
+ console.log("[TABID:"+a["id"]+"] creating unused data entry from parent window's content");
+ unused_data[a["id"]] = data;
+ });
}
var gettingPopup = webex.browserAction.getPopup({},gotPopup);
@@ -95,8 +101,6 @@ function debug_print_local(){
* }
*
*/
-var active_connections = {};
-var unused_data = {};
function update_popup(tab_id,blocked_info_arg,update=false){
var new_blocked_data;
@@ -238,6 +242,10 @@ function connected(p) {
set_script(m["forget"][0],"forget");
update = true;
}
+ //
+ if(m["open_popup_tab"] !== undefined){
+ open_popup_tab(m["open_popup_tab"]);
+ }
// a debug feature
if(m["printlocalstorage"] !== undefined){
debug_print_local();
@@ -249,10 +257,16 @@ function connected(p) {
function logTabs(tabs) {
if(update){
- console.log("%c updating tab "+tabs[0]["id"],"color: red;");
- update_popup(tabs[0]["id"],unused_data[tabs[0]["id"]],true);
- active_connections[tabs[0]["id"]] = p;
- return;
+
+ // TODO: check the Firefox equivalent reserved URL pattern
+ if(typeof(tabs[0]["url"].match(/chrome\-extension:\/\/.*display-panel\.html/g)) == "object"){
+ console.log("%c Not updating popup because this is a reserved page","color: red;");
+ return;
+ } else{
+ console.log("%c updating tab "+tabs[0]["id"],"color: red;");
+ update_popup(tabs[0]["id"],unused_data[tabs[0]["id"]],true);
+ active_connections[tabs[0]["id"]] = p;
+ }
}
for(var i = 0; i < tabs.length; i++) {
var tab = tabs[i];