mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-04-17 06:57:13 +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:
parent
aec9e6b922
commit
427059dd9a
@ -66,6 +66,7 @@ object CookieVisitorFrm: TCookieVisitorFrm
|
|||||||
object Chromium1: TChromium
|
object Chromium1: TChromium
|
||||||
OnCookiesDeleted = Chromium1CookiesDeleted
|
OnCookiesDeleted = Chromium1CookiesDeleted
|
||||||
OnCookiesVisited = Chromium1CookiesVisited
|
OnCookiesVisited = Chromium1CookiesVisited
|
||||||
|
OnCookieVisitorDestroyed = Chromium1CookieVisitorDestroyed
|
||||||
OnCookieSet = Chromium1CookieSet
|
OnCookieSet = Chromium1CookieSet
|
||||||
OnBeforeContextMenu = Chromium1BeforeContextMenu
|
OnBeforeContextMenu = Chromium1BeforeContextMenu
|
||||||
OnContextMenuCommand = Chromium1ContextMenuCommand
|
OnContextMenuCommand = Chromium1ContextMenuCommand
|
||||||
|
@ -105,6 +105,8 @@ type
|
|||||||
total, aID : Integer; var aDeleteCookie, aResult: Boolean);
|
total, aID : Integer; var aDeleteCookie, aResult: Boolean);
|
||||||
procedure Chromium1CookieSet(Sender: TObject; aSuccess: Boolean;
|
procedure Chromium1CookieSet(Sender: TObject; aSuccess: Boolean;
|
||||||
aID: Integer);
|
aID: Integer);
|
||||||
|
procedure Chromium1CookieVisitorDestroyed(Sender: TObject;
|
||||||
|
aID: Integer);
|
||||||
|
|
||||||
private
|
private
|
||||||
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
|
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
|
||||||
@ -336,13 +338,12 @@ begin
|
|||||||
|
|
||||||
AddCookieInfo(TempCookie);
|
AddCookieInfo(TempCookie);
|
||||||
|
|
||||||
if (count = pred(total)) then
|
aResult := (count <> pred(total));
|
||||||
begin
|
end;
|
||||||
|
|
||||||
|
procedure TCookieVisitorFrm.Chromium1CookieVisitorDestroyed(Sender: TObject; aID: Integer);
|
||||||
|
begin
|
||||||
PostMessage(Handle, MINIBROWSER_SHOWCOOKIES, 0, 0);
|
PostMessage(Handle, MINIBROWSER_SHOWCOOKIES, 0, 0);
|
||||||
aResult := False;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
aResult := True;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCookieVisitorFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
procedure TCookieVisitorFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<TopLine Value="231"/>
|
<TopLine Value="235"/>
|
||||||
<CursorPos X="13" Y="235"/>
|
<CursorPos X="3" Y="255"/>
|
||||||
<UsageCount Value="24"/>
|
<UsageCount Value="24"/>
|
||||||
<Bookmarks Count="3">
|
<Bookmarks Count="3">
|
||||||
<Item0 Y="350" ID="1"/>
|
<Item0 Y="351" ID="1"/>
|
||||||
<Item1 X="3" Y="198" ID="2"/>
|
<Item1 X="3" Y="199" ID="2"/>
|
||||||
<Item2 X="66" Y="229" ID="3"/>
|
<Item2 X="66" Y="230" ID="3"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
@ -56,123 +56,123 @@
|
|||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="252" Column="5" TopLine="249"/>
|
<Caret Line="64" Column="35" TopLine="42"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="64" Column="35" TopLine="42"/>
|
<Caret Line="85" Column="41" TopLine="61"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="85" Column="41" TopLine="61"/>
|
<Caret Line="356" Column="81" TopLine="334"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="356" Column="81" TopLine="334"/>
|
<Caret Line="223" TopLine="206"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="223" TopLine="206"/>
|
<Caret Line="251" Column="70" TopLine="234"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="251" Column="70" TopLine="234"/>
|
<Caret Line="252" Column="3" TopLine="239"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="252" Column="3" TopLine="239"/>
|
<Caret Line="79" Column="67" TopLine="75"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="79" Column="67" TopLine="75"/>
|
<Caret Line="352" Column="38" TopLine="336"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="352" Column="38" TopLine="336"/>
|
<Caret Line="41" Column="100" TopLine="29"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="41" Column="100" TopLine="29"/>
|
<Caret Line="99" Column="40" TopLine="71"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="99" Column="40" TopLine="71"/>
|
<Caret Line="119" Column="15" TopLine="103"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="119" Column="15" TopLine="103"/>
|
<Caret Line="191" Column="3" TopLine="182"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="191" Column="3" TopLine="182"/>
|
<Caret Line="339" Column="60" TopLine="324"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="339" Column="60" TopLine="324"/>
|
<Caret Line="191" Column="62" TopLine="176"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="191" Column="62" TopLine="176"/>
|
<Caret Line="120" Column="67" TopLine="106"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="120" Column="67" TopLine="106"/>
|
<Caret Line="339" Column="31" TopLine="324"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="339" Column="31" TopLine="324"/>
|
<Caret Line="117" Column="84" TopLine="94"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="117" Column="84" TopLine="94"/>
|
<Caret Line="115" Column="96" TopLine="95"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="115" Column="96" TopLine="95"/>
|
<Caret Line="119" Column="87" TopLine="95"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="119" Column="87" TopLine="95"/>
|
<Caret Line="245" Column="11" TopLine="222"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="245" Column="11" TopLine="222"/>
|
<Caret Line="340" TopLine="325"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="340" TopLine="325"/>
|
<Caret Line="339" Column="74" TopLine="325"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="339" Column="74" TopLine="325"/>
|
<Caret Line="216" Column="51" TopLine="202"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="216" Column="51" TopLine="202"/>
|
<Caret Line="340" Column="68" TopLine="326"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="340" Column="68" TopLine="326"/>
|
<Caret Line="121" Column="15" TopLine="109"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="121" Column="15" TopLine="109"/>
|
<Caret Line="198" Column="5" TopLine="190"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="198" Column="5" TopLine="190"/>
|
<Caret Line="221" Column="66" TopLine="208"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="221" Column="66" TopLine="208"/>
|
<Caret Line="198" Column="28" TopLine="178"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="198" Column="28" TopLine="178"/>
|
<Caret Line="83" Column="72" TopLine="75"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="uCookieVisitor.pas"/>
|
<Filename Value="uCookieVisitor.pas"/>
|
||||||
<Caret Line="83" Column="72" TopLine="75"/>
|
<Caret Line="236" Column="13" TopLine="232"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
<RunParams>
|
<RunParams>
|
||||||
|
@ -15,7 +15,7 @@ object CookieVisitorFrm: TCookieVisitorFrm
|
|||||||
OnDestroy = FormDestroy
|
OnDestroy = FormDestroy
|
||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
Position = poScreenCenter
|
Position = poScreenCenter
|
||||||
LCLVersion = '2.0.4.0'
|
LCLVersion = '2.0.6.0'
|
||||||
object AddressBarPnl: TPanel
|
object AddressBarPnl: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 21
|
Height = 21
|
||||||
@ -60,6 +60,7 @@ object CookieVisitorFrm: TCookieVisitorFrm
|
|||||||
object Chromium1: TChromium
|
object Chromium1: TChromium
|
||||||
OnCookiesDeleted = Chromium1CookiesDeleted
|
OnCookiesDeleted = Chromium1CookiesDeleted
|
||||||
OnCookiesVisited = Chromium1CookiesVisited
|
OnCookiesVisited = Chromium1CookiesVisited
|
||||||
|
OnCookieVisitorDestroyed = Chromium1CookieVisitorDestroyed
|
||||||
OnCookieSet = Chromium1CookieSet
|
OnCookieSet = Chromium1CookieSet
|
||||||
OnBeforeContextMenu = Chromium1BeforeContextMenu
|
OnBeforeContextMenu = Chromium1BeforeContextMenu
|
||||||
OnContextMenuCommand = Chromium1ContextMenuCommand
|
OnContextMenuCommand = Chromium1ContextMenuCommand
|
||||||
|
@ -82,6 +82,7 @@ type
|
|||||||
domain, path: ustring; secure, httponly, hasExpires: Boolean;
|
domain, path: ustring; secure, httponly, hasExpires: Boolean;
|
||||||
const creation, lastAccess, expires: TDateTime; count, total, aID: Integer;
|
const creation, lastAccess, expires: TDateTime; count, total, aID: Integer;
|
||||||
var aDeleteCookie, aResult: Boolean);
|
var aDeleteCookie, aResult: Boolean);
|
||||||
|
procedure Chromium1CookieVisitorDestroyed(Sender: TObject; aID: integer);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure GoBtnClick(Sender: TObject);
|
procedure GoBtnClick(Sender: TObject);
|
||||||
procedure Chromium1BeforeContextMenu(Sender: TObject;
|
procedure Chromium1BeforeContextMenu(Sender: TObject;
|
||||||
@ -251,13 +252,13 @@ begin
|
|||||||
|
|
||||||
AddCookieInfo(TempCookie);
|
AddCookieInfo(TempCookie);
|
||||||
|
|
||||||
if (count = pred(total)) then
|
aResult := (count <> pred(total));
|
||||||
begin
|
end;
|
||||||
|
|
||||||
|
procedure TCookieVisitorFrm.Chromium1CookieVisitorDestroyed(Sender: TObject;
|
||||||
|
aID: integer);
|
||||||
|
begin
|
||||||
PostMessage(Handle, MINIBROWSER_SHOWCOOKIES, 0, 0);
|
PostMessage(Handle, MINIBROWSER_SHOWCOOKIES, 0, 0);
|
||||||
aResult := False;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
aResult := True;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCookieVisitorFrm.CEFSentinel1Close(Sender: TObject);
|
procedure TCookieVisitorFrm.CEFSentinel1Close(Sender: TObject);
|
||||||
|
@ -73,6 +73,7 @@ type
|
|||||||
FBrowser : ICefBrowser;
|
FBrowser : ICefBrowser;
|
||||||
FBrowserId : Integer;
|
FBrowserId : Integer;
|
||||||
FReqContextHandler : ICefRequestContextHandler;
|
FReqContextHandler : ICefRequestContextHandler;
|
||||||
|
FResourceRequestHandler : ICefResourceRequestHandler;
|
||||||
FDefaultUrl : ustring;
|
FDefaultUrl : ustring;
|
||||||
FOptions : TChromiumOptions;
|
FOptions : TChromiumOptions;
|
||||||
FFontOptions : TChromiumFontOptions;
|
FFontOptions : TChromiumFontOptions;
|
||||||
@ -193,7 +194,7 @@ type
|
|||||||
FOnPluginCrashed : TOnPluginCrashed;
|
FOnPluginCrashed : TOnPluginCrashed;
|
||||||
FOnRenderViewReady : TOnRenderViewReady;
|
FOnRenderViewReady : TOnRenderViewReady;
|
||||||
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
||||||
FOnGetResourceRequestHandler : TOnGetResourceRequestHandler;
|
FOnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
FOnBeforeResourceLoad : TOnBeforeResourceLoad;
|
FOnBeforeResourceLoad : TOnBeforeResourceLoad;
|
||||||
@ -239,6 +240,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
||||||
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler;
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
FOnTextResultAvailable : TOnTextResultAvailableEvent;
|
FOnTextResultAvailable : TOnTextResultAvailableEvent;
|
||||||
@ -254,6 +256,7 @@ type
|
|||||||
FOnAllConnectionsClosed : TNotifyEvent;
|
FOnAllConnectionsClosed : TNotifyEvent;
|
||||||
FOnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread;
|
FOnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread;
|
||||||
FOnCookiesVisited : TOnCookiesVisited;
|
FOnCookiesVisited : TOnCookiesVisited;
|
||||||
|
FOnCookieVisitorDestroyed : TOnCookieVisitorDestroyed;
|
||||||
FOnCookieSet : TOnCookieSet;
|
FOnCookieSet : TOnCookieSet;
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
FOnBrowserCompMsg : TOnCompMsgEvent;
|
FOnBrowserCompMsg : TOnCompMsgEvent;
|
||||||
@ -323,8 +326,10 @@ type
|
|||||||
|
|
||||||
procedure DestroyClientHandler;
|
procedure DestroyClientHandler;
|
||||||
procedure DestroyReqContextHandler;
|
procedure DestroyReqContextHandler;
|
||||||
|
procedure DestroyResourceRequestHandler;
|
||||||
procedure ClearBrowserReference;
|
procedure ClearBrowserReference;
|
||||||
procedure CreateReqContextHandler;
|
procedure CreateReqContextHandler;
|
||||||
|
procedure CreateResourceRequestHandler;
|
||||||
|
|
||||||
procedure InitializeEvents;
|
procedure InitializeEvents;
|
||||||
procedure InitializeSettings(var aSettings : TCefBrowserSettings);
|
procedure InitializeSettings(var aSettings : TCefBrowserSettings);
|
||||||
@ -434,7 +439,7 @@ type
|
|||||||
// ICefRequestHandler
|
// ICefRequestHandler
|
||||||
function doOnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean; virtual;
|
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;
|
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 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 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;
|
function doOnCertificateError(const browser: ICefBrowser; certError: TCefErrorcode; const requestUrl: ustring; const sslInfo: ICefSslInfo; const callback: ICefRequestCallback): Boolean; virtual;
|
||||||
@ -487,7 +492,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
procedure doOnRequestContextInitialized(const request_context: ICefRequestContext); virtual;
|
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;
|
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
|
// Custom
|
||||||
procedure doCookiesDeleted(numDeleted : integer); virtual;
|
procedure doCookiesDeleted(numDeleted : integer); virtual;
|
||||||
@ -505,6 +510,7 @@ type
|
|||||||
procedure doAllConnectionsClosed; virtual;
|
procedure doAllConnectionsClosed; virtual;
|
||||||
procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal); 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 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;
|
procedure doOnCookieSet(aSuccess : boolean; aID : integer); virtual;
|
||||||
function MustCreateLoadHandler : boolean; virtual;
|
function MustCreateLoadHandler : boolean; virtual;
|
||||||
function MustCreateFocusHandler : boolean; virtual;
|
function MustCreateFocusHandler : boolean; virtual;
|
||||||
@ -662,6 +668,7 @@ type
|
|||||||
property Browser : ICefBrowser read FBrowser;
|
property Browser : ICefBrowser read FBrowser;
|
||||||
property CefClient : ICefClient read FHandler;
|
property CefClient : ICefClient read FHandler;
|
||||||
property ReqContextHandler : ICefRequestContextHandler read FReqContextHandler;
|
property ReqContextHandler : ICefRequestContextHandler read FReqContextHandler;
|
||||||
|
property ResourceRequestHandler : ICefResourceRequestHandler read FResourceRequestHandler;
|
||||||
property CefWindowInfo : TCefWindowInfo read FWindowInfo;
|
property CefWindowInfo : TCefWindowInfo read FWindowInfo;
|
||||||
property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry;
|
property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry;
|
||||||
property MultithreadApp : boolean read GetMultithreadApp;
|
property MultithreadApp : boolean read GetMultithreadApp;
|
||||||
@ -733,6 +740,7 @@ type
|
|||||||
property OnAllConnectionsClosed : TNotifyEvent read FOnAllConnectionsClosed write FOnAllConnectionsClosed;
|
property OnAllConnectionsClosed : TNotifyEvent read FOnAllConnectionsClosed write FOnAllConnectionsClosed;
|
||||||
property OnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread read FOnExecuteTaskOnCefThread write FOnExecuteTaskOnCefThread;
|
property OnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread read FOnExecuteTaskOnCefThread write FOnExecuteTaskOnCefThread;
|
||||||
property OnCookiesVisited : TOnCookiesVisited read FOnCookiesVisited write FOnCookiesVisited;
|
property OnCookiesVisited : TOnCookiesVisited read FOnCookiesVisited write FOnCookiesVisited;
|
||||||
|
property OnCookieVisitorDestroyed : TOnCookieVisitorDestroyed read FOnCookieVisitorDestroyed write FOnCookieVisitorDestroyed;
|
||||||
property OnCookieSet : TOnCookieSet read FOnCookieSet write FOnCookieSet;
|
property OnCookieSet : TOnCookieSet read FOnCookieSet write FOnCookieSet;
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
|
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
|
||||||
@ -801,7 +809,7 @@ type
|
|||||||
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
||||||
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
||||||
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
||||||
property OnGetResourceRequestHandler : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler write FOnGetResourceRequestHandler;
|
property OnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqHdlr write FOnGetResourceRequestHandler_ReqHdlr;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
property OnBeforeResourceLoad : TOnBeforeResourceLoad read FOnBeforeResourceLoad write FOnBeforeResourceLoad;
|
property OnBeforeResourceLoad : TOnBeforeResourceLoad read FOnBeforeResourceLoad write FOnBeforeResourceLoad;
|
||||||
@ -847,6 +855,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
||||||
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
||||||
|
property OnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqCtxHdlr write FOnGetResourceRequestHandler_ReqCtxHdlr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
@ -892,7 +901,7 @@ uses
|
|||||||
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, {$IFNDEF FPC}uCEFOLEDragAndDrop,{$ENDIF}
|
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, {$IFNDEF FPC}uCEFOLEDragAndDrop,{$ENDIF}
|
||||||
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor,
|
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor,
|
||||||
uCEFListValue, uCEFNavigationEntryVisitor, uCEFDownloadImageCallBack, uCEFCookieManager,
|
uCEFListValue, uCEFNavigationEntryVisitor, uCEFDownloadImageCallBack, uCEFCookieManager,
|
||||||
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback;
|
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback, uCEFResourceRequestHandler;
|
||||||
|
|
||||||
constructor TChromium.Create(AOwner: TComponent);
|
constructor TChromium.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
@ -905,6 +914,7 @@ begin
|
|||||||
FDefaultUrl := 'about:blank';
|
FDefaultUrl := 'about:blank';
|
||||||
FHandler := nil;
|
FHandler := nil;
|
||||||
FReqContextHandler := nil;
|
FReqContextHandler := nil;
|
||||||
|
FResourceRequestHandler := nil;
|
||||||
FOptions := nil;
|
FOptions := nil;
|
||||||
FFontOptions := nil;
|
FFontOptions := nil;
|
||||||
FDefaultEncoding := '';
|
FDefaultEncoding := '';
|
||||||
@ -1026,6 +1036,7 @@ begin
|
|||||||
|
|
||||||
DestroyClientHandler;
|
DestroyClientHandler;
|
||||||
DestroyReqContextHandler;
|
DestroyReqContextHandler;
|
||||||
|
DestroyResourceRequestHandler;
|
||||||
|
|
||||||
inherited BeforeDestruction;
|
inherited BeforeDestruction;
|
||||||
end;
|
end;
|
||||||
@ -1087,6 +1098,27 @@ begin
|
|||||||
FReqContextHandler := TCustomRequestContextHandler.Create(self);
|
FReqContextHandler := TCustomRequestContextHandler.Create(self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChromium.DestroyResourceRequestHandler;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
if (FResourceRequestHandler <> nil) then
|
||||||
|
begin
|
||||||
|
FResourceRequestHandler.RemoveReferences;
|
||||||
|
FResourceRequestHandler := nil;
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
on e : exception do
|
||||||
|
if CustomExceptionHandler('TChromium.DestroyResourceRequestHandler', e) then raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TChromium.CreateResourceRequestHandler;
|
||||||
|
begin
|
||||||
|
if MustCreateResourceRequestHandler and
|
||||||
|
(FResourceRequestHandler = nil) then
|
||||||
|
FResourceRequestHandler := TCustomResourceRequestHandler.Create(self);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChromium.AfterConstruction;
|
procedure TChromium.AfterConstruction;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
var
|
var
|
||||||
@ -1207,7 +1239,7 @@ begin
|
|||||||
FOnPluginCrashed := nil;
|
FOnPluginCrashed := nil;
|
||||||
FOnRenderViewReady := nil;
|
FOnRenderViewReady := nil;
|
||||||
FOnRenderProcessTerminated := nil;
|
FOnRenderProcessTerminated := nil;
|
||||||
FOnGetResourceRequestHandler := nil;
|
FOnGetResourceRequestHandler_ReqHdlr := nil;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
FOnBeforeResourceLoad := nil;
|
FOnBeforeResourceLoad := nil;
|
||||||
@ -1253,6 +1285,7 @@ begin
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
FOnRequestContextInitialized := nil;
|
FOnRequestContextInitialized := nil;
|
||||||
FOnBeforePluginLoad := nil;
|
FOnBeforePluginLoad := nil;
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr := nil;
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
FOnTextResultAvailable := nil;
|
FOnTextResultAvailable := nil;
|
||||||
@ -1268,6 +1301,7 @@ begin
|
|||||||
FOnAllConnectionsClosed := nil;
|
FOnAllConnectionsClosed := nil;
|
||||||
FOnExecuteTaskOnCefThread := nil;
|
FOnExecuteTaskOnCefThread := nil;
|
||||||
FOnCookiesVisited := nil;
|
FOnCookiesVisited := nil;
|
||||||
|
FOnCookieVisitorDestroyed := nil;
|
||||||
FOnCookieSet := nil;
|
FOnCookieSet := nil;
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
FOnBrowserCompMsg := nil;
|
FOnBrowserCompMsg := nil;
|
||||||
@ -1328,6 +1362,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
GetSettings(FBrowserSettings);
|
GetSettings(FBrowserSettings);
|
||||||
InitializeWindowInfo(aParentHandle, aParentRect, aWindowName);
|
InitializeWindowInfo(aParentHandle, aParentRect, aWindowName);
|
||||||
|
CreateResourceRequestHandler;
|
||||||
|
|
||||||
if (aContext = nil) then
|
if (aContext = nil) then
|
||||||
begin
|
begin
|
||||||
@ -3513,6 +3548,12 @@ begin
|
|||||||
aDeleteCookie, aResult);
|
aDeleteCookie, aResult);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChromium.doOnCookieVisitorDestroyed(aID : integer);
|
||||||
|
begin
|
||||||
|
if assigned(FOnCookieVisitorDestroyed) then
|
||||||
|
FOnCookieVisitorDestroyed(self, aID);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChromium.doOnCookieSet(aSuccess : boolean; aID : integer);
|
procedure TChromium.doOnCookieSet(aSuccess : boolean; aID : integer);
|
||||||
begin
|
begin
|
||||||
if assigned(FOnCookieSet) then FOnCookieSet(self, aSuccess, aID);
|
if assigned(FOnCookieSet) then FOnCookieSet(self, aSuccess, aID);
|
||||||
@ -3626,7 +3667,9 @@ end;
|
|||||||
function TChromium.MustCreateRequestContextHandler : boolean;
|
function TChromium.MustCreateRequestContextHandler : boolean;
|
||||||
begin
|
begin
|
||||||
Result := assigned(FOnRequestContextInitialized) or
|
Result := assigned(FOnRequestContextInitialized) or
|
||||||
assigned(FOnBeforePluginLoad);
|
assigned(FOnBeforePluginLoad) or
|
||||||
|
assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) or
|
||||||
|
MustCreateResourceRequestHandler;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
@ -3886,6 +3929,8 @@ begin
|
|||||||
if (browser <> nil) and (FBrowserId = browser.Identifier) then
|
if (browser <> nil) and (FBrowserId = browser.Identifier) then
|
||||||
begin
|
begin
|
||||||
FInitialized := False;
|
FInitialized := False;
|
||||||
|
DestroyResourceRequestHandler;
|
||||||
|
DestroyReqContextHandler;
|
||||||
ClearBrowserReference;
|
ClearBrowserReference;
|
||||||
DestroyClientHandler;
|
DestroyClientHandler;
|
||||||
end;
|
end;
|
||||||
@ -4146,7 +4191,7 @@ begin
|
|||||||
FOnBeforePluginLoad(self, mimeType, pluginUrl, isMainFrame, topOriginUrl, pluginInfo, pluginPolicy, Result);
|
FOnBeforePluginLoad(self, mimeType, pluginUrl, isMainFrame, topOriginUrl, pluginInfo, pluginPolicy, Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChromium.doGetResourceRequestHandler(const browser : ICefBrowser;
|
procedure TChromium.doGetResourceRequestHandler_ReqCtxHdlr(const browser : ICefBrowser;
|
||||||
const frame : ICefFrame;
|
const frame : ICefFrame;
|
||||||
const request : ICefRequest;
|
const request : ICefRequest;
|
||||||
is_navigation : boolean;
|
is_navigation : boolean;
|
||||||
@ -4155,8 +4200,13 @@ procedure TChromium.doGetResourceRequestHandler(const browser :
|
|||||||
var disable_default_handling : boolean;
|
var disable_default_handling : boolean;
|
||||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
begin
|
begin
|
||||||
disable_default_handling := False;
|
if (FResourceRequestHandler <> nil) then
|
||||||
aResourceRequestHandler := nil;
|
aResourceRequestHandler := FResourceRequestHandler;
|
||||||
|
|
||||||
|
if Assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) then
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||||
|
request_initiator, disable_default_handling,
|
||||||
|
aResourceRequestHandler);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChromium.doOnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
|
procedure TChromium.doOnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
|
||||||
@ -4325,20 +4375,22 @@ begin
|
|||||||
FOnOpenUrlFromTab(Self, browser, frame, targetUrl, targetDisposition, userGesture, Result);
|
FOnOpenUrlFromTab(Self, browser, frame, targetUrl, targetDisposition, userGesture, Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChromium.doOnGetResourceRequestHandler(const browser : ICefBrowser;
|
procedure TChromium.doGetResourceRequestHandler_ReqHdlr(const browser : ICefBrowser;
|
||||||
const frame : ICefFrame;
|
const frame : ICefFrame;
|
||||||
const request : ICefRequest;
|
const request : ICefRequest;
|
||||||
is_navigation : boolean;
|
is_navigation : boolean;
|
||||||
is_download : boolean;
|
is_download : boolean;
|
||||||
const request_initiator : ustring;
|
const request_initiator : ustring;
|
||||||
var disable_default_handling : boolean;
|
var disable_default_handling : boolean;
|
||||||
var aResourceRequestHandler : ICefResourceRequestHandler;
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
var aUseInternalHandler : boolean);
|
|
||||||
begin
|
begin
|
||||||
if Assigned(FOnGetResourceRequestHandler) then
|
if (FResourceRequestHandler <> nil) then
|
||||||
FOnGetResourceRequestHandler(self, browser, frame, request, is_navigation, is_download,
|
aResourceRequestHandler := FResourceRequestHandler;
|
||||||
|
|
||||||
|
if Assigned(FOnGetResourceRequestHandler_ReqHdlr) then
|
||||||
|
FOnGetResourceRequestHandler_ReqHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||||
request_initiator, disable_default_handling,
|
request_initiator, disable_default_handling,
|
||||||
aResourceRequestHandler, aUseInternalHandler);
|
aResourceRequestHandler);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChromium.doOnPaint(const browser : ICefBrowser;
|
procedure TChromium.doOnPaint(const browser : ICefBrowser;
|
||||||
|
@ -118,7 +118,7 @@ type
|
|||||||
TOnPluginCrashed = procedure(Sender: TObject; const browser: ICefBrowser; const pluginPath: ustring) of object;
|
TOnPluginCrashed = procedure(Sender: TObject; const browser: ICefBrowser; const pluginPath: ustring) of object;
|
||||||
TOnRenderViewReady = procedure(Sender: Tobject; const browser: ICefBrowser) of Object;
|
TOnRenderViewReady = procedure(Sender: Tobject; const browser: ICefBrowser) of Object;
|
||||||
TOnRenderProcessTerminated = procedure(Sender: TObject; const browser: ICefBrowser; status: TCefTerminationStatus) of object;
|
TOnRenderProcessTerminated = procedure(Sender: TObject; const browser: ICefBrowser; status: TCefTerminationStatus) of object;
|
||||||
TOnGetResourceRequestHandler = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aExternalResourceRequestHandler : ICefResourceRequestHandler; var aUseInternalResourceRequestHandler : boolean) of object;
|
TOnGetResourceRequestHandler = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; is_navigation, is_download: boolean; const request_initiator: ustring; var disable_default_handling: boolean; var aExternalResourceRequestHandler : ICefResourceRequestHandler) of object;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
TOnBeforeResourceLoad = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const callback: ICefRequestCallback; out Result: TCefReturnValue) of object;
|
TOnBeforeResourceLoad = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const callback: ICefRequestCallback; out Result: TCefReturnValue) of object;
|
||||||
@ -164,6 +164,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
TOnRequestContextInitialized = procedure(Sender: TObject; const request_context: ICefRequestContext) of Object;
|
TOnRequestContextInitialized = procedure(Sender: TObject; const request_context: ICefRequestContext) of Object;
|
||||||
TOnBeforePluginLoad = procedure(Sender: TObject; const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; var pluginPolicy: TCefPluginPolicy; var aResult : boolean) of Object;
|
TOnBeforePluginLoad = procedure(Sender: TObject; const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; var pluginPolicy: TCefPluginPolicy; var aResult : boolean) of Object;
|
||||||
|
// ICefRequestContextHandler uses the same TOnGetResourceRequestHandler event type defined for ICefRequestHandler
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
TOnTextResultAvailableEvent = procedure(Sender: TObject; const aText : ustring) of object;
|
TOnTextResultAvailableEvent = procedure(Sender: TObject; const aText : ustring) of object;
|
||||||
@ -175,6 +176,7 @@ type
|
|||||||
TOnDownloadImageFinishedEvent = procedure(Sender: TObject; const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage) of object;
|
TOnDownloadImageFinishedEvent = procedure(Sender: TObject; const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage) of object;
|
||||||
TOnExecuteTaskOnCefThread = procedure(Sender: TObject; aTaskID : cardinal) of object;
|
TOnExecuteTaskOnCefThread = procedure(Sender: TObject; aTaskID : cardinal) of object;
|
||||||
TOnCookiesVisited = procedure(Sender: TObject; const name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total, aID : Integer; var aDeleteCookie, aResult : Boolean) of object;
|
TOnCookiesVisited = procedure(Sender: TObject; const name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total, aID : Integer; var aDeleteCookie, aResult : Boolean) of object;
|
||||||
|
TOnCookieVisitorDestroyed = procedure(Sender: TObject; aID : integer) of object;
|
||||||
TOnCookieSet = procedure(Sender: TObject; aSuccess : boolean; aID : integer) of object;
|
TOnCookieSet = procedure(Sender: TObject; aSuccess : boolean; aID : integer) of object;
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
TOnCompMsgEvent = procedure(var aMessage: TMessage; var aHandled: Boolean) of object;
|
TOnCompMsgEvent = procedure(var aMessage: TMessage; var aHandled: Boolean) of object;
|
||||||
|
@ -178,9 +178,18 @@ end;
|
|||||||
|
|
||||||
destructor TCefCustomCookieVisitor.Destroy;
|
destructor TCefCustomCookieVisitor.Destroy;
|
||||||
begin
|
begin
|
||||||
|
try
|
||||||
|
try
|
||||||
|
if (FEvents <> nil) then
|
||||||
|
IChromiumEvents(FEvents).doOnCookieVisitorDestroyed(FID);
|
||||||
|
except
|
||||||
|
on e : exception do
|
||||||
|
if CustomExceptionHandler('TCefCustomCookieVisitor.Destroy', e) then raise;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
FEvents := nil;
|
FEvents := nil;
|
||||||
|
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCefCustomCookieVisitor.visit(const name, value, domain, path: ustring;
|
function TCefCustomCookieVisitor.visit(const name, value, domain, path: ustring;
|
||||||
|
@ -62,6 +62,7 @@ type
|
|||||||
FBrowser : ICefBrowser;
|
FBrowser : ICefBrowser;
|
||||||
FBrowserId : Integer;
|
FBrowserId : Integer;
|
||||||
FReqContextHandler : ICefRequestContextHandler;
|
FReqContextHandler : ICefRequestContextHandler;
|
||||||
|
FResourceRequestHandler : ICefResourceRequestHandler;
|
||||||
FDefaultUrl : ustring;
|
FDefaultUrl : ustring;
|
||||||
FOptions : TChromiumOptions;
|
FOptions : TChromiumOptions;
|
||||||
FFontOptions : TChromiumFontOptions;
|
FFontOptions : TChromiumFontOptions;
|
||||||
@ -179,7 +180,7 @@ type
|
|||||||
FOnPluginCrashed : TOnPluginCrashed;
|
FOnPluginCrashed : TOnPluginCrashed;
|
||||||
FOnRenderViewReady : TOnRenderViewReady;
|
FOnRenderViewReady : TOnRenderViewReady;
|
||||||
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
FOnRenderProcessTerminated : TOnRenderProcessTerminated;
|
||||||
FOnGetResourceRequestHandler : TOnGetResourceRequestHandler;
|
FOnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
FOnBeforeResourceLoad : TOnBeforeResourceLoad;
|
FOnBeforeResourceLoad : TOnBeforeResourceLoad;
|
||||||
@ -223,6 +224,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
FOnRequestContextInitialized : TOnRequestContextInitialized;
|
||||||
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
FOnBeforePluginLoad : TOnBeforePluginLoad;
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler;
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
FOnTextResultAvailable : TOnTextResultAvailableEvent;
|
FOnTextResultAvailable : TOnTextResultAvailableEvent;
|
||||||
@ -237,6 +239,7 @@ type
|
|||||||
FOnAllConnectionsClosed : TNotifyEvent;
|
FOnAllConnectionsClosed : TNotifyEvent;
|
||||||
FOnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread;
|
FOnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread;
|
||||||
FOnCookiesVisited : TOnCookiesVisited;
|
FOnCookiesVisited : TOnCookiesVisited;
|
||||||
|
FOnCookieVisitorDestroyed : TOnCookieVisitorDestroyed;
|
||||||
FOnCookieSet : TOnCookieSet;
|
FOnCookieSet : TOnCookieSet;
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
FOnBrowserCompMsg : TOnCompMsgEvent;
|
FOnBrowserCompMsg : TOnCompMsgEvent;
|
||||||
@ -306,8 +309,10 @@ type
|
|||||||
|
|
||||||
procedure DestroyClientHandler;
|
procedure DestroyClientHandler;
|
||||||
procedure DestroyReqContextHandler;
|
procedure DestroyReqContextHandler;
|
||||||
|
procedure DestroyResourceRequestHandler;
|
||||||
procedure ClearBrowserReference;
|
procedure ClearBrowserReference;
|
||||||
procedure CreateReqContextHandler;
|
procedure CreateReqContextHandler;
|
||||||
|
procedure CreateResourceRequestHandler;
|
||||||
|
|
||||||
procedure InitializeEvents;
|
procedure InitializeEvents;
|
||||||
procedure InitializeSettings(var aSettings : TCefBrowserSettings);
|
procedure InitializeSettings(var aSettings : TCefBrowserSettings);
|
||||||
@ -401,7 +406,7 @@ type
|
|||||||
// ICefRequestHandler
|
// ICefRequestHandler
|
||||||
function doOnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean; virtual;
|
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;
|
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 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 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;
|
function doOnCertificateError(const browser: ICefBrowser; certError: TCefErrorcode; const requestUrl: ustring; const sslInfo: ICefSslInfo; const callback: ICefRequestCallback): Boolean; virtual;
|
||||||
@ -454,7 +459,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
procedure doOnRequestContextInitialized(const request_context: ICefRequestContext); virtual;
|
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;
|
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
|
// Custom
|
||||||
procedure doCookiesDeleted(numDeleted : integer); virtual;
|
procedure doCookiesDeleted(numDeleted : integer); virtual;
|
||||||
@ -472,6 +477,7 @@ type
|
|||||||
procedure doAllConnectionsClosed; virtual;
|
procedure doAllConnectionsClosed; virtual;
|
||||||
procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal); 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 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;
|
procedure doOnCookieSet(aSuccess : boolean; aID : integer); virtual;
|
||||||
function MustCreateLoadHandler : boolean; virtual;
|
function MustCreateLoadHandler : boolean; virtual;
|
||||||
function MustCreateFocusHandler : boolean; virtual;
|
function MustCreateFocusHandler : boolean; virtual;
|
||||||
@ -622,6 +628,7 @@ type
|
|||||||
property Browser : ICefBrowser read FBrowser;
|
property Browser : ICefBrowser read FBrowser;
|
||||||
property CefClient : ICefClient read FHandler;
|
property CefClient : ICefClient read FHandler;
|
||||||
property ReqContextHandler : ICefRequestContextHandler read FReqContextHandler;
|
property ReqContextHandler : ICefRequestContextHandler read FReqContextHandler;
|
||||||
|
property ResourceRequestHandler : ICefResourceRequestHandler read FResourceRequestHandler;
|
||||||
property CefWindowInfo : TCefWindowInfo read FWindowInfo;
|
property CefWindowInfo : TCefWindowInfo read FWindowInfo;
|
||||||
property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry;
|
property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry;
|
||||||
property MultithreadApp : boolean read GetMultithreadApp;
|
property MultithreadApp : boolean read GetMultithreadApp;
|
||||||
@ -692,6 +699,7 @@ type
|
|||||||
property OnAllConnectionsClosed : TNotifyEvent read FOnAllConnectionsClosed write FOnAllConnectionsClosed;
|
property OnAllConnectionsClosed : TNotifyEvent read FOnAllConnectionsClosed write FOnAllConnectionsClosed;
|
||||||
property OnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread read FOnExecuteTaskOnCefThread write FOnExecuteTaskOnCefThread;
|
property OnExecuteTaskOnCefThread : TOnExecuteTaskOnCefThread read FOnExecuteTaskOnCefThread write FOnExecuteTaskOnCefThread;
|
||||||
property OnCookiesVisited : TOnCookiesVisited read FOnCookiesVisited write FOnCookiesVisited;
|
property OnCookiesVisited : TOnCookiesVisited read FOnCookiesVisited write FOnCookiesVisited;
|
||||||
|
property OnCookieVisitorDestroyed : TOnCookieVisitorDestroyed read FOnCookieVisitorDestroyed write FOnCookieVisitorDestroyed;
|
||||||
property OnCookieSet : TOnCookieSet read FOnCookieSet write FOnCookieSet;
|
property OnCookieSet : TOnCookieSet read FOnCookieSet write FOnCookieSet;
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
|
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
|
||||||
@ -760,7 +768,7 @@ type
|
|||||||
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
property OnPluginCrashed : TOnPluginCrashed read FOnPluginCrashed write FOnPluginCrashed;
|
||||||
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
property OnRenderViewReady : TOnRenderViewReady read FOnRenderViewReady write FOnRenderViewReady;
|
||||||
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
property OnRenderProcessTerminated : TOnRenderProcessTerminated read FOnRenderProcessTerminated write FOnRenderProcessTerminated;
|
||||||
property OnGetResourceRequestHandler : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler write FOnGetResourceRequestHandler;
|
property OnGetResourceRequestHandler_ReqHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqHdlr write FOnGetResourceRequestHandler_ReqHdlr;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
property OnBeforeResourceLoad : TOnBeforeResourceLoad read FOnBeforeResourceLoad write FOnBeforeResourceLoad;
|
property OnBeforeResourceLoad : TOnBeforeResourceLoad read FOnBeforeResourceLoad write FOnBeforeResourceLoad;
|
||||||
@ -804,6 +812,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
property OnRequestContextInitialized : TOnRequestContextInitialized read FOnRequestContextInitialized write SetOnRequestContextInitialized;
|
||||||
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
property OnBeforePluginLoad : TOnBeforePluginLoad read FOnBeforePluginLoad write SetOnBeforePluginLoad;
|
||||||
|
property OnGetResourceRequestHandler_ReqCtxHdlr : TOnGetResourceRequestHandler read FOnGetResourceRequestHandler_ReqCtxHdlr write FOnGetResourceRequestHandler_ReqCtxHdlr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// *********************************************************
|
// *********************************************************
|
||||||
@ -841,7 +850,8 @@ uses
|
|||||||
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, uCEFCookieManager,
|
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, uCEFCookieManager,
|
||||||
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor,
|
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor,
|
||||||
uCEFListValue, uCEFNavigationEntryVisitor, uCEFDownloadImageCallBack,
|
uCEFListValue, uCEFNavigationEntryVisitor, uCEFDownloadImageCallBack,
|
||||||
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback;
|
uCEFRequestContextHandler, uCEFCookieVisitor, uCEFSetCookieCallback,
|
||||||
|
uCEFResourceRequestHandler;
|
||||||
|
|
||||||
constructor TFMXChromium.Create(AOwner: TComponent);
|
constructor TFMXChromium.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
@ -853,6 +863,7 @@ begin
|
|||||||
FDefaultUrl := 'about:blank';
|
FDefaultUrl := 'about:blank';
|
||||||
FHandler := nil;
|
FHandler := nil;
|
||||||
FReqContextHandler := nil;
|
FReqContextHandler := nil;
|
||||||
|
FResourceRequestHandler := nil;
|
||||||
FOptions := nil;
|
FOptions := nil;
|
||||||
FFontOptions := nil;
|
FFontOptions := nil;
|
||||||
FDefaultEncoding := '';
|
FDefaultEncoding := '';
|
||||||
@ -960,6 +971,7 @@ begin
|
|||||||
|
|
||||||
DestroyClientHandler;
|
DestroyClientHandler;
|
||||||
DestroyReqContextHandler;
|
DestroyReqContextHandler;
|
||||||
|
DestroyResourceRequestHandler;
|
||||||
|
|
||||||
inherited BeforeDestruction;
|
inherited BeforeDestruction;
|
||||||
end;
|
end;
|
||||||
@ -1005,6 +1017,27 @@ begin
|
|||||||
FReqContextHandler := TCustomRequestContextHandler.Create(self);
|
FReqContextHandler := TCustomRequestContextHandler.Create(self);
|
||||||
end;
|
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;
|
procedure TFMXChromium.AfterConstruction;
|
||||||
begin
|
begin
|
||||||
inherited AfterConstruction;
|
inherited AfterConstruction;
|
||||||
@ -1113,7 +1146,7 @@ begin
|
|||||||
FOnPluginCrashed := nil;
|
FOnPluginCrashed := nil;
|
||||||
FOnRenderViewReady := nil;
|
FOnRenderViewReady := nil;
|
||||||
FOnRenderProcessTerminated := nil;
|
FOnRenderProcessTerminated := nil;
|
||||||
FOnGetResourceRequestHandler := nil;
|
FOnGetResourceRequestHandler_ReqHdlr := nil;
|
||||||
|
|
||||||
// ICefResourceRequestHandler
|
// ICefResourceRequestHandler
|
||||||
FOnBeforeResourceLoad := nil;
|
FOnBeforeResourceLoad := nil;
|
||||||
@ -1157,6 +1190,7 @@ begin
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
FOnRequestContextInitialized := nil;
|
FOnRequestContextInitialized := nil;
|
||||||
FOnBeforePluginLoad := nil;
|
FOnBeforePluginLoad := nil;
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr := nil;
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
FOnTextResultAvailable := nil;
|
FOnTextResultAvailable := nil;
|
||||||
@ -1171,6 +1205,7 @@ begin
|
|||||||
FOnAllConnectionsClosed := nil;
|
FOnAllConnectionsClosed := nil;
|
||||||
FOnExecuteTaskOnCefThread := nil;
|
FOnExecuteTaskOnCefThread := nil;
|
||||||
FOnCookiesVisited := nil;
|
FOnCookiesVisited := nil;
|
||||||
|
FOnCookieVisitorDestroyed := nil;
|
||||||
FOnCookieSet := nil;
|
FOnCookieSet := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1263,6 +1298,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
GetSettings(FBrowserSettings);
|
GetSettings(FBrowserSettings);
|
||||||
InitializeWindowInfo(aParentHandle, aParentRect, aWindowName);
|
InitializeWindowInfo(aParentHandle, aParentRect, aWindowName);
|
||||||
|
CreateResourceRequestHandler;
|
||||||
|
|
||||||
if (aContext = nil) then
|
if (aContext = nil) then
|
||||||
begin
|
begin
|
||||||
@ -3255,6 +3291,12 @@ begin
|
|||||||
aDeleteCookie, aResult);
|
aDeleteCookie, aResult);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TFMXChromium.doOnCookieVisitorDestroyed(aID : integer);
|
||||||
|
begin
|
||||||
|
if assigned(FOnCookieVisitorDestroyed) then
|
||||||
|
FOnCookieVisitorDestroyed(self, aID);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doOnCookieSet(aSuccess : boolean; aID : integer);
|
procedure TFMXChromium.doOnCookieSet(aSuccess : boolean; aID : integer);
|
||||||
begin
|
begin
|
||||||
if assigned(FOnCookieSet) then FOnCookieSet(self, aSuccess, aID);
|
if assigned(FOnCookieSet) then FOnCookieSet(self, aSuccess, aID);
|
||||||
@ -3368,7 +3410,9 @@ end;
|
|||||||
function TFMXChromium.MustCreateRequestContextHandler : boolean;
|
function TFMXChromium.MustCreateRequestContextHandler : boolean;
|
||||||
begin
|
begin
|
||||||
Result := assigned(FOnRequestContextInitialized) or
|
Result := assigned(FOnRequestContextInitialized) or
|
||||||
assigned(FOnBeforePluginLoad);
|
assigned(FOnBeforePluginLoad) or
|
||||||
|
assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) or
|
||||||
|
MustCreateResourceRequestHandler;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doTextResultAvailable(const aText : ustring);
|
procedure TFMXChromium.doTextResultAvailable(const aText : ustring);
|
||||||
@ -3516,6 +3560,7 @@ begin
|
|||||||
if (browser <> nil) and (FBrowserId = browser.Identifier) then
|
if (browser <> nil) and (FBrowserId = browser.Identifier) then
|
||||||
begin
|
begin
|
||||||
FInitialized := False;
|
FInitialized := False;
|
||||||
|
DestroyResourceRequestHandler;
|
||||||
DestroyReqContextHandler;
|
DestroyReqContextHandler;
|
||||||
ClearBrowserReference;
|
ClearBrowserReference;
|
||||||
DestroyClientHandler;
|
DestroyClientHandler;
|
||||||
@ -3777,7 +3822,7 @@ begin
|
|||||||
FOnBeforePluginLoad(self, mimeType, pluginUrl, isMainFrame, topOriginUrl, pluginInfo, pluginPolicy, Result);
|
FOnBeforePluginLoad(self, mimeType, pluginUrl, isMainFrame, topOriginUrl, pluginInfo, pluginPolicy, Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doGetResourceRequestHandler(const browser : ICefBrowser;
|
procedure TFMXChromium.doGetResourceRequestHandler_ReqCtxHdlr(const browser : ICefBrowser;
|
||||||
const frame : ICefFrame;
|
const frame : ICefFrame;
|
||||||
const request : ICefRequest;
|
const request : ICefRequest;
|
||||||
is_navigation : boolean;
|
is_navigation : boolean;
|
||||||
@ -3786,8 +3831,13 @@ procedure TFMXChromium.doGetResourceRequestHandler(const browser
|
|||||||
var disable_default_handling : boolean;
|
var disable_default_handling : boolean;
|
||||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
begin
|
begin
|
||||||
disable_default_handling := False;
|
if (FResourceRequestHandler <> nil) then
|
||||||
aResourceRequestHandler := nil;
|
aResourceRequestHandler := FResourceRequestHandler;
|
||||||
|
|
||||||
|
if Assigned(FOnGetResourceRequestHandler_ReqCtxHdlr) then
|
||||||
|
FOnGetResourceRequestHandler_ReqCtxHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||||
|
request_initiator, disable_default_handling,
|
||||||
|
aResourceRequestHandler);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doOnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
|
procedure TFMXChromium.doOnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
|
||||||
@ -3956,20 +4006,22 @@ begin
|
|||||||
FOnOpenUrlFromTab(Self, browser, frame, targetUrl, targetDisposition, userGesture, Result);
|
FOnOpenUrlFromTab(Self, browser, frame, targetUrl, targetDisposition, userGesture, Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doOnGetResourceRequestHandler(const browser : ICefBrowser;
|
procedure TFMXChromium.doGetResourceRequestHandler_ReqHdlr(const browser : ICefBrowser;
|
||||||
const frame : ICefFrame;
|
const frame : ICefFrame;
|
||||||
const request : ICefRequest;
|
const request : ICefRequest;
|
||||||
is_navigation : boolean;
|
is_navigation : boolean;
|
||||||
is_download : boolean;
|
is_download : boolean;
|
||||||
const request_initiator : ustring;
|
const request_initiator : ustring;
|
||||||
var disable_default_handling : boolean;
|
var disable_default_handling : boolean;
|
||||||
var aResourceRequestHandler : ICefResourceRequestHandler;
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
var aUseInternalHandler : boolean);
|
|
||||||
begin
|
begin
|
||||||
if Assigned(FOnGetResourceRequestHandler) then
|
if (FResourceRequestHandler <> nil) then
|
||||||
FOnGetResourceRequestHandler(self, browser, frame, request, is_navigation, is_download,
|
aResourceRequestHandler := FResourceRequestHandler;
|
||||||
|
|
||||||
|
if Assigned(FOnGetResourceRequestHandler_ReqHdlr) then
|
||||||
|
FOnGetResourceRequestHandler_ReqHdlr(self, browser, frame, request, is_navigation, is_download,
|
||||||
request_initiator, disable_default_handling,
|
request_initiator, disable_default_handling,
|
||||||
aResourceRequestHandler, aUseInternalHandler);
|
aResourceRequestHandler);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFMXChromium.doOnPaint(const browser : ICefBrowser;
|
procedure TFMXChromium.doOnPaint(const browser : ICefBrowser;
|
||||||
|
@ -324,7 +324,7 @@ type
|
|||||||
// ICefRequestHandler
|
// ICefRequestHandler
|
||||||
function doOnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean;
|
function doOnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean;
|
||||||
function doOnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean;
|
function doOnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean;
|
||||||
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);
|
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);
|
||||||
function doOnGetAuthCredentials(const browser: ICefBrowser; const originUrl: ustring; isProxy: Boolean; const host: ustring; port: Integer; const realm, scheme: ustring; const callback: ICefAuthCallback): Boolean;
|
function doOnGetAuthCredentials(const browser: ICefBrowser; const originUrl: ustring; isProxy: Boolean; const host: ustring; port: Integer; const realm, scheme: ustring; const callback: ICefAuthCallback): Boolean;
|
||||||
function doOnQuotaRequest(const browser: ICefBrowser; const originUrl: ustring; newSize: Int64; const callback: ICefRequestCallback): Boolean;
|
function doOnQuotaRequest(const browser: ICefBrowser; const originUrl: ustring; newSize: Int64; const callback: ICefRequestCallback): Boolean;
|
||||||
function doOnCertificateError(const browser: ICefBrowser; certError: TCefErrorcode; const requestUrl: ustring; const sslInfo: ICefSslInfo; const callback: ICefRequestCallback): Boolean;
|
function doOnCertificateError(const browser: ICefBrowser; certError: TCefErrorcode; const requestUrl: ustring; const sslInfo: ICefSslInfo; const callback: ICefRequestCallback): Boolean;
|
||||||
@ -377,7 +377,7 @@ type
|
|||||||
// ICefRequestContextHandler
|
// ICefRequestContextHandler
|
||||||
procedure doOnRequestContextInitialized(const request_context: ICefRequestContext);
|
procedure doOnRequestContextInitialized(const request_context: ICefRequestContext);
|
||||||
function doOnBeforePluginLoad(const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; var pluginPolicy: TCefPluginPolicy): Boolean;
|
function doOnBeforePluginLoad(const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; var pluginPolicy: TCefPluginPolicy): Boolean;
|
||||||
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);
|
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);
|
||||||
|
|
||||||
// Custom
|
// Custom
|
||||||
procedure doCookiesDeleted(numDeleted : integer);
|
procedure doCookiesDeleted(numDeleted : integer);
|
||||||
@ -395,6 +395,7 @@ type
|
|||||||
procedure doAllConnectionsClosed;
|
procedure doAllConnectionsClosed;
|
||||||
procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal);
|
procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal);
|
||||||
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);
|
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);
|
||||||
|
procedure doOnCookieVisitorDestroyed(aID : integer);
|
||||||
procedure doOnCookieSet(aSuccess : boolean; aID : integer);
|
procedure doOnCookieSet(aSuccess : boolean; aID : integer);
|
||||||
function MustCreateLoadHandler : boolean;
|
function MustCreateLoadHandler : boolean;
|
||||||
function MustCreateFocusHandler : boolean;
|
function MustCreateFocusHandler : boolean;
|
||||||
|
@ -353,7 +353,7 @@ procedure TCustomRequestContextHandler.GetResourceRequestHandler(const browser
|
|||||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
begin
|
begin
|
||||||
if (FEvents <> nil) then
|
if (FEvents <> nil) then
|
||||||
IChromiumEvents(FEvents).doGetResourceRequestHandler(browser,
|
IChromiumEvents(FEvents).doGetResourceRequestHandler_ReqCtxHdlr(browser,
|
||||||
frame,
|
frame,
|
||||||
request,
|
request,
|
||||||
is_navigation,
|
is_navigation,
|
||||||
|
@ -74,7 +74,6 @@ type
|
|||||||
TCustomRequestHandler = class(TCefRequestHandlerOwn)
|
TCustomRequestHandler = class(TCefRequestHandlerOwn)
|
||||||
protected
|
protected
|
||||||
FEvents : Pointer;
|
FEvents : Pointer;
|
||||||
FResourceRequestHandler : ICefResourceRequestHandler;
|
|
||||||
|
|
||||||
function OnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean; override;
|
function OnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean): Boolean; override;
|
||||||
function OnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean; override;
|
function OnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean; override;
|
||||||
@ -87,8 +86,6 @@ type
|
|||||||
procedure OnRenderViewReady(const browser: ICefBrowser); override;
|
procedure OnRenderViewReady(const browser: ICefBrowser); override;
|
||||||
procedure OnRenderProcessTerminated(const browser: ICefBrowser; status: TCefTerminationStatus); override;
|
procedure OnRenderProcessTerminated(const browser: ICefBrowser; status: TCefTerminationStatus); override;
|
||||||
|
|
||||||
procedure InitializeVars;
|
|
||||||
|
|
||||||
public
|
public
|
||||||
constructor Create(const events : IChromiumEvents); reintroduce; virtual;
|
constructor Create(const events : IChromiumEvents); reintroduce; virtual;
|
||||||
procedure BeforeDestruction; override;
|
procedure BeforeDestruction; override;
|
||||||
@ -105,7 +102,7 @@ uses
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser, uCEFFrame, uCEFRequest, uCEFRequestCallback,
|
uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser, uCEFFrame, uCEFRequest, uCEFRequestCallback,
|
||||||
uCEFResponse, uCEFAuthCallback, uCEFSslInfo, uCEFSelectClientCertificateCallback, uCEFX509Certificate,
|
uCEFResponse, uCEFAuthCallback, uCEFSslInfo, uCEFSelectClientCertificateCallback, uCEFX509Certificate,
|
||||||
uCEFApplication, uCEFResourceRequestHandler;
|
uCEFApplication;
|
||||||
|
|
||||||
function cef_request_handler_on_before_browse(self : PCefRequestHandler;
|
function cef_request_handler_on_before_browse(self : PCefRequestHandler;
|
||||||
browser : PCefBrowser;
|
browser : PCefBrowser;
|
||||||
@ -461,17 +458,12 @@ constructor TCustomRequestHandler.Create(const events : IChromiumEvents);
|
|||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
|
|
||||||
InitializeVars;
|
|
||||||
|
|
||||||
FEvents := Pointer(events);
|
FEvents := Pointer(events);
|
||||||
|
|
||||||
if (events <> nil) and events.MustCreateResourceRequestHandler then
|
|
||||||
FResourceRequestHandler := TCustomResourceRequestHandler.Create(events);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomRequestHandler.BeforeDestruction;
|
procedure TCustomRequestHandler.BeforeDestruction;
|
||||||
begin
|
begin
|
||||||
InitializeVars;
|
FEvents := nil;
|
||||||
|
|
||||||
inherited BeforeDestruction;
|
inherited BeforeDestruction;
|
||||||
end;
|
end;
|
||||||
@ -479,14 +471,6 @@ end;
|
|||||||
procedure TCustomRequestHandler.RemoveReferences;
|
procedure TCustomRequestHandler.RemoveReferences;
|
||||||
begin
|
begin
|
||||||
FEvents := nil;
|
FEvents := nil;
|
||||||
|
|
||||||
if (FResourceRequestHandler <> nil) then FResourceRequestHandler.RemoveReferences;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCustomRequestHandler.InitializeVars;
|
|
||||||
begin
|
|
||||||
FResourceRequestHandler := nil;
|
|
||||||
FEvents := nil;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCustomRequestHandler.GetAuthCredentials(const browser : ICefBrowser;
|
function TCustomRequestHandler.GetAuthCredentials(const browser : ICefBrowser;
|
||||||
@ -548,31 +532,22 @@ procedure TCustomRequestHandler.GetResourceRequestHandler(const browser
|
|||||||
const request_initiator : ustring;
|
const request_initiator : ustring;
|
||||||
var disable_default_handling : boolean;
|
var disable_default_handling : boolean;
|
||||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||||
var
|
|
||||||
TempUseInternalHandler : boolean;
|
|
||||||
begin
|
begin
|
||||||
if (FEvents <> nil) then
|
if (FEvents <> nil) then
|
||||||
begin
|
IChromiumEvents(FEvents).doGetResourceRequestHandler_ReqHdlr(browser,
|
||||||
TempUseInternalHandler := True;
|
frame,
|
||||||
|
request,
|
||||||
IChromiumEvents(FEvents).doOnGetResourceRequestHandler(browser, frame, request,
|
is_navigation,
|
||||||
is_navigation, is_download,
|
is_download,
|
||||||
request_initiator,
|
request_initiator,
|
||||||
disable_default_handling,
|
disable_default_handling,
|
||||||
aResourceRequestHandler,
|
aResourceRequestHandler)
|
||||||
TempUseInternalHandler);
|
|
||||||
|
|
||||||
if TempUseInternalHandler then
|
|
||||||
begin
|
|
||||||
if (FResourceRequestHandler <> nil) then
|
|
||||||
aResourceRequestHandler := FResourceRequestHandler
|
|
||||||
else
|
else
|
||||||
aResourceRequestHandler := nil;
|
inherited GetResourceRequestHandler(browser,
|
||||||
end;
|
frame,
|
||||||
end
|
request,
|
||||||
else
|
is_navigation,
|
||||||
inherited GetResourceRequestHandler(browser, frame, request,
|
is_download,
|
||||||
is_navigation, is_download,
|
|
||||||
request_initiator,
|
request_initiator,
|
||||||
disable_default_handling,
|
disable_default_handling,
|
||||||
aResourceRequestHandler);
|
aResourceRequestHandler);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"UpdateLazPackages" : [
|
"UpdateLazPackages" : [
|
||||||
{
|
{
|
||||||
"ForceNotify" : true,
|
"ForceNotify" : true,
|
||||||
"InternalVersion" : 56,
|
"InternalVersion" : 57,
|
||||||
"Name" : "cef4delphi_lazarus.lpk",
|
"Name" : "cef4delphi_lazarus.lpk",
|
||||||
"Version" : "78.3.1.0"
|
"Version" : "78.3.1.0"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user