From 6063d4f0adb4c0bcf06fcc03e4e06c536fbdf1af Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 25 Dec 2025 16:32:38 -0500 Subject: [PATCH] [mv3] Add ability to reset to default settings --- platform/mv3/extension/_locales/en/messages.json | 8 ++++++++ platform/mv3/extension/dashboard.html | 1 + platform/mv3/extension/js/settings.js | 13 ++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/platform/mv3/extension/_locales/en/messages.json b/platform/mv3/extension/_locales/en/messages.json index f460e21cf..c0aaafd8e 100644 --- a/platform/mv3/extension/_locales/en/messages.json +++ b/platform/mv3/extension/_locales/en/messages.json @@ -383,6 +383,14 @@ "message": "Restore…", "description": "Text for buttons used to restore content" }, + "resetToDefaultButton": { + "message": "Reset to default settings…", + "description": "Text for buttons used to reset configurations to default" + }, + "resetToDefaultConfirm": { + "message": "All your custom settings will be removed. Do you really want to reset to default settings?", + "description": "Message asking user to confirm reset to default settings" + }, "dnrRulesWarning": { "message": "Do not add content from untrusted sources", "description": "Short description of the DNR rules editor pane" diff --git a/platform/mv3/extension/dashboard.html b/platform/mv3/extension/dashboard.html index fba5fbe63..7bbcec103 100644 --- a/platform/mv3/extension/dashboard.html +++ b/platform/mv3/extension/dashboard.html @@ -103,6 +103,7 @@

+

diff --git a/platform/mv3/extension/js/settings.js b/platform/mv3/extension/js/settings.js index 30d311047..18dcc9ca4 100644 --- a/platform/mv3/extension/js/settings.js +++ b/platform/mv3/extension/js/settings.js @@ -19,7 +19,7 @@ Home: https://github.com/gorhill/uBlock */ -import { browser, sendMessage } from './ext.js'; +import { browser, i18n, sendMessage } from './ext.js'; import { dom, qs$ } from './dom.js'; import { hashFromIterable } from './dashboard.js'; import { renderFilterLists } from './filter-lists.js'; @@ -173,6 +173,13 @@ async function restoreSettings() { input.click(); } +async function resetSettings() { + const response = self.confirm(i18n.getMessage('resetToDefaultConfirm')); + if ( response !== true ) { return; } + const api = await import('./backup-restore.js'); + await api.restoreFromObject({}); +} + /******************************************************************************/ dom.on('#autoReload input[type="checkbox"]', 'change', ev => { @@ -210,6 +217,10 @@ dom.on('section[data-pane="settings"] [data-i18n="restoreButton"]', 'click', ( ) restoreSettings(); }); +dom.on('section[data-pane="settings"] [data-i18n="resetToDefaultButton"]', 'click', ( ) => { + resetSettings(); +}); + /******************************************************************************/ function listen() {