1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-11-23 21:34:53 +02:00

Update to CEF 3.2987.1594.g92fba9c

Bug fix for memory leak in TChromium.Internal_SavePreferences
This commit is contained in:
Salvador Diaz Fau
2017-03-16 19:09:42 +01:00
parent e722d8ea49
commit 68769fdda2
126 changed files with 1158 additions and 969 deletions

View File

@@ -47,12 +47,12 @@ unit uCEFSchemeHandlerFactory;
interface
uses
uCEFBase, uCEFInterfaces, uCEFTypes, uCEFResourceHandler;
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFResourceHandler;
type
TCefSchemeHandlerFactoryOwn = class(TCefBaseOwn, ICefSchemeHandlerFactory)
TCefSchemeHandlerFactoryOwn = class(TCefBaseRefCountedOwn, ICefSchemeHandlerFactory)
protected
FClass: TCefResourceHandlerClass;
FClass : TCefResourceHandlerClass;
function New(const browser: ICefBrowser; const frame: ICefFrame; const schemeName: ustring; const request: ICefRequest): ICefResourceHandler; virtual;
@@ -65,28 +65,33 @@ implementation
uses
uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser, uCEFFrame, uCEFRequest;
function cef_scheme_handler_factory_create(self: PCefSchemeHandlerFactory;
browser: PCefBrowser; frame: PCefFrame; const scheme_name: PCefString;
request: PCefRequest): PCefResourceHandler; stdcall;
function cef_scheme_handler_factory_create( self : PCefSchemeHandlerFactory;
browser : PCefBrowser;
frame : PCefFrame;
const scheme_name : PCefString;
request : PCefRequest): PCefResourceHandler; stdcall;
begin
with TCefSchemeHandlerFactoryOwn(CefGetObject(self)) do
Result := CefGetData(New(TCefBrowserRef.UnWrap(browser), TCefFrameRef.UnWrap(frame),
CefString(scheme_name), TCefRequestRef.UnWrap(request)));
Result := CefGetData(New(TCefBrowserRef.UnWrap(browser),
TCefFrameRef.UnWrap(frame),
CefString(scheme_name),
TCefRequestRef.UnWrap(request)));
end;
constructor TCefSchemeHandlerFactoryOwn.Create(
const AClass: TCefResourceHandlerClass);
constructor TCefSchemeHandlerFactoryOwn.Create(const AClass: TCefResourceHandlerClass);
begin
inherited CreateData(SizeOf(TCefSchemeHandlerFactory));
FClass := AClass;
with PCefSchemeHandlerFactory(FData)^ do
create := cef_scheme_handler_factory_create;
end;
function TCefSchemeHandlerFactoryOwn.New(const browser: ICefBrowser;
const frame: ICefFrame; const schemeName: ustring;
const request: ICefRequest): ICefResourceHandler;
function TCefSchemeHandlerFactoryOwn.New(const browser : ICefBrowser;
const frame : ICefFrame;
const schemeName : ustring;
const request : ICefRequest): ICefResourceHandler;
begin
Result := FClass.Create(browser, frame, schemeName, request);
end;