Projektvorstellung WebLibre Browser Android

  • Hallo zusammen,

    ich möchte euch gerne ein Projekt vorstellen, das ich vor einiger Zeit begonnen habe: einen mobilen Browser für Android auf Basis der Gecko-Engine.

    Da ich in den letzten Jahren viel mobil unterwegs bin, findet ein Großteil meines Surfens inzwischen auf Smartphones und Tablets statt. Je nach Komplexität der Themen, mit denen ich mich beschäftige, hatte ich zunehmend Schwierigkeiten, den Überblick über meine Tabs zu behalten. Während man sich im Desktop-Bereich sehr gut mit Add-ons behelfen kann, sieht es in der mobilen Welt hinsichtlich Kompatibilität und Usability von Erweiterungen eher mau aus. Auch außerhalb der Firefox-Welt gibt es wenig Nützliches, insbesondere wenn man Wert auf Privatsphäre legt. Deshalb habe ich mich entschieden, kreativ zu werden. Letztendlich ist so ein vollständiger Browser entstanden, der deutlich größer und umfangreicher wurde als ursprünglich geplant.

    Ich denke, das Projekt hat nun einen Stand erreicht, bei dem alles weitgehend stabil läuft. Daher möchte ich euch einladen, euch den Browser bei Interesse einmal anzuschauen.

    Ich fasse mich kurz, hier eine Einführung eines Teils der Features:


    Das Projekt findet ihr auf GitHub: https://github.com/FaFre/WebLibre
    Außerdem gibt es bereits eine kleine (unvollständige) Dokumentation: https://docs.weblibre.eu/

    Derzeit ist alles noch auf Englisch, eine deutsche Übersetzung wird ggf. folgen.

    Der Browser basiert auf den Mozilla Android Components bzw. Gecko Engine der aktuellen 141 Beta.


    Der Grundaufbau des Browsers ist von der Oberfläche her sehr ähnlich zu etablierten mobilen Browsern, bietet jedoch einige interessante Erweiterungen:

    - Es ist möglich, Tabs in Containern mit verschiedenen Identitäten zu organisieren (vergleichbar mit https://addons.mozilla.org/en-US/firefox/…unt-containers/ ).
    - In der Tab-Ansicht kann auf eine Baumstruktur umgeschaltet werden, die die Tabs hierarchisch anordnet. So ist es sehr einfach, beispielsweise zum Tab mit den Suchergebnissen zurückzunavigieren oder verwandte Tabs zu finden.
    - Es gibt eine sehr umfangreiche Suchfunktion, die unter anderem auch den Inhalt von Tabs durchsuchen kann. Hat man beispielsweise einen Container „Urlaubsplanung 2025“, kann man dort einfach nach „Wasserfall“ suchen und die entsprechenden Tabs finden.


    Beim Öffnen eines neuen Tabs erhält man Zugriff auf eine Suchmaschine, die zunächst versucht, lokale Inhalte zu finden. Es ist zum Beispiel möglich, RSS-Feeds einzutragen, die automatisch abgerufen und indexiert werden. So kann man lokal aktuelle Beiträge/Nachrichten aus bevorzugten Quellen per Volltextsuche finden, ohne eine externe Suchmaschine zu verwenden. Darüber hinaus ist es an dieser Stelle auch möglich, gleichzeitig offene oder besuchte Tabs zu durchsuchen. Findet man nicht, was man sucht, kann direkt eine gewöhnliche Online-Suche gestartet werden.

    Der Browser kennt über 16.000 Suchmaschinen – neben universellen Diensten wie DuckDuckGo oder Google auch sehr spezifische wie Wikipedia oder Kleinanzeigen. Dadurch ist es möglich, gezielt Suchanfragen zu stellen. Befindet man sich auf einer Website mit eigener Suchfunktion, kann diese über das Tab-Menü ebenfalls direkt angesprochen werden.


    Der Browser kann eine Verbindung zum Tor-Dienst herstellen, um bei Bedarf Container oder private Tabs durch das Tor-Netzwerk zu routen.


    Es ist möglich, die Engine zu härten. Neben dem traditionellen Zugriff per about:config gibt es auch Presets, die sich einzeln aktivieren lassen.

    Bei Interesse findet ihr die App als Download über GitHub Releases oder über den verlinkten Play Store-Eintrag auf der GitHub-Seite.

    Der Browser verwendet keinerlei Analytics- oder Tracking-Komponenten. Die Engine wird direkt aus dem Mozilla-Repository bezogen. Bei den GitHub-Releases handelt es sich um reproducible builds. Der Browser selbst ist unter der GPL v3 lizenziert, ein Teil des Codes steht unter der Mozilla Public License.

    Feedback und Vorschläge sind sehr willkommen! Ich würde mich freuen.

    Fabian

  • Hallo,

    vorab: ich bin bei solchen Browser-Projekten generell sehr kritisch. Wenn ich jetzt also einiges schreibe, was mir nicht gefällt, soll das nicht dich oder deine Arbeit abwerten. Vielleicht kannst du einiges davon ja als konstruktives Feedback mitnehmen. Aber der Browser ist mit die wichtigste Komponente eines internetfähigen Systems, was vor allem auch extrem hohe Anforderungen an die Sicherheit mit sich bringt. Und das bringt mich direkt zum ersten Punkt.

    Sicherheit. Updates für GeckoView und die Android Components kannst du so oder so erst ausliefern, nachdem Mozilla entsprechende Updates veröffentlicht hat. Das ist der größte Schwachpunkt jedes Browsers mit Abhängigkeit von Mozilla (gleiches Thema mit Google bei Chromium-basierten Browsern). Aber was ist deine persönliche Qualifikation in Sicherheitsthemen? Was gibt anderen ein gutes Gefühl, besser die Garantie, dass du nach hohen Standards entwickelst und Schwachstellen schnell erkannt und behoben werden? Damit steht und fällt bei einem Browser nämlich alles. Wenn das nicht passt, ist alles weitere auch egal. Mit Safe Browsing hast du außerdem ein wichtiges Sicherheits-Feature standardmäßig deaktiviert. Das macht schonmal einen ganz schlechten Eindruck für die Sicherheit.

    Positionierung. Ich bekomme jedes Mal Bauchschmerzen, wenn wieder ein neues Browser-Projekt entsteht, welches direkt als ersten Punkt hervorhebt, einen besonderen Fokus auf Privatsphäre zu legen. Firefox ist von Haus aus privatsphärefreundlich. Das rechtfertigt keinen eigenen Browser. Mir ist schon klar, dass du auch noch andere Mehrwerte bietest. Aber das als ersten und damit wichtigsten Punkt zu kommunizieren, ist eine bewusste Entscheidung und impliziert, dass hier bei vorhandenen Lösungen ein Defizit vorliegen würde. Vor allem die Formulierung, dass das „Browsing nicht getrackt oder beobachtet“ wird, fällt auf. Oder dass die Daten lokal auf dem Gerät bleiben. Als ob das bei anderen Browsern nicht so wäre. Du bedienst mit solchen Andeutungen ein Narrativ, mit dem ich ein großes Problem habe. Fokussiere dich in deiner Positionierung besser auf das, was du wirklich anders macht. Du hast doch mehrere einzigartige Features.

    UI-Performance. Ich nutze ein OnePlus 10 Pro, das ist alles andere als ein langsames Gerät. Und die Oberfläche ist teilweise wirklich spürbar ruckelig. Das fällt in der Tabs-Übersicht besonders auf, die sich selbst mit nur einem Tab wirklich gar nicht flüssig bewegt und mehrere Wischgesten zum Schließen benötigt. Aber auch die Einstellungen fühlen sich nicht überall flott an. Ich packe es mit in diesen Punkt, auch wenn es vielleicht nicht ganz dazu passt: Wenn ich auf die Adressleiste tippe und dann auf das Feld für die URL, ist im Hintergrund jedes Mal ein kurzes Flackern festzustellen. Das ist nur eine kleine optische Geschichte, für mich aber sehr störend, wenn ich mir vorstelle, das bei aktiver Browsernutzung ständig zu sehen.

    Add-ons. Was du in deinem Eingangs-Statement damit meinst, dass es auf Android eher mau mit der Kompatibilität von Add-ons aussieht, weiß ich nicht. Stand heute 3.159 Erweiterungen für einen Android-Browser sind schon ziemlich stark. Und dein Browser unterstützt die auch. Du zeigst aber ausschließlich empfohlene Erweiterungen an. Firefox verlinkt an dieser Stelle am Ende auf addons.mozilla.org. Das solltest du auch machen. Das macht es sehr viel einfacher, Erweiterungen zu entdecken. Darauf, dass es addons.mozilla.org mit vielen weiteren Add-ons gibt, muss der Nutzer ansonsten erst einmal kommen und dann manuell in die Adressleiste eingeben.

    Fragwürdige Nutzer-Optionen. Du gibst dem Nutzer ein paar fragwürdige Optionen an die Hand. Allen voran Resist Fingerprinting. Du bewirbst auch eine Tor-Integration, insofern mag das passender als bei anderen Browser-Projekten sein, da es sich um ein Feature des Tor-Browsers handelt. Allerdings stellst du diese Option in einem anderen Kontext bereit und kommunizierst meiner Meinung nach nicht ausreichend die zahlreichen Folgen für die Webkompatibilität. Das ist eine so häufige Quelle für Support-Anfragen und steht zudem potenziell in Widerspruch zu deinem eigenen Versprechen des Privatsphäre-Fokus. Wie der Name der Einstellung bereits sagt: Es geht um eine Reduzierung des Fingerabdrucks durch Verschleierung echter Systemeigenschaften. Was leider einige nicht verstehen: Das ist ein entgegengesetztes Ziel zur Reduzierung von Tracking. Nutzer stechen dadurch aus der Masse hervor und werden dadurch potenziell leichter trackbar. Die Zielgruppe für diese Einstellung ist extrem schmal und wirklich niemand, der nicht in diese Zielgruppe fällt, sollte diese Einstellung aktivieren. Ähnlich verhält es sich mit der Änderung des User-Agents: Auch das verursacht zahlreiche Webkompatibilitätsprobleme und kann Tracking wieder vereinfachen. Den User-Agent zu ändern, sollte nur für Entwickler interessant sein. Genauso wenig verstehe ich, wieso man Nutzern eine sichtbare Option gibt, um JavaScript zu deaktivieren. JavaScript ist ein integraler Bestandteil der Webplattform wie CSS und Bilder. In dem Fall könnte man das vielleicht dadurch rechtfertigen, dass Firefox Klar (nicht Firefox) dafür ebenfalls eine sichtbare Option anbietet. Aber das verursacht so viele Webkompatibilitätsprobleme, dazu sollte man Nutzer nicht ermutigen. Zumal ich die Beschreibung sogar als Lüge bezeichnen würde: Du versprichst eine verbesserte Sicherheit, Privatsphäre und Geschwindigkeit. Das sind ziemlich große Versprechen, die so kaum gehalten werden können. Vor allem das Geschwindigkeitsargument ist schon sehr konstruiert. Im Gegenteil wird JavaScript sehr häufig für eine bessere Performance eingesetzt. Das, auch in Zusammenhang mit deiner Positionierung (siehe oben) und der Verwendung des Begriffes „Härten“, was man in Zusammenhang mit sehr fragwürdigen user.js-Sammlungen kennt, erweckt bei mir den ganz starken Eindruck, dass du ein völlig falsches Verständnis von Privatsphäre hast. Das schreibe ich so deutlich, weil du explizit betont hast, Wert auf Privatsphäre zu legen.

    Cookie Banner Blocker. Ich nehme an, du hast hier die Option sichtbar gemacht, die in Firefox integriert ist? Dann weißt du hoffentlich, dass die Entwicklung daran eingestellt worden ist. Nicht grundlos wurde die sichtbare Option in Firefox entfernt. Die genutzten Listen haben schon nur sehr wenig abgedeckt, aber selbst das ist jetzt mittlerweile auf einem veralteten Stand. Und die Implementierung auf Gecko-Ebene dürfte dann auch früher oder später verschwinden.

    about:config. Ich bin auch kein Freund davon, dass about:config zugänglich gemacht worden ist. Das funktioniert anders als am Desktop. Der Großteil der Einstellungen wird auf Android überhaupt nicht unterstützt und von deinem Browser vermutlich noch weniger als von Firefox. Das weckt nur falsche Erwartungen bei den Nutzern.

    Suchmaschinen. Du machst ja sehr viele Suchmaschinen zugänglich. Deine Standard-Auswahl ist aber eher klein und Google ist bei deinem Onboarding nicht dabei, das muss man erst manuell suchen. Fokus auf Privatsphäre hin oder her, sind wir ehrlich: Für die allermeisten Nutzer ist und bleibt Google die Suchmaschine der Wahl - und das mit weitem Abstand. Das hat man ja auch beim Desktop-Firefox gesehen, als Google eine Zeit lang nicht die Standard-Suchmaschine war: Man weiß, dass fast alle Firefox-Nutzer die Suchmaschine wieder auf Google gestellt hatten. Es kann sich dann ja immer noch jeder gegen Google entscheiden. Aber ich empfehle dir, Google zumindest standardmäßig anzubieten, statt einen Idealismus über nachgewiesene Nutzer-Bedürfnisse zu stellen.

    Neue Features. Du hast ein paar interessante Features implementiert. Und es tut mir fast schon leid, dass ich dazu nur sehr wenig schreiben werde. Denn an der Stelle bringst du eigene Mehrwerte und darüber lassen sich vermutlich auch am ehesten positive Dinge schreiben. Allerdings sind das halt einfach nicht meine Features. Auf Android nutze ich den Browser, ganz anders als den Desktop-Browser, generell eher wenig und deine Features scheinen mir doch eher auf Viel-Nutzer abzuzielen. Ich bin mir sicher, dass es für jedes dieser Features eine Zielgruppe gibt. Aber ich weiß, dass ich keines davon brauche. Entsprechend wenig kann ich dazu einfach sagen.

    Name. Der Name ist letztlich egal und macht deinen Browser nicht besser oder schlechter. Aber wenn wir schon bei Feedback sind: Du nennst deinen auf Mozilla-Komponenten basierenden Browser WebLibre. Es gibt bereits ein ziemlich populäres (und mindestens genauso fragwürdiges wie populäres) Firefox-Derivat mit dem Namen LibreWolf. Einen zweiten „Mozilla-Browser“ mit „Libre“ im Namen zu haben, ist vielleicht nicht die glücklichste Wahl.

  • Danke für den Testen, Sören. Ich habe gestern schon einen Blick in das APK selbst geworfen - und das hat mich doch eher enttäuscht, auf zweifache Art und Weise. Zum einen steht in keiner einzigen Doku, auf welches Basis dieser Browser steht - das APK sagt mir: Firefox 141 beta. Und da war bei mir schon vorbei. Kann ich nicht nachvollziehen geschweige habe ich Verständnis dafür, warum man unfertige Versionen auf Nutzer loslässt. Und in dem Zuge, es steht auch nicht bei, in welchem Zyklus Updates zu erwarten sind. Bei Beta weiss ich, dass es ca 2 die Woche sein können, wie bei der Desktop-Ausgabe. Und Updates waren - und sind leider immer noch - der Knackpunkt, woran die meisten Forks scheitern.

    Um einen Punkt anzusprechen, den Sören angeschnitten hat. Wenn dein/euer Browser so viel besser sein soll. Was davon habt ihr denn Mozilla als Code angeboten? Mozilla ist dahingehend offen, nur werden Änderungen oder Ergänzungen auf Herz und Nieren geprüft und nicht einfach auf den Nutzer losgelassen, wie zB bei BetterBird. Änderungen oder Ergänzungen müssen 1000% funktionieren, um keine Sicherheitslücken oder Abstürze hervorzurufen. Und falls ja, an wen geht bei Weblibre diese Info hin? An euch? Falls ja, was macht ihr daraus? Falls nicht, Mozilla? Falls ja, warum sollte Mozilla eurem Scherbenhaufen hinterherräumen wollen?

    Bzgl Erweiterungen. Ich tue mich immer schwer mit Browsern, die Erweiterungen vorschlagen, oder gar integriert haben. Nein, will ich nicht. Auch wenn ublock einer der besseren ist, gibt es doch welche, die dem ebenbürtig sind. Da sollte man wirklich dem Nutzer überlassen und auch keine Vorauswahl zeigen.

    So ein Produkt herzustellen ist sicher viel Arbeit. Der Knackpunkt sind aber immer die Fragen, die nicht auf Features, sondern auf den Kern eingehen. In dem Fall sind es bei mir die extremen Abhängigkeiten zu den Funktionen, die Mozilla für Firefox anbietet. Dann bleib ich lieber beim Original, weil da alles stimmt, von vorn bis hinten.

    Hier gibt es keine Probleme, nur Lösungen! Meine Glückszahl hier: 96.

  • Zum einen steht in keiner einzigen Doku, auf welches Basis dieser Browser steht - das APK sagt mir: Firefox 141 beta. Und da war bei mir schon vorbei. Kann ich nicht nachvollziehen geschweige habe ich Verständnis dafür, warum man unfertige Versionen auf Nutzer loslässt.

    Das steht allerdings hier im Thema, auf GitHub sowie in der Dokumentation: Der Browser basiert auf den Android Components und GeckoView von Mozilla. Das ist kein Fork eines anderen Browsers, falls du das meinst.

    Finale Versionen sollten nach Möglichkeit sicherlich auch auf finalen Versionen der Plattform basieren. Aber da es sich hier ausdrücklich um eine Vorschau handelt („Alpha“ laut Dokumentation und auch der Google Play Store weist explizit darauf hin), ist es schon legitim, in dieser Phase auch noch auf Vorabversionen der Mozilla-Komponenten zu setzen. Das lässt sich dann ja leicht anpassen, sobald es in Richtung finaler Version 1.0 geht. Da sehe ich weniger ein Problem. Und ja, die Frage ist natürlich wichtig, wie die Update-Strategie geplant ist, unabhängig davon, ob man nun Beta- oder finale Versionen der Android Components und GeckoView einsetzt.

  • Das meinte ich aber nicht, hatte ich auch so nicht geschrieben. Und trotzdem ist das für mich ein Fork von Firefox (Android). Ob oder welche Änderungen an den Komponenten oder Gecko, kann ich nicht beurteilen, schliesst sich bei mir aber auch nicht aus.

    in dieser Phase auch noch auf Vorabversionen der Mozilla-Komponenten zu setzen. Das lässt sich dann ja leicht anpassen, sobald es in Richtung finaler Version 1.0 geht.

    Für mich gehören solche Infos auch in eine Version <1.0.

    Hier gibt es keine Probleme, nur Lösungen! Meine Glückszahl hier: 96.

  • Das meinte ich aber nicht, hatte ich auch so nicht geschrieben.

    Dann weiß ich nicht, was du meinst. Ich habe auf das geantwortet, was ich verstanden hatte.

    Und trotzdem ist das für mich ein Fork von Firefox (Android).

    Nein, es ist kein Firefox-Fork. Das ist auch keine Ansichtssache. Zwischen der Nutzung von AC und GV auf der einen sowie der Anpassung von Firefox auf der anderen Seite besteht ein himmelweiter Unterschied.

    Für mich gehören solche Infos auch in eine Version <1.0.

    Auch hier weiß ich nicht, was du meinst. Es wird ausdrücklich darauf hingewiesen, dass es sich um eine Vorschauversion handelt. Und dass GeckoView auf dem Stand Version 141 Beta ist, steht hier auch im Startbeitrag.

  • Das war auch nicht böse gemeint, du hast geschrieben, was du verstanden hast.

    Wegen Fork, da geht unser Verständnis wohl auseinander. Aus Wikipedia (en)

    Zitat

    https://en.wikipedia.org/wiki/Fork_(sof…ietary_software

    a fork is a codebase that is created by duplicating an existing codebase and, generally, is subsequently modified independently of the original.

    Wenn nicht die Komponenten oder Gecko, als was bezeichnest du dann den Rest?

    Wegen "141", ja, das habe ich hier überlesen, aber nicht auf github.

    Hier gibt es keine Probleme, nur Lösungen! Meine Glückszahl hier: 96.

  • Vielen Dank an euch beide, dass ihr euch die Zeit genommen habt, das Ganze einmal anzuschauen und euch damit auseinanderzusetzen. Insbesondere danke ich dir, Sören, für dein ausführliches Feedback!
    Bislang haben noch nicht viele Leute einen Blick auf das Projekt geworfen, und mir ist durchaus bewusst, dass noch weiteres Feedback nötig ist, um alles auf einen guten Weg zu bringen.

    Die Verwendung des aktuellen Beta-Builds ergibt sich momentan durch Breaking Changes in den Versionen 140 und 141 an den gleichen Schnittstellen. Deshalb habe ich direkt das Upgrade auf 141 durchgeführt (um mir etwas Arbeit zu sparen…). Im weiteren Verlauf werden stabile Builds verwendet. Die aktuelle Version des Browsers ist als Alpha-Version gekennzeichnet; ich werde noch einen zusätzlichen Hinweis hinzufügen, den Browser momentan nur zu Versuchszwecken zu verwenden.

    Bezüglich Positionierung, Privatsphäre und Sicherheit: Da es sich hier um ein Firefox-Forum handelt, liegt der Vergleich zu dieser Produktreihe natürlich nahe. Es ist aber tatsächlich gar nicht mehr so selbstverständlich, dass – insbesondere im mobilen Bereich – Browser alles lokal lassen. Bei den "Beliebtesten Browser Apps"" im Play Store wird man teils sehr ausgiebig mit sämtlichen Consents konfrontiert, und was dann mit den übermittelten Daten passiert, ist oft sehr fraglich. Mit den entsprechenden Statements soll unterstrichen werden, dass so etwas hier nicht stattfindet.

    Ich habe bereits ein paar Dinge umgesetzt:
    - Es gibt nun einen eigenen Punkt „Developer Settings“, in dem u.a. User Agent und JS aktiv ausgelagert wurden.
    - Unter dem Menüpunkt „Manage Extensions“ gibt es nun auch „Get Extensions“.
    - Cookie-Banner deaktiviert und Presets entfernt (es gibt dazu nun auch in uBlock Origin entsprechende Listen, allerdings verursachen diese häufig Kompatibilitätsprobleme).
    - Fingerprint-Presets vorerst entfernt; ich muss schauen, ob sich da ggf. etwas dynamisch machen lässt in Verbindung mit Tor.
    - SafeBrowsing standardmäßig reaktiviert.