Skip to content
This repository was archived by the owner on Nov 6, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions chromium/background-scripts/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,16 @@ chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){
sendResponse(true);
});
return true;
} else if (message.type == "reset_to_defaults") {
// restore the 'default states' of the rulesets
store.set_promise('ruleActiveStates', {}).then(() => {
// clear the caches such that it becomes stateless
destroy_caches();
// re-activate all rules according to the new states
initializeAllRules();
// reload tabs when operations completed
chrome.tabs.reload();
});
} else if (message.type == "add_new_rule") {
all_rules.addNewRuleAndStore(message.object).then(() => {
sendResponse(true);
Expand Down
4 changes: 4 additions & 0 deletions chromium/pages/popup/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ <h3 data-i18n="chrome_stable_rules"></h3>
<h3 data-i18n="chrome_experimental_rules"></h3>
<p class="description" data-i18n="chrome_experimental_rules_description"></p>
</section>

<section id="resetButton" class="options">
<a href="javascript:void 0" id="reset-to-defaults" data-i18n="prefs_reset_defaults"></a>
</section>
</div>

<footer>
Expand Down
21 changes: 14 additions & 7 deletions chromium/pages/popup/ux.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ function showHttpNowhereUI() {
// Change the UI to reflect extension enabled/disabled
function updateEnabledDisabledUI() {
getOption_('globalEnabled', true, function(item) {
document.getElementById('onoffswitch').checked = item.globalEnabled;
e('onoffswitch').checked = item.globalEnabled;
e('disableButton').style.visibility = "visible";
// Hide or show the rules sections
if (item.globalEnabled) {
Expand All @@ -110,7 +110,7 @@ function updateEnabledDisabledUI() {

// Toggle extension enabled/disabled status
function toggleEnabledDisabled() {
var extension_toggle_effect = function(){
var extension_toggle_effect = function() {
updateEnabledDisabledUI();
// The extension state changed, so reload this tab.
chrome.tabs.reload();
Expand Down Expand Up @@ -152,21 +152,28 @@ function gotTab(activeTab) {
* Fill in content into the popup on load
*/
document.addEventListener("DOMContentLoaded", function () {
stableRules = document.getElementById("StableRules");
unstableRules = document.getElementById("UnstableRules");
stableRules = e("StableRules");
unstableRules = e("UnstableRules");
getTab(gotTab);

// Set up the enabled/disabled switch & hide/show rules
updateEnabledDisabledUI();
document.getElementById('onoffswitch').addEventListener('click', toggleEnabledDisabled);
e('onoffswitch').addEventListener('click', toggleEnabledDisabled);
e('http-nowhere-checkbox').addEventListener('click', toggleHttpNowhere, false);
e('reset-to-defaults').addEventListener('click', () => {
if (confirm(chrome.i18n.getMessage("prefs_reset_defaults_message"))) {
sendMessage("reset_to_defaults", null, () => {
window.close();
});
}
});

// Print the extension's current version.
var the_manifest = chrome.runtime.getManifest();
var version_info = document.getElementById('current-version');
var version_info = e('current-version');
version_info.innerText = the_manifest.version;

let rulesets_versions = document.getElementById('rulesets-versions');
let rulesets_versions = e('rulesets-versions');
sendMessage("get_ruleset_timestamps", null, timestamps => {
for(let [update_channel, timestamp] of timestamps){
if(timestamp > 0){
Expand Down
1 change: 1 addition & 0 deletions src/chrome/locale/en/https-everywhere.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

<!ENTITY https-everywhere.prefs.export_settings "Export Settings">
<!ENTITY https-everywhere.prefs.reset_defaults "Reset to Defaults">
<!ENTITY https-everywhere.prefs.reset_defaults_message "This will reset each ruleset to its default state. Continue?">

<!ENTITY https-everywhere.chrome.stable_rules "Stable rules">
<!ENTITY https-everywhere.chrome.stable_rules_description "Force encrypted connections to these websites:">
Expand Down