diff --git a/DISCLAIMER.md b/DISCLAIMER.md new file mode 100644 index 0000000..ca11a25 --- /dev/null +++ b/DISCLAIMER.md @@ -0,0 +1,47 @@ +# Haftungsausschluss — Hellion NewTab + +## Nutzung auf eigenes Risiko + +Diese Browser-Extension wird "wie besehen" (as-is) zur Verfügung gestellt, ohne jegliche ausdrückliche oder stillschweigende Gewährleistung, einschließlich, aber nicht beschränkt auf die Gewährleistung der Marktgängigkeit, der Eignung für einen bestimmten Zweck und der Nichtverletzung von Rechten Dritter. + +## Keine Garantie + +Der Entwickler übernimmt keine Haftung für: + +- Datenverlust durch fehlerhafte Speicherung, Browser-Updates oder Extension-Deinstallation +- Inkompatibilitäten mit bestimmten Browser-Versionen oder Betriebssystemen +- Schäden, die durch die Nutzung oder Nichtnutzung dieser Extension entstehen +- Verfügbarkeit oder Korrektheit von Drittanbieter-Diensten (Google Favicons API) + +## Datenspeicherung + +Alle Daten werden ausschließlich lokal im Browser gespeichert (`chrome.storage.local`). Es erfolgt keine Übertragung an externe Server. Der Entwickler hat keinen Zugriff auf gespeicherte Bookmarks, Einstellungen oder Notizen. + +**Empfehlung:** Regelmäßig JSON-Backups über die Export-Funktion erstellen. + +## Drittanbieter-Dienste + +Diese Extension nutzt folgende externe Dienste: + +| Dienst | Zweck | Datenschutz | +| --- | --- | --- | +| Google Favicons API | Bookmark-Icons laden | Es wird nur die Domain übermittelt, keine vollständige URL | +| Google Fonts | Schriftarten (Rajdhani, Inter, Cinzel) | Standardmäßige Google-Fonts-Nutzungsbedingungen | + +## Änderungen + +Der Entwickler behält sich das Recht vor, diese Extension jederzeit zu ändern, zu aktualisieren oder einzustellen, ohne vorherige Ankündigung. + +## Kontakt + +| | | +| --- | --- | +| **Entwickler** | Florian Wathling | +| **Unternehmen** | Hellion Online Media | +| **Web** | [hellion-media.de](https://hellion-media.de) | +| **E-Mail** | [kontakt@hellion-media.de](mailto:kontakt@hellion-media.de) | +| **Impressum** | [hellion-media.de/impressum](https://hellion-media.de/impressum) | + +--- + +**Hellion NewTab** — [Hellion Online Media](https://hellion-media.de) — JonKazama-Hellion diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0e034c8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,17 @@ +Hellion NewTab +Copyright (c) 2026 Florian Wathling / Hellion Online Media + +Dieses Werk ist lizenziert unter der +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. + +Kurzfassung: +- Namensnennung erforderlich +- Keine kommerzielle Nutzung ohne Erlaubnis +- Weitergabe unter gleichen Bedingungen + +Vollstaendiger Lizenztext: +https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode + +Kontakt für kommerzielle Lizenzierung: +kontakt@hellion-media.de +https://hellion-media.de diff --git a/README.md b/README.md index 516301e..f633dd1 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@    - +  **Kein Account. Kein Abo. Keine Cloud. Alle Daten bleiben 100% lokal.** -Ein persoenlicher Bookmark-Dashboard als Browser-Extension. +Ein persönlicher Bookmark-Dashboard als Browser-Extension. Boards, Drag & Drop, 8 Themes, Suchleiste, Sticky Notes — alles im Browser, alles offline. Keine externe Datenübertragung, keine Tracker, keine Analytics, keine Werbung. @@ -21,11 +21,11 @@ Entwickelt von **[Hellion Online Media](https://hellion-media.de)** — JonKazam - Kein Cloud-Sync und kein Account-System - Keine Datenerfassung oder Telemetrie - Keine Drittanbieter-Abhängigkeiten oder Build-Tools -- Kein Netzwerkverkehr ausser Favicon-Abruf (Google Favicons API) +- Kein Netzwerkverkehr außer Favicon-Abruf (Google Favicons API) ## Was diese Extension IST -Ein lokaler, privater NewTab-Ersatz für alle gaengigen Browser. +Ein lokaler, privater NewTab-Ersatz für alle gängigen Browser. Bookmarks werden in `chrome.storage.local` gespeichert — nichts verlässt den Browser. Was angezeigt wird, ist was gespeichert ist. Keine Magie. @@ -35,7 +35,7 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie. ### Boards & Bookmarks -- Boards als Gruppen fuer Links — per Drag & Drop umsortierbar +- Boards als Gruppen für Links — per Drag & Drop umsortierbar - Bookmarks mit Favicon, Titel, optionaler Beschreibung - Boards per Blur-Button verstecken (Privat-Modus) - HTML-Import von Browser-Lesezeichen (Chrome, Edge, Firefox) @@ -55,20 +55,33 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie. | Theme | Akzent | Stil | | --- | --- | --- | -| Astronaut | Orange | Dark / Space | -| Cosmic Clock | Gold | Warm / Mystisch | -| Void Mage | Lila | Arkan | +| Nebula | Magenta | Cosmic Nebula | +| Crescent | Gold | Minimalist Night | +| Event Horizon | Orange | Deep Space | | Merchantman | Teal | Industrial Sci-Fi | | Julia & Jin | Blau | FFXIV Night | | SC Sunset | Amber | Planet-Side | -| Hellion HUD | Gruen | Circuit Board | -| Hellion Energy | Matrix-Gruen | Tactical | +| Hellion HUD | Grün | Circuit Board | +| Hellion Energy | Matrix-Grün | Tactical | + +### Bild-Credits + +| Theme | Quelle | Lizenz | +| --- | --- | --- | +| Nebula | [Temel / mrwashingt0n](https://pixabay.com/de/users/mrwashingt0n-15745216/) auf Pixabay | Pixabay License (frei) | +| Crescent | [Daniil Silantev](https://unsplash.com) auf Unsplash | Unsplash License (frei) | +| Event Horizon | Eigenes Werk — Stillframe von [hellion-initiative.online](https://hellion-initiative.online) | Hellion Online Media | +| Merchantman | [Roberts Space Industries](https://robertsspaceindustries.com) — Made by the community | RSI Community Content | +| SC Sunset | Screenshot aus Star Citizen von Cloud Imperium Games | Fan Content | +| Julia & Jin | Eigenes Werk — Final Fantasy XIV Screenshot, bearbeitet in Photoshop | Hellion Online Media | +| Hellion HUD | Eigenes Werk — AI-generiert und nachbearbeitet für hellion-media.de | Hellion Online Media | +| Hellion Energy | Eigenes Werk — AI-generiert für hellion-media.de | Hellion Online Media | ### Settings -- Compact Mode — reduziert Abstände fuer mehr Bookmarks +- Compact Mode — reduziert Abstände für mehr Bookmarks - Shorten Titles — kürzt lange Titel auf eine Zeile -- Open in New Tab — Bookmarks in neuem Tab oeffnen +- Open in New Tab — Bookmarks in neuem Tab öffnen - Show Descriptions — Beschreibungen unter Bookmarks anzeigen - Hide Extra Bookmarks — Boards ab 5/10/20 Bookmarks einklappen - Hintergrundbild — URL oder lokaler Upload @@ -91,7 +104,7 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie. | Firefox | Kompatibel | V2 (`manifest.firefox.json`) | > **Firefox-Hinweis:** Firefox verwendet aktuell Manifest V2. Mozilla arbeitet an MV3-Support — -> sobald stabil, wird die Extension migriert. MV2 wird von Mozilla weiterhin unterstuetzt. +> sobald stabil, wird die Extension migriert. MV2 wird von Mozilla weiterhin unterstützt. --- @@ -101,15 +114,15 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie. ```text 1. Repository als ZIP herunterladen oder git clone -2. chrome://extensions oeffnen (oder edge:// / brave:// / opera://) +2. chrome://extensions öffnen (oder edge:// / brave:// / opera://) 3. Entwicklermodus aktivieren 4. "Entpackte Erweiterung laden" → Ordner auswählen in dem manifest.json liegt -5. Neuen Tab oeffnen +5. Neuen Tab öffnen ``` ### Firefox -Firefox benoetigt `manifest.json` im Format V2. +Firefox benötigt `manifest.json` im Format V2. ```bash # manifest.json durch Firefox-Version ersetzen: @@ -118,13 +131,13 @@ cp manifest.firefox.json manifest.json # Linux/Mac ``` ```text -1. about:debugging#/runtime/this-firefox oeffnen -2. "Temporaeres Add-on laden" +1. about:debugging#/runtime/this-firefox öffnen +2. "Temporäres Add-on laden" 3. Die manifest.json aus dem Projektordner auswählen ``` -> **Hinweis:** Temporaere Add-ons werden beim Browser-Neustart entfernt. -> Fuer dauerhafte Installation ist eine signierte `.xpi`-Datei noetig. +> **Hinweis:** Temporäre Add-ons werden beim Browser-Neustart entfernt. +> Für dauerhafte Installation ist eine signierte `.xpi`-Datei nötig. --- @@ -135,17 +148,17 @@ cp manifest.firefox.json manifest.json # Linux/Mac | Chrome / Edge | Einstellungen → Lesezeichen → Exportieren | | Firefox | Lesezeichen → Alle Lesezeichen → Importieren und Sichern → Als HTML exportieren | -Die exportierte `.html`-Datei ueber den **Import**-Button in der Extension laden. +Die exportierte `.html`-Datei über den **Import**-Button in der Extension laden. --- ## Datenschutz -- Keine externe Datenübertragung (ausser Google Favicons API fuer Icons) +- Keine externe Datenübertragung (außer Google Favicons API für Icons) - Speicherung in `chrome.storage.local` (Chromium) bzw. `browser.storage.local` (Firefox) - Keine Tracker, keine Analytics, keine Werbung - Keine Cookies, keine Session-Daten -- Storage-Quota-Pruefung warnt bei 8 MB+ (Limit: 10 MB) +- Storage-Quota-Prüfung warnt bei 8 MB+ (Limit: 10 MB) - Permissions: `storage`, `bookmarks` --- @@ -172,10 +185,13 @@ hellion-newtab/ ├── manifest.json # Chrome, Edge, Brave, Opera, Vivaldi (MV3) ├── manifest.firefox.json # Firefox (MV2) ├── newtab.html # Haupt-HTML (UI-Struktur, Modals, Settings Panel) +├── LICENSE # CC BY-NC-SA 4.0 +├── SECURITY.md # Sicherheitsrichtlinie und Meldeprozess +├── DISCLAIMER.md # Haftungsausschluss │ ├── src/ │ ├── js/ -│ │ ├── storage.js # Storage Abstraction + Quota-Pruefung +│ │ ├── storage.js # Storage Abstraction + Quota-Prüfung │ │ ├── state.js # Globaler State, Defaults, Hilfsfunktionen │ │ ├── themes.js # Theme-Definitionen & Anwendungslogik │ │ ├── boards.js # Board/Bookmark Rendering, Event Delegation, Modals @@ -190,9 +206,9 @@ hellion-newtab/ │ ├── assets/ │ ├── themes/ # 8 Theme-Hintergrundbilder -│ │ ├── bg-astronaut.jpg -│ │ ├── bg-cosmic-clock.jpg -│ │ ├── bg-void-mage.jpg +│ │ ├── bg-nebula.jpg +│ │ ├── bg-crescent.jpg +│ │ ├── bg-event-horizon.jpg │ │ ├── bg-merchantman.webp │ │ ├── bg-julia-jin.png │ │ ├── bg-sc-sunset.jpg @@ -226,23 +242,23 @@ hellion-newtab/ ### Security Scan (`security.yml`) -- **CodeQL-Analyse** — Statische Sicherheitsanalyse fuer JavaScript -- **Dependency Review** — Prueft Pull Requests auf bekannte Schwachstellen +- **CodeQL-Analyse** — Statische Sicherheitsanalyse für JavaScript +- **Dependency Review** — Prüft Pull Requests auf bekannte Schwachstellen - **Zeitplan** — Automatisch wöchentlich (Montag 06:00 UTC) + bei Push/PR ### Code Quality (`quality.yml`) - **Projektstruktur** — Alle Pflichtdateien und -ordner vorhanden - **Manifest-Validierung** — JSON-Syntax, Version, Permissions -- **JavaScript Syntax-Check** — `node --check` fuer alle JS-Dateien -- **Versions-Konsistenz** — manifest.json, manifest.firefox.json und newtab.html muessen übereinstimmen -- **Icon-Pruefung** — Alle Extension-Icons vorhanden +- **JavaScript Syntax-Check** — `node --check` für alle JS-Dateien +- **Versions-Konsistenz** — manifest.json, manifest.firefox.json und newtab.html müssen übereinstimmen +- **Icon-Prüfung** — Alle Extension-Icons vorhanden ### Release (`release.yml`) - **Trigger** — Bei Git-Tag (`v*`) - **Pakete** — Chrome-ZIP (MV3) + Firefox-ZIP (MV2) -- **Checksummen** — SHA256 fuer alle Artefakte +- **Checksummen** — SHA256 für alle Artefakte - **GitHub Release** — Automatisch mit Installationsanleitung ```bash @@ -262,17 +278,30 @@ git clone https://github.com/JonKazama-Hellion/Hellion-NewTab.git # Extension im Browser laden (siehe Installation) -# Nach Aenderungen: Extension neu laden +# Nach Änderungen: Extension neu laden chrome://extensions → Hellion NewTab → Neu laden ``` -Kein Build-Schritt noetig. Dateien aendern, Extension neu laden, fertig. +Kein Build-Schritt nötig. Dateien ändern, Extension neu laden, fertig. + +--- + +## Sicherheit + +Sicherheitslücken bitte **nicht** über öffentliche Issues melden. +Details zur Meldung, Reaktionszeiten und Sicherheitsarchitektur: [SECURITY.md](SECURITY.md) --- ## Lizenz & Impressum -**Proprietaeres Projekt — alle Rechte vorbehalten.** +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International + +- Kostenlos für private Nutzung +- Teilen und Modifikation erlaubt mit Namensnennung +- Kommerzielle Nutzung ohne Erlaubnis verboten + +Vollständige Lizenz: [LICENSE](LICENSE) | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) | | | | --- | --- | @@ -281,6 +310,7 @@ Kein Build-Schritt noetig. Dateien aendern, Extension neu laden, fertig. | **Web** | [hellion-media.de](https://hellion-media.de) | | **Impressum** | [hellion-media.de/impressum](https://hellion-media.de/impressum) | | **Bug Reports** | [kontakt@hellion-media.de](mailto:kontakt@hellion-media.de?subject=Hellion%20NewTab%20%E2%80%93%20Bug%20Report) | +| **Security** | [SECURITY.md](SECURITY.md) | --- @@ -290,18 +320,21 @@ Kein Build-Schritt noetig. Dateien aendern, Extension neu laden, fertig. - Projektstruktur in `src/js/`, `src/css/`, `assets/` aufgeteilt - JS in 10 Module aufgeteilt (storage, state, themes, boards, drag, settings, search, sticky, data, app) -- Firefox-Kompatibilitaet (`manifest.firefox.json`, Manifest V2) -- Vivaldi bestaetigt kompatibel +- Firefox-Kompatibilität (`manifest.firefox.json`, Manifest V2) +- Vivaldi bestätigt kompatibel - Theme-Bildpfade korrigiert (Settings Preview) - URL-Validierung bei Bookmark-Erstellung - JSON-Import mit Board- und Bookmark-Struktur-Validierung -- XSS-Schutz: createElement statt innerHTML fuer Bookmarks -- Storage-Quota-Pruefung mit Warnung bei 8 MB+ -- Event Delegation fuer Bookmark-Klicks (Performance) +- XSS-Schutz: createElement statt innerHTML für Bookmarks +- Storage-Quota-Prüfung mit Warnung bei 8 MB+ +- Event Delegation für Bookmark-Klicks (Performance) - Responsive Design (Tablet 768px, Smartphone 480px) - Sticky Note Header-Kollision behoben -- FileReader-Fehlerbehandlung fuer Hintergrundbild-Upload +- FileReader-Fehlerbehandlung für Hintergrundbild-Upload - GitHub Actions: Security Scan, Code Quality, Release Automation +- 3 Themes ersetzt: Astronaut → Nebula, Cosmic Clock → Crescent, Void Mage → Event Horizon +- Alle Theme-Bilder lizenzrechtlich geprüft und dokumentiert +- LICENSE (CC BY-NC-SA 4.0), SECURITY.md und DISCLAIMER.md hinzugefügt ### v1.1.0 — 20.03.2026 @@ -313,13 +346,13 @@ Kein Build-Schritt noetig. Dateien aendern, Extension neu laden, fertig. - About / Impressum in Settings - Board Blur-Funktion (Privat-Modus) - Drag & Drop auf Pointer Events umgestellt -- Opera / Opera GX Kompatibilitaet +- Opera / Opera GX Kompatibilität ### v1.0.0 — 20.03.2026 - Initiales Release - Boards & Bookmarks mit Drag & Drop -- 3 Themes (Astronaut, Cosmic Clock, Void Mage) +- 3 Themes (Nebula, Crescent, Event Horizon) - HTML-Import (Browser-Lesezeichen) - Settings Panel @@ -327,7 +360,7 @@ Kein Build-Schritt noetig. Dateien aendern, Extension neu laden, fertig. ### Einsatz von AI -AI (Claude Code, Opus 4.6 von Anthropic) wurde als Hilfsmittel eingesetzt — fuer Fehleridentifikation, Code-Review und Qualitaetssicherung. Architektur, Features und alle Entscheidungen sind Eigenleistung. +AI (Claude Code, Opus 4.6 von Anthropic) wurde als Hilfsmittel eingesetzt — für Fehleridentifikation, Code-Review und Qualitätssicherung. Architektur, Features und alle Entscheidungen sind Eigenleistung. --- diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..4f9e917 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,76 @@ +# Sicherheitsrichtlinie — Hellion NewTab + +## Unterstützte Versionen + +| Version | Status | +| --- | --- | +| 1.2.x | Aktiv unterstützt | +| < 1.2.0 | Nicht unterstützt | + +## Sicherheitslücke melden + +Wenn du eine Sicherheitslücke in Hellion NewTab findest, melde sie bitte **nicht** über ein öffentliches GitHub Issue. + +### Kontakt + +**E-Mail:** [kontakt@hellion-media.de](mailto:kontakt@hellion-media.de?subject=Hellion%20NewTab%20%E2%80%93%20Security%20Report) + +Bitte folgende Informationen angeben: + +- Beschreibung der Schwachstelle +- Schritte zur Reproduktion +- Betroffene Version(en) +- Mögliche Auswirkungen (Datenverlust, XSS, etc.) + +### Reaktionszeit + +- **Bestätigung:** Innerhalb von 48 Stunden +- **Ersteinschätzung:** Innerhalb von 7 Tagen +- **Fix:** Abhängig von Schweregrad, Ziel innerhalb von 14 Tagen + +### Schweregrad-Einstufung + +| Stufe | Beschreibung | Beispiel | +| --- | --- | --- | +| Kritisch | Datenverlust oder Remote Code Execution | Storage-Manipulation durch Dritte | +| Hoch | XSS oder ungewollte Datenübertragung | Script-Injection via Bookmark-Import | +| Mittel | Umgehung von UI-Schutzmechanismen | Blur-Bypass, Settings-Manipulation | +| Niedrig | Kosmetisch oder theoretisch | Edge-Cases ohne praktische Auswirkung | + +## Sicherheitsarchitektur + +### Datenverarbeitung + +- **Keine externe Datenübertragung** — Alle Daten bleiben in `chrome.storage.local` +- **Kein Server-Kontakt** — Außer Google Favicons API für Bookmark-Icons +- **Keine Cookies, Sessions oder Tokens** +- **Kein Netzwerkzugriff** außer Favicon-Abruf + +### Eingabe-Validierung + +- URL-Validierung bei Bookmark-Erstellung (`new URL()`) +- JSON-Import: Board- und Bookmark-Struktur wird validiert +- HTML-Sanitierung via `escHtml()` und `createElement` (kein `innerHTML` für User-Daten) +- Storage-Quota-Prüfung mit Warnung bei 8 MB+ + +### Permissions + +Diese Extension benötigt nur zwei Browser-Permissions: + +| Permission | Grund | +| --- | --- | +| `storage` | Boards, Settings und Sticky Note lokal speichern | +| `bookmarks` | Browser-Lesezeichen für HTML-Import lesen | + +Keine Permissions für: Tabs, History, Web Requests, Downloads, Clipboard oder Host-Zugriff. + +### CI/CD-Sicherheit + +- **CodeQL** — Automatische statische Analyse bei Push und PR +- **Dependency Review** — Prüft auf bekannte Schwachstellen in PRs +- **Wöchentlicher Scan** — Automatischer CodeQL-Lauf jeden Montag +- **SHA256-Checksummen** — Alle Release-Artefakte werden signiert + +--- + +**Hellion NewTab** — [Hellion Online Media](https://hellion-media.de) — JonKazama-Hellion diff --git a/assets/themes/bg-astronaut.jpg b/assets/themes/bg-astronaut.jpg deleted file mode 100644 index 5a80247..0000000 Binary files a/assets/themes/bg-astronaut.jpg and /dev/null differ diff --git a/assets/themes/bg-cosmic-clock.jpg b/assets/themes/bg-cosmic-clock.jpg deleted file mode 100644 index b8b0f30..0000000 Binary files a/assets/themes/bg-cosmic-clock.jpg and /dev/null differ diff --git a/assets/themes/bg-crescent.jpg b/assets/themes/bg-crescent.jpg new file mode 100644 index 0000000..8efdc51 Binary files /dev/null and b/assets/themes/bg-crescent.jpg differ diff --git a/assets/themes/bg-event-horizon.jpg b/assets/themes/bg-event-horizon.jpg new file mode 100644 index 0000000..1666460 Binary files /dev/null and b/assets/themes/bg-event-horizon.jpg differ diff --git a/assets/themes/bg-nebula.jpg b/assets/themes/bg-nebula.jpg new file mode 100644 index 0000000..33cb9cb Binary files /dev/null and b/assets/themes/bg-nebula.jpg differ diff --git a/assets/themes/bg-void-mage.jpg b/assets/themes/bg-void-mage.jpg deleted file mode 100644 index d480645..0000000 Binary files a/assets/themes/bg-void-mage.jpg and /dev/null differ diff --git a/newtab.html b/newtab.html index 2f95089..7facb38 100644 --- a/newtab.html +++ b/newtab.html @@ -92,19 +92,19 @@
- Astronaut
+
+ Nebula
✓
- Cosmic
+
+ Crescent
✓
- Void Mage
+
+ Event Horizon
✓