Weiterentwicklung Chromium Browser Komponente

Rund um die LCL und andere Komponenten
downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von downloaditweb »

Nach längerer Zeit gibt es wieder Neues:

1. Das fpCEF-Release für CEF 3.2526 auf Github wurde aktualisiert und enthält alle bisherigen Änderungen.
2. Ein Update auf eine neuere CEF-Version ist in Arbeit und dürfte noch diese Woche fertig sein.

Zumindest für die nächsten paar Versionen (5) ist die Anzahl der API-Änderungen zunehmend übersichtlicher. Ich hoffe das gibt mir die Gelegenheit die verbliebenen ungelösten Probleme anzugehen und evtl. die Beispiele zu erweitern.

downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von downloaditweb »

Die neue fpCEF-Version für CEF 3.2704 wurde soeben veröffentlicht.

downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von downloaditweb »

Eine neue fpCEF-Version für CEF 3.2743 ist jetzt verfügbar.

Das Beispiel-Projekt zum Off-Screen-Rendern benutzt jetzt OpenGL anstatt der BGRABitmap. Die Farben sind dadurch unabhängig vom System korrekt und das Ganze läuft flotter.
Ansonsten wurde wieder ein wenig aufgeräumt und einige wenige Fehler behoben.

downloaditweb
Beiträge: 27
Registriert: Do 28. Jan 2010, 13:24
OS, Lazarus, FPC: openSuse Leap 42.3 (L 1.8 FPC 3.0.4)
CPU-Target: 64Bit

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von downloaditweb »

Nach (zu) langer Zeit gibt es wieder eine neue Version von fpCEF für CEF 3.2840.

Darüber hinaus wurden einige ältere Code-Teile überarbeitet und an vielen Stellen verbessert. Die wichtigste Neuerung ist aber wohl die Unterstützung von macOS - dank einer externen Spende und eines Code-Beitrags.
Außerdem läuft CEF ab dieser Version auch auf ARM-Prozessoren. Ohne es selbst getestet zu haben, gehe ich davon aus, dass dies auch für fpCEF ohne (größere) Änderungen möglich ist.

