summaryrefslogtreecommitdiff
path: root/data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2016-11-21 14:41:08 -0500
committerRuben Rodriguez <ruben@gnu.org>2016-11-21 14:41:08 -0500
commit1aecd18e5cc9d8b9dfd4063e749ce61eb0077e2a (patch)
tree67c72d47420617f9420c36eedd3489803dae35bc /data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js
parentd05c3f23b8e31db1d3f112557bd4f66f364d32b9 (diff)
https-everywhere updated to 5.2.7
Diffstat (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js')
-rw-r--r--data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js64
1 files changed, 32 insertions, 32 deletions
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js
index 0fdc765..773b6ee 100644
--- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js
+++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/toolbar_button.js
@@ -81,11 +81,8 @@ httpsEverywhere.toolbarButton = {
showHttpNowhere ? 'true' : 'false');
}
- // make sure UI is set depending on whether HTTPS-E is enabled
- toggleEnabledUI();
-
- // show ruleset counter when a tab is changed
- tb.updateRulesetsApplied();
+ // Make icon state match current status and tab.
+ tb.updateIconState();
// There is no gBrowser object on Android. Instead Android uses the
// window.BrowserApp object:
@@ -93,7 +90,7 @@ httpsEverywhere.toolbarButton = {
if (gBrowser) {
gBrowser.tabContainer.addEventListener(
'TabSelect',
- tb.updateRulesetsApplied,
+ tb.updateIconState,
false
);
@@ -108,7 +105,7 @@ httpsEverywhere.toolbarButton = {
(aFlags & CI.nsIWebProgressListener.STATE_STOP) &&
aWebProgress.isTopLevel) {
HTTPSEverywhere.log(DBUG, "Got on state change");
- tb.updateRulesetsApplied();
+ tb.updateIconState();
}
}
};
@@ -144,7 +141,7 @@ httpsEverywhere.toolbarButton = {
var hint = nBox.appendNotification(
msg,
'https-everywhere',
- 'chrome://https-everywhere/skin/https-everywhere-24.png',
+ 'chrome://https-everywhere/skin/icon-active-24.png',
nBox.PRIORITY_WARNING_MEDIUM,
[
{ accessKey: 'F',
@@ -171,18 +168,15 @@ httpsEverywhere.toolbarButton = {
/**
* Update the rulesets applied counter for the current tab.
*/
- updateRulesetsApplied: function() {
+ updateIconState: function() {
var toolbarbutton = document.getElementById('https-everywhere-button');
if (!toolbarbutton) {
return;
}
var enabled = HTTPSEverywhere.prefs.getBoolPref("globalEnabled");
+ var blocking = httpsEverywhere.toolbarButton.shouldShowHttpNowhere();
var showCounter = httpsEverywhere.toolbarButton.shouldShowCounter();
- if (!enabled || !showCounter) {
- toolbarbutton.setAttribute('rulesetsApplied', 0);
- return;
- }
var browser = httpsEverywhere.toolbarButton.selectedBrowser();
if (!browser) {
@@ -208,8 +202,26 @@ httpsEverywhere.toolbarButton = {
}
}
- toolbarbutton.setAttribute('rulesetsApplied', counter);
- HTTPSEverywhere.log(INFO, 'Setting icon counter to: ' + counter);
+ // inactive: extension is enabled, but no rules were triggered on this page.
+ // active: extension is enabled and rewrote URLs on this page.
+ // blocking: extension is in "block all HTTP requests" mode.
+ // disabled: extension is disabled.
+ var iconState = 'inactive';
+ if (!enabled) {
+ iconState = 'disabled';
+ } else if (blocking) {
+ iconState = 'blocking';
+ } else if (counter) {
+ iconState = 'active';
+ }
+ toolbarbutton.setAttribute('state', iconState);
+ if (!showCounter) {
+ toolbarbutton.setAttribute('rulesetsApplied', 0);
+ } else {
+ toolbarbutton.setAttribute('rulesetsApplied', counter);
+ }
+
+ HTTPSEverywhere.log(INFO, 'Setting icon state to: ' + iconState + '[' + counter + ']');
},
/**
@@ -223,9 +235,8 @@ httpsEverywhere.toolbarButton = {
var prefExists = sp.getPrefType(tb.COUNTER_PREF);
- // the default behavior is to show the rulesets applied counter.
- // if no preference exists (default) or its enabled, show the counter
- return !prefExists || sp.getBoolPref(tb.COUNTER_PREF);
+ // the default behavior is to hide the rulesets applied counter.
+ return prefExists && sp.getBoolPref(tb.COUNTER_PREF);
},
/**
@@ -250,7 +261,7 @@ httpsEverywhere.toolbarButton = {
var showCounter = tb.shouldShowCounter();
sp.setBoolPref(tb.COUNTER_PREF, !showCounter);
- tb.updateRulesetsApplied();
+ tb.updateIconState();
},
/**
@@ -258,13 +269,6 @@ httpsEverywhere.toolbarButton = {
*/
toggleHttpNowhere: function() {
HTTPSEverywhere.toggleHttpNowhere();
- var tb = httpsEverywhere.toolbarButton;
- var showHttpNowhere = tb.shouldShowHttpNowhere();
-
- // Change icon color to red if HTTP nowhere is enabled
- var toolbarbutton = document.getElementById('https-everywhere-button');
- toolbarbutton.setAttribute('http_nowhere',
- showHttpNowhere ? 'true' : 'false');
reload_window();
},
@@ -382,11 +386,7 @@ function toggleEnabledUI() {
items[i].hidden = !enabled;
}
- // Change icon depending on enabled state
- var toolbarbutton = document.getElementById('https-everywhere-button');
- if (toolbarbutton) {
- toolbarbutton.setAttribute('status', enabled ? 'enabled' : 'disabled');
- }
+ httpsEverywhere.toolbarButton.updateIconState();
}
function open_in_tab(url) {
@@ -428,7 +428,7 @@ function migratePreferences(gBrowser) {
nBox.appendNotification(
msg,
'https-everywhere-migration0',
- 'chrome://https-everywhere/skin/https-everywhere-24.png',
+ 'chrome://https-everywhere/skin/icon-active-24.png',
nBox.PRIORITY_WARNING_MEDIUM
);
}