Files
Hellion-NewTab/src/js/opera/README.md
T
JonKazama-Hellion 677344f24d docs(release): Dokumentation ins Englische übersetzen und v1.11.1 Docs
- README, CHANGELOG, DISCLAIMER, SECURITY auf Englisch übersetzen
- Projekt-Docs (architecture, patterns, widget-schema, style-guide) übersetzen
- CODEOWNERS für Master-Branch-Schutz hinzufügen
- release.yml auf Englisch übersetzen
- STYLE_GUIDE von src/css/ nach docs/ verschieben
2026-03-22 13:12:24 +01:00

63 lines
2.3 KiB
Markdown

# ⬡ Opera GX — New-Tab Workaround
Opera GX ist der einzige Browser in diesem Projekt der sich aktiv dagegen wehrt,
eine eigene New-Tab-Seite zu nutzen. Während Chrome, Edge, Firefox und selbst Vivaldi
einfach `chrome_url_overrides` respektieren, priorisiert Opera GX seine eigene
Speed Dial Seite und ignoriert den Standard-Override für entpackte Erweiterungen.
Das Ergebnis: vier Stunden Debugging, zwei Workaround-Skripte und ein Reddit-Thread
der tatsächlich geholfen hat. Hier ist was dabei rausgekommen ist.
---
## Warum zwei extra Skripte?
| Browser | New-Tab Override | Zusatzaufwand |
|---|---|---|
| Chrome / Edge / Brave / Vivaldi | `chrome_url_overrides` | Keiner |
| Firefox | `chrome_url_overrides` (MV3) | Eigenes Manifest |
| Opera / Opera GX | Blockiert durch Speed Dial | Dieser Ordner hier |
---
## Was passiert hier?
### `background.js` — Tab-Management
Überwacht Tab-Aktivitäten im Hintergrund und greift ein bevor Opera seine Startseite laden kann.
- Erkennt `opera://startpage/` und `chrome://startpage/`
- Leitet per `chrome.tabs.update` auf `newtab.html` um
- Prüft zusätzlich bei `onActivated`, weil Opera manche Tabs im Hintergrund lädt
und der erste Redirect dann nicht greift
### `redirect.js` — In-Page Redirect
Manche Opera-Systemprozesse sind so weit isoliert dass ein externer Eingriff
nicht zuverlässig ankommt. Also nochmal von innen.
- Wird als Content Script direkt in Opera-Startseiten-Bereiche injiziert
- Löst den Redirect bei `document_start` aus, bevor die Speed Dial Seite
überhaupt anfangen kann sich aufzubauen
Ja, es braucht wirklich beide Skripte. Opera GX hat das so entschieden.
Das Gute daran: die GitHub Actions kümmern sich darum dass jeder Browser nur bekommt
was er braucht. Das Opera-ZIP enthält die Workaround-Skripte, das Chrome-ZIP nicht.
Wer sich das manuell zusammensuchen müsste wäre vermutlich genauso genervt wie ich
beim Debuggen war.
---
## Datenschutz
Kein Tracking, keine Speicherung, keine externen Requests.
Nur Standard-Browser-APIs, `chrome.tabs`, um zurückzubekommen was eigentlich
standardmäßig funktionieren sollte.
**100% lokal. 0% Analytics. Wie im gesamten Hellion NewTab Projekt.**
---
Entwickelt von **[Hellion Online Media — Florian Wathling](https://hellion-media.de)** — JonKazama-Hellion