1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2024-11-24 08:02:15 +02:00

Update to CEF 118.7.1

This commit is contained in:
salvadordf 2023-11-08 19:42:42 +01:00
parent b0f58ea32b
commit 792a602efa
11 changed files with 111 additions and 22 deletions

View File

@ -3,15 +3,15 @@ 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 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 118.6.10 which includes Chromium 118.0.5993.119. CEF4Delphi uses CEF 118.7.1 which includes Chromium 118.0.5993.119.
The CEF binaries used by CEF4Delphi are available for download at Spotify : The CEF binaries used by CEF4Delphi are available for download at Spotify :
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_windows32.tar.bz2) * [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_windows32.tar.bz2)
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_windows64.tar.bz2) * [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_windows64.tar.bz2)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_linux64.tar.bz2) * [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_linux64.tar.bz2)
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_linuxarm.tar.bz2) * [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_linuxarm.tar.bz2)
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_linuxarm64.tar.bz2) * [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_linuxarm64.tar.bz2)
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%2Bchromium-118.0.5993.119_macosx64.tar.bz2) * [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_macosx64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 12.0 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 11 and Lazarus 2.2.6/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components. CEF4Delphi was developed and tested on Delphi 12.0 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 11 and Lazarus 2.2.6/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.

View File

@ -57,6 +57,7 @@ const
MINIBROWSER_CONTEXTMENU_INCZOOM = MENU_ID_USER_FIRST + 15; MINIBROWSER_CONTEXTMENU_INCZOOM = MENU_ID_USER_FIRST + 15;
MINIBROWSER_CONTEXTMENU_DECZOOM = MENU_ID_USER_FIRST + 16; MINIBROWSER_CONTEXTMENU_DECZOOM = MENU_ID_USER_FIRST + 16;
MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17; MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18;
DEVTOOLS_SCREENSHOT_MSGID = 1; DEVTOOLS_SCREENSHOT_MSGID = 1;
DEVTOOLS_MHTML_MSGID = 2; DEVTOOLS_MHTML_MSGID = 2;
@ -420,6 +421,12 @@ begin
if Chromium1.CanResetZoom then if Chromium1.CanResetZoom then
model.AddItem(MINIBROWSER_CONTEXTMENU_RESETZOOM, 'Reset zoom'); model.AddItem(MINIBROWSER_CONTEXTMENU_RESETZOOM, 'Reset zoom');
if Chromium1.Fullscreen then
begin
model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen');
end;
end end
else else
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools'); model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools');
@ -608,6 +615,8 @@ begin
MINIBROWSER_CONTEXTMENU_RESETZOOM : MINIBROWSER_CONTEXTMENU_RESETZOOM :
Chromium1.ResetZoomCommand; Chromium1.ResetZoomCommand;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN :
Chromium1.ExitFullscreen(True);
end end
else else
case commandId of case commandId of
@ -1081,11 +1090,15 @@ end;
procedure TMiniBrowserFrm.Chromium1RenderCompMsg(Sender: TObject; var aMessage : TMessage; var aHandled: Boolean); procedure TMiniBrowserFrm.Chromium1RenderCompMsg(Sender: TObject; var aMessage : TMessage; var aHandled: Boolean);
begin begin
if not(FClosing) and (aMessage.Msg = WM_MOUSEMOVE) then if FClosing then exit;
begin
StatusBar1.Panels[2].Text := 'x : ' + inttostr(aMessage.lParam and $FFFF); case aMessage.Msg of
StatusBar1.Panels[3].Text := 'y : ' + inttostr((aMessage.lParam and $FFFF0000) shr 16); WM_MOUSEMOVE :
end; begin
StatusBar1.Panels[2].Text := 'x : ' + inttostr(aMessage.lParam and $FFFF);
StatusBar1.Panels[3].Text := 'y : ' + inttostr((aMessage.lParam and $FFFF0000) shr 16);
end;
end;
end; end;
procedure TMiniBrowserFrm.Chromium1RequestMediaAccessPermission(Sender: TObject; procedure TMiniBrowserFrm.Chromium1RequestMediaAccessPermission(Sender: TObject;

View File

@ -83,6 +83,7 @@ const
MINIBROWSER_CONTEXTMENU_INCZOOM = MENU_ID_USER_FIRST + 15; MINIBROWSER_CONTEXTMENU_INCZOOM = MENU_ID_USER_FIRST + 15;
MINIBROWSER_CONTEXTMENU_DECZOOM = MENU_ID_USER_FIRST + 16; MINIBROWSER_CONTEXTMENU_DECZOOM = MENU_ID_USER_FIRST + 16;
MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17; MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18;
DEVTOOLS_SCREENSHOT_MSGID = 1; DEVTOOLS_SCREENSHOT_MSGID = 1;
DEVTOOLS_MHTML_MSGID = 2; DEVTOOLS_MHTML_MSGID = 2;
@ -532,6 +533,12 @@ begin
if Chromium1.CanResetZoom then if Chromium1.CanResetZoom then
model.AddItem(MINIBROWSER_CONTEXTMENU_RESETZOOM, 'Reset zoom'); model.AddItem(MINIBROWSER_CONTEXTMENU_RESETZOOM, 'Reset zoom');
if Chromium1.Fullscreen then
begin
model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen');
end;
end end
else else
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools'); model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools');
@ -701,6 +708,9 @@ begin
MINIBROWSER_CONTEXTMENU_RESETZOOM : MINIBROWSER_CONTEXTMENU_RESETZOOM :
Chromium1.ResetZoomCommand; Chromium1.ResetZoomCommand;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN :
Chromium1.ExitFullscreen(True);
end end
else else
case commandId of case commandId of

Binary file not shown.

View File

@ -21,7 +21,7 @@
</CompilerOptions> </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."/> <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"/> <License Value="MPL 1.1"/>
<Version Major="118" Minor="6" Release="10"/> <Version Major="118" Minor="7" Release="1"/>
<Files Count="214"> <Files Count="214">
<Item1> <Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/> <Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@ -116,6 +116,8 @@ type
function IsBackgroundHost : boolean; function IsBackgroundHost : boolean;
procedure SetAudioMuted(mute: boolean); procedure SetAudioMuted(mute: boolean);
function IsAudioMuted : boolean; function IsAudioMuted : boolean;
function IsFullscreen : boolean;
procedure ExitFullscreen(will_cause_resize: boolean);
public public
class function UnWrap(data: Pointer): ICefBrowserHost; class function UnWrap(data: Pointer): ICefBrowserHost;
@ -358,6 +360,16 @@ begin
Result := PCefBrowserHost(FData)^.is_audio_muted(PCefBrowserHost(FData)) <> 0; Result := PCefBrowserHost(FData)^.is_audio_muted(PCefBrowserHost(FData)) <> 0;
end; end;
function TCefBrowserHostRef.IsFullscreen : boolean;
begin
Result := PCefBrowserHost(FData)^.is_fullscreen(PCefBrowserHost(FData)) <> 0;
end;
procedure TCefBrowserHostRef.ExitFullscreen(will_cause_resize: boolean);
begin
PCefBrowserHost(FData)^.exit_fullscreen(PCefBrowserHost(FData), Ord(will_cause_resize));
end;
procedure TCefBrowserHostRef.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations); procedure TCefBrowserHostRef.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations);
begin begin
PCefBrowserHost(FData)^.drag_target_drag_enter(PCefBrowserHost(FData), CefGetData(dragData), event, allowedOps); PCefBrowserHost(FData)^.drag_target_drag_enter(PCefBrowserHost(FData), CefGetData(dragData), event, allowedOps);

