You've already forked CEF4Delphi
mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-11-23 21:34:53 +02:00
Added TChromium.OnCookieVisitorDestroyed
- Removed TChromium.OnGetResourceRequestHandler - Added TChromium.OnGetResourceRequestHandler_ReqHdlr - Added TChromium.OnGetResourceRequestHandler_ReqCtxHdlr - Modified the CookieVisitor demo to use TChromium.OnCookieVisitorDestroyed
This commit is contained in:
@@ -62,6 +62,7 @@ type
|
||||
FBrowser : ICefBrowser;
|
||||
FBrowserId : Integer;
|
||||
FReqContextHandler : ICefRequestContextHandler;
|
||||
FResourceRequestHandler : ICefResourceRequestHandler;
|
||||
FDefaultUrl : ustring;
|
||||
FOptions : TChromiumOptions;
|
||||
FFontOptions : TChromiumFontOptions;
|
||||
@@ -170,16 +171,16 @@ type
|
||||
FOnClose : TOnClose;
|
||||
|
||||
// ICefRequestHandler
|
||||
FOnBeforeBrowse : TOnBeforeBrowse;
|
||||
FOnOpenUrlFromTab : TOnOpenUrlFromTab;
|
||||
FOnGetAuthCredentials : TOnGetAuthCredentials;
|
||||
FOnQuotaRequest : TOnQuotaRequest;
|
||||
FOnCertificateError : TOnCertificateError;
|
||||
FOnSelectClientCertificate : TOnSelectClientCertificate;
|
||||
FOnPluginCrashed : TOnPluginCrashed;
|
||||
FOnRenderViewReady : TOnRenderViewReady;
|
||||
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
||||
FOnGetResourceRequestHandler : TOnGetResourceRequestHandler;
|
||||
FOnBeforeBrowse : TOnBeforeBrowse;
|
||||
FOnOpenUrlFromTab : TOnOpenUrlFromTab;
|
||||
FOnGetAuthCredentials : TOnGetAuthCredentials;
|
||||
FOnQuotaRequest : TOnQuotaRequest;
|
||||
FOnCertificateError : TOnCertificateError;
|
||||
FOnSelectClientCertificate : TOnSelectClientCertificate;
|
||||
FOnPluginCrashed : TOnPluginCrashed;
|
||||
FOnRenderViewReady : TOnRenderViewReady;
|
||||
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
||||
FOnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler;
|
||||
|
||||
// ICefResourceRequestHandler
|
||||
FOnBeforeResourceLoad : TOnBeforeResourceLoad;
|
||||
@@ -221,8 +222,9 @@ type
|
||||
FOnFindResult : TOnFindResult;
|
||||
|
||||
// ICefRequestContextHandler
|
||||
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
||||
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
||||
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
||||
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
||||
FOnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler;
|
||||
|
||||
// Custom
|
||||
FOnTextResultAvailable : TOnTextResultAvailableEvent;
|
||||
@@ -237,6 +239,7 @@ type
|
||||
FOnAllConnectionsClosed : TNotifyEvent;
|
||||
FOnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread;
|
||||
FOnCookiesVisited : TOnCookiesVisited;
|
||||
FOnCookieVisitorDestroyed : TOnCookieVisitorDestroyed;
|
||||
FOnCookieSet : TOnCookieSet;
|
||||
{$IFDEF MSWINDOWS}
|
||||
FOnBrowserCompMsg : TOnCompMsgEvent;
|
||||
@@ -306,8 +309,10 @@ type
|
||||
|
||||
procedure DestroyClientHandler;
|
||||
procedure DestroyReqContextHandler;
|
||||
procedure DestroyResourceRequestHandler;
|
||||
procedure ClearBrowserReference;
|
||||
procedure CreateReqContextHandler;
|
||||
procedure CreateResourceRequestHandler;
|
||||
|
||||
procedure InitializeEvents;
|
||||
procedure InitializeSettings(var aSettings : TCefBrowserSettings);
|
||||
@@ -401,7 +406,7 @@ type
|
||||
// ICefRequestHandler
|
||||
function doOnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean; virtual;
|
||||
function doOnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean; virtual;
|
||||
procedure doOnGetResourceRequestHandler(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aResourceRequestHandler : ICefResourceRequestHandler; var aUseInternalHandler : boolean); virtual;
|
||||
procedure doGetResourceRequestHandler_ReqHdlr(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aResourceRequestHandler : ICefResourceRequestHandler); virtual;
|
||||
function doOnGetAuthCredentials(const browser: ICefBrowser; const originUrl: ustring; isProxy: Boolean; const host: ustring; port: Integer; const realm, scheme: ustring; const callback: ICefAuthCallback): Boolean; virtual;
|
||||
function doOnQuotaRequest(const browser: ICefBrowser; const originUrl: ustring; newSize: Int64; const callback: ICefRequestCallback): Boolean; virtual;
|
||||
function doOnCertificateError(const browser: ICefBrowser; certError: TCefErrorcode; const requestUrl: ustring; const sslInfo: ICefSslInfo; const callback: ICefRequestCallback): Boolean; virtual;
|
||||
@@ -454,7 +459,7 @@ type
|
||||
// ICefRequestContextHandler
|
||||
procedure doOnRequestContextInitialized(const request_context: ICefRequestContext); virtual;
|
||||
function doOnBeforePluginLoad(const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; var pluginPolicy: TCefPluginPolicy): Boolean; virtual;
|
||||
procedure doGetResourceRequestHandler(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aResourceRequestHandler : ICefResourceRequestHandler); virtual;
|
||||
procedure doGetResourceRequestHandler_ReqCtxHdlr(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aResourceRequestHandler : ICefResourceRequestHandler); virtual;
|
||||
|
||||
// Custom
|
||||
procedure doCookiesDeleted(numDeleted : integer); virtual;
|
||||
@@ -472,6 +477,7 @@ type
|
||||
procedure doAllConnectionsClosed; virtual;
|
||||
procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal); virtual;
|
||||
procedure doOnCookiesVisited(const name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total, aID : Integer; var aDeleteCookie, aResult : Boolean); virtual;
|
||||
procedure doOnCookieVisitorDestroyed(aID : integer); virtual;
|
||||
procedure doOnCookieSet(aSuccess : boolean; aID : integer); virtual;
|
||||
function MustCreateLoadHandler : boolean; virtual;
|
||||
function MustCreateFocusHandler : boolean; virtual;
|
||||
@@ -622,6 +628,7 @@ type
|
||||
property Browser : ICefBrowser read FBrowser;
|
||||
property CefClient : ICefClient read FHandler;
|
||||
property ReqContextHandler : ICefRequestContextHandler read FReqContextHandler;
|
||||
property ResourceRequestHandler : ICefResourceRequestHandler read FResourceRequestHandler;
|
||||
property CefWindowInfo : TCefWindowInfo read FWindowInfo;
|
||||
property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry;
|
||||
property MultithreadApp : boolean read GetMultithreadApp;
|
||||
@@ -692,6 +699,7 @@ type
|
||||
property OnAllConnectionsClosed : TNotifyEvent read FOnAllConnectionsClosed write FOnAllConnectionsClosed;
|
||||
property OnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread read FOnExecuteTaskOnCefThread write FOnExecuteTaskOnCefThread;
|
||||
property OnCookiesVisited : TOnCookiesVisited read FOnCookiesVisited write FOnCookiesVisited;
|
||||
property OnCookieVisitorDestroyed : TOnCookieVisitorDestroyed read FOnCookieVisitorDestroyed write FOnCookieVisitorDestroyed;
|
||||
property OnCookieSet : TOnCookieSet read FOnCookieSet write FOnCookieSet;
|
||||
{$IFDEF MSWINDOWS}
|
||||
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
|
||||
@@ -751,16 +759,16 @@ type
|
||||
property OnClose : TOnClose read FOnClose write FOnClose;
|
||||
|
||||
// ICefRequestHandler
|
||||
property OnBeforeBrowse : TOnBeforeBrowse read FOnBeforeBrowse write FOnBeforeBrowse;
|
||||
property OnOpenUrlFromTab : TOnOpenUrlFromTab read FOnOpenUrlFromTab write FOnOpenUrlFromTab;
|
||||
property OnGetAuthCredentials : TOnGetAuthCredentials read FOnGetAuthCredentials write FOnGetAuthCredentials;
|
||||
property OnQuotaRequest : TOnQuotaRequest read FOnQuotaRequest write FOnQuotaRequest;
|
||||
property OnCertificateError : TOnCertificateError read FOnCertificateError write FOnCertificateError;
|
||||
property OnSelectClientCertificate : TOnSelectClientCertificate read FOnSelectClientCertificate write FOnSelectClientCertificate;
|
||||
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
||||
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
||||
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
||||
property OnGetResourceRequestHandler : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler write FOnGetResourceRequestHandler;
|
||||
property OnBeforeBrowse : TOnBeforeBrowse read FOnBeforeBrowse write FOnBeforeBrowse;
|
||||
property OnOpenUrlFromTab : TOnOpenUrlFromTab read FOnOpenUrlFromTab write FOnOpenUrlFromTab;
|
||||
property OnGetAuthCredentials : TOnGetAuthCredentials read FOnGetAuthCredentials write FOnGetAuthCredentials;
|
||||
property OnQuotaRequest : TOnQuotaRequest read FOnQuotaRequest write FOnQuotaRequest;
|
||||
property OnCertificateError : TOnCertificateError read FOnCertificateError write FOnCertificateError;
|
||||
property OnSelectClientCertificate : TOnSelectClientCertificate read FOnSelectClientCertificate write FOnSelectClientCertificate;
|
||||
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
||||
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
||||
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
||||
property OnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqHdlr write FOnGetResourceRequestHandler_ReqHdlr;
|
||||
|
||||
// ICefResourceRequestHandler
|
||||
property OnBeforeResourceLoad : TOnBeforeResourceLoad read FOnBeforeResourceLoad write FOnBeforeResourceLoad;
|
||||
@@ -802,8 +810,9 @@ type
|
||||
property OnFindResult : TOnFindResult read FOnFindResult write FOnFindResult;
|
||||
|
||||
// ICefRequestContextHandler
|
||||
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
||||
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
||||
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
||||
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
||||
property OnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqCtxHdlr write FOnGetResourceRequestHandler_ReqCtxHdlr;
|
||||
end;
|
||||
|
||||
// *********************************************************
|
||||
@@ -841,7 +850,8 @@ uses
|
||||
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, uCEFCookieManager,
|
||||
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor,
|
||||
uCEFListValue, uCEFNavigationEntryVisitor, uCEFDownloadImageCallBack,
|
||||
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback;
|
||||
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback,
|
||||
uCEFResourceRequestHandler;
|
||||
|
||||
constructor TFMXChromium.Create(AOwner: TComponent);
|
||||
begin
|
||||
@@ -853,6 +863,7 @@ begin
|
||||
FDefaultUrl := 'about:blank';
|
||||
FHandler := nil;
|
||||
FReqContextHandler := nil;
|
||||
FResourceRequestHandler := nil;
|
||||
FOptions := nil;
|
||||
FFontOptions := nil;
|
||||
FDefaultEncoding := '';
|
||||
@@ -960,6 +971,7 @@ begin
|
||||
|
||||
DestroyClientHandler;
|
||||
DestroyReqContextHandler;
|
||||
DestroyResourceRequestHandler;
|
||||
|
||||
inherited BeforeDestruction;
|
||||
end;
|
||||
@@ -1005,6 +1017,27 @@ begin
|
||||
FReqContextHandler := TCustomRequestContextHandler.Create(self);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.DestroyResourceRequestHandler;
|
||||
begin
|
||||
try
|
||||
if (FResourceRequestHandler <> nil) then
|
||||
begin
|
||||
FResourceRequestHandler.RemoveReferences;
|
||||
FResourceRequestHandler := nil;
|
||||
end;
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TFMXChromium.DestroyResourceRequestHandler', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.CreateResourceRequestHandler;
|
||||
begin
|
||||
if MustCreateResourceRequestHandler and
|
||||
(FResourceRequestHandler = nil) then
|
||||
FResourceRequestHandler := TCustomResourceRequestHandler.Create(self);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.AfterConstruction;
|
||||
begin
|
||||
inherited AfterConstruction;
|
||||
@@ -1104,16 +1137,16 @@ begin
|
||||
FOnClose := nil;
|
||||
|
||||
// ICefRequestHandler
|
||||
FOnBeforeBrowse := nil;
|
||||
FOnOpenUrlFromTab := nil;
|
||||
FOnGetAuthCredentials := nil;
|
||||
FOnQuotaRequest := nil;
|
||||
FOnCertificateError := nil;
|
||||
FOnSelectClientCertificate := nil;
|
||||
FOnPluginCrashed := nil;
|
||||
FOnRenderViewReady := nil;
|
||||
FOnRenderProcessTerminated := nil;
|
||||
FOnGetResourceRequestHandler := nil;
|
||||
FOnBeforeBrowse := nil;
|
||||
FOnOpenUrlFromTab := nil;
|
||||
FOnGetAuthCredentials := nil;
|
||||
FOnQuotaRequest := nil;
|
||||
FOnCertificateError := nil;
|
||||
FOnSelectClientCertificate := nil;
|
||||
FOnPluginCrashed := nil;
|
||||
FOnRenderViewReady := nil;
|
||||
FOnRenderProcessTerminated := nil;
|
||||
FOnGetResourceRequestHandler_ReqHdlr := nil;
|
||||
|
||||
// ICefResourceRequestHandler
|
||||
FOnBeforeResourceLoad := nil;
|
||||
@@ -1155,8 +1188,9 @@ begin
|
||||
FOnFindResult := nil;
|
||||
|
||||
// ICefRequestContextHandler
|
||||
FOnRequestContextInitialized := nil;
|
||||
FOnBeforePluginLoad := nil;
|
||||
FOnRequestContextInitialized := nil;
|
||||
FOnBeforePluginLoad := nil;
|
||||
FOnGetResourceRequestHandler_ReqCtxHdlr := nil;
|
||||
|
||||
// Custom
|
||||
FOnTextResultAvailable := nil;
|
||||
@@ -1171,6 +1205,7 @@ begin
|
||||
FOnAllConnectionsClosed := nil;
|
||||
FOnExecuteTaskOnCefThread := nil;
|
||||
FOnCookiesVisited := nil;
|
||||
FOnCookieVisitorDestroyed := nil;
|
||||
FOnCookieSet := nil;
|
||||
end;
|
||||
|
||||
@@ -1263,6 +1298,7 @@ begin
|
||||
begin
|
||||
GetSettings(FBrowserSettings);
|
||||
InitializeWindowInfo(aParentHandle, aParentRect, aWindowName);
|
||||
CreateResourceRequestHandler;
|
||||
|
||||
if (aContext = nil) then
|
||||
begin
|
||||
@@ -3255,6 +3291,12 @@ begin
|
||||
aDeleteCookie, aResult);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doOnCookieVisitorDestroyed(aID : integer);
|
||||
begin
|
||||
if assigned(FOnCookieVisitorDestroyed) then
|
||||
FOnCookieVisitorDestroyed(self, aID);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doOnCookieSet(aSuccess : boolean; aID : integer);
|
||||
begin
|
||||
if assigned(FOnCookieSet) then FOnCookieSet(self, aSuccess, aID);
|
||||
@@ -3368,7 +3410,9 @@ end;
|
||||
function TFMXChromium.MustCreateRequestContextHandler : boolean;
|
||||
begin
|
||||
Result := assigned(FOnRequestContextInitialized) or
|
||||
assigned(FOnBeforePluginLoad);
|
||||
assigned(FOnBeforePluginLoad) or
|
||||
assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) or
|
||||
MustCreateResourceRequestHandler;
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doTextResultAvailable(const aText : ustring);
|
||||
@@ -3516,6 +3560,7 @@ begin
|
||||
if (browser <> nil) and (FBrowserId = browser.Identifier) then
|
||||
begin
|
||||
FInitialized := False;
|
||||
DestroyResourceRequestHandler;
|
||||
DestroyReqContextHandler;
|
||||
ClearBrowserReference;
|
||||
DestroyClientHandler;
|
||||
@@ -3777,17 +3822,22 @@ begin
|
||||
FOnBeforePluginLoad(self, mimeType, pluginUrl, isMainFrame, topOriginUrl, pluginInfo, pluginPolicy, Result);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doGetResourceRequestHandler(const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
const request : ICefRequest;
|
||||
is_navigation : boolean;
|
||||
is_download : boolean;
|
||||
const request_initiator : ustring;
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||
procedure TFMXChromium.doGetResourceRequestHandler_ReqCtxHdlr(const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
const request : ICefRequest;
|
||||
is_navigation : boolean;
|
||||
is_download : boolean;
|
||||
const request_initiator : ustring;
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||
begin
|
||||
disable_default_handling := False;
|
||||
aResourceRequestHandler := nil;
|
||||
if (FResourceRequestHandler <> nil) then
|
||||
aResourceRequestHandler := FResourceRequestHandler;
|
||||
|
||||
if Assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) then
|
||||
FOnGetResourceRequestHandler_ReqCtxHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||
request_initiator, disable_default_handling,
|
||||
aResourceRequestHandler);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doOnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
|
||||
@@ -3956,20 +4006,22 @@ begin
|
||||
FOnOpenUrlFromTab(Self, browser, frame, targetUrl, targetDisposition, userGesture, Result);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doOnGetResourceRequestHandler(const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
const request : ICefRequest;
|
||||
is_navigation : boolean;
|
||||
is_download : boolean;
|
||||
const request_initiator : ustring;
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler;
|
||||
var aUseInternalHandler : boolean);
|
||||
procedure TFMXChromium.doGetResourceRequestHandler_ReqHdlr(const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
const request : ICefRequest;
|
||||
is_navigation : boolean;
|
||||
is_download : boolean;
|
||||
const request_initiator : ustring;
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||
begin
|
||||
if Assigned(FOnGetResourceRequestHandler) then
|
||||
FOnGetResourceRequestHandler(self, browser, frame, request, is_navigation, is_download,
|
||||
request_initiator, disable_default_handling,
|
||||
aResourceRequestHandler, aUseInternalHandler);
|
||||
if (FResourceRequestHandler <> nil) then
|
||||
aResourceRequestHandler := FResourceRequestHandler;
|
||||
|
||||
if Assigned(FOnGetResourceRequestHandler_ReqHdlr) then
|
||||
FOnGetResourceRequestHandler_ReqHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||
request_initiator, disable_default_handling,
|
||||
aResourceRequestHandler);
|
||||
end;
|
||||
|
||||
procedure TFMXChromium.doOnPaint(const browser : ICefBrowser;
|
||||
|
||||
Reference in New Issue
Block a user