mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-24 08:02:15 +02:00
parent
b3f388709a
commit
83a75c985a
16
README.md
16
README.md
@ -3,16 +3,16 @@ 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 92.0.27 which includes Chromium 92.0.4515.159.
|
||||
CEF4Delphi uses CEF 93.1.11 which includes Chromium 93.0.4577.63.
|
||||
|
||||
The CEF binaries used by CEF4Delphi are available for download at Spotify :
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_92.0.27%2Bg274abcf%2Bchromium-92.0.4515.159_macosx64.tar.bz2)
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_93.1.11%2Bg9e254fa%2Bchromium-93.0.4577.63_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.
|
||||
|
||||
|
@ -173,7 +173,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYDOWN :
|
||||
@ -189,7 +188,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYUP :
|
||||
@ -205,7 +203,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_KEYDOWN :
|
||||
@ -237,7 +234,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_CHAR :
|
||||
@ -254,7 +250,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_MOUSEWHEEL :
|
||||
|
@ -34,9 +34,13 @@
|
||||
* this source code without explicit permission.
|
||||
*
|
||||
*)
|
||||
|
||||
unit uCookieVisitor;
|
||||
|
||||
{$I cef.inc}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF DELPHI16_UP}
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
@ -48,6 +52,7 @@ uses
|
||||
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
|
||||
uCEFCookieManager, uCEFCookieVisitor, uCEFWinControl, uCEFSentinel,
|
||||
uCEFChromiumCore;
|
||||
|
||||
const
|
||||
MINIBROWSER_SHOWCOOKIES = WM_APP + $101;
|
||||
MINIBROWSER_COOKIESDELETED = WM_APP + $102;
|
||||
@ -57,6 +62,7 @@ const
|
||||
MINIBROWSER_CONTEXTMENU_SETCOOKIE = MENU_ID_USER_FIRST + 3;
|
||||
MINIBROWSER_CONTEXTMENU_GETGOOGLECOOKIES = MENU_ID_USER_FIRST + 4;
|
||||
MINIBROWSER_CONTEXTMENU_DELETECACHE = MENU_ID_USER_FIRST + 5;
|
||||
|
||||
type
|
||||
TCookieVisitorFrm = class(TForm)
|
||||
AddressBarPnl: TPanel;
|
||||
@ -65,6 +71,7 @@ type
|
||||
CEFWindowParent1: TCEFWindowParent;
|
||||
Chromium1: TChromium;
|
||||
Timer1: TTimer;
|
||||
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1BeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
|
||||
procedure Chromium1ContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: Cardinal; out Result: Boolean);
|
||||
@ -80,6 +87,7 @@ type
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
|
||||
private
|
||||
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
|
||||
procedure WMMoving(var aMessage : TMessage); message WM_MOVING;
|
||||
@ -90,21 +98,29 @@ type
|
||||
procedure ShowCookiesMsg(var aMessage : TMessage); message MINIBROWSER_SHOWCOOKIES;
|
||||
procedure CookiesDeletedMsg(var aMessage : TMessage); message MINIBROWSER_COOKIESDELETED;
|
||||
procedure CookieSetMsg(var aMessage : TMessage); message MINIBROWSER_COOKIESET;
|
||||
|
||||
protected
|
||||
FText : string;
|
||||
// Variables to control when can we destroy the form safely
|
||||
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
|
||||
FClosing : boolean; // Set to True in the CloseQuery event.
|
||||
|
||||
public
|
||||
procedure AddCookieInfo(const aCookie : TCookie);
|
||||
end;
|
||||
|
||||
var
|
||||
CookieVisitorFrm: TCookieVisitorFrm;
|
||||
|
||||
procedure CreateGlobalCEFApp;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uSimpleTextViewer, uCEFTask, uCEFMiscFunctions, uCEFDictionaryValue;
|
||||
|
||||
// This demo has a context menu to test several TChromium functions related to cookies like TChromium.VisitAllCookies,
|
||||
// TChromium.SetCookie, TChromium.DeleteCookies, etc.
|
||||
// TChromium.VisitAllCookies and TChromium.VisitURLCookies trigger the TChromium.OnCookiesVisited event for each
|
||||
@ -117,6 +133,7 @@ uses
|
||||
// 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.
|
||||
// 3. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
|
||||
procedure CreateGlobalCEFApp;
|
||||
begin
|
||||
GlobalCEFApp := TCefApplication.Create;
|
||||
@ -124,56 +141,69 @@ begin
|
||||
//GlobalCEFApp.LogFile := 'cef.log';
|
||||
//GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.AddCookieInfo(const aCookie : TCookie);
|
||||
begin
|
||||
// This should be protected by a mutex.
|
||||
FText := FText + aCookie.name + ' : ' + aCookie.value + ' (' + aCookie.domain + ')' + #13 + #10;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.BrowserCreatedMsg(var aMessage : TMessage);
|
||||
begin
|
||||
CEFWindowParent1.UpdateSize;
|
||||
AddressBarPnl.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.BrowserDestroyMsg(var aMessage : TMessage);
|
||||
begin
|
||||
CEFWindowParent1.Free;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.ShowCookiesMsg(var aMessage : TMessage);
|
||||
begin
|
||||
SimpleTextViewerFrm.Memo1.Lines.Text := FText; // This should be protected by a mutex.
|
||||
SimpleTextViewerFrm.ShowModal;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.CookiesDeletedMsg(var aMessage : TMessage);
|
||||
begin
|
||||
showmessage('Deleted cookies : ' + inttostr(aMessage.lParam));
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.CookieSetMsg(var aMessage : TMessage);
|
||||
begin
|
||||
Chromium1.FlushCookieStore;
|
||||
|
||||
if (aMessage.wParam <> 0) then
|
||||
showmessage('Cookie set successfully !')
|
||||
else
|
||||
showmessage('There was a problem setting the cookie');
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Timer1Timer(Sender: TObject);
|
||||
begin
|
||||
Timer1.Enabled := False;
|
||||
|
||||
if not(Chromium1.CreateBrowser(CEFWindowParent1, '')) and not(Chromium1.Initialized) then
|
||||
Timer1.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.GoBtnClick(Sender: TObject);
|
||||
begin
|
||||
Chromium1.LoadURL(Edit1.Text);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
begin
|
||||
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
begin
|
||||
FCanClose := True;
|
||||
PostMessage(Handle, WM_CLOSE, 0, 0);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1BeforeContextMenu(Sender: TObject;
|
||||
const browser: ICefBrowser; const frame: ICefFrame;
|
||||
const params: ICefContextMenuParams; const model: ICefMenuModel);
|
||||
@ -186,6 +216,7 @@ begin
|
||||
model.AddItem(MINIBROWSER_CONTEXTMENU_SETCOOKIE, 'Set cookie');
|
||||
model.AddItem(MINIBROWSER_CONTEXTMENU_DELETECACHE, 'Delete cache');
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1BeforePopup(Sender: TObject;
|
||||
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
|
||||
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
|
||||
@ -199,12 +230,14 @@ begin
|
||||
// For simplicity, this demo blocks all popup windows and new tabs
|
||||
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1Close(Sender: TObject;
|
||||
const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||
begin
|
||||
PostMessage(Handle, CEF_DESTROY, 0, 0);
|
||||
aAction := cbaDelay;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject;
|
||||
const browser: ICefBrowser; const frame: ICefFrame;
|
||||
const params: ICefContextMenuParams; commandId: Integer;
|
||||
@ -213,18 +246,21 @@ begin
|
||||
Result := False;
|
||||
case commandId of
|
||||
MINIBROWSER_CONTEXTMENU_DELETECOOKIES : Chromium1.DeleteCookies;
|
||||
|
||||
MINIBROWSER_CONTEXTMENU_GETCOOKIES :
|
||||
begin
|
||||
// This should be protected by a mutex
|
||||
FText := '';
|
||||
Chromium1.VisitAllCookies;
|
||||
end;
|
||||
|
||||
MINIBROWSER_CONTEXTMENU_GETGOOGLECOOKIES :
|
||||
begin
|
||||
// This should be protected by a mutex
|
||||
FText := '';
|
||||
Chromium1.VisitURLCookies('https://www.google.com');
|
||||
end;
|
||||
|
||||
MINIBROWSER_CONTEXTMENU_SETCOOKIE :
|
||||
Chromium1.SetCookie('https://www.example.com',
|
||||
'example_cookie_name',
|
||||
@ -240,19 +276,23 @@ begin
|
||||
CEF_COOKIE_SAME_SITE_UNSPECIFIED,
|
||||
CEF_COOKIE_PRIORITY_MEDIUM,
|
||||
False);
|
||||
|
||||
MINIBROWSER_CONTEXTMENU_DELETECACHE :
|
||||
Chromium1.ExecuteDevToolsMethod(0, 'Network.clearBrowserCache', nil);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1CookiesDeleted(Sender: TObject; numDeleted: Integer);
|
||||
begin
|
||||
PostMessage(Handle, MINIBROWSER_COOKIESDELETED, 0, numDeleted);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1CookieSet(Sender: TObject;
|
||||
aSuccess: Boolean; aID: Integer);
|
||||
begin
|
||||
PostMessage(Handle, MINIBROWSER_COOKIESET, WPARAM(aSuccess), aID);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1CookiesVisited(Sender: TObject;
|
||||
const name_, value, domain, path: ustring; secure, httponly,
|
||||
hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count,
|
||||
@ -262,6 +302,7 @@ var
|
||||
TempCookie : TCookie;
|
||||
begin
|
||||
aDeleteCookie := False;
|
||||
|
||||
TempCookie.name := name_;
|
||||
TempCookie.value := value;
|
||||
TempCookie.domain := domain;
|
||||
@ -274,53 +315,71 @@ begin
|
||||
TempCookie.expires := expires;
|
||||
TempCookie.same_site := same_site;
|
||||
TempCookie.priority := priority;
|
||||
|
||||
AddCookieInfo(TempCookie);
|
||||
|
||||
aResult := (count <> pred(total));
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.Chromium1CookieVisitorDestroyed(Sender: TObject; aID: Integer);
|
||||
begin
|
||||
PostMessage(Handle, MINIBROWSER_SHOWCOOKIES, 0, 0);
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
begin
|
||||
CanClose := FCanClose;
|
||||
|
||||
if not(FClosing) then
|
||||
begin
|
||||
FClosing := True;
|
||||
Visible := False;
|
||||
|
||||
Chromium1.CloseBrowser(True);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
FCanClose := False;
|
||||
FClosing := False;
|
||||
|
||||
Chromium1.DefaultURL := Edit1.Text;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.FormShow(Sender: TObject);
|
||||
begin
|
||||
// GlobalCEFApp.GlobalContextInitialized has to be TRUE before creating any browser
|
||||
// If it's not initialized yet, we use a simple timer to create the browser later.
|
||||
if not(Chromium1.CreateBrowser(CEFWindowParent1, '')) then Timer1.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.WMMove(var aMessage : TWMMove);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.WMMoving(var aMessage : TMessage);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.WMEnterMenuLoop(var aMessage: TMessage);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then GlobalCEFApp.OsmodalLoop := True;
|
||||
end;
|
||||
|
||||
procedure TCookieVisitorFrm.WMExitMenuLoop(var aMessage: TMessage);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then GlobalCEFApp.OsmodalLoop := False;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -209,7 +209,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYDOWN :
|
||||
@ -225,7 +224,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYUP :
|
||||
@ -241,7 +239,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_KEYDOWN :
|
||||
@ -280,7 +277,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_CHAR :
|
||||
@ -297,7 +293,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_MOUSEWHEEL :
|
||||
|
@ -7,7 +7,7 @@
|
||||
<ProjectVersion>19.2</ProjectVersion>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<Base>True</Base>
|
||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Application</AppType>
|
||||
</PropertyGroup>
|
||||
|
@ -289,6 +289,7 @@ begin
|
||||
GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO;
|
||||
GlobalCEFApp.cache := 'cache';
|
||||
GlobalCEFApp.EnablePrintPreview := True;
|
||||
GlobalCEFApp.EnableGPU := True;
|
||||
|
||||
// This is a workaround for the CEF4Delphi issue #324 :
|
||||
// https://github.com/salvadordf/CEF4Delphi/issues/324
|
||||
|
@ -213,7 +213,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYDOWN :
|
||||
@ -229,7 +228,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYUP :
|
||||
@ -245,7 +243,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_KEYDOWN :
|
||||
@ -277,7 +274,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_CHAR :
|
||||
@ -294,7 +290,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_MOUSEWHEEL :
|
||||
|
@ -125,13 +125,13 @@ type
|
||||
public
|
||||
function CreateClientHandler(var windowInfo : TCefWindowInfo; var client : ICefClient; const targetFrameName : string; const popupFeatures : TCefPopupFeatures) : boolean;
|
||||
procedure ApplyPopupFeatures;
|
||||
procedure HandleSysCharMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleSysKeyDownMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleSysKeyUpMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleSysCharMsg(var Msg: tagMSG);
|
||||
procedure HandleSysKeyDownMsg(var Msg: tagMSG);
|
||||
procedure HandleSysKeyUpMsg(var Msg: tagMSG);
|
||||
procedure HandleKeyDownMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleKeyUpMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleCharMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleMouseWheelMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure HandleKeyUpMsg(var Msg: tagMSG);
|
||||
procedure HandleCharMsg(var Msg: tagMSG);
|
||||
procedure HandleMouseWheelMsg(var Msg: tagMSG);
|
||||
|
||||
property ClientInitialized : boolean read FClientInitialized;
|
||||
property Closing : boolean read FClosing;
|
||||
@ -156,7 +156,7 @@ uses
|
||||
// 3- chrmosr.OnBeforeClose is triggered because the internal browser was destroyed.
|
||||
// Now we set FCanClose to True and send WM_CLOSE to the form.
|
||||
|
||||
procedure TChildForm.HandleSysCharMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleSysCharMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempKeyEvent : TCefKeyEvent;
|
||||
begin
|
||||
@ -173,13 +173,10 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end
|
||||
else
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleSysKeyDownMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleSysKeyDownMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempKeyEvent : TCefKeyEvent;
|
||||
begin
|
||||
@ -195,13 +192,10 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end
|
||||
else
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleSysKeyUpMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleSysKeyUpMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempKeyEvent : TCefKeyEvent;
|
||||
begin
|
||||
@ -217,10 +211,7 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end
|
||||
else
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleKeyDownMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
@ -245,7 +236,7 @@ begin
|
||||
Handled := False;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleKeyUpMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleKeyUpMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempKeyEvent : TCefKeyEvent;
|
||||
begin
|
||||
@ -261,13 +252,10 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end
|
||||
else
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleCharMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleCharMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempKeyEvent : TCefKeyEvent;
|
||||
begin
|
||||
@ -284,13 +272,10 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end
|
||||
else
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChildForm.HandleMouseWheelMsg(var Msg: tagMSG; var Handled: Boolean);
|
||||
procedure TChildForm.HandleMouseWheelMsg(var Msg: tagMSG);
|
||||
var
|
||||
TempMouseEvent : TCefMouseEvent;
|
||||
TempPoint : TPoint;
|
||||
@ -309,8 +294,6 @@ begin
|
||||
Chromium1.SendMouseWheelEvent(@TempMouseEvent, smallint(Msg.wParam shr 16), 0)
|
||||
else
|
||||
Chromium1.SendMouseWheelEvent(@TempMouseEvent, 0, smallint(Msg.wParam shr 16));
|
||||
|
||||
Handled := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -317,15 +317,13 @@ end;
|
||||
procedure TMainForm.AppEventsMessage(var Msg: tagMSG; var Handled: Boolean);
|
||||
begin
|
||||
case Msg.message of
|
||||
WM_SYSCHAR : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysCharMsg(Msg, Handled);
|
||||
WM_SYSKEYDOWN : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysKeyDownMsg(Msg, Handled);
|
||||
WM_SYSKEYUP : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysKeyUpMsg(Msg, Handled);
|
||||
WM_SYSCHAR : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysCharMsg(Msg);
|
||||
WM_SYSKEYDOWN : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysKeyDownMsg(Msg);
|
||||
WM_SYSKEYUP : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleSysKeyUpMsg(Msg);
|
||||
WM_KEYDOWN : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleKeyDownMsg(Msg, Handled);
|
||||
WM_KEYUP : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleKeyUpMsg(Msg, Handled);
|
||||
WM_CHAR : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleCharMsg(Msg, Handled);
|
||||
WM_MOUSEWHEEL : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleMouseWheelMsg(Msg, Handled);
|
||||
|
||||
else Handled := False;
|
||||
WM_KEYUP : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleKeyUpMsg(Msg);
|
||||
WM_CHAR : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleCharMsg(Msg);
|
||||
WM_MOUSEWHEEL : if (screen.FocusedForm is TChildForm) then TChildForm(screen.FocusedForm).HandleMouseWheelMsg(Msg);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -280,7 +280,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYDOWN :
|
||||
@ -296,7 +295,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_SYSKEYUP :
|
||||
@ -312,7 +310,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_KEYDOWN :
|
||||
@ -344,7 +341,6 @@ begin
|
||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_CHAR :
|
||||
@ -361,7 +357,6 @@ begin
|
||||
|
||||
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||
Handled := True;
|
||||
end;
|
||||
|
||||
WM_MOUSEWHEEL :
|
||||
|
@ -6,7 +6,7 @@
|
||||
<MainSource>TabbedBrowser2.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Application</AppType>
|
||||
</PropertyGroup>
|
||||
|
@ -137,7 +137,6 @@ contains
|
||||
uCEFChromiumOptions in '..\source\uCEFChromiumOptions.pas',
|
||||
uCEFChromiumFontOptions in '..\source\uCEFChromiumFontOptions.pas',
|
||||
uCEFPDFPrintOptions in '..\source\uCEFPDFPrintOptions.pas',
|
||||
uCEFRegisterCDMCallback in '..\source\uCEFRegisterCDMCallback.pas',
|
||||
uCEFThread in '..\source\uCEFThread.pas',
|
||||
uCEFv8Interceptor in '..\source\uCEFv8Interceptor.pas',
|
||||
uCEFWaitableEvent in '..\source\uCEFWaitableEvent.pas',
|
||||
|
@ -231,7 +231,6 @@
|
||||
<DCCReference Include="..\source\uCEFChromiumOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFChromiumFontOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFPDFPrintOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFRegisterCDMCallback.pas"/>
|
||||
<DCCReference Include="..\source\uCEFThread.pas"/>
|
||||
<DCCReference Include="..\source\uCEFv8Interceptor.pas"/>
|
||||
<DCCReference Include="..\source\uCEFWaitableEvent.pas"/>
|
||||
@ -319,6 +318,7 @@
|
||||
<DCCReference Include="..\source\uCEFWorkSchedulerQueueThread.pas"/>
|
||||
<DCCReference Include="..\source\uCEFLinkedWinControlBase.pas"/>
|
||||
<DCCReference Include="..\source\uCEFTimerWorkScheduler.pas"/>
|
||||
<DCCReference Include="..\source\uCEFFrameHandler.pas"/>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
|
@ -135,7 +135,6 @@ contains
|
||||
uCEFChromiumOptions in '..\source\uCEFChromiumOptions.pas',
|
||||
uCEFChromiumFontOptions in '..\source\uCEFChromiumFontOptions.pas',
|
||||
uCEFPDFPrintOptions in '..\source\uCEFPDFPrintOptions.pas',
|
||||
uCEFRegisterCDMCallback in '..\source\uCEFRegisterCDMCallback.pas',
|
||||
uCEFThread in '..\source\uCEFThread.pas',
|
||||
uCEFv8Interceptor in '..\source\uCEFv8Interceptor.pas',
|
||||
uCEFWaitableEvent in '..\source\uCEFWaitableEvent.pas',
|
||||
|
@ -138,7 +138,6 @@ contains
|
||||
uCEFChromiumOptions in '..\source\uCEFChromiumOptions.pas',
|
||||
uCEFChromiumFontOptions in '..\source\uCEFChromiumFontOptions.pas',
|
||||
uCEFPDFPrintOptions in '..\source\uCEFPDFPrintOptions.pas',
|
||||
uCEFRegisterCDMCallback in '..\source\uCEFRegisterCDMCallback.pas',
|
||||
uCEFThread in '..\source\uCEFThread.pas',
|
||||
uCEFv8Interceptor in '..\source\uCEFv8Interceptor.pas',
|
||||
uCEFWaitableEvent in '..\source\uCEFWaitableEvent.pas',
|
||||
|
@ -253,7 +253,6 @@
|
||||
<DCCReference Include="..\source\uCEFChromiumOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFChromiumFontOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFPDFPrintOptions.pas"/>
|
||||
<DCCReference Include="..\source\uCEFRegisterCDMCallback.pas"/>
|
||||
<DCCReference Include="..\source\uCEFThread.pas"/>
|
||||
<DCCReference Include="..\source\uCEFv8Interceptor.pas"/>
|
||||
<DCCReference Include="..\source\uCEFWaitableEvent.pas"/>
|
||||
@ -390,14 +389,14 @@
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="3">
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="..\..\..\..\..\..\..\Public\Documents\Embarcadero\Studio\20.0\Bpl\CEF4Delphi_FMX.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="..\..\..\..\..\..\..\Public\Documents\Embarcadero\Studio\19.0\Bpl\CEF4Delphi_FMX.bpl" Configuration="Release" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>CEF4Delphi_FMX.bpl</RemoteName>
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule"/>
|
||||
<DeployFile LocalName="..\..\..\..\..\..\..\Public\Documents\Embarcadero\Studio\19.0\Bpl\CEF4Delphi_FMX.bpl" Configuration="Release" Class="ProjectOutput">
|
||||
<DeployFile LocalName="..\..\..\..\..\..\..\Public\Documents\Embarcadero\Studio\21.0\Bpl\CEF4Delphi_FMX.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>CEF4Delphi_FMX.bpl</RemoteName>
|
||||
<Overwrite>true</Overwrite>
|
||||
|
@ -21,8 +21,8 @@
|
||||
</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="92" Release="27"/>
|
||||
<Files Count="203">
|
||||
<Version Major="93" Minor="1" Release="11"/>
|
||||
<Files Count="202">
|
||||
<Item1>
|
||||
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
|
||||
<UnitName Value="uCEFAccessibilityHandler"/>
|
||||
@ -285,574 +285,570 @@
|
||||
<UnitName Value="uCEFProcessMessage"/>
|
||||
</Item65>
|
||||
<Item66>
|
||||
<Filename Value="..\source\uCEFRegisterCDMCallback.pas"/>
|
||||
<UnitName Value="uCEFRegisterCDMCallback"/>
|
||||
</Item66>
|
||||
<Item67>
|
||||
<Filename Value="..\source\uCEFRenderHandler.pas"/>
|
||||
<UnitName Value="uCEFRenderHandler"/>
|
||||
</Item67>
|
||||
<Item68>
|
||||
</Item66>
|
||||
<Item67>
|
||||
<Filename Value="..\source\uCEFRenderProcessHandler.pas"/>
|
||||
<UnitName Value="uCEFRenderProcessHandler"/>
|
||||
</Item68>
|
||||
<Item69>
|
||||
</Item67>
|
||||
<Item68>
|
||||
<Filename Value="..\source\uCEFRequest.pas"/>
|
||||
<UnitName Value="uCEFRequest"/>
|
||||
</Item69>
|
||||
<Item70>
|
||||
</Item68>
|
||||
<Item69>
|
||||
<Filename Value="..\source\uCEFRequestCallback.pas"/>
|
||||
<UnitName Value="uCEFRequestCallback"/>
|
||||
</Item70>
|
||||
<Item71>
|
||||
</Item69>
|
||||
<Item70>
|
||||
<Filename Value="..\source\uCEFRequestContext.pas"/>
|
||||
<UnitName Value="uCEFRequestContext"/>
|
||||
</Item71>
|
||||
<Item72>
|
||||
</Item70>
|
||||
<Item71>
|
||||
<Filename Value="..\source\uCEFRequestContextHandler.pas"/>
|
||||
<UnitName Value="uCEFRequestContextHandler"/>
|
||||
</Item72>
|
||||
<Item73>
|
||||
</Item71>
|
||||
<Item72>
|
||||
<Filename Value="..\source\uCEFRequestHandler.pas"/>
|
||||
<UnitName Value="uCEFRequestHandler"/>
|
||||
</Item73>
|
||||
<Item74>
|
||||
</Item72>
|
||||
<Item73>
|
||||
<Filename Value="..\source\uCEFResolveCallback.pas"/>
|
||||
<UnitName Value="uCEFResolveCallback"/>
|
||||
</Item74>
|
||||
<Item75>
|
||||
</Item73>
|
||||
<Item74>
|
||||
<Filename Value="..\source\uCEFResourceBundle.pas"/>
|
||||
<UnitName Value="uCEFResourceBundle"/>
|
||||
</Item75>
|
||||
<Item76>
|
||||
</Item74>
|
||||
<Item75>
|
||||
<Filename Value="..\source\uCEFResourceBundleHandler.pas"/>
|
||||
<UnitName Value="uCEFResourceBundleHandler"/>
|
||||
</Item76>
|
||||
<Item77>
|
||||
</Item75>
|
||||
<Item76>
|
||||
<Filename Value="..\source\uCEFResourceHandler.pas"/>
|
||||
<UnitName Value="uCEFResourceHandler"/>
|
||||
</Item77>
|
||||
<Item78>
|
||||
</Item76>
|
||||
<Item77>
|
||||
<Filename Value="..\source\uCEFResponse.pas"/>
|
||||
<UnitName Value="uCEFResponse"/>
|
||||
</Item78>
|
||||
<Item79>
|
||||
</Item77>
|
||||
<Item78>
|
||||
<Filename Value="..\source\uCEFResponseFilter.pas"/>
|
||||
<UnitName Value="uCEFResponseFilter"/>
|
||||
</Item79>
|
||||
<Item80>
|
||||
</Item78>
|
||||
<Item79>
|
||||
<Filename Value="..\source\uCEFRunContextMenuCallback.pas"/>
|
||||
<UnitName Value="uCEFRunContextMenuCallback"/>
|
||||
</Item80>
|
||||
<Item81>
|
||||
</Item79>
|
||||
<Item80>
|
||||
<Filename Value="..\source\uCEFRunFileDialogCallback.pas"/>
|
||||
<UnitName Value="uCEFRunFileDialogCallback"/>
|
||||
</Item81>
|
||||
<Item82>
|
||||
</Item80>
|
||||
<Item81>
|
||||
<Filename Value="..\source\uCEFSchemeHandlerFactory.pas"/>
|
||||
<UnitName Value="uCEFSchemeHandlerFactory"/>
|
||||
</Item82>
|
||||
<Item83>
|
||||
</Item81>
|
||||
<Item82>
|
||||
<Filename Value="..\source\uCEFSchemeRegistrar.pas"/>
|
||||
<UnitName Value="uCEFSchemeRegistrar"/>
|
||||
</Item83>
|
||||
<Item84>
|
||||
</Item82>
|
||||
<Item83>
|
||||
<Filename Value="..\source\uCEFSelectClientCertificateCallback.pas"/>
|
||||
<UnitName Value="uCEFSelectClientCertificateCallback"/>
|
||||
</Item84>
|
||||
<Item85>
|
||||
</Item83>
|
||||
<Item84>
|
||||
<Filename Value="..\source\uCEFSetCookieCallback.pas"/>
|
||||
<UnitName Value="uCEFSetCookieCallback"/>
|
||||
</Item85>
|
||||
<Item86>
|
||||
</Item84>
|
||||
<Item85>
|
||||
<Filename Value="..\source\uCEFSslInfo.pas"/>
|
||||
<UnitName Value="uCEFSslInfo"/>
|
||||
</Item86>
|
||||
<Item87>
|
||||
</Item85>
|
||||
<Item86>
|
||||
<Filename Value="..\source\uCEFSSLStatus.pas"/>
|
||||
<UnitName Value="uCEFSSLStatus"/>
|
||||
</Item87>
|
||||
<Item88>
|
||||
</Item86>
|
||||
<Item87>
|
||||
<Filename Value="..\source\uCEFStreamReader.pas"/>
|
||||
<UnitName Value="uCEFStreamReader"/>
|
||||
</Item88>
|
||||
<Item89>
|
||||
</Item87>
|
||||
<Item88>
|
||||
<Filename Value="..\source\uCEFStreamWriter.pas"/>
|
||||
<UnitName Value="uCEFStreamWriter"/>
|
||||
</Item89>
|
||||
<Item90>
|
||||
</Item88>
|
||||
<Item89>
|
||||
<Filename Value="..\source\uCEFStringList.pas"/>
|
||||
<UnitName Value="uCEFStringList"/>
|
||||
</Item90>
|
||||
<Item91>
|
||||
</Item89>
|
||||
<Item90>
|
||||
<Filename Value="..\source\uCEFStringMap.pas"/>
|
||||
<UnitName Value="uCEFStringMap"/>
|
||||
</Item91>
|
||||
<Item92>
|
||||
</Item90>
|
||||
<Item91>
|
||||
<Filename Value="..\source\uCEFStringMultimap.pas"/>
|
||||
<UnitName Value="uCEFStringMultimap"/>
|
||||
</Item92>
|
||||
<Item93>
|
||||
</Item91>
|
||||
<Item92>
|
||||
<Filename Value="..\source\uCEFStringVisitor.pas"/>
|
||||
<UnitName Value="uCEFStringVisitor"/>
|
||||
</Item93>
|
||||
<Item94>
|
||||
</Item92>
|
||||
<Item93>
|
||||
<Filename Value="..\source\uCEFTask.pas"/>
|
||||
<UnitName Value="uCEFTask"/>
|
||||
</Item94>
|
||||
<Item95>
|
||||
</Item93>
|
||||
<Item94>
|
||||
<Filename Value="..\source\uCEFTaskRunner.pas"/>
|
||||
<UnitName Value="uCEFTaskRunner"/>
|
||||
</Item95>
|
||||
<Item96>
|
||||
</Item94>
|
||||
<Item95>
|
||||
<Filename Value="..\source\uCEFThread.pas"/>
|
||||
<UnitName Value="uCEFThread"/>
|
||||
</Item96>
|
||||
<Item97>
|
||||
</Item95>
|
||||
<Item96>
|
||||
<Filename Value="..\source\uCEFTypes.pas"/>
|
||||
<UnitName Value="uCEFTypes"/>
|
||||
</Item97>
|
||||
<Item98>
|
||||
</Item96>
|
||||
<Item97>
|
||||
<Filename Value="..\source\uCEFUrlRequest.pas"/>
|
||||
<UnitName Value="uCEFUrlRequest"/>
|
||||
</Item98>
|
||||
<Item99>
|
||||
</Item97>
|
||||
<Item98>
|
||||
<Filename Value="..\source\uCEFUrlrequestClient.pas"/>
|
||||
<UnitName Value="uCEFUrlrequestClient"/>
|
||||
</Item99>
|
||||
<Item100>
|
||||
</Item98>
|
||||
<Item99>
|
||||
<Filename Value="..\source\uCEFv8Accessor.pas"/>
|
||||
<UnitName Value="uCEFv8Accessor"/>
|
||||
</Item100>
|
||||
<Item101>
|
||||
</Item99>
|
||||
<Item100>
|
||||
<Filename Value="..\source\uCEFv8ArrayBufferReleaseCallback.pas"/>
|
||||
<UnitName Value="uCEFv8ArrayBufferReleaseCallback"/>
|
||||
</Item101>
|
||||
<Item102>
|
||||
</Item100>
|
||||
<Item101>
|
||||
<Filename Value="..\source\uCEFv8Context.pas"/>
|
||||
<UnitName Value="uCEFv8Context"/>
|
||||
</Item102>
|
||||
<Item103>
|
||||
</Item101>
|
||||
<Item102>
|
||||
<Filename Value="..\source\uCEFv8Exception.pas"/>
|
||||
<UnitName Value="uCEFv8Exception"/>
|
||||
</Item103>
|
||||
<Item104>
|
||||
</Item102>
|
||||
<Item103>
|
||||
<Filename Value="..\source\uCEFv8Handler.pas"/>
|
||||
<UnitName Value="uCEFv8Handler"/>
|
||||
</Item104>
|
||||
<Item105>
|
||||
</Item103>
|
||||
<Item104>
|
||||
<Filename Value="..\source\uCEFv8Interceptor.pas"/>
|
||||
<UnitName Value="uCEFv8Interceptor"/>
|
||||
</Item105>
|
||||
<Item106>
|
||||
</Item104>
|
||||
<Item105>
|
||||
<Filename Value="..\source\uCEFv8StackFrame.pas"/>
|
||||
<UnitName Value="uCEFv8StackFrame"/>
|
||||
</Item106>
|
||||
<Item107>
|
||||
</Item105>
|
||||
<Item106>
|
||||
<Filename Value="..\source\uCEFv8StackTrace.pas"/>
|
||||
<UnitName Value="uCEFv8StackTrace"/>
|
||||
</Item107>
|
||||
<Item108>
|
||||
</Item106>
|
||||
<Item107>
|
||||
<Filename Value="..\source\uCEFv8Value.pas"/>
|
||||
<UnitName Value="uCEFv8Value"/>
|
||||
</Item108>
|
||||
<Item109>
|
||||
</Item107>
|
||||
<Item108>
|
||||
<Filename Value="..\source\uCEFValue.pas"/>
|
||||
<UnitName Value="uCEFValue"/>
|
||||
</Item109>
|
||||
<Item110>
|
||||
</Item108>
|
||||
<Item109>
|
||||
<Filename Value="..\source\uCEFWaitableEvent.pas"/>
|
||||
<UnitName Value="uCEFWaitableEvent"/>
|
||||
</Item110>
|
||||
<Item111>
|
||||
</Item109>
|
||||
<Item110>
|
||||
<Filename Value="..\source\uCEFWebPluginInfo.pas"/>
|
||||
<UnitName Value="uCEFWebPluginInfo"/>
|
||||
</Item111>
|
||||
<Item112>
|
||||
</Item110>
|
||||
<Item111>
|
||||
<Filename Value="..\source\uCEFWebPluginInfoVisitor.pas"/>
|
||||
<UnitName Value="uCEFWebPluginInfoVisitor"/>
|
||||
</Item112>
|
||||
<Item113>
|
||||
</Item111>
|
||||
<Item112>
|
||||
<Filename Value="..\source\uCEFWebPluginUnstableCallback.pas"/>
|
||||
<UnitName Value="uCEFWebPluginUnstableCallback"/>
|
||||
</Item113>
|
||||
<Item114>
|
||||
</Item112>
|
||||
<Item113>
|
||||
<Filename Value="..\source\uCEFWindowParent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFWindowParent"/>
|
||||
</Item114>
|
||||
<Item115>
|
||||
</Item113>
|
||||
<Item114>
|
||||
<Filename Value="..\source\uCEFWorkScheduler.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFWorkScheduler"/>
|
||||
</Item115>
|
||||
<Item116>
|
||||
</Item114>
|
||||
<Item115>
|
||||
<Filename Value="..\source\uCEFWorkSchedulerThread.pas"/>
|
||||
<UnitName Value="uCEFWorkSchedulerThread"/>
|
||||
</Item116>
|
||||
<Item117>
|
||||
</Item115>
|
||||
<Item116>
|
||||
<Filename Value="..\source\uCEFWriteHandler.pas"/>
|
||||
<UnitName Value="uCEFWriteHandler"/>
|
||||
</Item117>
|
||||
<Item118>
|
||||
</Item116>
|
||||
<Item117>
|
||||
<Filename Value="..\source\uCEFX509Certificate.pas"/>
|
||||
<UnitName Value="uCEFX509Certificate"/>
|
||||
</Item118>
|
||||
<Item119>
|
||||
</Item117>
|
||||
<Item118>
|
||||
<Filename Value="..\source\uCEFX509CertPrincipal.pas"/>
|
||||
<UnitName Value="uCEFX509CertPrincipal"/>
|
||||
</Item119>
|
||||
<Item120>
|
||||
</Item118>
|
||||
<Item119>
|
||||
<Filename Value="..\source\uCEFXmlReader.pas"/>
|
||||
<UnitName Value="uCEFXmlReader"/>
|
||||
</Item120>
|
||||
<Item121>
|
||||
</Item119>
|
||||
<Item120>
|
||||
<Filename Value="..\source\uCEFZipReader.pas"/>
|
||||
<UnitName Value="uCEFZipReader"/>
|
||||
</Item121>
|
||||
<Item122>
|
||||
</Item120>
|
||||
<Item121>
|
||||
<Filename Value="..\source\uCEFChromiumCore.pas"/>
|
||||
<UnitName Value="uCEFChromiumCore"/>
|
||||
</Item122>
|
||||
<Item123>
|
||||
</Item121>
|
||||
<Item122>
|
||||
<Filename Value="..\source\uCEFChromium.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFChromium"/>
|
||||
</Item123>
|
||||
<Item124>
|
||||
</Item122>
|
||||
<Item123>
|
||||
<Filename Value="..\source\uCEFBufferPanel.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFBufferPanel"/>
|
||||
</Item124>
|
||||
<Item125>
|
||||
</Item123>
|
||||
<Item124>
|
||||
<Filename Value="..\source\uCEFServer.pas"/>
|
||||
<UnitName Value="uCEFServer"/>
|
||||
</Item125>
|
||||
<Item126>
|
||||
</Item124>
|
||||
<Item125>
|
||||
<Filename Value="..\source\uCEFServerComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFServerComponent"/>
|
||||
</Item126>
|
||||
<Item127>
|
||||
</Item125>
|
||||
<Item126>
|
||||
<Filename Value="..\source\uCEFServerEvents.pas"/>
|
||||
<UnitName Value="uCEFServerEvents"/>
|
||||
</Item127>
|
||||
<Item128>
|
||||
</Item126>
|
||||
<Item127>
|
||||
<Filename Value="..\source\uCEFServerHandler.pas"/>
|
||||
<UnitName Value="uCEFServerHandler"/>
|
||||
</Item127>
|
||||
<Item128>
|
||||
<Filename Value="..\source\res\tbufferpanel.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item128>
|
||||
<Item129>
|
||||
<Filename Value="..\source\res\tbufferpanel.lrs"/>
|
||||
<Filename Value="..\source\res\tcefservercomponent.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item129>
|
||||
<Item130>
|
||||
<Filename Value="..\source\res\tcefservercomponent.lrs"/>
|
||||
<Filename Value="..\source\res\tcefwindowparent.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item130>
|
||||
<Item131>
|
||||
<Filename Value="..\source\res\tcefwindowparent.lrs"/>
|
||||
<Filename Value="..\source\res\tcefworkscheduler.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item131>
|
||||
<Item132>
|
||||
<Filename Value="..\source\res\tcefworkscheduler.lrs"/>
|
||||
<Filename Value="..\source\res\tchromium.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item132>
|
||||
<Item133>
|
||||
<Filename Value="..\source\res\tchromium.lrs"/>
|
||||
<Filename Value="..\source\res\tchromiumwindow.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item133>
|
||||
<Item134>
|
||||
<Filename Value="..\source\res\tchromiumwindow.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item134>
|
||||
<Item135>
|
||||
<Filename Value="..\source\uCEFWinControl.pas"/>
|
||||
<UnitName Value="uCEFWinControl"/>
|
||||
</Item135>
|
||||
<Item136>
|
||||
</Item134>
|
||||
<Item135>
|
||||
<Filename Value="..\source\uCEFLinkedWindowParent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFLinkedWindowParent"/>
|
||||
</Item136>
|
||||
<Item137>
|
||||
</Item135>
|
||||
<Item136>
|
||||
<Filename Value="..\source\uCEFUrlRequestClientEvents.pas"/>
|
||||
<UnitName Value="uCEFUrlRequestClientEvents"/>
|
||||
</Item137>
|
||||
<Item138>
|
||||
</Item136>
|
||||
<Item137>
|
||||
<Filename Value="..\source\uCEFUrlRequestClientComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFUrlRequestClientComponent"/>
|
||||
</Item138>
|
||||
<Item139>
|
||||
</Item137>
|
||||
<Item138>
|
||||
<Filename Value="..\source\uCEFOSRIMEHandler.pas"/>
|
||||
<UnitName Value="uCEFOSRIMEHandler"/>
|
||||
</Item139>
|
||||
<Item140>
|
||||
</Item138>
|
||||
<Item139>
|
||||
<Filename Value="..\source\uCEFCookieAccessFilter.pas"/>
|
||||
<UnitName Value="uCEFCookieAccessFilter"/>
|
||||
</Item140>
|
||||
<Item141>
|
||||
</Item139>
|
||||
<Item140>
|
||||
<Filename Value="..\source\uCEFResourceReadCallback.pas"/>
|
||||
<UnitName Value="uCEFResourceReadCallback"/>
|
||||
</Item141>
|
||||
<Item142>
|
||||
</Item140>
|
||||
<Item141>
|
||||
<Filename Value="..\source\uCEFResourceRequestHandler.pas"/>
|
||||
<UnitName Value="uCEFResourceRequestHandler"/>
|
||||
</Item142>
|
||||
<Item143>
|
||||
</Item141>
|
||||
<Item142>
|
||||
<Filename Value="..\source\uCEFResourceSkipCallback.pas"/>
|
||||
<UnitName Value="uCEFResourceSkipCallback"/>
|
||||
</Item143>
|
||||
<Item144>
|
||||
</Item142>
|
||||
<Item143>
|
||||
<Filename Value="..\source\res\tcefsentinel.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item144>
|
||||
<Item145>
|
||||
</Item143>
|
||||
<Item144>
|
||||
<Filename Value="..\source\uCEFSentinel.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFSentinel"/>
|
||||
</Item145>
|
||||
<Item146>
|
||||
</Item144>
|
||||
<Item145>
|
||||
<Filename Value="..\source\uCEFApplicationCore.pas"/>
|
||||
<UnitName Value="uCEFApplicationCore"/>
|
||||
</Item146>
|
||||
<Item147>
|
||||
</Item145>
|
||||
<Item146>
|
||||
<Filename Value="..\source\uCEFOAuth2Helper.pas"/>
|
||||
<UnitName Value="uCEFOAuth2Helper"/>
|
||||
</Item147>
|
||||
<Item148>
|
||||
</Item146>
|
||||
<Item147>
|
||||
<Filename Value="..\source\uCEFMediaObserver.pas"/>
|
||||
<UnitName Value="uCEFMediaObserver"/>
|
||||
</Item148>
|
||||
<Item149>
|
||||
</Item147>
|
||||
<Item148>
|
||||
<Filename Value="..\source\uCEFMediaRoute.pas"/>
|
||||
<UnitName Value="uCEFMediaRoute"/>
|
||||
</Item149>
|
||||
<Item150>
|
||||
</Item148>
|
||||
<Item149>
|
||||
<Filename Value="..\source\uCEFMediaRouteCreateCallback.pas"/>
|
||||
<UnitName Value="uCEFMediaRouteCreateCallback"/>
|
||||
</Item150>
|
||||
<Item151>
|
||||
</Item149>
|
||||
<Item150>
|
||||
<Filename Value="..\source\uCEFMediaRouter.pas"/>
|
||||
<UnitName Value="uCEFMediaRouter"/>
|
||||
</Item151>
|
||||
<Item152>
|
||||
</Item150>
|
||||
<Item151>
|
||||
<Filename Value="..\source\uCEFMediaSink.pas"/>
|
||||
<UnitName Value="uCEFMediaSink"/>
|
||||
</Item152>
|
||||
<Item153>
|
||||
</Item151>
|
||||
<Item152>
|
||||
<Filename Value="..\source\uCEFMediaSource.pas"/>
|
||||
<UnitName Value="uCEFMediaSource"/>
|
||||
</Item153>
|
||||
<Item154>
|
||||
</Item152>
|
||||
<Item153>
|
||||
<Filename Value="..\source\uCEFRegistration.pas"/>
|
||||
<UnitName Value="uCEFRegistration"/>
|
||||
</Item154>
|
||||
<Item155>
|
||||
</Item153>
|
||||
<Item154>
|
||||
<Filename Value="..\source\uCEFWindowDelegate.pas"/>
|
||||
<UnitName Value="uCEFWindowDelegate"/>
|
||||
</Item155>
|
||||
<Item156>
|
||||
</Item154>
|
||||
<Item155>
|
||||
<Filename Value="..\source\uCEFWindow.pas"/>
|
||||
<UnitName Value="uCEFWindow"/>
|
||||
</Item156>
|
||||
<Item157>
|
||||
</Item155>
|
||||
<Item156>
|
||||
<Filename Value="..\source\uCEFMenuButtonDelegate.pas"/>
|
||||
<UnitName Value="uCEFMenuButtonDelegate"/>
|
||||
</Item157>
|
||||
<Item158>
|
||||
</Item156>
|
||||
<Item157>
|
||||
<Filename Value="..\source\uCEFMenuButtonPressedLock.pas"/>
|
||||
<UnitName Value="uCEFMenuButtonPressedLock"/>
|
||||
</Item158>
|
||||
<Item159>
|
||||
</Item157>
|
||||
<Item158>
|
||||
<Filename Value="..\source\uCEFMenuButton.pas"/>
|
||||
<UnitName Value="uCEFMenuButton"/>
|
||||
</Item159>
|
||||
<Item160>
|
||||
</Item158>
|
||||
<Item159>
|
||||
<Filename Value="..\source\uCEFLabelButton.pas"/>
|
||||
<UnitName Value="uCEFLabelButton"/>
|
||||
</Item160>
|
||||
<Item161>
|
||||
</Item159>
|
||||
<Item160>
|
||||
<Filename Value="..\source\uCEFButtonDelegate.pas"/>
|
||||
<UnitName Value="uCEFButtonDelegate"/>
|
||||
</Item161>
|
||||
<Item162>
|
||||
</Item160>
|
||||
<Item161>
|
||||
<Filename Value="..\source\uCEFButton.pas"/>
|
||||
<UnitName Value="uCEFButton"/>
|
||||
</Item162>
|
||||
<Item163>
|
||||
</Item161>
|
||||
<Item162>
|
||||
<Filename Value="..\source\uCEFBrowserViewDelegate.pas"/>
|
||||
<UnitName Value="uCEFBrowserViewDelegate"/>
|
||||
</Item163>
|
||||
<Item164>
|
||||
</Item162>
|
||||
<Item163>
|
||||
<Filename Value="..\source\uCEFBrowserView.pas"/>
|
||||
<UnitName Value="uCEFBrowserView"/>
|
||||
</Item164>
|
||||
<Item165>
|
||||
</Item163>
|
||||
<Item164>
|
||||
<Filename Value="..\source\uCEFPanelDelegate.pas"/>
|
||||
<UnitName Value="uCEFPanelDelegate"/>
|
||||
</Item165>
|
||||
<Item166>
|
||||
</Item164>
|
||||
<Item165>
|
||||
<Filename Value="..\source\uCEFPanel.pas"/>
|
||||
<UnitName Value="uCEFPanel"/>
|
||||
</Item166>
|
||||
<Item167>
|
||||
</Item165>
|
||||
<Item166>
|
||||
<Filename Value="..\source\uCEFScrollView.pas"/>
|
||||
<UnitName Value="uCEFScrollView"/>
|
||||
</Item167>
|
||||
<Item168>
|
||||
</Item166>
|
||||
<Item167>
|
||||
<Filename Value="..\source\uCEFTextfieldDelegate.pas"/>
|
||||
<UnitName Value="uCEFTextfieldDelegate"/>
|
||||
</Item168>
|
||||
<Item169>
|
||||
</Item167>
|
||||
<Item168>
|
||||
<Filename Value="..\source\uCEFTextfield.pas"/>
|
||||
<UnitName Value="uCEFTextfield"/>
|
||||
</Item169>
|
||||
<Item170>
|
||||
</Item168>
|
||||
<Item169>
|
||||
<Filename Value="..\source\uCEFViewDelegate.pas"/>
|
||||
<UnitName Value="uCEFViewDelegate"/>
|
||||
</Item170>
|
||||
<Item171>
|
||||
</Item169>
|
||||
<Item170>
|
||||
<Filename Value="..\source\uCEFView.pas"/>
|
||||
<UnitName Value="uCEFView"/>
|
||||
</Item171>
|
||||
<Item172>
|
||||
</Item170>
|
||||
<Item171>
|
||||
<Filename Value="..\source\uCEFFillLayout.pas"/>
|
||||
<UnitName Value="uCEFFillLayout"/>
|
||||
</Item172>
|
||||
<Item173>
|
||||
</Item171>
|
||||
<Item172>
|
||||
<Filename Value="..\source\uCEFBoxLayout.pas"/>
|
||||
<UnitName Value="uCEFBoxLayout"/>
|
||||
</Item173>
|
||||
<Item174>
|
||||
</Item172>
|
||||
<Item173>
|
||||
<Filename Value="..\source\uCEFLayout.pas"/>
|
||||
<UnitName Value="uCEFLayout"/>
|
||||
</Item174>
|
||||
<Item175>
|
||||
</Item173>
|
||||
<Item174>
|
||||
<Filename Value="..\source\uCEFDisplay.pas"/>
|
||||
<UnitName Value="uCEFDisplay"/>
|
||||
</Item175>
|
||||
<Item176>
|
||||
</Item174>
|
||||
<Item175>
|
||||
<Filename Value="..\source\uCEFMenuButtonComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFMenuButtonComponent"/>
|
||||
</Item176>
|
||||
<Item177>
|
||||
</Item175>
|
||||
<Item176>
|
||||
<Filename Value="..\source\uCEFLabelButtonComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFLabelButtonComponent"/>
|
||||
</Item177>
|
||||
<Item178>
|
||||
</Item176>
|
||||
<Item177>
|
||||
<Filename Value="..\source\uCEFButtonComponent.pas"/>
|
||||
<UnitName Value="uCEFButtonComponent"/>
|
||||
</Item178>
|
||||
<Item179>
|
||||
</Item177>
|
||||
<Item178>
|
||||
<Filename Value="..\source\uCEFBrowserViewComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFBrowserViewComponent"/>
|
||||
</Item179>
|
||||
<Item180>
|
||||
</Item178>
|
||||
<Item179>
|
||||
<Filename Value="..\source\uCEFWindowComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFWindowComponent"/>
|
||||
</Item180>
|
||||
<Item181>
|
||||
</Item179>
|
||||
<Item180>
|
||||
<Filename Value="..\source\uCEFPanelComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFPanelComponent"/>
|
||||
</Item181>
|
||||
<Item182>
|
||||
</Item180>
|
||||
<Item181>
|
||||
<Filename Value="..\source\uCEFScrollViewComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFScrollViewComponent"/>
|
||||
</Item182>
|
||||
<Item183>
|
||||
</Item181>
|
||||
<Item182>
|
||||
<Filename Value="..\source\uCEFTextfieldComponent.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFTextfieldComponent"/>
|
||||
</Item183>
|
||||
<Item184>
|
||||
</Item182>
|
||||
<Item183>
|
||||
<Filename Value="..\source\uCEFViewComponent.pas"/>
|
||||
<UnitName Value="uCEFViewComponent"/>
|
||||
</Item184>
|
||||
<Item185>
|
||||
</Item183>
|
||||
<Item184>
|
||||
<Filename Value="..\source\uCEFViewsFrameworkEvents.pas"/>
|
||||
<UnitName Value="uCEFViewsFrameworkEvents"/>
|
||||
</Item185>
|
||||
<Item186>
|
||||
</Item184>
|
||||
<Item185>
|
||||
<Filename Value="..\source\uCEFAudioHandler.pas"/>
|
||||
<UnitName Value="uCEFAudioHandler"/>
|
||||
</Item186>
|
||||
<Item187>
|
||||
</Item185>
|
||||
<Item186>
|
||||
<Filename Value="..\source\uCEFDevToolsMessageObserver.pas"/>
|
||||
<UnitName Value="uCEFDevToolsMessageObserver"/>
|
||||
</Item187>
|
||||
<Item188>
|
||||
</Item186>
|
||||
<Item187>
|
||||
<Filename Value="..\source\uCEFMediaSinkDeviceInfoCallback.pas"/>
|
||||
<UnitName Value="uCEFMediaSinkDeviceInfoCallback"/>
|
||||
</Item188>
|
||||
<Item189>
|
||||
</Item187>
|
||||
<Item188>
|
||||
<Filename Value="..\source\uCEFJson.pas"/>
|
||||
<UnitName Value="uCEFJson"/>
|
||||
</Item189>
|
||||
<Item190>
|
||||
</Item188>
|
||||
<Item189>
|
||||
<Filename Value="..\source\uCEFBitmapBitBuffer.pas"/>
|
||||
<UnitName Value="uCEFBitmapBitBuffer"/>
|
||||
</Item190>
|
||||
<Item191>
|
||||
</Item189>
|
||||
<Item190>
|
||||
<Filename Value="..\source\uCEFPrintDialogCallback.pas"/>
|
||||
<UnitName Value="uCEFPrintDialogCallback"/>
|
||||
</Item191>
|
||||
<Item192>
|
||||
</Item190>
|
||||
<Item191>
|
||||
<Filename Value="..\source\uCEFPrintHandler.pas"/>
|
||||
<UnitName Value="uCEFPrintHandler"/>
|
||||
</Item192>
|
||||
<Item193>
|
||||
</Item191>
|
||||
<Item192>
|
||||
<Filename Value="..\source\uCEFPrintJobCallback.pas"/>
|
||||
<UnitName Value="uCEFPrintJobCallback"/>
|
||||
</Item193>
|
||||
<Item194>
|
||||
</Item192>
|
||||
<Item193>
|
||||
<Filename Value="..\source\uCEFLinuxFunctions.pas"/>
|
||||
<UnitName Value="uCEFLinuxFunctions"/>
|
||||
</Item194>
|
||||
<Item195>
|
||||
</Item193>
|
||||
<Item194>
|
||||
<Filename Value="..\source\uCEFLinuxTypes.pas"/>
|
||||
<UnitName Value="uCEFLinuxTypes"/>
|
||||
</Item195>
|
||||
<Item196>
|
||||
</Item194>
|
||||
<Item195>
|
||||
<Filename Value="..\source\uCEFLinuxConstants.pas"/>
|
||||
<UnitName Value="uCEFLinuxConstants"/>
|
||||
</Item196>
|
||||
<Item197>
|
||||
</Item195>
|
||||
<Item196>
|
||||
<Filename Value="..\source\uCEFWorkSchedulerQueueThread.pas"/>
|
||||
<UnitName Value="uCEFWorkSchedulerQueueThread"/>
|
||||
</Item197>
|
||||
<Item198>
|
||||
</Item196>
|
||||
<Item197>
|
||||
<Filename Value="..\source\uCEFLinkedWinControlBase.pas"/>
|
||||
<UnitName Value="uCEFLinkedWinControlBase"/>
|
||||
</Item198>
|
||||
<Item199>
|
||||
</Item197>
|
||||
<Item198>
|
||||
<Filename Value="..\source\uceflazaruscocoa.pas"/>
|
||||
<UnitName Value="uCEFLazarusCocoa"/>
|
||||
</Item199>
|
||||
<Item200>
|
||||
</Item198>
|
||||
<Item199>
|
||||
<Filename Value="..\source\uCEFBrowserWindow.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFBrowserWindow"/>
|
||||
</Item200>
|
||||
<Item201>
|
||||
</Item199>
|
||||
<Item200>
|
||||
<Filename Value="..\source\uCEFOsrBrowserWindow.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="uCEFOsrBrowserWindow"/>
|
||||
</Item201>
|
||||
<Item202>
|
||||
</Item200>
|
||||
<Item201>
|
||||
<Filename Value="..\source\uCEFTimerWorkScheduler.pas"/>
|
||||
<UnitName Value="uCEFTimerWorkScheduler"/>
|
||||
</Item202>
|
||||
<Item203>
|
||||
</Item201>
|
||||
<Item202>
|
||||
<Filename Value="..\source\uCEFFrameHandler.pas"/>
|
||||
<UnitName Value="uCEFFrameHandler"/>
|
||||
</Item203>
|
||||
</Item202>
|
||||
</Files>
|
||||
<RequiredPkgs Count="5">
|
||||
<Item1>
|
||||
|
@ -27,13 +27,12 @@ uses
|
||||
uCEFMenuModel, uCEFMenuModelDelegate, uCEFMiscFunctions,
|
||||
uCEFNavigationEntry, uCEFNavigationEntryVisitor, uCEFPDFPrintCallback,
|
||||
uCEFPDFPrintOptions, uCEFPostData, uCEFPostDataElement, uCEFPrintSettings,
|
||||
uCEFProcessMessage, uCEFRegisterCDMCallback, uCEFRenderHandler,
|
||||
uCEFRenderProcessHandler, uCEFRequest, uCEFRequestCallback,
|
||||
uCEFRequestContext, uCEFRequestContextHandler, uCEFRequestHandler,
|
||||
uCEFResolveCallback, uCEFResourceBundle, uCEFResourceBundleHandler,
|
||||
uCEFResourceHandler, uCEFResponse, uCEFResponseFilter,
|
||||
uCEFRunContextMenuCallback, uCEFRunFileDialogCallback,
|
||||
uCEFSchemeHandlerFactory, uCEFSchemeRegistrar,
|
||||
uCEFProcessMessage, uCEFRenderHandler, uCEFRenderProcessHandler,
|
||||
uCEFRequest, uCEFRequestCallback, uCEFRequestContext,
|
||||
uCEFRequestContextHandler, uCEFRequestHandler, uCEFResolveCallback,
|
||||
uCEFResourceBundle, uCEFResourceBundleHandler, uCEFResourceHandler,
|
||||
uCEFResponse, uCEFResponseFilter, uCEFRunContextMenuCallback,
|
||||
uCEFRunFileDialogCallback, uCEFSchemeHandlerFactory, uCEFSchemeRegistrar,
|
||||
uCEFSelectClientCertificateCallback, uCEFSetCookieCallback, uCEFSslInfo,
|
||||
uCEFSSLStatus, uCEFStreamReader, uCEFStreamWriter, uCEFStringList,
|
||||
uCEFStringMap, uCEFStringMultimap, uCEFStringVisitor, uCEFTask,
|
||||
|
@ -64,15 +64,15 @@ uses
|
||||
uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar;
|
||||
|
||||
const
|
||||
CEF_SUPPORTED_VERSION_MAJOR = 92;
|
||||
CEF_SUPPORTED_VERSION_MINOR = 0;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 27;
|
||||
CEF_SUPPORTED_VERSION_MAJOR = 93;
|
||||
CEF_SUPPORTED_VERSION_MINOR = 1;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 11;
|
||||
CEF_SUPPORTED_VERSION_BUILD = 0;
|
||||
|
||||
CEF_CHROMEELF_VERSION_MAJOR = 92;
|
||||
CEF_CHROMEELF_VERSION_MAJOR = 93;
|
||||
CEF_CHROMEELF_VERSION_MINOR = 0;
|
||||
CEF_CHROMEELF_VERSION_RELEASE = 4515;
|
||||
CEF_CHROMEELF_VERSION_BUILD = 159;
|
||||
CEF_CHROMEELF_VERSION_RELEASE = 4577;
|
||||
CEF_CHROMEELF_VERSION_BUILD = 63;
|
||||
|
||||
{$IFDEF MSWINDOWS}
|
||||
LIBCEF_DLL = 'libcef.dll';
|
||||
@ -187,6 +187,7 @@ type
|
||||
FDisableRequestHandlingForTesting : boolean;
|
||||
FDisablePopupBlocking : boolean;
|
||||
FDisableBackForwardCache : boolean;
|
||||
FDisableComponentUpdate : boolean;
|
||||
|
||||
// Fields used during the CEF initialization
|
||||
FWindowsSandboxInfo : pointer;
|
||||
@ -213,7 +214,6 @@ type
|
||||
FMustCreateLoadHandler : boolean;
|
||||
FStatus : TCefAplicationStatus;
|
||||
FMissingLibFiles : string;
|
||||
FWidevinePath : ustring;
|
||||
FMustFreeLibrary : boolean;
|
||||
FLastErrorMessage : ustring;
|
||||
|
||||
@ -248,9 +248,6 @@ type
|
||||
FOnFocusedNodeChanged : TOnFocusedNodeChangedEvent;
|
||||
FOnProcessMessageReceived : TOnProcessMessageReceivedEvent;
|
||||
|
||||
// ICefRegisterCDMCallback
|
||||
FOnCDMRegistrationComplete : TOnCDMRegistrationCompleteEvent;
|
||||
|
||||
// ICefLoadHandler
|
||||
FOnLoadingStateChange : TOnRenderLoadingStateChange;
|
||||
FOnLoadStart : TOnRenderLoadStart;
|
||||
@ -359,7 +356,6 @@ type
|
||||
function CheckCEFDLL : boolean;
|
||||
{$ENDIF}
|
||||
function CheckCEFLibrary : boolean;
|
||||
procedure RegisterWidevineCDM;
|
||||
procedure ShowErrorMessageDlg(const aError : string); virtual;
|
||||
function ParseProcessType : TCefProcessType;
|
||||
procedure AddCustomCommandLineSwitches(var aKeys, aValues : TStringList); virtual;
|
||||
@ -403,7 +399,6 @@ type
|
||||
procedure Internal_OnUncaughtException(const browser: ICefBrowser; const frame: ICefFrame; const context: ICefv8Context; const exception: ICefV8Exception; const stackTrace: ICefV8StackTrace);
|
||||
procedure Internal_OnFocusedNodeChanged(const browser: ICefBrowser; const frame: ICefFrame; const node: ICefDomNode);
|
||||
procedure Internal_OnProcessMessageReceived(const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId; const aMessage: ICefProcessMessage; var aHandled : boolean);
|
||||
procedure Internal_OnCDMRegistrationComplete(result : TCefCDMRegistrationError; const error_message : ustring);
|
||||
procedure Internal_OnLoadingStateChange(const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);
|
||||
procedure Internal_OnLoadStart(const browser: ICefBrowser; const frame: ICefFrame; transitionType: TCefTransitionType);
|
||||
procedure Internal_OnLoadEnd(const browser: ICefBrowser; const frame: ICefFrame; httpStatusCode: Integer);
|
||||
@ -499,6 +494,7 @@ type
|
||||
property DisableRequestHandlingForTesting : boolean read FDisableRequestHandlingForTesting write FDisableRequestHandlingForTesting; // --disable-request-handling-for-testing
|
||||
property DisablePopupBlocking : boolean read FDisablePopupBlocking write FDisablePopupBlocking; // --disable-popup-blocking
|
||||
property DisableBackForwardCache : boolean read FDisableBackForwardCache write FDisableBackForwardCache; // --disable-back-forward-cache
|
||||
property DisableComponentUpdate : boolean read FDisableComponentUpdate write FDisableComponentUpdate; // --disable-component-update
|
||||
|
||||
// Properties used during the CEF initialization
|
||||
property WindowsSandboxInfo : Pointer read FWindowsSandboxInfo write FWindowsSandboxInfo;
|
||||
@ -533,7 +529,6 @@ type
|
||||
property OsmodalLoop : boolean write SetOsmodalLoop;
|
||||
property Status : TCefAplicationStatus read FStatus;
|
||||
property MissingLibFiles : string read FMissingLibFiles;
|
||||
property WidevinePath : ustring read FWidevinePath write FWidevinePath;
|
||||
property MustFreeLibrary : boolean read FMustFreeLibrary write FMustFreeLibrary;
|
||||
property ChildProcessesCount : integer read GetChildProcessesCount;
|
||||
property UsedMemory : uint64 read GetUsedMemory;
|
||||
@ -572,9 +567,6 @@ type
|
||||
property OnFocusedNodeChanged : TOnFocusedNodeChangedEvent read FOnFocusedNodeChanged write FOnFocusedNodeChanged;
|
||||
property OnProcessMessageReceived : TOnProcessMessageReceivedEvent read FOnProcessMessageReceived write FOnProcessMessageReceived;
|
||||
|
||||
// ICefRegisterCDMCallback
|
||||
property OnCDMRegistrationComplete : TOnCDMRegistrationCompleteEvent read FOnCDMRegistrationComplete write FOnCDMRegistrationComplete;
|
||||
|
||||
// ICefLoadHandler
|
||||
property OnLoadingStateChange : TOnRenderLoadingStateChange read FOnLoadingStateChange write FOnLoadingStateChange;
|
||||
property OnLoadStart : TOnRenderLoadStart read FOnLoadStart write FOnLoadStart;
|
||||
@ -642,8 +634,8 @@ uses
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
uCEFLibFunctions, uCEFMiscFunctions, uCEFCommandLine, uCEFConstants,
|
||||
uCEFSchemeHandlerFactory, uCEFCookieManager, uCEFApp, uCEFRegisterCDMCallback,
|
||||
uCEFCompletionCallback, uCEFWaitableEvent;
|
||||
uCEFSchemeHandlerFactory, uCEFCookieManager, uCEFApp, uCEFCompletionCallback,
|
||||
uCEFWaitableEvent;
|
||||
|
||||
procedure DestroyGlobalCEFApp;
|
||||
begin
|
||||
@ -746,6 +738,7 @@ begin
|
||||
FDisableRequestHandlingForTesting := False;
|
||||
FDisablePopupBlocking := False;
|
||||
FDisableBackForwardCache := False;
|
||||
FDisableComponentUpdate := False;
|
||||
|
||||
// Fields used during the CEF initialization
|
||||
FWindowsSandboxInfo := nil;
|
||||
@ -775,7 +768,6 @@ begin
|
||||
FMustCreateLoadHandler := False;
|
||||
FStatus := asLoading;
|
||||
FMissingLibFiles := '';
|
||||
FWidevinePath := '';
|
||||
FMustFreeLibrary := False;
|
||||
FLastErrorMessage := '';
|
||||
{$IFDEF MSWINDOWS}
|
||||
@ -815,9 +807,6 @@ begin
|
||||
FOnFocusedNodeChanged := nil;
|
||||
FOnProcessMessageReceived := nil;
|
||||
|
||||
// ICefRegisterCDMCallback
|
||||
FOnCDMRegistrationComplete := nil;
|
||||
|
||||
// ICefLoadHandler
|
||||
FOnLoadingStateChange := nil;
|
||||
FOnLoadStart := nil;
|
||||
@ -1382,8 +1371,6 @@ begin
|
||||
if FDeleteCache then
|
||||
RenameAndDeleteDir(FCache, True);
|
||||
|
||||
RegisterWidevineCDM;
|
||||
|
||||
InitializeSettings(FAppSettings);
|
||||
|
||||
{$IFDEF MSWINDOWS}
|
||||
@ -1517,29 +1504,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCefApplicationCore.RegisterWidevineCDM;
|
||||
var
|
||||
TempPath : TCefString;
|
||||
TempCallback : ICefRegisterCDMCallback;
|
||||
begin
|
||||
try
|
||||
try
|
||||
if FLibLoaded and (length(FWidevinePath) > 0) and DirectoryExists(FWidevinePath) then
|
||||
begin
|
||||
TempPath := CefString(FWidevinePath);
|
||||
TempCallback := TCefCustomRegisterCDMCallback.Create(self);
|
||||
|
||||
cef_register_widevine_cdm(@TempPath, TempCallback.Wrap);
|
||||
end;
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCefApplicationCore.RegisterWidevineCDM', e) then raise;
|
||||
end;
|
||||
finally
|
||||
TempCallback := nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCefApplicationCore.ShowErrorMessageDlg(const aError : string);
|
||||
begin
|
||||
OutputDebugMessage(aError);
|
||||
@ -1704,12 +1668,6 @@ begin
|
||||
aHandled := False;
|
||||
end;
|
||||
|
||||
procedure TCefApplicationCore.Internal_OnCDMRegistrationComplete(result : TCefCDMRegistrationError; const error_message : ustring);
|
||||
begin
|
||||
if assigned(FOnCDMRegistrationComplete) then
|
||||
FOnCDMRegistrationComplete(result, error_message);
|
||||
end;
|
||||
|
||||
procedure TCefApplicationCore.Internal_OnLoadingStateChange(const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);
|
||||
begin
|
||||
if assigned(FOnLoadingStateChange) then
|
||||
@ -2067,6 +2025,9 @@ begin
|
||||
if FDisableBackForwardCache then
|
||||
ReplaceSwitch(aKeys, aValues, '--disable-back-forward-cache');
|
||||
|
||||
if FDisableComponentUpdate then
|
||||
ReplaceSwitch(aKeys, aValues, '--disable-component-update');
|
||||
|
||||
// The list of features you can enable is here :
|
||||
// https://chromium.googlesource.com/chromium/src/+/master/chrome/common/chrome_features.cc
|
||||
if (length(FEnableFeatures) > 0) then
|
||||
@ -2892,14 +2853,12 @@ begin
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_unregister_internal_web_plugin{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_unregister_internal_web_plugin');
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_register_web_plugin_crash{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_web_plugin_crash');
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_is_web_plugin_unstable{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_is_web_plugin_unstable');
|
||||
{$IFDEF FPC}Pointer({$ENDIF}cef_register_widevine_cdm{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_widevine_cdm');
|
||||
|
||||
Result := assigned(cef_visit_web_plugin_info) and
|
||||
assigned(cef_refresh_web_plugins) and
|
||||
assigned(cef_unregister_internal_web_plugin) and
|
||||
assigned(cef_register_web_plugin_crash) and
|
||||
assigned(cef_is_web_plugin_unstable) and
|
||||
assigned(cef_register_widevine_cdm);
|
||||
assigned(cef_is_web_plugin_unstable);
|
||||
end;
|
||||
|
||||
function TCefApplicationCore.Load_cef_xml_reader_capi_h : boolean;
|
||||
|
@ -399,6 +399,7 @@ const
|
||||
EVENTFLAG_IS_LEFT = 1 shl 10;
|
||||
EVENTFLAG_IS_RIGHT = 1 shl 11;
|
||||
EVENTFLAG_ALTGR_DOWN = 1 shl 12;
|
||||
EVENTFLAG_IS_REPEAT = 1 shl 13;
|
||||
|
||||
// /include/internal/cef_types.h (cef_drag_operations_mask_t)
|
||||
DRAG_OPERATION_NONE = 0;
|
||||
|
@ -215,7 +215,6 @@ type
|
||||
TOnGetDataResourceEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(resourceId: Integer; out data: Pointer; out dataSize: NativeUInt; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnGetLocalizedStringEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(stringId: Integer; out stringVal: ustring; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnGetDataResourceForScaleEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(resourceId: Integer; scaleFactor: TCefScaleFactor; out data: Pointer; out dataSize: NativeUInt; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnCDMRegistrationCompleteEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(result : TCefCDMRegistrationError; const error_message : ustring) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnRenderLoadStart = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; transitionType: TCefTransitionType) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnRenderLoadEnd = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; httpStatusCode: Integer) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
TOnRenderLoadError = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; errorCode: TCefErrorCode; const errorText, failedUrl: ustring) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
|
||||
@ -229,7 +228,6 @@ type
|
||||
|
||||
|
||||
TCefEndTracingCallbackProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const tracingFile: ustring);
|
||||
TCefRegisterCDMProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(result: TCefCDMRegistrationError; const error_message: ustring);
|
||||
TCefFastTaskProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure();
|
||||
TCefv8ArrayBufferReleaseCallbackProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(buffer : Pointer);
|
||||
TCefWebPluginInfoVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} function(const info: ICefWebPluginInfo; count, total: Integer): Boolean;
|
||||
@ -2164,13 +2162,6 @@ type
|
||||
procedure IsUnstable(const path: ustring; unstable: Boolean);
|
||||
end;
|
||||
|
||||
// TCefRegisterCDMCallback
|
||||
// /include/capi/cef_web_plugin_capi.h (cef_register_cdm_callback_t)
|
||||
ICefRegisterCDMCallback = interface(ICefBaseRefCounted)
|
||||
['{6C39AB3B-F724-483F-ABA0-37F6E0AECF35}']
|
||||
procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring);
|
||||
end;
|
||||
|
||||
// TCefEndTracingCallback
|
||||
// /include/capi/cef_trace_capi.h (cef_end_tracing_callback_t)
|
||||
ICefEndTracingCallback = interface(ICefBaseRefCounted)
|
||||
|
@ -237,7 +237,6 @@ var
|
||||
cef_unregister_internal_web_plugin : procedure(const path: PCefString); cdecl;
|
||||
cef_register_web_plugin_crash : procedure(const path: PCefString); cdecl;
|
||||
cef_is_web_plugin_unstable : procedure(const path: PCefString; callback: PCefWebPluginUnstableCallback); cdecl;
|
||||
cef_register_widevine_cdm : procedure(const path: PCefString; callback: PCefRegisterCDMCallback); cdecl;
|
||||
|
||||
// /include/capi/cef_xml_reader_capi.h
|
||||
cef_xml_reader_create : function(stream: PCefStreamReader; encodingType: TCefXmlEncodingType; const URI: PCefString): PCefXmlReader; cdecl;
|
||||
|
@ -74,8 +74,7 @@ uses
|
||||
{$IFDEF LCLGTK2}gtk2, glib2, gdk2, gtk2proc, gtk2int, Gtk2Def, gdk2x, Gtk2Extra,{$ENDIF}
|
||||
{$ENDIF}{$ENDIF}
|
||||
{$ENDIF}
|
||||
uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFResourceHandler,
|
||||
uCEFRegisterCDMCallback, uCEFConstants;
|
||||
uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFResourceHandler, uCEFConstants;
|
||||
|
||||
const
|
||||
Kernel32DLL = 'kernel32.dll';
|
||||
@ -1921,7 +1920,8 @@ begin
|
||||
|
||||
case aWparam of
|
||||
VK_RETURN:
|
||||
if (((aLparam shr 16) and KF_EXTENDED) <> 0) then Result := Result or EVENTFLAG_IS_KEY_PAD;
|
||||
if (((aLparam shr 16) and KF_EXTENDED) <> 0) then
|
||||
Result := Result or EVENTFLAG_IS_KEY_PAD;
|
||||
|
||||
VK_INSERT,
|
||||
VK_DELETE,
|
||||
@ -1933,7 +1933,8 @@ begin
|
||||
VK_DOWN,
|
||||
VK_LEFT,
|
||||
VK_RIGHT :
|
||||
if (((aLparam shr 16) and KF_EXTENDED) = 0) then Result := Result or EVENTFLAG_IS_KEY_PAD;
|
||||
if (((aLparam shr 16) and KF_EXTENDED) = 0) then
|
||||
Result := Result or EVENTFLAG_IS_KEY_PAD;
|
||||
|
||||
VK_NUMLOCK,
|
||||
VK_NUMPAD0,
|
||||
|
@ -1,176 +0,0 @@
|
||||
// ************************************************************************
|
||||
// ***************************** CEF4Delphi *******************************
|
||||
// ************************************************************************
|
||||
//
|
||||
// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based
|
||||
// browser in Delphi applications.
|
||||
//
|
||||
// The original license of DCEF3 still applies to CEF4Delphi.
|
||||
//
|
||||
// For more information about CEF4Delphi visit :
|
||||
// https://www.briskbard.com/index.php?lang=en&pageid=cef
|
||||
//
|
||||
// Copyright © 2021 Salvador Diaz Fau. All rights reserved.
|
||||
//
|
||||
// ************************************************************************
|
||||
// ************ vvvv Original license and comments below vvvv *************
|
||||
// ************************************************************************
|
||||
(*
|
||||
* Delphi Chromium Embedded 3
|
||||
*
|
||||
* Usage allowed under the restrictions of the Lesser GNU General Public License
|
||||
* or alternatively the restrictions of the Mozilla Public License 1.1
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
||||
* the specific language governing rights and limitations under the License.
|
||||
*
|
||||
* Unit owner : Henri Gourvest <hgourvest@gmail.com>
|
||||
* Web site : http://www.progdigy.com
|
||||
* Repository : http://code.google.com/p/delphichromiumembedded/
|
||||
* Group : http://groups.google.com/group/delphichromiumembedded
|
||||
*
|
||||
* Embarcadero Technologies, Inc is not permitted to use or redistribute
|
||||
* this source code without explicit permission.
|
||||
*
|
||||
*)
|
||||
|
||||
unit uCEFRegisterCDMCallback;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$MODE OBJFPC}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF CPUX64}{$ALIGN ON}{$ENDIF}
|
||||
{$MINENUMSIZE 4}
|
||||
|
||||
{$I cef.inc}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFApplicationCore;
|
||||
|
||||
type
|
||||
TCefRegisterCDMCallbackOwn = class(TCefBaseRefCountedOwn, ICefRegisterCDMCallback)
|
||||
protected
|
||||
procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring); virtual;
|
||||
|
||||
public
|
||||
constructor Create; virtual;
|
||||
end;
|
||||
|
||||
TCefFastRegisterCDMCallback = class(TCefRegisterCDMCallbackOwn)
|
||||
protected
|
||||
FCallback: TCefRegisterCDMProc;
|
||||
|
||||
procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring); override;
|
||||
|
||||
public
|
||||
constructor Create(const callback: TCefRegisterCDMProc); reintroduce;
|
||||
end;
|
||||
|
||||
TCefCustomRegisterCDMCallback = class(TCefRegisterCDMCallbackOwn)
|
||||
protected
|
||||
FCefApp : TCefApplicationCore;
|
||||
|
||||
procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring); override;
|
||||
|
||||
public
|
||||
constructor Create(const aCefApp : TCefApplicationCore); reintroduce;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
{$IFDEF DELPHI16_UP}
|
||||
System.SysUtils,
|
||||
{$ELSE}
|
||||
SysUtils,
|
||||
{$ENDIF}
|
||||
uCEFMiscFunctions, uCEFLibFunctions;
|
||||
|
||||
|
||||
// ************************************************
|
||||
// ********** TCefRegisterCDMCallbackOwn **********
|
||||
// ************************************************
|
||||
|
||||
|
||||
procedure cef_register_cdm_callback_on_cdm_registration_complete( self : PCefRegisterCDMCallback;
|
||||
result : TCefCDMRegistrationError;
|
||||
const error_message : PCefString); stdcall;
|
||||
var
|
||||
TempObject : TObject;
|
||||
begin
|
||||
TempObject := CefGetObject(self);
|
||||
|
||||
if (TempObject <> nil) and (TempObject is TCefRegisterCDMCallbackOwn) then
|
||||
TCefRegisterCDMCallbackOwn(TempObject).OnCDMRegistrationComplete(result,
|
||||
CefString(error_message));
|
||||
end;
|
||||
|
||||
constructor TCefRegisterCDMCallbackOwn.Create;
|
||||
begin
|
||||
inherited CreateData(SizeOf(TCefRegisterCDMCallback));
|
||||
|
||||
with PCefRegisterCDMCallback(FData)^ do
|
||||
on_cdm_registration_complete := {$IFDEF FPC}@{$ENDIF}cef_register_cdm_callback_on_cdm_registration_complete;
|
||||
end;
|
||||
|
||||
procedure TCefRegisterCDMCallbackOwn.OnCDMRegistrationComplete(result: TCefCDMRegistrationError;
|
||||
const error_message: ustring);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
|
||||
// ************************************************
|
||||
// ********** TCefFastRegisterCDMCallback *********
|
||||
// ************************************************
|
||||
|
||||
|
||||
constructor TCefFastRegisterCDMCallback.Create(const callback: TCefRegisterCDMProc);
|
||||
begin
|
||||
FCallback := callback;
|
||||
end;
|
||||
|
||||
procedure TCefFastRegisterCDMCallback.OnCDMRegistrationComplete(result: TCefCDMRegistrationError;
|
||||
const error_message: ustring);
|
||||
begin
|
||||
FCallback(result, error_message);
|
||||
end;
|
||||
|
||||
|
||||
// ************************************************
|
||||
// ******** TCefCustomRegisterCDMCallback *********
|
||||
// ************************************************
|
||||
|
||||
|
||||
constructor TCefCustomRegisterCDMCallback.Create(const aCefApp : TCefApplicationCore);
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
FCefApp := aCefApp;
|
||||
end;
|
||||
|
||||
destructor TCefCustomRegisterCDMCallback.Destroy;
|
||||
begin
|
||||
FCefApp := nil;
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TCefCustomRegisterCDMCallback.OnCDMRegistrationComplete( result : TCefCDMRegistrationError;
|
||||
const error_message : ustring);
|
||||
begin
|
||||
try
|
||||
if (FCefApp <> nil) then FCefApp.Internal_OnCDMRegistrationComplete(result, error_message);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCefCustomRegisterCDMCallback.OnCDMRegistrationComplete', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
@ -203,7 +203,6 @@ type
|
||||
PCefUrlRequest = ^TCefUrlRequest;
|
||||
PCefWebPluginInfoVisitor = ^TCefWebPluginInfoVisitor;
|
||||
PCefWebPluginUnstableCallback = ^TCefWebPluginUnstableCallback;
|
||||
PCefRegisterCDMCallback = ^TCefRegisterCDMCallback;
|
||||
PCefTaskRunner = ^TCefTaskRunner;
|
||||
PCefEndTracingCallback = ^TCefEndTracingCallback;
|
||||
PCefRequestContextSettings = ^TCefRequestContextSettings;
|
||||
@ -1146,14 +1145,6 @@ type
|
||||
CEF_MENU_COLOR_COUNT
|
||||
);
|
||||
|
||||
// /include/internal/cef_types.h (cef_cdm_registration_error_t)
|
||||
TCefCDMRegistrationError = (
|
||||
CEF_CDM_REGISTRATION_ERROR_NONE,
|
||||
CEF_CDM_REGISTRATION_ERROR_INCORRECT_CONTENTS,
|
||||
CEF_CDM_REGISTRATION_ERROR_INCOMPATIBLE,
|
||||
CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED
|
||||
);
|
||||
|
||||
// Values for browser preference "net.network_prediction_options"
|
||||
// https://source.chromium.org/chromium/chromium/src/+/master:chrome/browser/net/prediction_options.h
|
||||
TCefNetworkPredictionOptions = (
|
||||
@ -1920,12 +1911,6 @@ type
|
||||
is_unstable : procedure(self: PCefWebPluginUnstableCallback; const path: PCefString; unstable: Integer); stdcall;
|
||||
end;
|
||||
|
||||
// /include/capi/cef_web_plugin_capi.h (cef_register_cdm_callback_t)
|
||||
TCefRegisterCDMCallback = record
|
||||
base : TCefBaseRefCounted;
|
||||
on_cdm_registration_complete : procedure(self:PCefRegisterCDMCallback; result: TCefCDMRegistrationError; const error_message: PCefString); stdcall;
|
||||
end;
|
||||
|
||||
// /include/capi/cef_thread_capi.h (cef_thread_t)
|
||||
TCefThread = record
|
||||
base : TCefBaseRefCounted;
|
||||
|
@ -2,9 +2,9 @@
|
||||
"UpdateLazPackages" : [
|
||||
{
|
||||
"ForceNotify" : true,
|
||||
"InternalVersion" : 315,
|
||||
"InternalVersion" : 316,
|
||||
"Name" : "cef4delphi_lazarus.lpk",
|
||||
"Version" : "92.0.27.0"
|
||||
"Version" : "93.1.11.0"
|
||||
}
|
||||
],
|
||||
"UpdatePackageData" : {
|
||||
|
Loading…
Reference in New Issue
Block a user