View File

@ -361,6 +361,7 @@ type
function GetRequestContextCache : ustring; function GetRequestContextCache : ustring;
function GetRequestContextIsGlobal : boolean; function GetRequestContextIsGlobal : boolean;
function GetAudioMuted : boolean; function GetAudioMuted : boolean;
function GetFullscreen : boolean;
function GetParentFormHandle : TCefWindowHandle; virtual; function GetParentFormHandle : TCefWindowHandle; virtual;
function GetRequestContext : ICefRequestContext; function GetRequestContext : ICefRequestContext;
function GetMediaRouter : ICefMediaRouter; function GetMediaRouter : ICefMediaRouter;
@ -1270,6 +1271,18 @@ type
/// </summary> /// </summary>
procedure Invalidate(type_: TCefPaintElementType = PET_VIEW); procedure Invalidate(type_: TCefPaintElementType = PET_VIEW);
/// <summary> /// <summary>
/// Requests the renderer to exit browser fullscreen. In most cases exiting
/// window fullscreen should also exit browser fullscreen. With the Alloy
/// runtime this function should be called in response to a user action such
/// as clicking the green traffic light button on MacOS
/// (ICefWindowDelegate.OnWindowFullscreenTransition callback) or pressing
/// the "ESC" key (ICefKeyboardHandler.OnPreKeyEvent callback). With the
/// Chrome runtime these standard exit actions are handled internally but
/// new/additional user actions can use this function. Set |will_cause_resize|
/// to true (1) if exiting browser fullscreen will cause a view resize.
/// </summary>
procedure ExitFullscreen(will_cause_resize: boolean);
/// <summary>
/// Issue a BeginFrame request to Chromium. Only valid when /// Issue a BeginFrame request to Chromium. Only valid when
/// TCefWindowInfo.external_begin_frame_enabled is set to true (1). /// TCefWindowInfo.external_begin_frame_enabled is set to true (1).
/// </summary> /// </summary>
@ -1944,6 +1957,14 @@ type
/// </summary> /// </summary>
property AudioMuted : boolean read GetAudioMuted write SetAudioMuted; property AudioMuted : boolean read GetAudioMuted write SetAudioMuted;
/// <summary> /// <summary>
/// Returns true (1) if the renderer is currently in browser fullscreen. This
/// differs from window fullscreen in that browser fullscreen is entered using
/// the JavaScript Fullscreen API and modifies CSS attributes such as the
/// ::backdrop pseudo-element and :fullscreen pseudo-structure. This property
/// can only be called on the UI thread.
/// </summary>
property Fullscreen : boolean read GetFullscreen;
/// <summary>
/// Forces the Google safesearch in the browser preferences. /// Forces the Google safesearch in the browser preferences.
/// </summary> /// </summary>
property SafeSearch : boolean read FSafeSearch write SetSafeSearch; property SafeSearch : boolean read FSafeSearch write SetSafeSearch;
@ -5494,6 +5515,11 @@ begin
Result := Initialized and Browser.host.IsAudioMuted; Result := Initialized and Browser.host.IsAudioMuted;
end; end;
function TChromiumCore.GetFullscreen : boolean;
begin
Result := Initialized and Browser.host.IsFullscreen;
end;
function TChromiumCore.GetParentFormHandle : TCefWindowHandle; function TChromiumCore.GetParentFormHandle : TCefWindowHandle;
begin begin
InitializeWindowHandle(Result); InitializeWindowHandle(Result);
@ -9321,6 +9347,12 @@ begin
end; end;
end; end;
procedure TChromiumCore.ExitFullscreen(will_cause_resize: boolean);
begin
if Initialized then
Browser.Host.ExitFullscreen(will_cause_resize);
end;
procedure TChromiumCore.SendExternalBeginFrame; procedure TChromiumCore.SendExternalBeginFrame;
begin begin
if Initialized then if Initialized then

