mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-15 15:55:56 +01:00
Update to CEF 89.0.6
Added GlobalCEFApp.ApiHashUniversal Added GlobalCEFApp.ApiHashPlatform Added GlobalCEFApp.ApiHashCommit Added a menu option to the MiniBrowser demo to show the CEF version info and API hashes.
This commit is contained in:
parent
e9bf19225a
commit
1515e2bf99
16
README.md
16
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 88.2.9 which includes Chromium 88.0.4324.182.
|
||||
CEF4Delphi uses CEF 89.0.6 which includes Chromium 89.0.4389.72.
|
||||
The CEF binaries used by CEF4Delphi are available for download at spotify :
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.9%2Bg5c8711a%2Bchromium-88.0.4324.182_macosx64.tar.bz2)
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_89.0.6%2Bg6f30454%2Bchromium-89.0.4389.72_macosx64.tar.bz2)
|
||||
|
||||
CEF4Delphi was developed and tested on Delphi 10.4.2 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3 and Lazarus 2.0.12/FPC 3.2.0. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{7AA2E07C-ACFB-4174-A9F1-083E9BB483BC}</ProjectGuid>
|
||||
<ProjectVersion>19.1</ProjectVersion>
|
||||
<ProjectVersion>19.2</ProjectVersion>
|
||||
<FrameworkType>FMX</FrameworkType>
|
||||
<MainSource>FMXTabbedOSRBrowser.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
@ -330,6 +330,16 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon192">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Android64">
|
||||
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon36">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||
|
@ -50,7 +50,7 @@ uses
|
||||
Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
|
||||
{$ENDIF}
|
||||
uCEFChromium, uCEFWindowParent, uCEFChromiumWindow, uCEFInterfaces, uCustomResourceHandler,
|
||||
uCEFConstants, uCEFTypes, uCEFWinControl, uCEFSentinel;
|
||||
uCEFConstants, uCEFTypes, uCEFWinControl, uCEFLinkedWinControlBase;
|
||||
|
||||
type
|
||||
TMainForm = class(TForm)
|
||||
|
@ -387,6 +387,10 @@ object MiniBrowserFrm: TMiniBrowserFrm
|
||||
Caption = 'Memory info...'
|
||||
OnClick = Memoryinfo1Click
|
||||
end
|
||||
object CEFinfo1: TMenuItem
|
||||
Caption = 'CEF info...'
|
||||
OnClick = CEFinfo1Click
|
||||
end
|
||||
end
|
||||
object SaveDialog1: TSaveDialog
|
||||
Left = 32
|
||||
|
@ -138,6 +138,7 @@ type
|
||||
akescreenshot1: TMenuItem;
|
||||
Useragent1: TMenuItem;
|
||||
ClearallstorageforcurrentURL1: TMenuItem;
|
||||
CEFinfo1: TMenuItem;
|
||||
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
@ -206,6 +207,7 @@ type
|
||||
procedure akescreenshot1Click(Sender: TObject);
|
||||
procedure Useragent1Click(Sender: TObject);
|
||||
procedure ClearallstorageforcurrentURL1Click(Sender: TObject);
|
||||
procedure CEFinfo1Click(Sender: TObject);
|
||||
|
||||
protected
|
||||
FDevToolsMsgID : integer;
|
||||
@ -322,6 +324,19 @@ begin
|
||||
if (length(TempURL) > 0) then Chromium1.ResolveHost(TempURL);
|
||||
end;
|
||||
|
||||
procedure TMiniBrowserFrm.CEFinfo1Click(Sender: TObject);
|
||||
var
|
||||
TempInfo : string;
|
||||
begin
|
||||
TempInfo := 'libcef.dll : ' + CRLF + GlobalCEFApp.LibCefVersion + CRLF + CRLF +
|
||||
'chrome_elf.dll : ' + CRLF + GlobalCEFApp.ChromeVersion + CRLF + CRLF +
|
||||
'Universal API hash : ' + CRLF + GlobalCEFApp.ApiHashUniversal + CRLF + CRLF +
|
||||
'Platform API hash : ' + CRLF + GlobalCEFApp.ApiHashPlatform + CRLF + CRLF +
|
||||
'Commit API hash : ' + CRLF + GlobalCEFApp.ApiHashCommit;
|
||||
|
||||
showmessage(TempInfo);
|
||||
end;
|
||||
|
||||
procedure TMiniBrowserFrm.Chromium1AddressChange(Sender: TObject;
|
||||
const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
|
||||
begin
|
||||
|
@ -15,7 +15,7 @@ object MiniBrowserFrm: TMiniBrowserFrm
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '2.0.10.0'
|
||||
LCLVersion = '2.0.12.0'
|
||||
object NavControlPnl: TPanel
|
||||
Left = 0
|
||||
Height = 25
|
||||
@ -295,6 +295,13 @@ object MiniBrowserFrm: TMiniBrowserFrm
|
||||
OnClick = Resetzoom1Click
|
||||
end
|
||||
end
|
||||
object MenuItem1: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem2: TMenuItem
|
||||
Caption = 'CEF info...'
|
||||
OnClick = MenuItem2Click
|
||||
end
|
||||
end
|
||||
object SaveDialog1: TSaveDialog
|
||||
Left = 32
|
||||
|
@ -62,6 +62,8 @@ type
|
||||
TMiniBrowserFrm = class(TForm)
|
||||
CEFLinkedWindowParent1: TCEFLinkedWindowParent;
|
||||
HideDevTools1: TMenuItem;
|
||||
MenuItem1: TMenuItem;
|
||||
MenuItem2: TMenuItem;
|
||||
NavControlPnl: TPanel;
|
||||
NavButtonPnl: TPanel;
|
||||
PrintDialog1: TPrintDialog;
|
||||
@ -118,6 +120,7 @@ type
|
||||
procedure CEFLinkedWindowParent1Enter(Sender: TObject);
|
||||
procedure CEFLinkedWindowParent1Exit(Sender: TObject);
|
||||
procedure HideDevTools1Click(Sender: TObject);
|
||||
procedure MenuItem2Click(Sender: TObject);
|
||||
|
||||
procedure Timer1Timer(Sender: TObject);
|
||||
|
||||
@ -509,6 +512,20 @@ procedure TMiniBrowserFrm.HideDevTools1Click(Sender: TObject);
|
||||
begin
|
||||
HideDevTools;
|
||||
end;
|
||||
|
||||
procedure TMiniBrowserFrm.MenuItem2Click(Sender: TObject);
|
||||
var
|
||||
TempInfo : string;
|
||||
begin
|
||||
TempInfo := 'CEF : ' + CRLF + GlobalCEFApp.LibCefVersion + CRLF + CRLF +
|
||||
'Chromium : ' + CRLF + GlobalCEFApp.ChromeVersion + CRLF + CRLF +
|
||||
'Universal API hash : ' + CRLF + GlobalCEFApp.ApiHashUniversal + CRLF + CRLF +
|
||||
'Platform API hash : ' + CRLF + GlobalCEFApp.ApiHashPlatform + CRLF + CRLF +
|
||||
'Commit API hash : ' + CRLF + GlobalCEFApp.ApiHashCommit;
|
||||
|
||||
showmessage(TempInfo);
|
||||
end;
|
||||
|
||||
{%Endregion}
|
||||
|
||||
{Form events}
|
||||
|
@ -15,7 +15,7 @@ object MiniBrowserFrm: TMiniBrowserFrm
|
||||
OnDestroy = FormDestroy
|
||||
OnShow = FormShow
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '2.0.10.0'
|
||||
LCLVersion = '2.0.12.0'
|
||||
object Splitter1: TSplitter
|
||||
Left = 1179
|
||||
Height = 663
|
||||
@ -349,6 +349,10 @@ object MiniBrowserFrm: TMiniBrowserFrm
|
||||
Caption = 'Memory info...'
|
||||
OnClick = Memoryinfo1Click
|
||||
end
|
||||
object MenuItem5: TMenuItem
|
||||
Caption = 'CEF info...'
|
||||
OnClick = MenuItem5Click
|
||||
end
|
||||
end
|
||||
object SaveDialog1: TSaveDialog
|
||||
Left = 32
|
||||
|
@ -88,6 +88,7 @@ type
|
||||
MenuItem2: TMenuItem;
|
||||
MenuItem3: TMenuItem;
|
||||
MenuItem4: TMenuItem;
|
||||
MenuItem5: TMenuItem;
|
||||
NavControlPnl: TPanel;
|
||||
NavButtonPnl: TPanel;
|
||||
StatusPnl: TPanel;
|
||||
@ -142,6 +143,7 @@ type
|
||||
procedure MenuItem2Click(Sender: TObject);
|
||||
procedure MenuItem3Click(Sender: TObject);
|
||||
procedure MenuItem4Click(Sender: TObject);
|
||||
procedure MenuItem5Click(Sender: TObject);
|
||||
procedure ReloadBtnClick(Sender: TObject);
|
||||
procedure Chromium1AfterCreated(Sender: TObject;
|
||||
const browser: ICefBrowser);
|
||||
@ -377,6 +379,19 @@ begin
|
||||
Chromium1.AcceptLanguageList := InputBox('Language', 'Accept language list', TempLanguageList);
|
||||
end;
|
||||
|
||||
procedure TMiniBrowserFrm.MenuItem5Click(Sender: TObject);
|
||||
var
|
||||
TempInfo : string;
|
||||
begin
|
||||
TempInfo := 'libcef.dll : ' + CRLF + GlobalCEFApp.LibCefVersion + CRLF + CRLF +
|
||||
'chrome_elf.dll : ' + CRLF + GlobalCEFApp.ChromeVersion + CRLF + CRLF +
|
||||
'Universal API hash : ' + CRLF + GlobalCEFApp.ApiHashUniversal + CRLF + CRLF +
|
||||
'Platform API hash : ' + CRLF + GlobalCEFApp.ApiHashPlatform + CRLF + CRLF +
|
||||
'Commit API hash : ' + CRLF + GlobalCEFApp.ApiHashCommit;
|
||||
|
||||
showmessage(TempInfo);
|
||||
end;
|
||||
|
||||
procedure TMiniBrowserFrm.GoBtnClick(Sender: TObject);
|
||||
begin
|
||||
Chromium1.LoadURL(URLCbx.Text);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<Package Version="5">
|
||||
<Package Version="4">
|
||||
<PathDelim Value="\"/>
|
||||
<Name Value="CEF4Delphi_Lazarus"/>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
@ -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="88" Minor="2" Release="9"/>
|
||||
<Version Major="89" Release="6"/>
|
||||
<Files Count="200">
|
||||
<Item1>
|
||||
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
|
||||
@ -841,7 +841,6 @@
|
||||
<UnitName Value="uceflazarusbrowserwindow"/>
|
||||
</Item200>
|
||||
</Files>
|
||||
<CompatibilityMode Value="True"/>
|
||||
<RequiredPkgs Count="4">
|
||||
<Item1>
|
||||
<PackageName Value="dcpcrypt"/>
|
||||
|
@ -64,15 +64,15 @@ uses
|
||||
uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar;
|
||||
|
||||
const
|
||||
CEF_SUPPORTED_VERSION_MAJOR = 88;
|
||||
CEF_SUPPORTED_VERSION_MINOR = 2;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 9;
|
||||
CEF_SUPPORTED_VERSION_MAJOR = 89;
|
||||
CEF_SUPPORTED_VERSION_MINOR = 0;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 6;
|
||||
CEF_SUPPORTED_VERSION_BUILD = 0;
|
||||
|
||||
CEF_CHROMEELF_VERSION_MAJOR = 88;
|
||||
CEF_CHROMEELF_VERSION_MAJOR = 89;
|
||||
CEF_CHROMEELF_VERSION_MINOR = 0;
|
||||
CEF_CHROMEELF_VERSION_RELEASE = 4324;
|
||||
CEF_CHROMEELF_VERSION_BUILD = 182;
|
||||
CEF_CHROMEELF_VERSION_RELEASE = 4389;
|
||||
CEF_CHROMEELF_VERSION_BUILD = 72;
|
||||
|
||||
{$IFDEF MSWINDOWS}
|
||||
LIBCEF_DLL = 'libcef.dll';
|
||||
@ -284,11 +284,15 @@ type
|
||||
function GetTotalSystemMemory : uint64;
|
||||
function GetAvailableSystemMemory : uint64;
|
||||
function GetSystemMemoryLoad : cardinal;
|
||||
function GetApiHashUniversal : ustring;
|
||||
function GetApiHashPlatform : ustring;
|
||||
function GetApiHashCommit : ustring;
|
||||
{$IFDEF LINUX}
|
||||
function GetXDisplay : PXDisplay;
|
||||
{$ENDIF}
|
||||
|
||||
function LoadCEFlibrary : boolean; virtual;
|
||||
function Load_cef_api_hash_h : boolean;
|
||||
function Load_cef_app_capi_h : boolean;
|
||||
function Load_cef_browser_capi_h : boolean;
|
||||
function Load_cef_command_line_capi_h : boolean;
|
||||
@ -542,6 +546,9 @@ type
|
||||
property TotalSystemMemory : uint64 read GetTotalSystemMemory;
|
||||
property AvailableSystemMemory : uint64 read GetAvailableSystemMemory;
|
||||
property SystemMemoryLoad : cardinal read GetSystemMemoryLoad;
|
||||
property ApiHashUniversal : ustring read GetApiHashUniversal;
|
||||
property ApiHashPlatform : ustring read GetApiHashPlatform;
|
||||
property ApiHashCommit : ustring read GetApiHashCommit;
|
||||
property SupportedSchemes : TStringList read FSupportedSchemes;
|
||||
{$IFDEF LINUX}
|
||||
property XDisplay : PXDisplay read GetXDisplay;
|
||||
@ -2489,6 +2496,45 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.GetApiHashUniversal : ustring;
|
||||
var
|
||||
TempHash : PAnsiChar;
|
||||
begin
|
||||
Result := '';
|
||||
if not(FLibLoaded) then exit;
|
||||
|
||||
TempHash := cef_api_hash(CEF_API_HASH_UNIVERSAL);
|
||||
|
||||
if (TempHash <> nil) then
|
||||
Result := ustring(AnsiString(TempHash));
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.GetApiHashPlatform : ustring;
|
||||
var
|
||||
TempHash : PAnsiChar;
|
||||
begin
|
||||
Result := '';
|
||||
if not(FLibLoaded) then exit;
|
||||
|
||||
TempHash := cef_api_hash(CEF_API_HASH_PLATFORM);
|
||||
|
||||
if (TempHash <> nil) then
|
||||
Result := ustring(AnsiString(TempHash));
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.GetApiHashCommit : ustring;
|
||||
var
|
||||
TempHash : PAnsiChar;
|
||||
begin
|
||||
Result := '';
|
||||
if not(FLibLoaded) then exit;
|
||||
|
||||
TempHash := cef_api_hash(CEF_COMMIT_HASH);
|
||||
|
||||
if (TempHash <> nil) then
|
||||
Result := ustring(AnsiString(TempHash));
|
||||
end;
|
||||
|
||||
{$IFDEF LINUX}
|
||||
function TCefApplicationCore.GetXDisplay : PXDisplay;
|
||||
begin
|
||||
@ -2552,7 +2598,8 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
if Load_cef_app_capi_h and
|
||||
if Load_cef_api_hash_h and
|
||||
Load_cef_app_capi_h and
|
||||
Load_cef_browser_capi_h and
|
||||
Load_cef_command_line_capi_h and
|
||||
Load_cef_cookie_capi_h and
|
||||
@ -2624,6 +2671,13 @@ begin
|
||||
if FSetCurrentDir then chdir(TempOldDir);
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.Load_cef_api_hash_h : boolean;
|
||||
begin
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_api_hash{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_api_hash');
|
||||
|
||||
Result := assigned(cef_api_hash);
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.Load_cef_app_capi_h : boolean;
|
||||
begin
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_initialize{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_initialize');
|
||||
|
@ -552,6 +552,11 @@ const
|
||||
CEF_TFC_DELETE = 5;
|
||||
CEF_TFC_SELECT_ALL = 6;
|
||||
|
||||
// /include/cef_api_hash.h (used as "cef_api_hash" parameters)
|
||||
CEF_API_HASH_PLATFORM = 0;
|
||||
CEF_API_HASH_UNIVERSAL = 1;
|
||||
CEF_COMMIT_HASH = 2;
|
||||
|
||||
|
||||
//******************************************************
|
||||
//****************** OTHER CONSTANTS *******************
|
||||
|
@ -61,6 +61,18 @@ uses
|
||||
uCEFTypes;
|
||||
|
||||
var
|
||||
// *********************************
|
||||
// *********** API HASH ************
|
||||
// *********************************
|
||||
|
||||
// /include/cef_api_hash.h
|
||||
cef_api_hash : function(entry: integer): PAnsiChar; cdecl;
|
||||
|
||||
|
||||
// *********************************
|
||||
// ************* CAPI **************
|
||||
// *********************************
|
||||
|
||||
// /include/capi/cef_app_capi.h
|
||||
cef_initialize : function(const args: PCefMainArgs; const settings: PCefSettings; application: PCefApp; windows_sandbox_info: Pointer): Integer; cdecl;
|
||||
cef_shutdown : procedure; cdecl;
|
||||
@ -236,7 +248,7 @@ var
|
||||
|
||||
|
||||
// *********************************
|
||||
// ************* VIEWS *************
|
||||
// ********** CAPI VIEWS ***********
|
||||
// *********************************
|
||||
|
||||
// /include/capi/views/cef_browser_view_capi.h
|
||||
|
@ -2,9 +2,9 @@
|
||||
"UpdateLazPackages" : [
|
||||
{
|
||||
"ForceNotify" : true,
|
||||
"InternalVersion" : 266,
|
||||
"InternalVersion" : 267,
|
||||
"Name" : "cef4delphi_lazarus.lpk",
|
||||
"Version" : "88.2.9.0"
|
||||
"Version" : "89.0.6.0"
|
||||
}
|
||||
],
|
||||
"UpdatePackageData" : {
|
||||
|
Loading…
Reference in New Issue
Block a user