ubuntuusers.de

Kleines web browser frontend in gtk3 und webkit

Status: Ungelöst | Ubuntu-Version: Ubuntu MATE 24.04 (Noble Numbat)
Antworten |

bluedxca93

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Hallo, habe mal claude ai und mixtral AI dazu aufgefordert einen web browser zu schreiben.

Ging anfangs gar nichts, mittlerweile habe ich aber ein vor-/zurück Leiste und sogar ein Drucken und Speichern Dialog Fenster.

Wie füge ich tabs und pop up fensteer dem Programm hinzu?

wenn es jemand kompilieren möchte:

gcc pkg-config --cflags gtk+-3.0 webkit2gtk-4.1 -o claude-browser2b claude-browser-2b.c pkg-config --libs gtk+-3.0 webkit2gtk-4.1

lg bluedxca93

Moderiert von rklm:

Verschoben in ein besser passendes Forum

claude-browser-2b.txt (8.0 KiB)
Download claude-browser-2b.txt
Bilder

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4658

Wohnort: Berlin

Kannst Du das nicht einfach die AI fragen?

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

... habe mal claude ai und mixtral AI dazu aufgefordert einen web browser zu schreiben.

Wie du siehst, kommt bei AI (KI) häufig Unfug heraus. Verwende doch deine NI (natürliche Intelligenz).

Aber mal im Ernst, wenn du einen winzigen, schnellen Browser suchst, warum verwendest du dann nicht "yad --html"? Nur weil Canonical diese Nutzung nicht möchte und das "yad" Paket ohne "--html" Support liefert, heißt das ja nicht, das du diesen nicht selbst in Sekunden erstellen kannst. Hol dir einfach das aktuelle "yad-13.0.tar.xz"aus dem GIT und mach vor dem "make" ein "./configure --enable-html --enable-sourceview". Dann probier mal den 20MB statt 200MB Browser-Winzling:

yad --html --browser --uri=https://forum.ubuntuusers.de --width=900 --height=800

Von der sonstigen Mächtigkeit (z.B. --uri-handler) des Winzlings will ich lieber schweigen.

PS: Ohne den "--browser" switch kannst du auch gut auf die "console.log" Ausgaben in einem Script reagieren. Tabs braucht man nicht, da für jeden "Tab" ein eigenes Window erstellt wird. Popups werden entweder über eigene Windows oder etwas javascript realisiert. Allerdings ist (wegen der Größe) auch einiges an Funktionalität halt nicht nutzbar, was man von seinem "Monster"-Browser gewöhnt war.

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Dieser demo Browser hat genau 28,1 kb da es nur das frontend ist. Bin bei ~250 zeilen Code. Wenn ne Woche vorbei ist, kann ich mich ja mal wieder dran setzen. Ein Download Fenster und popup Unterstützung wäre noch nice to have.

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

Haha, dein Ansatz ist identisch mit dem von "yad". Die wirkliche Arbeit wird bei beiden Ansätzen von "libwebkit2gtk" erbracht. Selbst die Reaktionen auf den rechten Mausklick sind identisch.

Deine oben angegebene Befehlszeile würde ich allerdings wie folgt ändern, damit andere deinen C-Schnipsel auch übersetzen können:

webkit=$(apt list --installed 2>/dev/null | grep webkit2gtk | 
 cut -d- -f1,2 | sed 's/^lib//' | sort -r | uniq | sed -n '1p')
gcc \
 $(pkg-config --cflags gtk+-3.0 $webkit) \
 -o claude-browser2b claude-browser-2b.c \
 $(pkg-config --libs gtk+-3.0 $webkit)

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Es sind ein paar Neuerungen im Quellcode hinzugekommen: - Zoom in und zoom out Option in der Toolbar - Verbesserung der Url Leiste sie kann jetzt auch googeln ähnlich wie die großen. Vielen Dank für deinen Hinweis zum kompilieren.

https://media-cdn.ubuntu-de.org/forum/attachments/temp/db986f5aa912b35a202e8ad71e7c55f1

claude-browser-2d.txt (9.4 KiB)
Download claude-browser-2d.txt

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17519

Leg sowas doch auf Github, verlinke es, und nicht auf unser Storage/CDN.

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Github ist nicht mehr das was es mal war(leider). Gitlab raubt einem auch jeden letzten Nerv. Es war mal einfach man musste nur ein Passwort eintippen und die Anleitung kopieren dann git add . und git commit -m. Aber diese Zeiten sind vorbei.Wenn du eine git Seite kennst die so funktioniert wie vor 6 Jahren her damit. Aber die beiden grossen git Seiten tue ich mir so in der Form nicht mehr an.

