1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-06-12 22:07:39 +02:00

Update to CEF 78.3.9

- Issue #230 fixed : Shutdown crashes since CEF 77
- Issue #214 fixed : OSR demos crash when resized since CEF 76
This commit is contained in:
Salvador Díaz Fau
2019-11-27 10:42:42 +01:00
parent 1d8773c42c
commit 160d4de7cd
9 changed files with 18 additions and 38 deletions

View File

@ -3,10 +3,10 @@ CEF4Delphi is an open source project created by Salvador D
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file. CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
CEF4Delphi uses CEF 78.3.4 which includes Chromium 78.0.3904.108. CEF4Delphi uses CEF 78.3.9 which includes Chromium 78.0.3904.108.
The CEF binaries used by CEF4Delphi are available for download at spotify : The CEF binaries used by CEF4Delphi are available for download at spotify :
* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_78.3.4%2Bge17bba6%2Bchromium-78.0.3904.108_windows32.tar.bz2) * [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_78.3.9%2Bgc7345f2%2Bchromium-78.0.3904.108_windows32.tar.bz2)
* [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_78.3.4%2Bge17bba6%2Bchromium-78.0.3904.108_windows64.tar.bz2) * [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_78.3.9%2Bgc7345f2%2Bchromium-78.0.3904.108_windows64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 10.3 Rio and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.6/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components. CEF4Delphi was developed and tested on Delphi 10.3 Rio and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.6/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.

View File

@ -50,7 +50,7 @@ uses
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl, uCEFSentinel; uCEFWinControl, uCEFSentinel, uCEFChromiumCore;
type type
TJSWindowBindingWithFunctionFrm = class(TForm) TJSWindowBindingWithFunctionFrm = class(TForm)

View File

@ -398,9 +398,4 @@ object MiniBrowserFrm: TMiniBrowserFrm
Left = 32 Left = 32
Top = 344 Top = 344
end end
object CEFSentinel1: TCEFSentinel
OnClose = CEFSentinel1Close
Left = 32
Top = 408
end
end end

View File

@ -129,7 +129,6 @@ type
Downloadimage1: TMenuItem; Downloadimage1: TMenuItem;
Simulatekeyboardpresses1: TMenuItem; Simulatekeyboardpresses1: TMenuItem;
Flushcookies1: TMenuItem; Flushcookies1: TMenuItem;
CEFSentinel1: TCEFSentinel;
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure BackBtnClick(Sender: TObject); procedure BackBtnClick(Sender: TObject);
procedure ForwardBtnClick(Sender: TObject); procedure ForwardBtnClick(Sender: TObject);
@ -230,7 +229,6 @@ type
procedure Simulatekeyboardpresses1Click(Sender: TObject); procedure Simulatekeyboardpresses1Click(Sender: TObject);
procedure Flushcookies1Click(Sender: TObject); procedure Flushcookies1Click(Sender: TObject);
procedure Chromium1CookiesFlushed(Sender: TObject); procedure Chromium1CookiesFlushed(Sender: TObject);
procedure CEFSentinel1Close(Sender: TObject);
procedure Chromium1BeforePluginLoad(Sender: TObject; const mimeType, procedure Chromium1BeforePluginLoad(Sender: TObject; const mimeType,
pluginUrl: ustring; isMainFrame: Boolean; pluginUrl: ustring; isMainFrame: Boolean;
const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo;
@ -299,8 +297,7 @@ uses
// ================= // =================
// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which triggers the TChromium.OnClose event. // 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which triggers the TChromium.OnClose event.
// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1 in the main thread, which triggers the TChromium.OnBeforeClose event. // 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1 in the main thread, which triggers the TChromium.OnBeforeClose event.
// 3. TChromium.OnBeforeClose calls TCEFSentinel.Start, which will trigger TCEFSentinel.OnClose when the renderer processes are closed. // 3. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
// 4. TCEFSentinel.OnClose sets FCanClose := True and sends WM_CLOSE to the form.
procedure CreateGlobalCEFApp; procedure CreateGlobalCEFApp;
begin begin
@ -345,12 +342,6 @@ begin
if (length(TempURL) > 0) then Chromium1.ResolveHost(TempURL); if (length(TempURL) > 0) then Chromium1.ResolveHost(TempURL);
end; end;
procedure TMiniBrowserFrm.CEFSentinel1Close(Sender: TObject);
begin
FCanClose := True;
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
procedure TMiniBrowserFrm.Chromium1AddressChange(Sender: TObject; procedure TMiniBrowserFrm.Chromium1AddressChange(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
begin begin
@ -368,7 +359,11 @@ end;
procedure TMiniBrowserFrm.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure TMiniBrowserFrm.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
begin begin
// The main browser is being destroyed // The main browser is being destroyed
if (Chromium1.BrowserId = 0) then CEFSentinel1.Start; if (Chromium1.BrowserId = 0) then
begin
FCanClose := True;
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
end; end;
procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject; procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject;

View File

@ -193,9 +193,4 @@ object URLRequestFrm: TURLRequestFrm
Left = 304 Left = 304
Top = 104 Top = 104
end end
object CEFSentinel1: TCEFSentinel
OnClose = CEFSentinel1Close
Left = 160
Top = 112
end
end end

View File

@ -78,12 +78,10 @@ type
Label6: TLabel; Label6: TLabel;
PostParam2NameEdt: TEdit; PostParam2NameEdt: TEdit;
PostParam2ValueEdt: TEdit; PostParam2ValueEdt: TEdit;
CEFSentinel1: TCEFSentinel;
procedure DownloadBtnClick(Sender: TObject); procedure DownloadBtnClick(Sender: TObject);
procedure SendPostReqBtnClick(Sender: TObject); procedure SendPostReqBtnClick(Sender: TObject);
procedure Button1Click(Sender: TObject); procedure Button1Click(Sender: TObject);
procedure CEFSentinel1Close(Sender: TObject);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
@ -225,12 +223,6 @@ begin
ShellExecute(0, 'open', 'https://ptsv2.com/t/cef4delphi', nil, nil, SW_SHOWNORMAL); ShellExecute(0, 'open', 'https://ptsv2.com/t/cef4delphi', nil, nil, SW_SHOWNORMAL);
end; end;
procedure TURLRequestFrm.CEFSentinel1Close(Sender: TObject);
begin
FCanClose := True;
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
procedure TURLRequestFrm.CEFUrlRequestClientComponent1CreateURLRequest(Sender: TObject); procedure TURLRequestFrm.CEFUrlRequestClientComponent1CreateURLRequest(Sender: TObject);
begin begin
if FSendingGET then if FSendingGET then
@ -354,7 +346,10 @@ begin
// Use request.response here to get a ICefResponse interface with all the response headers, status, error code, etc. // Use request.response here to get a ICefResponse interface with all the response headers, status, error code, etc.
if FClosing then if FClosing then
CEFSentinel1.Start begin
FCanClose := True;
PostMessage(Handle, WM_CLOSE, 0, 0);
end
else else
if (request <> nil) and (request.RequestStatus = UR_SUCCESS) then if (request <> nil) and (request.RequestStatus = UR_SUCCESS) then
PostMessage(Handle, URLREQUEST_SUCCESS, 0, 0) PostMessage(Handle, URLREQUEST_SUCCESS, 0, 0)

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="78" Minor="3" Release="4"/> <Version Major="78" Minor="3" Release="9"/>
<Files Count="146"> <Files Count="146">
<Item1> <Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/> <Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@ -62,7 +62,7 @@ uses
const const
CEF_SUPPORTED_VERSION_MAJOR = 78; CEF_SUPPORTED_VERSION_MAJOR = 78;
CEF_SUPPORTED_VERSION_MINOR = 3; CEF_SUPPORTED_VERSION_MINOR = 3;
CEF_SUPPORTED_VERSION_RELEASE = 4; CEF_SUPPORTED_VERSION_RELEASE = 9;
CEF_SUPPORTED_VERSION_BUILD = 0; CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = 78; CEF_CHROMEELF_VERSION_MAJOR = 78;

View File

@ -2,9 +2,9 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 69, "InternalVersion" : 70,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "78.3.4.0" "Version" : "78.3.9.0"
} }
], ],
"UpdatePackageData" : { "UpdatePackageData" : {