From ed9011d4d8b372646dd9f1ece0780e31501c46c5 Mon Sep 17 00:00:00 2001 From: salvadordf Date: Sun, 22 Jan 2023 09:15:40 +0100 Subject: [PATCH] Update to CEF 109.1.1 Added GlobalCEFApp.NetLogEnabled Added GlobalCEFApp.NetLogFile Added GlobalCEFApp.NetLogCaptureMode Fixed WindowInfoAsChild for GTK3 in Linux --- README.md | 14 +++++++------- packages/cef4delphi_lazarus.lpk | 2 +- source/uCEFApplicationCore.pas | 23 ++++++++++++++++++++++- source/uCEFMiscFunctions.pas | 6 ++---- source/uCEFTypes.pas | 10 ++++++++++ update_CEF4Delphi.json | 4 ++-- 6 files changed, 44 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ae50befd..a9deca85 100644 --- a/README.md +++ b/README.md @@ -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 first lines of any *.pas file. -CEF4Delphi uses CEF 109.1.11 which includes Chromium 109.0.5414.87. +CEF4Delphi uses CEF 109.1.13 which includes Chromium 109.0.5414.87. The CEF binaries used by CEF4Delphi are available for download at Spotify : -* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_windows32.tar.bz2) -* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_windows64.tar.bz2) -* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_linux64.tar.bz2) -* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_linuxarm.tar.bz2) -* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_linuxarm64.tar.bz2) -* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.11%2Bg6d4fdb2%2Bchromium-109.0.5414.87_macosx64.tar.bz2) +* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_windows32.tar.bz2) +* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_windows64.tar.bz2) +* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_linux64.tar.bz2) +* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_linuxarm.tar.bz2) +* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_linuxarm64.tar.bz2) +* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_109.1.13%2Bg18f6895%2Bchromium-109.0.5414.87_macosx64.tar.bz2) CEF4Delphi was developed and tested on Delphi 11.2 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3, Delphi 10.4 and Lazarus 2.2.4/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components. diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk index d11c2cba..c07d424d 100644 --- a/packages/cef4delphi_lazarus.lpk +++ b/packages/cef4delphi_lazarus.lpk @@ -21,7 +21,7 @@ - + diff --git a/source/uCEFApplicationCore.pas b/source/uCEFApplicationCore.pas index 2f7bc4ac..d68b2aa9 100644 --- a/source/uCEFApplicationCore.pas +++ b/source/uCEFApplicationCore.pas @@ -69,7 +69,7 @@ uses const CEF_SUPPORTED_VERSION_MAJOR = 109; CEF_SUPPORTED_VERSION_MINOR = 1; - CEF_SUPPORTED_VERSION_RELEASE = 11; + CEF_SUPPORTED_VERSION_RELEASE = 13; CEF_SUPPORTED_VERSION_BUILD = 0; CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR; @@ -191,6 +191,10 @@ type FAllowInsecureLocalhost : boolean; FKioskPrinting : boolean; FTreatInsecureOriginAsSecure : ustring; + FNetLogEnabled : boolean; + FNetLogFile : ustring; + FNetLogCaptureMode : TCefNetLogCaptureMode; + // Fields used during the CEF initialization FWindowsSandboxInfo : pointer; @@ -516,6 +520,9 @@ type property AllowInsecureLocalhost : boolean read FAllowInsecureLocalhost write FAllowInsecureLocalhost; // --allow-insecure-localhost property KioskPrinting : boolean read FKioskPrinting write SetKioskPrinting; // --kiosk-printing property TreatInsecureOriginAsSecure : ustring read FTreatInsecureOriginAsSecure write FTreatInsecureOriginAsSecure; // --unsafely-treat-insecure-origin-as-secure + property NetLogEnabled : boolean read FNetLogEnabled write FNetLogEnabled; // --log-net-log + property NetLogFile : ustring read FNetLogFile write FNetLogFile; // --log-net-log + property NetLogCaptureMode : TCefNetLogCaptureMode read FNetLogCaptureMode write FNetLogCaptureMode; // --net-log-capture-mode // Properties used during the CEF initialization property WindowsSandboxInfo : Pointer read FWindowsSandboxInfo write FWindowsSandboxInfo; @@ -769,6 +776,9 @@ begin FAllowInsecureLocalhost := False; FKioskPrinting := False; FTreatInsecureOriginAsSecure := ''; + FNetLogEnabled := False; + FNetLogFile := ''; + FNetLogCaptureMode := nlcmDefault; // Fields used during the CEF initialization FWindowsSandboxInfo := nil; @@ -2124,6 +2134,17 @@ begin if (length(FTreatInsecureOriginAsSecure) > 0) then ReplaceSwitch(aKeys, aValues, '--unsafely-treat-insecure-origin-as-secure', FTreatInsecureOriginAsSecure); + if FNetLogEnabled then + begin + ReplaceSwitch(aKeys, aValues, '--log-net-log', FNetLogFile); + + case FNetLogCaptureMode of + nlcmDefault : ReplaceSwitch(aKeys, aValues, '--net-log-capture-mode', 'Default'); + nlcmIncludeSensitive : ReplaceSwitch(aKeys, aValues, '--net-log-capture-mode', 'IncludeSensitive'); + nlcmEverything : ReplaceSwitch(aKeys, aValues, '--net-log-capture-mode', 'Everything'); + end; + end; + // The list of features you can enable is here : // https://chromium.googlesource.com/chromium/src/+/master/chrome/common/chrome_features.cc // https://source.chromium.org/chromium/chromium/src/+/main:content/public/common/content_features.cc diff --git a/source/uCEFMiscFunctions.pas b/source/uCEFMiscFunctions.pas index 9f3cffc4..b05db682 100644 --- a/source/uCEFMiscFunctions.pas +++ b/source/uCEFMiscFunctions.pas @@ -910,10 +910,8 @@ begin TempParent := gdk_window_xwindow(PGtkWidget(aParent)^.window); {$ENDIF} {$IFDEF LCLGTK3} - if ValidCefWindowHandle(aParent) and - (TGtk3Window(aParent).widget <> nil) and - (TGtk3Window(aParent).widget^.window <> nil)then - TempParent := gdk_x11_window_get_xid(TGtk3Window(aParent).widget^.window); + if ValidCefWindowHandle(aParent) then + TempParent := gdk_x11_window_get_xid(TGtk3Container(aParent).Widget^.window); {$ENDIF} {$ENDIF} diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas index 69e4d895..b23880e2 100644 --- a/source/uCEFTypes.pas +++ b/source/uCEFTypes.pas @@ -504,6 +504,16 @@ type hpDisableNonProxiedUDP ); + // Values used by the --net-log-capture-mode command line switch. + // Sets the granularity of events to capture in the network log. + // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/network_service_instance_impl.cc + // https://source.chromium.org/chromium/chromium/src/+/main:net/log/net_log_capture_mode.h + TCefNetLogCaptureMode = ( + nlcmDefault, + nlcmIncludeSensitive, + nlcmEverything + ); + // Used by TCEFFileDialogInfo TCEFDialogType = (dtOpen, dtOpenMultiple, dtOpenFolder, dtSave); diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index 088892fb..9c0eb5c6 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,9 +2,9 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 455, + "InternalVersion" : 456, "Name" : "cef4delphi_lazarus.lpk", - "Version" : "109.1.11" + "Version" : "109.1.13" } ], "UpdatePackageData" : {