In der Zwischenzeit nutze ich dann halt Pastebin. Der Code ist ja noch weit unter 500kb..

Das nur am Rande. Werde morgen und am Montag an folgenden Einstellungen experimentieren:

-Bilder deaktivieren-/Aktivieren

-Javascript deaktivieren-/aktivieren

-Download Funktion

-open in new window (Menü wenn man über einen Link Links klickt)

Die ersten zwei sollten relativ einfach zu erstellen sein, scheint ähnlcih angebunden zu werden wie die zoom Funktion. Das mit dem Downlaod manager ist ein Problem, könnte aber noch gehen. Das letzte ist open-link-in-new-window was aber indirekt abgefangen werden müsste das Signal erm ja probiere es als letztes auch mal.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17519

bluedxca93 schrieb:

Wenn du eine git Seite kennst die so funktioniert wie vor 6 Jahren her damit.

Github oder Gitlab funktionieren noch wie vor 6 Jahren. Sehen maximal bisschen anders aus. Aber: Multi Factor Authentication, also das man mehr als ein Passwort braucht, ist halt Stand der Technik.

Dieser Bereich vom Forum ist für Fragen zum Thema Programmieren, keine Projektvorstellung für AI generierte Browser die auf Pastebin gehostet werden.

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Ich habe jetzt Seite neuladen und Bilder an aus implementiert.

https://pastebin.com/TWiR6j5z

Auch nach einigem Experimentieren finde ich keine Option das webkit2gtk webview Kontextmenü so abzufangen das ich die Option " Link in neuem Fenster öffnen" implementieren kann. webkit2gtk demo habe ich mir angeschaut da bin ich so weit wie vorher. Immerhin klappen jetzt viele der anderen Optionen schon das wird langsam...

@encbladexp Die zwei Faktor Authentifizierung ist ja gerade das Problem das beide Seiten komplett unbenutzbar macht. Aber das ist hier her off topic.

shiro

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1214

... dein Ansatz ist identisch mit dem von "yad".

Bevor man deinen Betrag irgendwohin verschiebt, möchte ich noch einen kleinen Tip zur Nutzung der "webkit2gtk" Bibliothek geben.

Ich hatte mit "yad" und deinem browser-Beispiel bei einigen Systemen mit Nvidia Karte das Phänomen, dass der Bildschirm nach dem Starten leer bleibt. Wahrscheinlich war das der Grund, weshalb bei den Ubuntu Paketen "yad" ohne "--html" Unterstützung bereit gestellt wird. Man behebt das Problem durch Setzen der WebKit environment variablen

WEBKIT_DISABLE_COMPOSITING_MODE=1

Viel Spaß noch mit deinem Browser, aber ich würde dir dennoch empfehlen dir mal "yad" (speziell yad-nn.n/src/html.c) anzuschauen. Da lernst du mehr als wenn du die KI befragst.

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

yad habe ich mir mittlerweile auch angeschaut. Die KI kann ca 150 Zeilen Code lesen und so ca 50 Zeilen Code einigermassen sinvoll ausgeben.

Muss schon quasi pseudo Code vorgeben und dann die KI immer mit den Compilerwarnungen-/Fehler füttern und manchmal trotzdem brain.elf/bin einschalten weil die Verbindungen der einzelnen Funktionen nicht korrekt ausgegeben werden.

Die Downlaod Funktion habe ich jetzt in ner "verkleinerten" Variante nur mit Tool- und menubar am laufen, wenn da noch paar kleinere Bugs draussen sind füge ich das dem aktuellen Stand vom Quellcode hinzu.

Es scheint als wäre die Signal vom Kontext menu nicht in .webview sondern woanders definiert und deswegen konnte die KI es auch nicht finden b.z.w der ganze Quellcode lief ins leere und ohne diese Signale vom Kontextmenu abzufangen gebt weder download link in new tab noch open link in new window

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Download Funktion geht jetzt auch: : https://pastebin.com/rrnBWn8i

bluedxca93

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2011

Beiträge: 388

Jetzt funktioniert auch der Web inspektor: https://pastebin.com/hNvaCcUq Als nächstes kommt dann Seite durchsuchen Funktion.

Antworten |