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 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 :
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%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)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%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 64 bits](https://cef-builds.spotifycdn.com/cef_binary_118.6.10%2Bg38848f1%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)
* [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.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_windows64.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.7.1%2Bg99817d2%2Bchromium-118.0.5993.119_linuxarm.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.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.

View File

@ -57,6 +57,7 @@ const
MINIBROWSER_CONTEXTMENU_INCZOOM = MENU_ID_USER_FIRST + 15;
MINIBROWSER_CONTEXTMENU_DECZOOM = MENU_ID_USER_FIRST + 16;
MINIBROWSER_CONTEXTMENU_RESETZOOM = MENU_ID_USER_FIRST + 17;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN = MENU_ID_USER_FIRST + 18;
DEVTOOLS_SCREENSHOT_MSGID = 1;
DEVTOOLS_MHTML_MSGID = 2;
@ -420,6 +421,12 @@ begin
if Chromium1.CanResetZoom then
model.AddItem(MINIBROWSER_CONTEXTMENU_RESETZOOM, 'Reset zoom');
if Chromium1.Fullscreen then
begin
model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN, 'Exit fullscreen');
end;
end
else
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS, 'Show DevTools');
@ -608,6 +615,8 @@ begin
MINIBROWSER_CONTEXTMENU_RESETZOOM :
Chromium1.ResetZoomCommand;
MINIBROWSER_CONTEXTMENU_EXITFULLSCREEN :
Chromium1.ExitFullscreen(True);
end
else
case commandId of
@ -1081,12 +1090,16 @@ end;
procedure TMiniBrowserFrm.Chromium1RenderCompMsg(Sender: TObject; var aMessage : TMessage; var aHandled: Boolean);
begin
if not(FClosing) and (aMessage.Msg = WM_MOUSEMOVE) then
if FClosing then exit;
case aMessage.Msg of
WM_MOUSEMOVE :
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;
procedure TMiniBrowserFrm.Chromium1RequestMediaAccessPermission(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;

View File

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

Binary file not shown.

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="118" Minor="6" Release="10"/>
<Version Major="118" Minor="7" Release="1"/>
<Files Count="214">
<Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@ -116,6 +116,8 @@ type
function IsBackgroundHost : boolean;
procedure SetAudioMuted(mute: boolean);
function IsAudioMuted : boolean;
function IsFullscreen : boolean;
procedure ExitFullscreen(will_cause_resize: boolean);
public
class function UnWrap(data: Pointer): ICefBrowserHost;
@ -358,6 +360,16 @@ begin
Result := PCefBrowserHost(FData)^.is_audio_muted(PCefBrowserHost(FData)) <> 0;
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);
begin
PCefBrowserHost(FData)^.drag_target_drag_enter(PCefBrowserHost(FData), CefGetData(dragData), event, allowedOps);

View File

@ -361,6 +361,7 @@ type
function GetRequestContextCache : ustring;
function GetRequestContextIsGlobal : boolean;
function GetAudioMuted : boolean;
function GetFullscreen : boolean;
function GetParentFormHandle : TCefWindowHandle; virtual;
function GetRequestContext : ICefRequestContext;
function GetMediaRouter : ICefMediaRouter;
@ -1270,6 +1271,18 @@ type
/// </summary>
procedure Invalidate(type_: TCefPaintElementType = PET_VIEW);
/// <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
/// TCefWindowInfo.external_begin_frame_enabled is set to true (1).
/// </summary>
@ -1944,6 +1957,14 @@ type
/// </summary>
property AudioMuted : boolean read GetAudioMuted write SetAudioMuted;
/// <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.
/// </summary>
property SafeSearch : boolean read FSafeSearch write SetSafeSearch;
@ -5494,6 +5515,11 @@ begin
Result := Initialized and Browser.host.IsAudioMuted;
end;
function TChromiumCore.GetFullscreen : boolean;
begin
Result := Initialized and Browser.host.IsFullscreen;
end;
function TChromiumCore.GetParentFormHandle : TCefWindowHandle;
begin
InitializeWindowHandle(Result);
@ -9321,6 +9347,12 @@ begin
end;
end;
procedure TChromiumCore.ExitFullscreen(will_cause_resize: boolean);
begin
if Initialized then
Browser.Host.ExitFullscreen(will_cause_resize);
end;
procedure TChromiumCore.SendExternalBeginFrame;
begin
if Initialized then

View File

@ -1297,6 +1297,26 @@ type
/// be called on the UI thread.
/// </summary>
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>
/// Returns the hosted browser object.
@ -6801,9 +6821,9 @@ type
/// the browser content area. If |fullscreen| is false (0) the content will
/// automatically return to its original size and position. With the Alloy
/// 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
/// automatically. The cef_window_delegate_t::OnWindowFullscreenTransition
/// automatically. The ICefWindowDelegate.OnWindowFullscreenTransition
/// function will be called during the fullscreen transition for notification
/// purposes.
/// </summary>

View File

@ -6959,6 +6959,8 @@ type
is_background_host : function(self: PCefBrowserHost): integer; stdcall;
set_audio_muted : procedure(self: PCefBrowserHost; mute: 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;
/// <summary>

View File

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

View File

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