1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-08-04 21:32:54 +02:00

Update to CEF 132.3.2

This commit is contained in:
Salvador Díaz Fau
2025-02-04 15:00:27 +01:00
parent f0f4de8b3b
commit 9e25a062b0
5 changed files with 114 additions and 13 deletions

View File

@ -3,17 +3,17 @@ CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chro
CEF4Delphi is based on DCEF3 and fpCEF3. The original license of those projects still applies to CEF4Delphi. Read the license terms in the LICENSE.md file.
CEF4Delphi uses CEF 132.3.1 which includes Chromium 132.0.6834.83.
CEF4Delphi uses CEF 132.3.2 which includes Chromium 132.0.6834.161.
The CEF binaries used by CEF4Delphi are available for download at Spotify :
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_windows32.tar.bz2)
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_windows64.tar.bz2)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_linux64.tar.bz2)
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_linuxarm.tar.bz2)
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_linuxarm64.tar.bz2)
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.1%2Bg144febe%2Bchromium-132.0.6834.83_macosx64.tar.bz2)
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_windows32.tar.bz2)
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_windows64.tar.bz2)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_linux64.tar.bz2)
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_linuxarm.tar.bz2)
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_linuxarm64.tar.bz2)
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_132.3.2%2Bg4997b2f%2Bchromium-132.0.6834.161_macosx64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 12.2 and it has been tested in Delphi 6, Delphi XE, Delphi 10, Delphi 11 and Lazarus 3.6/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
CEF4Delphi was developed and tested on Delphi 12.2 and it has been tested in Delphi 6, Delphi XE, Delphi 10, Delphi 11 and Lazarus 3.8/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
CEF4Delphi demos have been tested in Windows 10, Windows 11, Linux Mint 22 and Raspberry Pi OS.

View File

