Theseus: remove the non-functional "Add this site's search" (+) entry

Dropped the OpenSearch "+" item from the engine dropdown and the per-page
OpenSearch scan that fed it (it ran a fetch on every page load). Users add
engines via Settings instead.
This commit is contained in:
Local Dev 2026-08-01 01:37:18 +02:00
parent 48aa007591
commit 73f3781825
2 changed files with 1 additions and 19 deletions

View file

@ -25,7 +25,6 @@
<div id="list"></div> <div id="list"></div>
<div class="sep"></div> <div class="sep"></div>
<div class="foot"> <div class="foot">
<div class="item" id="detected" hidden><span class="ic"><span class="em">➕</span></span><span class="nm" id="detName"></span></div>
<div class="item" id="settings"><span class="ic"><span class="em">⚙️</span></span><span class="nm">Search settings…</span></div> <div class="item" id="settings"><span class="ic"><span class="em">⚙️</span></span><span class="nm">Search settings…</span></div>
</div> </div>
</div> </div>
@ -43,13 +42,8 @@
return `<div class="item" data-id="${esc(e.id)}"><span class="ic">${ic}</span><span class="nm">${esc(e.name)}</span>${e.id === d.current ? '<span class="chk">✓</span>' : ""}</div>`; return `<div class="item" data-id="${esc(e.id)}"><span class="ic">${ic}</span><span class="nm">${esc(e.name)}</span>${e.id === d.current ? '<span class="chk">✓</span>' : ""}</div>`;
}).join(""); }).join("");
list.querySelectorAll(".item").forEach((el) => el.onclick = () => window.picker.pick(el.dataset.id)); list.querySelectorAll(".item").forEach((el) => el.onclick = () => window.picker.pick(el.dataset.id));
// "Add this site's search" (OpenSearch scan)
const det = $("detected");
if (d.detected && d.detected.name) { det.hidden = false; $("detName").textContent = "Add " + d.detected.name; }
else det.hidden = true;
report(); report();
}); });
$("detected").onclick = () => window.picker.addDetected();
$("settings").onclick = () => window.picker.openSettings(); $("settings").onclick = () => window.picker.openSettings();
</script> </script>
</body></html> </body></html>

14
main.js
View file

@ -680,20 +680,8 @@ function createTab(initial, opts = {}) {
wc.on("page-title-updated", (_e, title) => { tab.title = title; emitTabs(); }); wc.on("page-title-updated", (_e, title) => { tab.title = title; emitTabs(); });
wc.on("did-navigate", () => emitTabs()); wc.on("did-navigate", () => emitTabs());
wc.on("did-navigate-in-page", () => emitTabs()); wc.on("did-navigate-in-page", () => emitTabs());
wc.on("did-start-loading", () => { tab.detected = null; setLoading(tab, true); }); wc.on("did-start-loading", () => setLoading(tab, true));
wc.on("did-stop-loading", () => setLoading(tab, false)); wc.on("did-stop-loading", () => setLoading(tab, false));
// OpenSearch scan: note any search engine the page advertises, so the picker
// can offer to add it ("Add <site>'s search").
wc.on("did-finish-load", async () => {
if (tab.settings) return;
try {
const href = await wc.executeJavaScript(
`(()=>{const l=document.querySelector('link[rel="search"][type="application/opensearchdescription+xml"]');return l?new URL(l.getAttribute('href'),location.href).href:null})()`, true);
if (!href) return;
const osd = await fetchOpenSearch(href);
if (osd) { tab.detected = osd; if (tab.id === activeId && epVisible) emitEngines(); }
} catch {}
});
wc.on("will-navigate", (e, u) => { wc.on("will-navigate", (e, u) => {
try { try {
const parsed = new URL(u); const parsed = new URL(u);