1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-08-14 21:42:50 +02:00

Update to CEF 107.1.9

This commit is contained in:
salvadordf
2022-11-10 12:37:19 +01:00
parent 42da839938
commit 83a2d51322
9 changed files with 114 additions and 100 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 first lines of any *.pas file. 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 107.1.7 which includes Chromium 107.0.5304.88. CEF4Delphi uses CEF 107.1.9 which includes Chromium 107.0.5304.110.
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_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_windows32.tar.bz2) * [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_windows32.tar.bz2)
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_windows64.tar.bz2) * [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_windows64.tar.bz2)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_linux64.tar.bz2) * [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_linux64.tar.bz2)
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_linuxarm.tar.bz2) * [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_linuxarm.tar.bz2)
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_linuxarm64.tar.bz2) * [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_linuxarm64.tar.bz2)
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.7%2Bg59a795c%2Bchromium-107.0.5304.88_macosx64.tar.bz2) * [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_107.1.9%2Bg1f0a21a%2Bchromium-107.0.5304.110_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. 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.

View File

@@ -161,7 +161,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
uCEFMiscFunctions, uBrowserTab; uCEFApplication, uCEFMiscFunctions, uBrowserTab;
// The TChromium events are executed in a CEF thread and we should only update the // The TChromium events are executed in a CEF thread and we should only update the
// GUI controls in the main application thread. // GUI controls in the main application thread.
@@ -320,6 +320,9 @@ begin
FClosing := True; FClosing := True;
NavControlPnl.Enabled := False; NavControlPnl.Enabled := False;
Chromium1.CloseBrowser(True); Chromium1.CloseBrowser(True);
if GlobalCEFApp.ChromeRuntime then
CEFWindowParent1.Free;
end; end;
end; end;

View File

@@ -194,10 +194,7 @@ begin
GlobalCEFApp.cache := 'cache'; GlobalCEFApp.cache := 'cache';
GlobalCEFApp.EnablePrintPreview := True; GlobalCEFApp.EnablePrintPreview := True;
GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized; GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized;
//GlobalCEFApp.ChromeRuntime := True;
// This is a workaround for the CEF4Delphi issue #324 :
// https://github.com/salvadordf/CEF4Delphi/issues/324
GlobalCEFApp.DisableFeatures := 'WinUseBrowserSpellChecker';
end; end;
procedure TMainForm.EnableButtonPnl; procedure TMainForm.EnableButtonPnl;
@@ -535,55 +532,61 @@ function TMainForm.DoOnBeforePopup(var windowInfo : TCefWindowInfo;
const popupFeatures : TCefPopupFeatures; const popupFeatures : TCefPopupFeatures;
targetDisposition : TCefWindowOpenDisposition) : boolean; targetDisposition : TCefWindowOpenDisposition) : boolean;
begin begin
try if GlobalCEFApp.ChromeRuntime then
FCriticalSection.Acquire; Result := False
else
try
FCriticalSection.Acquire;
case targetDisposition of case targetDisposition of
WOD_NEW_FOREGROUND_TAB, WOD_NEW_FOREGROUND_TAB,
WOD_NEW_BACKGROUND_TAB : WOD_NEW_BACKGROUND_TAB :
Result := (FHiddenTab <> nil) and Result := (FHiddenTab <> nil) and
FHiddenTab.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and FHiddenTab.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and
PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(False)); PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(False));
WOD_NEW_WINDOW, WOD_NEW_WINDOW,
WOD_NEW_POPUP : WOD_NEW_POPUP :
Result := (FChildForm <> nil) and Result := (FChildForm <> nil) and
FChildForm.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and FChildForm.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and
PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(False)); PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(False));
else Result := False; else Result := False;
end;
finally
FCriticalSection.Release;
end; end;
finally
FCriticalSection.Release;
end;
end; end;
function TMainForm.DoOpenUrlFromTab(const targetUrl : string; function TMainForm.DoOpenUrlFromTab(const targetUrl : string;
targetDisposition : TCefWindowOpenDisposition) : boolean; targetDisposition : TCefWindowOpenDisposition) : boolean;
begin begin
try if GlobalCEFApp.ChromeRuntime then
FCriticalSection.Acquire; Result := True
else
try
FCriticalSection.Acquire;
case targetDisposition of case targetDisposition of
WOD_NEW_FOREGROUND_TAB, WOD_NEW_FOREGROUND_TAB,
WOD_NEW_BACKGROUND_TAB : WOD_NEW_BACKGROUND_TAB :
begin begin
FPendingURL := targetUrl; FPendingURL := targetUrl;
Result := PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(True)); Result := PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(True));
end; end;
WOD_NEW_WINDOW, WOD_NEW_WINDOW,
WOD_NEW_POPUP : WOD_NEW_POPUP :
begin begin
FPendingURL := targetUrl; FPendingURL := targetUrl;
Result := PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(True)); Result := PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(True));
end end
else Result := False; else Result := False;
end;
finally
FCriticalSection.Release;
end; end;
finally
FCriticalSection.Release;
end;
end; end;
end. end.

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="11"/> <Version Value="12"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<General> <General>
<Flags> <Flags>
@@ -9,9 +9,9 @@
<MainUnitHasCreateFormStatements Value="False"/> <MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/> <MainUnitHasTitleStatement Value="False"/>
<MainUnitHasScaledStatement Value="False"/> <MainUnitHasScaledStatement Value="False"/>
<CompatibilityMode Value="True"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="TabbedBrowser2"/> <Title Value="TabbedBrowser2"/>
<UseAppBundle Value="False"/> <UseAppBundle Value="False"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
@@ -25,7 +25,6 @@
</PublishOptions> </PublishOptions>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>
<Modes Count="0"/>
</RunParams> </RunParams>
<RequiredPackages Count="2"> <RequiredPackages Count="2">
<Item1> <Item1>
@@ -79,6 +78,9 @@
</SyntaxOptions> </SyntaxOptions>
</Parsing> </Parsing>
<Linking> <Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2Set"/>
</Debugging>
<Options> <Options>
<Win32> <Win32>
<GraphicApplication Value="True"/> <GraphicApplication Value="True"/>

