You've already forked CEF4Delphi
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:
14
README.md
14
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 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.
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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.
|
||||||
|
@@ -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"/>
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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.
|
||||||
|
@@ -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"/>
|
||||||
|
@@ -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';
|
||||||
|
@@ -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" : {
|
||||||
|
Reference in New Issue
Block a user