diff --git a/css/popup.css b/css/popup.css index 14ded7b..c69f87b 100644 --- a/css/popup.css +++ b/css/popup.css @@ -27,6 +27,7 @@ th { padding-bottom: 5px; } .wot { float: left; } .wot a { color: #fff; } .choices { float: right; } +hr { border: 0; border-top: 1px solid #eeeeee; } .box:hover { cursor: hand; cursor: pointer; @@ -281,8 +282,8 @@ span.box { -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.1); box-shadow: 0 1px 1px rgba(0,0,0,0.1); } -.allowsession, .prevoke { margin-left: 0px; margin-right: 0px; } -.prevoke { - clear: both; +.allowsession, .prevoke, .clearglobaltemp { + margin-left: 0px; + margin-right: 0px; margin-bottom: 0px; } \ No newline at end of file diff --git a/js/popup.js b/js/popup.js index 51aa084..3e73fa1 100644 --- a/js/popup.js +++ b/js/popup.js @@ -8,6 +8,7 @@ var port = chrome.extension.connect({name: "popuplifeline"}); var bkg = chrome.extension.getBackgroundPage(); var closepage, mode, taburl, tabid, tabdomain; var selected = false; +var intemp = false; var undesirablecount = 0; var blocked = []; var allowed = []; @@ -118,12 +119,12 @@ function init() { trustval1 = ' selected'; allowedtype = 4; } else allowedtype = 1; - $("#blocked").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomainanchor+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); + $("#blocked").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomainanchor+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); } else { if (response.blockeditems[i][1] == 'NOSCRIPT' || response.blockeditems[i][1] == 'WEBBUG') { $("#blocked").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomainanchor+'"><'+response.blockeditems[i][1]+'> (1)
'); } else { - $("#blocked").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomainanchor+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); + $("#blocked").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomainanchor+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); $("[rel='x_"+itemdomainanchor+"'] [rel='"+itemdomain+"'] .x_"+itemdomainfriendly).hide(); } } @@ -151,6 +152,7 @@ function init() { } if (mode == 'allow') { if (bkg.in_array(itemdomain, response.temp)) { + if (!intemp) intemp = true; $("[rel='x_"+itemdomainanchor+"'] [rel='"+itemdomain+"'] .x_blacklist").removeClass("selected"); $("[rel='x_"+itemdomainanchor+"'] [rel='"+itemdomain+"'] .x_bypass").addClass("selected"); $("[rel='x_"+itemdomainanchor+"'] [rel='"+itemdomain+"'] .x_"+itemdomainfriendly).hide(); @@ -193,10 +195,10 @@ function init() { trustval1 = ' selected'; allowedtype = 4; } else allowedtype = 0; - $("#allowed").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomain+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); + $("#allowed").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomain+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); $("#allowed .x_"+itemdomainfriendly).bind("click", x_removehandle); } else { - $("#allowed").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomain+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); + $("#allowed").append('
").replace(/\&/g, "&"))+'" rel="x_'+itemdomain+'">'+itemdomain+' (1)
ClearAllowTrustDenyDistrustTemp.
'); $("#allowed [rel='"+itemdomain+"'] .x_"+itemdomainfriendly).hide(); } } else { @@ -206,6 +208,7 @@ function init() { if (response.rating == 'true') $("[rel='r_"+itemdomain+"']").html('Rating'); if (mode == 'block') { if (bkg.in_array(itemdomain, response.temp)) { + if (!intemp) intemp = true; $("#allowed [rel='"+itemdomain+"'] .x_whitelist").removeClass("selected"); $("#allowed [rel='"+itemdomain+"'] .x_bypass").addClass("selected"); $("#allowed [rel='"+itemdomain+"'] .x_"+itemdomainfriendly).hide(); @@ -223,35 +226,38 @@ function init() { if (responseBlockedCount != 0 && blockedCount == 0) $(".thirds:first").html('None'); if (responseAllowedCount != 0 && allowedCount == 0) $(".allowed").parent().hide(); $(".x_whitelist,.x_blacklist,.x_trust,.x_bypass").bind("click", x_savehandle); + var tempSel; + if (responseAllowedCount == 0) tempSel = '.thirds'; + else tempSel = '#allowed'; if (mode == 'block') { if (($('#blocked .thirditem').length == 1 && $('#blocked .thirditem[rel="x_no.script"]').length == 1) || ($('#blocked .thirditem').length == 1 && $('#blocked .thirditem[rel="x_web.bug"]').length == 1)) { // empty space } else { if (blockedCount != 0 && undesirablecount != blockedCount) { - if (responseAllowedCount == 0) $(".thirds").append('
Allow All Blocked For Session
'); - else if (responseAllowedCount != 0) $("#allowed").append('
Allow All Blocked For Session
'); + $(tempSel).append('
Allow All Blocked For Session
'); } else { - if (responseAllowedCount == 0) $(".thirds").append('
'); - else if (responseAllowedCount != 0) $("#allowed").append('
'); + $(tempSel).append('
'); } } } else { - if (allowedCount != 0 && responseAllowedCount == 0) $(".thirds").append('
Block All Allowed For Session
'); - else if (allowedCount != 0 && responseAllowedCount != 0) $("#allowed").append('
Block All Allowed For Session
'); + $(tempSel).append('
Block All Allowed For Session
'); } $(".allowsession").bind("click", bulkhandle); + if (intemp) { + $(tempSel).append('
Revoke Page Temp. Permissions
'); + $(".prevoke").bind("click", bulkhandle); + } if (response.temp) { - if (blockedCount != 0 && responseAllowedCount == 0) $(".thirds").append('
Revoke All Temporary Permissions
'); - else if (blockedCount != 0 && responseAllowedCount != 0) $("#allowed").append('
Revoke All Temporary Permissions
'); - $(".prevoke").bind("click", revokealltemp); + $("#parent").append('
Revoke All Temp.
'); + $(".clearglobaltemp").bind("click", revokealltemp); } } - $("#parent").prepend('
Allow
Trust
Deny
Distrust
Temp.
Clear
').attr("sn_list",response.enable); + $("#parent").prepend('
Allow
Trust
Deny
Distrust
Temp.
Clear
').attr("sn_list",response.enable); $(".pallow,.pdeny,.pbypass,.ptrust").bind("click", savehandle); - var inTemp = bkg.in_array(tabdomain, response.temp); $(".pclear").bind("click", removehandle).hide(); + var tabInTemp = bkg.in_array(tabdomain, response.temp); if (response.enable == '1' || response.enable == '4') { - if (inTemp) { + if (tabInTemp) { $(".pbypass, #blocked [rel='"+tabdomain+"'] .x_bypass").addClass('selected'); $("#blocked [rel='"+tabdomain+"'] .x_blacklist").removeClass('selected').bind("click", x_savehandle); $("#blocked .x_"+tabdomain.replace(/\./g,"_")).hide(); @@ -274,7 +280,7 @@ function init() { $(".pdeny").addClass("selected").attr("title","Blocked (provider of unwanted content)").text("Blocked"); } } else if (response.enable == '0' || response.enable == '3') { - if (inTemp) { + if (tabInTemp) { $(".pbypass, #allowed [rel='"+tabdomain+"'] .x_bypass").addClass('selected'); $("#allowed [rel='"+tabdomain+"'] .x_whitelist").removeClass('selected').bind("click", x_savehandle); $("#allowed .x_"+tabdomain.replace(/\./g,"_")).hide(); @@ -294,22 +300,17 @@ function init() { }); } function bulk(el) { - var urlarray, message; - if (mode == 'block') { - urlarray = blocked; - message = 'allow all blocked'; - } else { - urlarray = allowed; - message = 'block all allowed'; - } - if (el.hasClass("selected")) { - chrome.extension.sendRequest({reqtype: "remove-temp", url: urlarray, mode: mode, oldlist: el.parent().attr("sn_list")}); - el.removeClass('selected'); + var urlarray; + if (el.hasClass("prevoke")) { + if (mode == 'block') urlarray = allowed; + else urlarray = blocked; + chrome.extension.sendRequest({reqtype: "remove-temp", url: urlarray}); } else { - chrome.extension.sendRequest({reqtype: "temp", url: urlarray, mode: mode, oldlist: el.parent().attr("sn_list")}); - el.addClass('selected'); - window.close(); + if (mode == 'block') urlarray = blocked; + else urlarray = allowed; + chrome.extension.sendRequest({reqtype: "temp", url: urlarray, mode: mode}); } + window.close(); } function remove(url, el, type) { var val = el.attr("rel"); @@ -355,14 +356,12 @@ function save(url, el, type) { var val = el.attr("rel"); var selected = el.hasClass("selected"); if (val != 2 && selected) return; - var trustType = bkg.trustCheck(url); if (val < 2) { bkg.domainHandler(url, '2', '1'); chrome.extension.sendRequest({reqtype: "save", url: url, list: val}); } else if (val == 2) { - if (trustType) url = '**.'+bkg.getDomain(url); - if (selected) chrome.extension.sendRequest({reqtype: "remove-temp", url: url, mode: mode, oldlist: el.parent().attr("sn_list")}); - else chrome.extension.sendRequest({reqtype: "temp", url: url, mode: mode, oldlist: el.parent().attr("sn_list")}); + if (selected) chrome.extension.sendRequest({reqtype: "remove-temp", url: url}); + else chrome.extension.sendRequest({reqtype: "temp", url: url, mode: mode}); } else if (val == 3) { bkg.topHandler(url, 0); val = 0; diff --git a/js/scriptsafe.js b/js/scriptsafe.js index 95b43cc..231bee0 100644 --- a/js/scriptsafe.js +++ b/js/scriptsafe.js @@ -468,6 +468,44 @@ function statuschanger() { chrome.browserAction.setIcon({path: "../img/Forbidden.png"}); } } +function tempHandler(request) { + if (typeof request.url == 'object') { + for (var i=0;i