View File

@@ -163,7 +163,7 @@ implementation
{$R *.lfm} {$R *.lfm}
uses uses
uCEFMiscFunctions, uBrowserTab; uCEFApplication, uCEFMiscFunctions, uBrowserTab;
// The TChromium events are executed in a CEF thread and we should only update the // The TChromium events are executed in a CEF thread and we should only update the
// GUI controls in the main application thread. // GUI controls in the main application thread.
@@ -321,7 +321,10 @@ begin
begin begin
FClosing := True; FClosing := True;
NavControlPnl.Enabled := False; NavControlPnl.Enabled := False;
Chromium1.CloseBrowser(True); Chromium1.CloseBrowser(True);
if GlobalCEFApp.ChromeRuntime then
CEFWindowParent1.Free;
end; end;
end; end;

View File

@@ -196,10 +196,7 @@ begin
GlobalCEFApp.cache := 'cache'; GlobalCEFApp.cache := 'cache';
GlobalCEFApp.EnablePrintPreview := True; GlobalCEFApp.EnablePrintPreview := True;
GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized; GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized;
//GlobalCEFApp.ChromeRuntime := True;
// This is a workaround for the CEF4Delphi issue #324 :
// https://github.com/salvadordf/CEF4Delphi/issues/324
GlobalCEFApp.DisableFeatures := 'WinUseBrowserSpellChecker';
end; end;
procedure TMainForm.EnableButtonPnl; procedure TMainForm.EnableButtonPnl;
@@ -536,56 +533,62 @@ function TMainForm.DoOnBeforePopup(var windowInfo : TCefWindowInfo;
const targetFrameName : string; const targetFrameName : string;
const popupFeatures : TCefPopupFeatures; const popupFeatures : TCefPopupFeatures;
targetDisposition : TCefWindowOpenDisposition) : boolean; targetDisposition : TCefWindowOpenDisposition) : boolean;
begin begin
try if GlobalCEFApp.ChromeRuntime then
FCriticalSection.Acquire; Result := False
else
try
FCriticalSection.Acquire;
case targetDisposition of case targetDisposition of
WOD_NEW_FOREGROUND_TAB, WOD_NEW_FOREGROUND_TAB,
WOD_NEW_BACKGROUND_TAB : WOD_NEW_BACKGROUND_TAB :
Result := (FHiddenTab <> nil) and Result := (FHiddenTab <> nil) and
FHiddenTab.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and FHiddenTab.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and
PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(False)); PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(False));
WOD_NEW_WINDOW, WOD_NEW_WINDOW,
WOD_NEW_POPUP : WOD_NEW_POPUP :
Result := (FChildForm <> nil) and Result := (FChildForm <> nil) and
FChildForm.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and FChildForm.CreateClientHandler(windowInfo, client, targetFrameName, popupFeatures) and
PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(False)); PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(False));
else Result := False; else Result := False;
end;
finally
FCriticalSection.Release;
end; end;
finally
FCriticalSection.Release;
end;
end; end;
function TMainForm.DoOpenUrlFromTab(const targetUrl : string; function TMainForm.DoOpenUrlFromTab(const targetUrl : string;
targetDisposition : TCefWindowOpenDisposition) : boolean; targetDisposition : TCefWindowOpenDisposition) : boolean;
begin begin
try if GlobalCEFApp.ChromeRuntime then
FCriticalSection.Acquire; Result := True
else
try
FCriticalSection.Acquire;
case targetDisposition of case targetDisposition of
WOD_NEW_FOREGROUND_TAB, WOD_NEW_FOREGROUND_TAB,
WOD_NEW_BACKGROUND_TAB : WOD_NEW_BACKGROUND_TAB :
begin begin
FPendingURL := targetUrl; FPendingURL := targetUrl;
Result := PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(True)); Result := PostMessage(Handle, CEF_CREATENEXTTAB, 0, ord(True));
end; end;
WOD_NEW_WINDOW, WOD_NEW_WINDOW,
WOD_NEW_POPUP : WOD_NEW_POPUP :
begin begin
FPendingURL := targetUrl; FPendingURL := targetUrl;
Result := PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(True)); Result := PostMessage(Handle, CEF_CREATENEXTCHILD, 0, ord(True));
end end
else Result := False; else Result := False;
end;
finally
FCriticalSection.Release;
end; end;
finally
FCriticalSection.Release;
end;
end; end;
end. end.

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="107" Minor="1" Release="7"/> <Version Major="107" Minor="1" Release="9"/>
<Files Count="210"> <Files Count="210">
<Item1> <Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/> <Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@@ -68,13 +68,13 @@ uses
const const
CEF_SUPPORTED_VERSION_MAJOR = 107; CEF_SUPPORTED_VERSION_MAJOR = 107;
CEF_SUPPORTED_VERSION_MINOR = 1; CEF_SUPPORTED_VERSION_MINOR = 1;
CEF_SUPPORTED_VERSION_RELEASE = 7; CEF_SUPPORTED_VERSION_RELEASE = 9;
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;
CEF_CHROMEELF_VERSION_MINOR = 0; CEF_CHROMEELF_VERSION_MINOR = 0;
CEF_CHROMEELF_VERSION_RELEASE = 5304; CEF_CHROMEELF_VERSION_RELEASE = 5304;
CEF_CHROMEELF_VERSION_BUILD = 88; CEF_CHROMEELF_VERSION_BUILD = 110;
{$IFDEF MSWINDOWS} {$IFDEF MSWINDOWS}
LIBCEF_DLL = 'libcef.dll'; LIBCEF_DLL = 'libcef.dll';

View File

@@ -2,9 +2,9 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 444, "InternalVersion" : 445,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "107.1.7" "Version" : "107.1.9"
} }
], ],
"UpdatePackageData" : { "UpdatePackageData" : {