eisfuchsLabor

Einen wunderschönen guten Sonntagnachmittag wünsche ich! Mein neues System, Blog-Einträge nur auf Anfrage zu schreiben, scheint zumindest in diesem Punkt zu funktionieren, als dass es mich tatsächlich motiviert und ich nicht das Gefühl habe, total ins Leere zu quasseln.

Mein jüngster Auftrag war: Breach, der hackbare Browser für die HTML-Ära! Bevor ich mir den Browser ansehen konnte, habe ich natürlich erst mal mein System auf den neusten Stand gebracht. Da es keine Windows-Version gibt (obwohl es mich nicht gestört hätte, mir eine Version zu kompilieren, wenn es nur eine Anleitung gegeben oder zumindest auch nur der leiseste Verdacht bestanden hätte, dass das überhaupt möglich sei), musste dieses Mal Ubuntu (Ich weiß. Ruhe da hinten.) herhalten. Und weil es so viel Spaß macht, gibt's dieses Mal extra viele Bilder in Farbe.

Bisschen doof: Ich lade mir das Paket, entpacke die Dateien, will den Browser starten und laufe direkt vor eine Fehlermeldung. Immerhin bin ich nicht alleine damit, aber ärgerlich ist es trotzdem. Mit einem kleinen Trick geht's aber doch:

cd breach-v0.3.20-alpha.5-linux-x64
rm -rf __AUTO_UPDATE_BUNDLE__/exo_browser/shell/*
cp -a __AUTO_UPDATE_BUNDLE__/breach_core/* __AUTO_UPDATE_BUNDLE__/exo_browser/shell
./__AUTO_UPDATE_BUNDLE__/exo_browser/exo_browser --disable-setuid-sandbox

Sieht uncool aus (und, ja, der Browser liegt in einem Unterordner, der __AUTO_UPDATE_BUNDLE__ heißt) und die letzte Zeile ist dann tatsächlich der eigentliche Aufruf; das kann ich mir vermutlich erst nach wesentlich mehr Tassen Kaffee irgendwie merken. Am Mac gibt's das Problem aber wohl nicht. Aber ohne großen Tammtamm läuft der Browser dann auch einfach los.

Breach nach dem ersten Starten

Jetzt kommt allerdings der Clou: Breach kommt komplett ohne ein einziges Plugin. Startet man Breach das erste Mal, kommt ein kleiner Dialog, dass Breach zwar Dinge tun kann, aber sogar die Adressleiste und die Tabs sind nicht im Lieferumfang enthalten! Warum das cool ist: Gleich zu Anfang bekommt man die Wahl, was man haben möchte. Lasst Euch das auf der Zunge zergehen: Breach ist ab Werk nur ein Fenster, das HTML-Seiten ausgeben kann, aber es gibt keine Möglichkeit, eine URL einzugeben!

Natürlich schlägt die Installation das Standard-Paket mod_strip vor, das sich dann auch direkt installieren lässt. Außerdem kommt still und heimlich das Paket mod_stats dazu, das Statistiken an Google Analytics schickt. Das habe ich natürlich sofort im Modul-Panel entfernt. Was für ein Unsinn.

Atom ist ähnlich konzipiert wie Breach

Breach ist nicht das einzige Projekt, das HTML5/JavaScript benutzt, um gängige Werkzeuge abzulösen. Auch Atom verfolgt dieses "Ziel". Was Breach allerdings - im Gegensatz zu Atom - schafft, ist: Schnell sein. (Im Ernst, Atom ist so un. fucking. fassbar. langsam.)

Beim Durchklickern und Austesten von den einigen oder anderen Internetseiten war ich selber ein bisschen erstaunt, wie schnell Seiten geladen und aufgebaut waren; und sogar zumquadr.at bediente sich super-fix, obwohl ich seit jeher Performance-Probleme mit diesem Projekt habe.

Wenn man aber kurz nachdenkt, wundert das kaum; schließlich ist ja nichts da, das diesen Prozess irgendwie verlangsamen könnte. Da ist nichts sonst. Nur die Internetseite und Du.

zumquadr.at saust wie der Wind

Ich hatte auf Anhieb keine Seite gefunden, die nicht funktionierte. Alles ging. Kunststück: Das Rad an sich ist ja damit nicht wirklich neu erfunden worden. Alles unter der Haube ist ja schon jahrelang im Einsatz, nur die Hülle ist anders.

Interessant hierbei ist zum Beispiel, wie unterschiedlich die Ansätze sein können. mod_strip zum Beispiel lädt den URL-Eingabebereich (/box) als iframe mit seinen eigenen Skripten, CSS-Regeln und Markup.

diaspora* saust wie der Wind

Kommen wir aber zum spannenden Teil; dem Hacken des Browsers selber.

Alles an diesem Browser ist nämlich - wie das der Eine oder Andere unter Euch sicher schon kennt - mit den herkömmlichen Entwicklerwerkzeugen inspizierbar. Konkret: Euch gefallen die stumpfen Tabs nicht? Klont Euch doch einfach mod_strip und ändert das CSS!

Oder... baut Euch Euer eigenes Interface, in dem Ihr Tabs verwalten könnt. Wer sagt, dass Ihr überhaupt Tabs braucht? Das ist Euer Browser jetzt!

Alles liegt blank - der Browser auf dem OP-Tisch

Und so wird's gemacht:

git clone git@github.com:breach/mod_strip.git
cd mod_strip
npm install

Ihr könnt dann die vorher installierte Version von mod_strip aus den Modulen entfernen und Euren eigenen Fork von lokal laden.

Ich habe mich mal an einem Skin, der an dieses Blog angelehnt ist, versucht, aber der sieht nicht mal halb so cool aus wie er sein könnte.

Mein kümmerlicher Versuch, einen Skin zu basteln

Das alles braucht natürlich viel Zeit, bis man etwas hat, das funktioniert. Die Zeit (und den Nerv) dafür hatte ich nicht, also bleibt es bei meinem kümmerlichen Versuch.

Unterm Strich: Breach funktioniert, ist fix und schlank. Allerdings muss man auf jeglichen Komfort verzichten, wie zum Beispiel Ad-Blocker, eine Chronik oder dass sich der Browser tatsächlich irgendwas merkt. Eigene Änderungen vorzunehmen ist allerdings schön und schnell gemacht und sicher ein riesiger Spaß, wenn man die Zeit und den Anreiz dafür hat.

Ich freue mich, wenn ich den Browser jeden Tag benutzen kann. Ich fand' das Browsen nämlich an sich jetzt schon sehr angenehm.