diff --git a/main.js b/main.js
index c643493b..369cbac1 100644
--- a/main.js
+++ b/main.js
@@ -1042,7 +1042,12 @@ const DEFAULT_EXTRA_RESOLVERS = {
unstoppable: { enabled: false, endpoint: "https://resolve.unstoppabledomains.com", gateway: "https://ipfs.io" },
},
ca_bundles: {
- ru_national: { enabled: false, scope_tlds: ["ru", "рф", "gov.ru", "online.ru"] },
+ // Mozilla bundle is always on (Chromium's own trust store); kept here
+ // for completeness. Russian national CA defaults on too — scoped to
+ // its own TLD set so no sites outside that scope ever see it, and the
+ // UI toggle was dropped in 0.3.127 since the scope makes the on/off
+ // moot. Advanced users still edit extra-resolvers.json by hand.
+ ru_national: { enabled: true, scope_tlds: ["ru", "рф", "gov.ru", "online.ru"] },
},
};
function cloneExtraResolvers() { return JSON.parse(JSON.stringify(DEFAULT_EXTRA_RESOLVERS)); }
diff --git a/package.json b/package.json
index 5e8a3e08..eb2ec4b4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "theseus-navigator",
- "version": "0.3.126",
+ "version": "0.3.127",
"license": "MPL-2.0",
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
"author": "Silent Mode",
diff --git a/settings.html b/settings.html
index 34c32d89..35a7de22 100644
--- a/settings.html
+++ b/settings.html
@@ -547,29 +547,14 @@
-
Certificate trust (TLS)
-
-
-
-
Built-in Mozilla CA bundle
-
The standard trust anchors that ship with Theseus.
-
-
-
-
-
-
-
Russian National CA
-
- Lets Theseus open Russian government sites (gosuslugi.ru, nalog.gov.ru, …) that use the Russian national cert chain. Does not bypass network-level blocks — use Tor for that.
- ⚠ Trust is scoped to the TLDs below only. The CA cannot sign for other sites while this scope is in place. Mozilla and Chrome do not trust this CA by default. Not wired yet — coming in 0.3.99.
-
-
Advanced
-
-
-
-
-
+
+
+
+
Preferences file
@@ -591,32 +576,36 @@
nav just reads System in the sidebar now). -->
System
-
The Silent Mode components that live alongside Theseus and the name systems the browser can resolve.
A local daemon that resolves BCDN names for every browser on this machine (Chrome, Edge, Firefox, etc.), not just Theseus. Turning it off means non-Theseus browsers stop resolving .bch / .x / other BCNR TLDs; Theseus keeps working either way, since it has its own built-in resolver.
Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) that ships in the box. Bundled with Theseus, but updates are delivered over-the-air: new signed versions land without a Theseus release. Runs entirely inside this browser — never system-wide.
Status
@@ -3657,6 +3647,35 @@
// during showSection() before this IIFE registered the listener, so we
// kick wiring manually when the page is already visible.
try { if (!document.getElementById("names").hidden) ensureWired(); } catch {}
+
+ // System › Names & Certificates master toggle. Reflects "any optional
+ // resolver on"; toggling flips every resolver together. Non-destructive:
+ // the per-resolver advanced fields (RPC URLs, gateways) are left alone,
+ // so a later ON restores the same wiring.
+ const RESOLVER_KEYS = ["ens", "namecoin", "handshake", "sns", "unstoppable"];
+ const sysAll = el("systemNamesAll");
+ async function refreshSystemNamesAll() {
+ if (!sysAll) return;
+ try {
+ const s = await C.resolversGet();
+ sysAll.checked = RESOLVER_KEYS.some((k) => !!(s?.resolvers?.[k]?.enabled));
+ } catch {}
+ }
+ if (sysAll) {
+ sysAll.addEventListener("change", async () => {
+ const on = sysAll.checked;
+ try {
+ for (const k of RESOLVER_KEYS) await C.resolversSet(`resolvers.${k}.enabled`, on);
+ // Also refresh the N&C page if the user navigates to it after.
+ if (wired) {
+ const state = await C.resolversGet();
+ hydrate(state || {});
+ }
+ } catch (e) { console.warn("master names toggle failed", e); }
+ });
+ refreshSystemNamesAll();
+ document.addEventListener("section", (e) => { if (e.detail === "plugins") refreshSystemNamesAll(); });
+ }
})();