@ -21,7 +21,7 @@
</CompilerOptions>
<Description Value="CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC."/>
<License Value="MPL 1.1"/>
<Version Major="132" Minor="3" Release="1"/>
<Version Major="132" Minor="3" Release="2"/>
<Files Count="214">
<Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@ -16,6 +16,7 @@ uses
{$IFDEF MSWINDOWS}Windows, imm, {$ENDIF} Classes, Forms, Controls, Graphics,
{$IFDEF FPC}
LCLProc, LCLType, LCLIntf, LResources, LMessages, InterfaceBase, {$IFDEF MSWINDOWS}Win32Extra,{$ENDIF}
{$IFDEF LINUXFPC}Messages,{$ENDIF}
{$ELSE}
Messages,
{$ENDIF}
@ -26,6 +27,10 @@ uses
type
TOnIMECommitTextEvent = procedure(Sender: TObject; const aText : ustring; const replacement_range : PCefRange; relative_cursor_pos : integer) of object;
TOnIMESetCompositionEvent = procedure(Sender: TObject; const aText : ustring; const underlines : TCefCompositionUnderlineDynArray; const replacement_range, selection_range : TCefRange) of object;
{$IFDEF LINUXFPC}
TOnIMEPreEditChangedEvent = procedure(Sender: TObject; aFlag: cardinal; const aPreEditText: ustring) of object;
TOnIMECommitEvent = procedure(Sender: TObject; const aCommitText: ustring) of object;
{$ENDIF}
{$IFDEF MSWINDOWS}
TOnHandledMessageEvent = procedure(Sender: TObject; var aMessage: TMessage; var aHandled : boolean) of object;
{$ENDIF}
@ -61,6 +66,12 @@ type
{$ELSE}
FSyncObj : TCriticalSection;
{$ENDIF}
{$IFDEF LINUXFPC}
FOnIMEPreEditStart : TNotifyEvent;
FOnIMEPreEditEnd : TNotifyEvent;
FOnIMEPreEditChanged : TOnIMEPreEditChangedEvent;
FOnIMECommit : TOnIMECommitEvent;
{$ENDIF}
procedure CreateSyncObj;
@ -106,6 +117,9 @@ type
procedure DoOnIMECommitText(const aText : ustring; const replacement_range : PCefRange; relative_cursor_pos : integer); virtual;
procedure DoOnIMESetComposition(const aText : ustring; const underlines : TCefCompositionUnderlineDynArray; const replacement_range, selection_range : TCefRange); virtual;
{$ENDIF}
{$IFDEF LINUXFPC}
procedure WMIMEComposition(var aMessage: TMessage); message LM_IM_COMPOSITION;
{$ENDIF}
public
constructor Create(AOwner: TComponent); override;
@ -319,6 +333,52 @@ type
/// </remarks>
property OnPointerUpdate : TOnHandledMessageEvent read FOnPointerUpdate write FOnPointerUpdate;
{$ENDIF}
{$IFDEF LINUXFPC}
/// <summary>
/// The preedit-start signal is emitted when a new preediting sequence starts.
/// </summary>
/// <remarks>
/// <para><see href="https://docs.gtk.org/gtk4/class.IMContext.html">See the GtkIMContext article.</see></para>
/// <para><see href="https://docs.gtk.org/gtk4/signal.IMContext.preedit-start.html">See the preedit-start article.</see></para>
/// <para>This event is only triggered by Lazarus in GTK2 when WITH_GTK2_IM is defined.</para>
/// <para>You need to open IDE dialog "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM; then recompile the IDE.</para>
/// </remarks>
property OnIMEPreEditStart : TNotifyEvent read FOnIMEPreEditStart write FOnIMEPreEditStart;
/// <summary>
/// The preedit-end signal is emitted when a preediting sequence has been completed or canceled.
/// </summary>
/// <remarks>
/// <para><see href="https://docs.gtk.org/gtk4/class.IMContext.html">See the GtkIMContext article.</see></para>
/// <para><see href="https://docs.gtk.org/gtk4/signal.IMContext.preedit-end.html">See the preedit-end article.</see></para>
/// <para>This event is only triggered by Lazarus in GTK2 when WITH_GTK2_IM is defined.</para>
/// <para>You need to open IDE dialog "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM; then recompile the IDE.</para>
/// </remarks>
property OnIMEPreEditEnd : TNotifyEvent read FOnIMEPreEditEnd write FOnIMEPreEditEnd;
/// <summary>
/// The preedit-changed signal is emitted whenever the preedit sequence currently being entered has changed.
/// It is also emitted at the end of a preedit sequence, in which case gtk_im_context_get_preedit_string() returns the empty string.
/// </summary>
/// <remarks>
/// <para><see href="https://docs.gtk.org/gtk4/class.IMContext.html">See the GtkIMContext article.</see></para>
/// <para><see href="https://docs.gtk.org/gtk4/signal.IMContext.preedit-changed.html">See the preedit-changed article.</see></para>
/// <para>This event is only triggered by Lazarus in GTK2 when WITH_GTK2_IM is defined.</para>
/// <para>You need to open IDE dialog "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM; then recompile the IDE.</para>
/// </remarks>
property OnIMEPreEditChanged : TOnIMEPreEditChangedEvent read FOnIMEPreEditChanged write FOnIMEPreEditChanged;
/// <summary>
/// The commit signal is emitted when a complete input sequence has been entered by the user.
/// If the commit comes after a preediting sequence, the commit signal is emitted after preedit-end.
/// This can be a single character immediately after a key press or the final result of preediting.
/// Default handler: The default handler is called after the handlers added via g_signal_connect().
/// </summary>
/// <remarks>
/// <para><see href="https://docs.gtk.org/gtk4/class.IMContext.html">See the GtkIMContext article.</see></para>
/// <para><see href="https://docs.gtk.org/gtk4/signal.IMContext.commit.html">See the preedit-start article.</see></para>
/// <para>This event is only triggered by Lazarus in GTK2 when WITH_GTK2_IM is defined.</para>
/// <para>You need to open IDE dialog "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM; then recompile the IDE.</para>
/// </remarks>
property OnIMECommit : TOnIMECommitEvent read FOnIMECommit write FOnIMECommit;
{$ENDIF}
/// <summary>
/// Event triggered before the AlphaBlend call that transfer the web contents from the
/// bitmap buffer to the panel when the Transparent property is True.
@ -486,6 +546,12 @@ begin
FSyncObj := nil;
FMustInitBuffer := True;
{$ENDIF}
{$IFDEF LINUXFPC}
FOnIMEPreEditStart := nil;
FOnIMEPreEditEnd := nil;
FOnIMEPreEditChanged := nil;
FOnIMECommit := nil;
{$ENDIF}
end;
destructor TBufferPanel.Destroy;
@ -995,6 +1061,41 @@ begin
end;
{$ENDIF}
{$IFDEF LINUXFPC}
// The LM_IM_COMPOSITION message is only used by Lazarus in GTK2 when WITH_GTK2_IM is defined.
// You need to open IDE dialog "Tools / Configure 'Build Lazarus'", and there enable the define: WITH_GTK2_IM; then recompile the IDE.
procedure TBufferPanel.WMIMEComposition(var aMessage: TMessage);
var
TempText : ustring;
TempCommit : string;
begin
case aMessage.WPARAM of
GTK_IM_FLAG_START :
if assigned(FOnIMEPreEditStart) then
FOnIMEPreEditStart(self);
GTK_IM_FLAG_END :
if assigned(FOnIMEPreEditEnd) then
FOnIMEPreEditEnd(self);
GTK_IM_FLAG_COMMIT :
if assigned(FOnIMECommit) then
begin
TempCommit := pchar(aMessage.LPARAM);
TempText := UTF8Decode(TempCommit);
FOnIMECommit(self, TempText);
end;
else
if assigned(FOnIMEPreEditChanged) then
begin
TempText := UTF8Decode(pchar(aMessage.LPARAM));
FOnIMEPreEditChanged(self, aMessage.WPARAM, TempText);
end;
end;
end;
{$ENDIF}
function TBufferPanel.GetBufferBits : pointer;
begin
if (FBuffer <> nil) and (FBuffer.Height <> 0) then

View File

@ -1,9 +1,9 @@
CEF_SUPPORTED_VERSION_MAJOR = 132;
CEF_SUPPORTED_VERSION_MINOR = 3;
CEF_SUPPORTED_VERSION_RELEASE = 1;
CEF_SUPPORTED_VERSION_RELEASE = 2;
CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR;
CEF_CHROMEELF_VERSION_MINOR = 0;
CEF_CHROMEELF_VERSION_RELEASE = 6834;
CEF_CHROMEELF_VERSION_BUILD = 83;
CEF_CHROMEELF_VERSION_BUILD = 161;

View File

@ -2,9 +2,9 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
"InternalVersion" : 694,
"InternalVersion" : 695,
"Name" : "cef4delphi_lazarus.lpk",
"Version" : "132.3.1"
"Version" : "132.3.2"
}
],
"UpdatePackageData" : {