View File

@ -1297,6 +1297,26 @@ type
/// be called on the UI thread. /// be called on the UI thread.
/// </summary> /// </summary>
function IsAudioMuted : boolean; function IsAudioMuted : boolean;
/// <summary>
/// Returns true (1) if the renderer is currently in browser fullscreen. This
/// differs from window fullscreen in that browser fullscreen is entered using
/// the JavaScript Fullscreen API and modifies CSS attributes such as the
/// ::backdrop pseudo-element and :fullscreen pseudo-structure. This function
/// can only be called on the UI thread.
/// </summary>
function IsFullscreen : boolean;
/// <summary>
/// Requests the renderer to exit browser fullscreen. In most cases exiting
/// window fullscreen should also exit browser fullscreen. With the Alloy
/// runtime this function should be called in response to a user action such
/// as clicking the green traffic light button on MacOS
/// (ICefWindowDelegate.OnWindowFullscreenTransition callback) or pressing
/// the "ESC" key (ICefKeyboardHandler.OnPreKeyEvent callback). With the
/// Chrome runtime these standard exit actions are handled internally but
/// new/additional user actions can use this function. Set |will_cause_resize|
/// to true (1) if exiting browser fullscreen will cause a view resize.
/// </summary>
procedure ExitFullscreen(will_cause_resize: boolean);
/// <summary> /// <summary>
/// Returns the hosted browser object. /// Returns the hosted browser object.
@ -6801,9 +6821,9 @@ type
/// the browser content area. If |fullscreen| is false (0) the content will /// the browser content area. If |fullscreen| is false (0) the content will
/// automatically return to its original size and position. With the Alloy /// automatically return to its original size and position. With the Alloy
/// runtime the client is responsible for triggering the fullscreen transition /// runtime the client is responsible for triggering the fullscreen transition
/// (for example, by calling cef_window_t::SetFullscreen when using Views). /// (for example, by calling ICefWindow.SetFullscreen when using Views).
/// With the Chrome runtime the fullscreen transition will be triggered /// With the Chrome runtime the fullscreen transition will be triggered
/// automatically. The cef_window_delegate_t::OnWindowFullscreenTransition /// automatically. The ICefWindowDelegate.OnWindowFullscreenTransition
/// function will be called during the fullscreen transition for notification /// function will be called during the fullscreen transition for notification
/// purposes. /// purposes.
/// </summary> /// </summary>

View File

@ -6959,6 +6959,8 @@ type
is_background_host : function(self: PCefBrowserHost): integer; stdcall; is_background_host : function(self: PCefBrowserHost): integer; stdcall;
set_audio_muted : procedure(self: PCefBrowserHost; mute: integer); stdcall; set_audio_muted : procedure(self: PCefBrowserHost; mute: integer); stdcall;
is_audio_muted : function(self: PCefBrowserHost): integer; stdcall; is_audio_muted : function(self: PCefBrowserHost): integer; stdcall;
is_fullscreen : function(self: PCefBrowserHost): integer; stdcall;
exit_fullscreen : procedure(self: PCefBrowserHost; will_cause_resize: integer); stdcall;
end; end;
/// <summary> /// <summary>

View File

@ -1,6 +1,6 @@
CEF_SUPPORTED_VERSION_MAJOR = 118; CEF_SUPPORTED_VERSION_MAJOR = 118;
CEF_SUPPORTED_VERSION_MINOR = 6; CEF_SUPPORTED_VERSION_MINOR = 7;
CEF_SUPPORTED_VERSION_RELEASE = 10; CEF_SUPPORTED_VERSION_RELEASE = 1;
CEF_SUPPORTED_VERSION_BUILD = 0; CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR; CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR;

View File

@ -2,9 +2,9 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 538, "InternalVersion" : 539,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "118.6.10" "Version" : "118.7.1"
} }
], ],
"UpdatePackageData" : { "UpdatePackageData" : {