mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-02-02 10:25:26 +02:00
Update to CEF 90.6.4
Added try..except blocks to TCustomRequestContextHandler and TCustomResourceRequestHandler events.
This commit is contained in:
parent
d24eec2794
commit
ff05abbe1b
16
README.md
16
README.md
@ -3,15 +3,15 @@ CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chro
|
||||
|
||||
CEF4Delphi is based on DCEF3 and fpCEF3. The original license of those projects still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
|
||||
|
||||
CEF4Delphi uses CEF 90.6.3 which includes Chromium 90.0.4430.93.
|
||||
CEF4Delphi uses CEF 90.6.4 which includes Chromium 90.0.4430.93.
|
||||
The CEF binaries used by CEF4Delphi are available for download at spotify :
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.3%2Bgc53c523%2Bchromium-90.0.4430.93_macosx64.tar.bz2)
|
||||
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_windows32.tar.bz2)
|
||||
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_windows64.tar.bz2)
|
||||
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_linux32.tar.bz2)
|
||||
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_linux64.tar.bz2)
|
||||
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_linuxarm.tar.bz2)
|
||||
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_linuxarm64.tar.bz2)
|
||||
* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_90.6.4%2Bgf03d75a%2Bchromium-90.0.4430.93_macosx64.tar.bz2)
|
||||
|
||||
CEF4Delphi was developed and tested on Delphi 10.4.2 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3 and Lazarus 2.0.12/FPC 3.2.0. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
</CompilerOptions>
|
||||
<Description Value="CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC."/>
|
||||
<License Value="MPL 1.1"/>
|
||||
<Version Major="90" Minor="6" Release="3"/>
|
||||
<Version Major="90" Minor="6" Release="4"/>
|
||||
<Files Count="201">
|
||||
<Item1>
|
||||
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
|
||||
|
@ -66,7 +66,7 @@ uses
|
||||
const
|
||||
CEF_SUPPORTED_VERSION_MAJOR = 90;
|
||||
CEF_SUPPORTED_VERSION_MINOR = 6;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 3;
|
||||
CEF_SUPPORTED_VERSION_RELEASE = 4;
|
||||
CEF_SUPPORTED_VERSION_BUILD = 0;
|
||||
|
||||
CEF_CHROMEELF_VERSION_MAJOR = 90;
|
||||
|
@ -36,8 +36,8 @@
|
||||
*)
|
||||
|
||||
unit uCEFRequestContextHandler;
|
||||
|
||||
{$IFDEF FPC}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$MODE OBJFPC}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
@ -49,6 +49,11 @@ unit uCEFRequestContextHandler;
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF DELPHI16_UP}
|
||||
System.SysUtils,
|
||||
{$ELSE}
|
||||
SysUtils,
|
||||
{$ENDIF}
|
||||
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
|
||||
|
||||
type
|
||||
@ -103,10 +108,10 @@ procedure cef_request_context_handler_on_request_context_initialized(self
|
||||
var
|
||||
TempObject : TObject;
|
||||
begin
|
||||
TempObject := CefGetObject(self);
|
||||
|
||||
TempObject := CefGetObject(self);
|
||||
|
||||
if (TempObject <> nil) and (TempObject is TCefRequestContextHandlerOwn) then
|
||||
TCefRequestContextHandlerOwn(TempObject).OnRequestContextInitialized(TCefRequestContextRef.UnWrap(request_context));
|
||||
TCefRequestContextHandlerOwn(TempObject).OnRequestContextInitialized(TCefRequestContextRef.UnWrap(request_context));
|
||||
end;
|
||||
|
||||
function cef_request_context_handler_on_before_plugin_load( self : PCefRequestContextHandler;
|
||||
@ -121,9 +126,9 @@ var
|
||||
TempPolicy : TCefPluginPolicy;
|
||||
begin
|
||||
Result := Ord(False);
|
||||
TempObject := CefGetObject(self);
|
||||
TempPolicy := plugin_policy^;
|
||||
|
||||
TempObject := CefGetObject(self);
|
||||
TempPolicy := plugin_policy^;
|
||||
|
||||
if (TempObject <> nil) and (TempObject is TCefRequestContextHandlerOwn) then
|
||||
Result := Ord(TCefRequestContextHandlerOwn(TempObject).OnBeforePluginLoad(CefString(mime_type),
|
||||
CefString(plugin_url),
|
||||
@ -149,9 +154,9 @@ var
|
||||
begin
|
||||
Result := nil;
|
||||
TempResourceRequestHandler := nil;
|
||||
TempObject := CefGetObject(self);
|
||||
TempDisableDefHandling := disable_default_handling^ <> 0;
|
||||
|
||||
TempObject := CefGetObject(self);
|
||||
TempDisableDefHandling := disable_default_handling^ <> 0;
|
||||
|
||||
if (TempObject <> nil) and (TempObject is TCefRequestContextHandlerOwn) then
|
||||
try
|
||||
TCefRequestContextHandlerOwn(TempObject).GetResourceRequestHandler(TCefBrowserRef.UnWrap(browser),
|
||||
@ -184,7 +189,7 @@ end;
|
||||
|
||||
procedure TCefRequestContextHandlerOwn.OnRequestContextInitialized(const request_context: ICefRequestContext);
|
||||
begin
|
||||
//
|
||||
//
|
||||
end;
|
||||
|
||||
function TCefRequestContextHandlerOwn.OnBeforePluginLoad(const mimeType : ustring;
|
||||
@ -206,12 +211,12 @@ procedure TCefRequestContextHandlerOwn.GetResourceRequestHandler(const browser
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||
begin
|
||||
aResourceRequestHandler := nil;
|
||||
aResourceRequestHandler := nil;
|
||||
end;
|
||||
|
||||
procedure TCefRequestContextHandlerOwn.RemoveReferences;
|
||||
begin
|
||||
//
|
||||
//
|
||||
end;
|
||||
|
||||
|
||||
@ -219,7 +224,8 @@ end;
|
||||
|
||||
procedure TCefRequestContextHandlerRef.OnRequestContextInitialized(const request_context: ICefRequestContext);
|
||||
begin
|
||||
PCefRequestContextHandler(FData)^.on_request_context_initialized(PCefRequestContextHandler(FData), CefGetData(request_context));
|
||||
|
||||
PCefRequestContextHandler(FData)^.on_request_context_initialized(PCefRequestContextHandler(FData), CefGetData(request_context));
|
||||
end;
|
||||
|
||||
function TCefRequestContextHandlerRef.OnBeforePluginLoad(const mimeType : ustring;
|
||||
@ -259,27 +265,28 @@ var
|
||||
TempResourceRequestHandler : PCefResourceRequestHandler;
|
||||
begin
|
||||
TempRequestInitiator := CefString(request_initiator);
|
||||
TempDisableDefaultHandling := ord(disable_default_handling);
|
||||
TempResourceRequestHandler := PCefRequestContextHandler(FData)^.get_resource_request_handler(PCefRequestContextHandler(FData),
|
||||
CefGetData(browser),
|
||||
CefGetData(frame),
|
||||
CefGetData(request),
|
||||
ord(is_navigation),
|
||||
ord(is_download),
|
||||
@TempRequestInitiator,
|
||||
TempDisableDefaultHandling := ord(disable_default_handling);
|
||||
TempResourceRequestHandler := PCefRequestContextHandler(FData)^.get_resource_request_handler(PCefRequestContextHandler(FData),
|
||||
|
||||
CefGetData(browser),
|
||||
CefGetData(frame),
|
||||
CefGetData(request),
|
||||
ord(is_navigation),
|
||||
ord(is_download),
|
||||
@TempRequestInitiator,
|
||||
@TempDisableDefaultHandling);
|
||||
|
||||
disable_default_handling := TempDisableDefaultHandling <> 0;
|
||||
|
||||
if (TempResourceRequestHandler <> nil) then
|
||||
aResourceRequestHandler := TCefResourceRequestHandlerRef.UnWrap(TempResourceRequestHandler)
|
||||
|
||||
disable_default_handling := TempDisableDefaultHandling <> 0;
|
||||
|
||||
if (TempResourceRequestHandler <> nil) then
|
||||
aResourceRequestHandler := TCefResourceRequestHandlerRef.UnWrap(TempResourceRequestHandler)
|
||||
else
|
||||
aResourceRequestHandler := nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCefRequestContextHandlerRef.RemoveReferences;
|
||||
begin
|
||||
//
|
||||
//
|
||||
end;
|
||||
|
||||
class function TCefRequestContextHandlerRef.UnWrap(data: Pointer): ICefRequestContextHandler;
|
||||
@ -314,10 +321,13 @@ end;
|
||||
|
||||
procedure TCustomRequestContextHandler.OnRequestContextInitialized(const request_context: ICefRequestContext);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnRequestContextInitialized(request_context)
|
||||
else
|
||||
inherited OnRequestContextInitialized(request_context);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnRequestContextInitialized(request_context);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomRequestContextHandler.OnRequestContextInitialized', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomRequestContextHandler.OnBeforePluginLoad(const mimeType : ustring;
|
||||
@ -327,20 +337,20 @@ function TCustomRequestContextHandler.OnBeforePluginLoad(const mimeType : us
|
||||
const pluginInfo : ICefWebPluginInfo;
|
||||
var pluginPolicy : TCefPluginPolicy): Boolean;
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnBeforePluginLoad(mimeType,
|
||||
pluginUrl,
|
||||
isMainFrame,
|
||||
topOriginUrl,
|
||||
pluginInfo,
|
||||
pluginPolicy)
|
||||
else
|
||||
Result := inherited OnBeforePluginLoad(mimeType,
|
||||
pluginUrl,
|
||||
isMainFrame,
|
||||
topOriginUrl,
|
||||
pluginInfo,
|
||||
pluginPolicy);
|
||||
Result := False;
|
||||
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnBeforePluginLoad(mimeType,
|
||||
pluginUrl,
|
||||
isMainFrame,
|
||||
topOriginUrl,
|
||||
pluginInfo,
|
||||
pluginPolicy);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomRequestContextHandler.OnBeforePluginLoad', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomRequestContextHandler.GetResourceRequestHandler(const browser : ICefBrowser;
|
||||
@ -352,24 +362,20 @@ procedure TCustomRequestContextHandler.GetResourceRequestHandler(const browser
|
||||
var disable_default_handling : boolean;
|
||||
var aResourceRequestHandler : ICefResourceRequestHandler);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doGetResourceRequestHandler_ReqCtxHdlr(browser,
|
||||
frame,
|
||||
request,
|
||||
is_navigation,
|
||||
is_download,
|
||||
request_initiator,
|
||||
disable_default_handling,
|
||||
aResourceRequestHandler)
|
||||
else
|
||||
inherited GetResourceRequestHandler(browser,
|
||||
frame,
|
||||
request,
|
||||
is_navigation,
|
||||
is_download,
|
||||
request_initiator,
|
||||
disable_default_handling,
|
||||
aResourceRequestHandler);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doGetResourceRequestHandler_ReqCtxHdlr(browser,
|
||||
frame,
|
||||
request,
|
||||
is_navigation,
|
||||
is_download,
|
||||
request_initiator,
|
||||
disable_default_handling,
|
||||
aResourceRequestHandler);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomRequestContextHandler.GetResourceRequestHandler', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
@ -558,7 +558,8 @@ procedure TCustomResourceRequestHandler.RemoveReferences;
|
||||
begin
|
||||
FEvents := nil;
|
||||
|
||||
if (FCookieAccessFilter <> nil) then FCookieAccessFilter.RemoveReferences;
|
||||
if (FCookieAccessFilter <> nil) then
|
||||
FCookieAccessFilter.RemoveReferences;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.InitializeVars;
|
||||
@ -583,10 +584,15 @@ function TCustomResourceRequestHandler.OnBeforeResourceLoad(const browser : ICe
|
||||
const request : ICefRequest;
|
||||
const callback : ICefRequestCallback): TCefReturnValue;
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnBeforeResourceLoad(browser, frame, request, callback)
|
||||
else
|
||||
Result := inherited OnBeforeResourceLoad(browser, frame, request, callback);
|
||||
Result := RV_CONTINUE;
|
||||
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnBeforeResourceLoad(browser, frame, request, callback);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.OnBeforeResourceLoad', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.GetResourceHandler(const browser : ICefBrowser;
|
||||
@ -594,10 +600,13 @@ procedure TCustomResourceRequestHandler.GetResourceHandler(const browser
|
||||
const request : ICefRequest;
|
||||
var aResourceHandler : ICefResourceHandler);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnGetResourceHandler(browser, frame, request, aResourceHandler)
|
||||
else
|
||||
inherited GetResourceHandler(browser, frame, request, aResourceHandler);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnGetResourceHandler(browser, frame, request, aResourceHandler);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.GetResourceHandler', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.OnResourceRedirect(const browser : ICefBrowser;
|
||||
@ -606,8 +615,13 @@ procedure TCustomResourceRequestHandler.OnResourceRedirect(const browser : ICef
|
||||
const response : ICefResponse;
|
||||
var newUrl : ustring);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnResourceRedirect(browser, frame, request, response, newUrl);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnResourceRedirect(browser, frame, request, response, newUrl);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.OnResourceRedirect', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomResourceRequestHandler.OnResourceResponse(const browser : ICefBrowser;
|
||||
@ -615,10 +629,15 @@ function TCustomResourceRequestHandler.OnResourceResponse(const browser : ICefB
|
||||
const request : ICefRequest;
|
||||
const response : ICefResponse): Boolean;
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnResourceResponse(browser, frame, request, response)
|
||||
else
|
||||
Result := inherited OnResourceResponse(browser, frame, request, response);
|
||||
Result := False;
|
||||
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
Result := IChromiumEvents(FEvents).doOnResourceResponse(browser, frame, request, response);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.OnResourceResponse', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.GetResourceResponseFilter(const browser : ICefBrowser;
|
||||
@ -627,10 +646,13 @@ procedure TCustomResourceRequestHandler.GetResourceResponseFilter(const browser
|
||||
const response : ICefResponse;
|
||||
var aResponseFilter : ICefResponseFilter);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnGetResourceResponseFilter(browser, frame, request, response, aResponseFilter)
|
||||
else
|
||||
inherited GetResourceResponseFilter(browser, frame, request, response, aResponseFilter);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnGetResourceResponseFilter(browser, frame, request, response, aResponseFilter);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.GetResourceResponseFilter', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.OnResourceLoadComplete(const browser : ICefBrowser;
|
||||
@ -640,8 +662,13 @@ procedure TCustomResourceRequestHandler.OnResourceLoadComplete(const browser
|
||||
status : TCefUrlRequestStatus;
|
||||
receivedContentLength : Int64);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnResourceLoadComplete(browser, frame, request, response, status, receivedContentLength);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnResourceLoadComplete(browser, frame, request, response, status, receivedContentLength);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.OnResourceLoadComplete', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomResourceRequestHandler.OnProtocolExecution(const browser : ICefBrowser;
|
||||
@ -649,10 +676,13 @@ procedure TCustomResourceRequestHandler.OnProtocolExecution(const browser
|
||||
const request : ICefRequest;
|
||||
var allowOsExecution : Boolean);
|
||||
begin
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnProtocolExecution(browser, frame, request, allowOsExecution);
|
||||
try
|
||||
if (FEvents <> nil) then
|
||||
IChromiumEvents(FEvents).doOnProtocolExecution(browser, frame, request, allowOsExecution);
|
||||
except
|
||||
on e : exception do
|
||||
if CustomExceptionHandler('TCustomResourceRequestHandler.OnProtocolExecution', e) then raise;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
end.
|
||||
|
@ -2,9 +2,9 @@
|
||||
"UpdateLazPackages" : [
|
||||
{
|
||||
"ForceNotify" : true,
|
||||
"InternalVersion" : 286,
|
||||
"InternalVersion" : 287,
|
||||
"Name" : "cef4delphi_lazarus.lpk",
|
||||
"Version" : "90.6.3.0"
|
||||
"Version" : "90.6.4.0"
|
||||
}
|
||||
],
|
||||
"UpdatePackageData" : {
|
||||
|
Loading…
x
Reference in New Issue
Block a user