MartinBln
Beiträge: 10
Registriert: Mi 5. Aug 2020, 07:51
OS, Lazarus, FPC: macOS (L 2.1.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von MartinBln »

Nach einigen Problemen habe ich das Package CEF3 unter Lazarus auf dem Mac installieren können (s. viewtopic.php?f=23&t=13076).

Dazu musste ich u.a. in cef3cocoa.pas "Uses" ergänzen um "CocoaInt", und wie im Bug-Report (s. https://bugs.freepascal.org/view.php?id=37487) empfohlen "ClientApplication = objcclass(TCocoaApplication, CefAppProtocol)" angeben.

Leider bekomme ich LCLSimple nicht zum Laufen (s. LCLSimple_error).

Ich würde mich sehr freuen über einen Tip...

Liebe Grüsse & vielen Dank im voraus
Martin
Dateianhänge
LCLSimple_error.png
LCLSimple_error.png (101.89 KiB) 2510 mal betrachtet

MartinBln
Beiträge: 10
Registriert: Mi 5. Aug 2020, 07:51
OS, Lazarus, FPC: macOS (L 2.1.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von MartinBln »

Das Problem lag an fehlenden Framework-Dateien, die ich jetzt heruntergeladen und in Contents/Frameworks installiert habe (Chromium Embedded Framework.framework und subprocess.app).

Jetzt erhalte ich die Meldung "Unsupported CEF library version".

Ich würde mich sehr freuen über einen Tip...

Liebe Grüsse & vielen Dank im voraus
Martin

P.S. Vielleicht ist dies auch der falsche Forum-Thread? Es geht ja weniger um Weiterentwicklung als um Fragen zu der Browser-Komponente...

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von six1 »

Du reitest ein totes Pferd mit CEF 3.2840 ...

viewtopic.php?f=9&t=13056
Gruß, Michael

MartinBln
Beiträge: 10
Registriert: Mi 5. Aug 2020, 07:51
OS, Lazarus, FPC: macOS (L 2.1.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von MartinBln »

Ja, das mag sein - aber anschauen würde ich es mir trotzdem gerne.

"Unsupported CEF library version" ist nur leider eine wenig hilfreiche Meldung - hilfreicher wäre hier m.E. die verwendete und erwartete Version.

Die tatsächlich verwendete Chromium-Version (?) hängt ja von dem Chromium Embedded Framework ab, oder?
Und das scheint mir schon aktuell zu sein...

Leider ist https://cefbuilds.com/ anscheinend nicht mehr verfügbar - und bei http://www.magpcss.net/cef_downloads bin ich mir gar nicht sicher ob das überhaupt passt? Das Package ist ja CEF3 - und https://bitbucket.org/chromiumembedded/cef/src/master/ scheint mir CEF4? Vielleicht deswegen ja diese Meldung - denn von dort habe ich das Chromium Embedded Framework.

Leider konnte ich dort keinen Hinweis zu Lazarus finden - oder hab es nicht verstanden? Jedenfalls wäre es prima, wenn jemand mit mehr Ahnung da vielleicht einen kleinen Tip hätte?

Liebe Grüsse & vielen Dank
Martin

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von Michl »

Leider scheint downloaditweb (Autor von FPCEF3) nicht mehr aktiv an dem Projekt zu arbeiten. Schade. Ich habe es hier in einer 24/7 Standalone-Anwendung an einem
Rechner am Laufen, ohne Abstürze oder Speicherlecks (Lazarus Trunk, FPC Trunk, 64bit, cef_binary_3.3029.1619). Allerdings musste ich ein paar Methoden-Parameter zu Pointern ändern, sonst lässt sich FPCEF3 nicht unter FPC Trunk kompilieren (FPC 3.0.4 geht schon, ob FPC 3.2.0 out of the box geht weiß ich nicht).

Habe eben mal die Links vom Wiki gecheckt. Scheinbar ist CEF umgezogen, sodaß ich die alten Builds nicht mehr finde (ich hatte es 2019 noch runterladen können). Evtl. findest du diese ja noch irgendwo?!

CEF4Delphi hatte ich mal vor zwei, drei Monaten getestet, konnte es aber nicht in mal eben so in meine App migrieren, sodaß ich da nicht weiter probiert hatte.

Also nicht ganz trivial, die Angelegenheit. Trotzdem viel Erfolg!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von Winni »

Moin!

Immerhin gibt's davon ne Seite bei github :

https://github.com/dliw/fpCEF3

Da ist aber seit Mai 2018 nicht mehr gearbeitet Worden .

Winni

MartinBln
Beiträge: 10
Registriert: Mi 5. Aug 2020, 07:51
OS, Lazarus, FPC: macOS (L 2.1.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von MartinBln »

Vielen Dank für Eure Antworten.

Winni: fpCEF3 habe ich von github. Ja, da wurde leider seit 2 Jahren nichts mehr gemacht. Aber vielleicht kann man das ja wieder "aktivieren" - oder vielleicht noch besser - fpCEF4 anlegen?

Michi:
Ich habe auch Lazarus Trunk (Version 2.1.0 vom 10.8.), FPC 3.2.0 und fpCEF3 3.3029.1.

Methoden-Parameter musste ich nicht ändern, aber in cef3cocoa.pas wie oben beschrieben schon etwas.
Musstest Du das nicht auch?
Das könnte ja vielleicht zumindest bei github hochgeladen werden? Macht das Sinn? (Ja, ich weiss: ein totes Pferd...)

Nach Deinem Hinweis habe ich unter http://opensource.spotify.com/cefbuilds/index.html für Mac cef_binary_3.3029.1619.geeeb5d7_macosx64.tar.bz2 gefunden.
Das sollte ja passen oder?

"Leider" bekomme ich jetzt beim Starten von LCLSimple nicht mehr "Unsupported Library Version" - stattdessen stürzt LCLSimple ab.
Anbei der Crash-Report (LCLSimple_Crash).

CEF4Delphi hast Du mit Delphi getestet oder vorher konvertiert?

Könntest Du mir eventuell das, was Du zum Laufen gekriegt hast, zur Verfügung stellen?

Liebe Grüsse & vielen Dank
Martin
Dateianhänge
LCLSimple_Crash.rtf
(61.43 KiB) 84-mal heruntergeladen

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von six1 »

CEF4 hat Lazarus Komponenten dabei! Leder nur unter Windows lauffähig.
Ich habe da mehrere Tage Arbeit reingesteckt, ohne wirklich Erfolg gehabt zu haben, es unter Linux an den Start zu bekommen.
Gruß, Michael

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Weiterentwicklung Chromium Browser Komponente

Beitrag von Michl »

MartinBln hat geschrieben:
Do 13. Aug 2020, 09:02
Methoden-Parameter musste ich nicht ändern, aber in cef3cocoa.pas wie oben beschrieben schon etwas.
Musstest Du das nicht auch?
Ach je, hab vergessen zu erwähnen, daß der Rechner der Anwendung ein Windows 7 OS hat.

Der Autor hat, soviel ich weiß, fpCEF auf Grundlage von DCEF entwickelt, da er einen embedded Browser in Linux brauchte. In wie weit fpCEF3 auf dem MAC überhaupt läuft oder getestet wurde, weiß ich nicht.

Die getesteten Beispielprojekte von CEF4Delphi liefen hier (Windows 7) erstmal (hatte dafür ein separates Lazarus aufgesetzt).

Die richtige Version hast du ja erstmal!

Hast du denn alle Dateien richtig abgelegt, daß sie von deinem Programm überhaupt gefunden werden? Wo welche Dateien günstigerweise liegen sollten, hatte ich mal im Wiki geschrieben, bzw. ein Bild der Ordnerstruktur eingestellt (einfach alle Dateien inkl. Verzeichnis locales aus dem Ordner Resources, sowie alle Dateien aus dem Ordner Release (oder Ordner Debug) in das Projektverzeichnis kopieren). Wenn eine Datei fehlt, kann durchaus die Exception vom log kommen (habe eben mal icudtl.dat aus dem Projektordner genommen und habe eine External Exception 80000003 erhalten - was eine ähnliche Exception, bei dir SIGTRAP, auslöst).

Ansonsten, hast du die Release Library oder die Debug Library verwendet? Ich nutze die Release-Bibliothek. Du kannst ja mal testen, ob die andere Bibliothek evtl. läuft. Wenn du mit dem Debugger fit bist, könntest du auch versuchen die Version mit den Debugsymbolen zu debuggen, weiß aber nicht, wie aufwendig bzw. ob das überhaupt mit dem MAC realisierbar ist?!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten