diff --git a/README.md b/README.md
index 5f9b8ba6..d14e05cf 100644
--- a/README.md
+++ b/README.md
@@ -3,10 +3,10 @@ CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chro
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
-CEF4Delphi uses CEF 86.0.24 which includes Chromium 86.0.4240.198.
+CEF4Delphi uses CEF 87.1.6 which includes Chromium 87.0.4280.66.
The CEF binaries used by CEF4Delphi are available for download at spotify :
-* [32 bits](https://cef-builds.spotifycdn.com/cef_binary_86.0.24%2Bg85e79d4%2Bchromium-86.0.4240.198_windows32.tar.bz2)
-* [64 bits](https://cef-builds.spotifycdn.com/cef_binary_86.0.24%2Bg85e79d4%2Bchromium-86.0.4240.198_windows64.tar.bz2)
+* [32 bits](https://cef-builds.spotifycdn.com/cef_binary_87.1.6%2Bg315d248%2Bchromium-87.0.4280.66_windows32.tar.bz2)
+* [64 bits](https://cef-builds.spotifycdn.com/cef_binary_87.1.6%2Bg315d248%2Bchromium-87.0.4280.66_windows64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 10.4.1 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3 and Lazarus 2.0.10/FPC 3.2.0. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk
index 7783ec23..ff8fda5b 100644
--- a/packages/cef4delphi_lazarus.lpk
+++ b/packages/cef4delphi_lazarus.lpk
@@ -21,7 +21,7 @@
-
+
diff --git a/source/uCEFApplicationCore.pas b/source/uCEFApplicationCore.pas
index 73945487..d7f8b100 100644
--- a/source/uCEFApplicationCore.pas
+++ b/source/uCEFApplicationCore.pas
@@ -57,15 +57,15 @@ uses
uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar;
const
- CEF_SUPPORTED_VERSION_MAJOR = 86;
- CEF_SUPPORTED_VERSION_MINOR = 0;
- CEF_SUPPORTED_VERSION_RELEASE = 24;
+ CEF_SUPPORTED_VERSION_MAJOR = 87;
+ CEF_SUPPORTED_VERSION_MINOR = 1;
+ CEF_SUPPORTED_VERSION_RELEASE = 6;
CEF_SUPPORTED_VERSION_BUILD = 0;
- CEF_CHROMEELF_VERSION_MAJOR = 86;
+ CEF_CHROMEELF_VERSION_MAJOR = 87;
CEF_CHROMEELF_VERSION_MINOR = 0;
- CEF_CHROMEELF_VERSION_RELEASE = 4240;
- CEF_CHROMEELF_VERSION_BUILD = 198;
+ CEF_CHROMEELF_VERSION_RELEASE = 4280;
+ CEF_CHROMEELF_VERSION_BUILD = 66;
{$IFDEF MSWINDOWS}
LIBCEF_DLL = 'libcef.dll';
@@ -197,9 +197,11 @@ type
FMustCreateLoadHandler : boolean;
// ICefBrowserProcessHandler
+ FOnGetCookieableSchemes : TOnGetCookieableSchemesEvent;
FOnContextInitialized : TOnContextInitializedEvent;
FOnBeforeChildProcessLaunch : TOnBeforeChildProcessLaunchEvent;
FOnScheduleMessagePumpWork : TOnScheduleMessagePumpWorkEvent;
+ FOnGetDefaultClient : TOnGetDefaultClientEvent;
// ICefResourceBundleHandler
FOnGetLocalizedString : TOnGetLocalizedStringEvent;
@@ -362,6 +364,8 @@ type
procedure Internal_OnLoadStart(const browser: ICefBrowser; const frame: ICefFrame; transitionType: TCefTransitionType);
procedure Internal_OnLoadEnd(const browser: ICefBrowser; const frame: ICefFrame; httpStatusCode: Integer);
procedure Internal_OnLoadError(const browser: ICefBrowser; const frame: ICefFrame; errorCode: Integer; const errorText, failedUrl: ustring);
+ procedure Internal_GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean);
+ procedure Internal_GetDefaultClient(var aClient : ICefClient);
// Properties used to populate TCefSettings (cef_settings_t)
property NoSandbox : Boolean read FNoSandbox write FNoSandbox;
@@ -493,9 +497,11 @@ type
property OnRegCustomSchemes : TOnRegisterCustomSchemesEvent read FOnRegisterCustomSchemes write FOnRegisterCustomSchemes;
// ICefBrowserProcessHandler
+ property OnGetCookieableSchemes : TOnGetCookieableSchemesEvent read FOnGetCookieableSchemes write FOnGetCookieableSchemes;
property OnContextInitialized : TOnContextInitializedEvent read FOnContextInitialized write FOnContextInitialized;
property OnBeforeChildProcessLaunch : TOnBeforeChildProcessLaunchEvent read FOnBeforeChildProcessLaunch write FOnBeforeChildProcessLaunch;
property OnScheduleMessagePumpWork : TOnScheduleMessagePumpWorkEvent read FOnScheduleMessagePumpWork write FOnScheduleMessagePumpWork;
+ property OnGetDefaultClient : TOnGetDefaultClientEvent read FOnGetDefaultClient write FOnGetDefaultClient;
// ICefResourceBundleHandler
property OnGetLocalizedString : TOnGetLocalizedStringEvent read FOnGetLocalizedString write FOnGetLocalizedString;
@@ -704,9 +710,11 @@ begin
FMustCreateLoadHandler := False;
// ICefBrowserProcessHandler
+ FOnGetCookieableSchemes := nil;
FOnContextInitialized := nil;
FOnBeforeChildProcessLaunch := nil;
FOnScheduleMessagePumpWork := nil;
+ FOnGetDefaultClient := nil;
// ICefResourceBundleHandler
FOnGetLocalizedString := nil;
@@ -1628,6 +1636,18 @@ begin
FOnLoadError(browser, frame, errorCode, errorText, failedUrl);
end;
+procedure TCefApplicationCore.Internal_GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean);
+begin
+ if assigned(FOnGetCookieableSchemes) then
+ FOnGetCookieableSchemes(schemes, include_defaults);
+end;
+
+procedure TCefApplicationCore.Internal_GetDefaultClient(var aClient : ICefClient);
+begin
+ if assigned(FOnGetDefaultClient) then
+ FOnGetDefaultClient(aClient);
+end;
+
procedure TCefApplicationCore.AppendSwitch(var aKeys, aValues : TStringList; const aNewKey, aNewValue : ustring);
var
TempKey : ustring;
@@ -1958,9 +1978,11 @@ function TCefApplicationCore.GetMustCreateBrowserProcessHandler : boolean;
begin
Result := ((FSingleProcess or (FProcessType = ptBrowser)) and
(FMustCreateBrowserProcessHandler or
+ assigned(FOnGetCookieableSchemes) or
assigned(FOnContextInitialized) or
assigned(FOnBeforeChildProcessLaunch) or
- assigned(FOnScheduleMessagePumpWork)));
+ assigned(FOnScheduleMessagePumpWork)) or
+ assigned(FOnGetDefaultClient));
end;
function TCefApplicationCore.GetMustCreateRenderProcessHandler : boolean;
diff --git a/source/uCEFBrowser.pas b/source/uCEFBrowser.pas
index 8f259cf0..34077f07 100644
--- a/source/uCEFBrowser.pas
+++ b/source/uCEFBrowser.pas
@@ -114,8 +114,6 @@ type
function AddDevToolsMessageObserver(const observer: ICefDevToolsMessageObserver): ICefRegistration;
procedure GetNavigationEntries(const visitor: ICefNavigationEntryVisitor; currentOnly: Boolean);
procedure GetNavigationEntriesProc(const proc: TCefNavigationEntryVisitorProc; currentOnly: Boolean);
- procedure SetMouseCursorChangeDisabled(disabled: Boolean);
- function IsMouseCursorChangeDisabled: Boolean;
procedure ReplaceMisspelling(const word: ustring);
procedure AddWordToDictionary(const word: ustring);
function IsWindowRenderingDisabled: Boolean;
@@ -546,11 +544,6 @@ begin
PCefBrowserHost(FData)^.set_focus(PCefBrowserHost(FData), Ord(focus));
end;
-procedure TCefBrowserHostRef.SetMouseCursorChangeDisabled(disabled: Boolean);
-begin
- PCefBrowserHost(FData)^.set_mouse_cursor_change_disabled(PCefBrowserHost(FData), Ord(disabled));
-end;
-
procedure TCefBrowserHostRef.SetWindowlessFrameRate(frameRate: Integer);
begin
PCefBrowserHost(FData)^.set_windowless_frame_rate(PCefBrowserHost(FData), frameRate);
@@ -706,11 +699,6 @@ begin
PCefBrowserHost(FData)^.send_external_begin_frame(PCefBrowserHost(FData));
end;
-function TCefBrowserHostRef.IsMouseCursorChangeDisabled: Boolean;
-begin
- Result := PCefBrowserHost(FData)^.is_mouse_cursor_change_disabled(PCefBrowserHost(FData)) <> 0;
-end;
-
function TCefBrowserHostRef.IsWindowRenderingDisabled: Boolean;
begin
Result := PCefBrowserHost(FData)^.is_window_rendering_disabled(PCefBrowserHost(FData)) <> 0;
diff --git a/source/uCEFBrowserProcessHandler.pas b/source/uCEFBrowserProcessHandler.pas
index 83681af3..7051e85d 100644
--- a/source/uCEFBrowserProcessHandler.pas
+++ b/source/uCEFBrowserProcessHandler.pas
@@ -49,15 +49,22 @@ unit uCEFBrowserProcessHandler;
interface
uses
+ {$IFDEF DELPHI16_UP}
+ System.Classes,
+ {$ELSE}
+ Classes,
+ {$ENDIF}
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFApplicationCore;
type
TCefBrowserProcessHandlerOwn = class(TCefBaseRefCountedOwn, ICefBrowserProcessHandler)
protected
+ procedure GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean); virtual; abstract;
procedure OnContextInitialized; virtual; abstract;
procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); virtual; abstract;
procedure GetPrintHandler(var aHandler : ICefPrintHandler); virtual;
procedure OnScheduleMessagePumpWork(const delayMs: Int64); virtual; abstract;
+ procedure GetDefaultClient(var aClient : ICefClient); virtual;
procedure RemoveReferences; virtual; abstract;
@@ -69,9 +76,11 @@ type
protected
FCefApp : TCefApplicationCore;
+ procedure GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean); override;
procedure OnContextInitialized; override;
procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); override;
procedure OnScheduleMessagePumpWork(const delayMs: Int64); override;
+ procedure GetDefaultClient(var aClient : ICefClient); override;
procedure RemoveReferences; override;
@@ -88,7 +97,46 @@ uses
{$ELSE}
SysUtils,
{$ENDIF}
- uCEFMiscFunctions, uCEFLibFunctions, uCEFCommandLine, uCEFListValue, uCEFConstants;
+ uCEFMiscFunctions, uCEFLibFunctions, uCEFCommandLine, uCEFListValue, uCEFConstants, uCEFStringList;
+
+procedure cef_browser_process_handler_get_cookieable_schemes(self : PCefBrowserProcessHandler;
+ schemes : TCefStringList;
+ include_defaults : PInteger); stdcall;
+var
+ TempSL : TStringList;
+ TempCefSL : ICefStringList;
+ TempObject : TObject;
+ TempIncDef : boolean;
+begin
+ TempSL := nil;
+
+ try
+ try
+ TempObject := CefGetObject(self);
+
+ if (schemes <> nil) and (TempObject <> nil) and (TempObject is TCefBrowserProcessHandlerOwn) then
+ begin
+ TempIncDef := (include_defaults^ <> 0);
+ TempSL := TStringList.Create;
+ TempCefSL := TCefStringListRef.Create(schemes);
+ TempCefSL.CopyToStrings(TempSL);
+
+ TCefBrowserProcessHandlerOwn(TempObject).GetCookieableSchemes(TempSL, TempIncDef);
+
+ TempCefSL.Clear;
+ TempCefSL.AddStrings(TempSL);
+
+ include_defaults^ := ord(TempIncDef);
+ end;
+ except
+ on e : exception do
+ if CustomExceptionHandler('cef_browser_process_handler_get_cookieable_schemes', e) then raise;
+ end;
+ finally
+ if (TempSL <> nil) then FreeAndNil(TempSL);
+ TempCefSL := nil;
+ end;
+end;
procedure cef_browser_process_handler_on_context_initialized(self: PCefBrowserProcessHandler); stdcall;
var
@@ -124,6 +172,7 @@ begin
if (TempObject <> nil) and
(TempObject is TCefBrowserProcessHandlerOwn) then
try
+ TempHandler := nil;
TCefBrowserProcessHandlerOwn(TempObject).GetPrintHandler(TempHandler);
if (TempHandler <> nil) then Result := TempHandler.Wrap;
finally
@@ -143,16 +192,37 @@ begin
TCefBrowserProcessHandlerOwn(TempObject).OnScheduleMessagePumpWork(delay_ms);
end;
+function cef_browser_process_handler_get_default_client(self: PCefBrowserProcessHandler): PCefClient; stdcall;
+var
+ TempObject : TObject;
+ TempClient : ICefClient;
+begin
+ Result := nil;
+ TempObject := CefGetObject(self);
+
+ if (TempObject <> nil) and
+ (TempObject is TCefBrowserProcessHandlerOwn) then
+ try
+ TempClient := nil;
+ TCefBrowserProcessHandlerOwn(TempObject).GetDefaultClient(TempClient);
+ if (TempClient <> nil) then Result := TempClient.Wrap;
+ finally
+ TempClient := nil;
+ end;
+end;
+
constructor TCefBrowserProcessHandlerOwn.Create;
begin
inherited CreateData(SizeOf(TCefBrowserProcessHandler));
with PCefBrowserProcessHandler(FData)^ do
begin
+ get_cookieable_schemes := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_get_cookieable_schemes;
on_context_initialized := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_context_initialized;
on_before_child_process_launch := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_before_child_process_launch;
get_print_handler := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_get_print_handler;
on_schedule_message_pump_work := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_schedule_message_pump_work;
+ get_default_client := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_get_default_client;
end;
end;
@@ -161,6 +231,10 @@ begin
aHandler := nil; // only linux
end;
+procedure TCefBrowserProcessHandlerOwn.GetDefaultClient(var aClient : ICefClient);
+begin
+ aClient := nil;
+end;
// TCefCustomBrowserProcessHandler
@@ -185,6 +259,17 @@ begin
FCefApp := nil;
end;
+procedure TCefCustomBrowserProcessHandler.GetCookieableSchemes(var schemes : TStringList;
+ var include_defaults : boolean);
+begin
+ try
+ if (FCefApp <> nil) then FCefApp.Internal_GetCookieableSchemes(schemes, include_defaults);
+ except
+ on e : exception do
+ if CustomExceptionHandler('TCefCustomBrowserProcessHandler.GetCookieableSchemes', e) then raise;
+ end;
+end;
+
procedure TCefCustomBrowserProcessHandler.OnContextInitialized;
begin
try
@@ -215,4 +300,14 @@ begin
end;
end;
+procedure TCefCustomBrowserProcessHandler.GetDefaultClient(var aClient : ICefClient);
+begin
+ try
+ if (FCefApp <> nil) then FCefApp.Internal_GetDefaultClient(aClient);
+ except
+ on e : exception do
+ if CustomExceptionHandler('TCefCustomBrowserProcessHandler.GetDefaultClient', e) then raise;
+ end;
+end;
+
end.
diff --git a/source/uCEFChromiumCore.pas b/source/uCEFChromiumCore.pas
index 15123135..a2163457 100644
--- a/source/uCEFChromiumCore.pas
+++ b/source/uCEFChromiumCore.pas
@@ -190,6 +190,7 @@ type
FOnConsoleMessage : TOnConsoleMessage;
FOnAutoResize : TOnAutoResize;
FOnLoadingProgressChange : TOnLoadingProgressChange;
+ FOnCursorChange : TOnCursorChange;
// ICefDownloadHandler
FOnBeforeDownload : TOnBeforeDownload;
@@ -246,7 +247,6 @@ type
FOnPopupSize : TOnPopupSize;
FOnPaint : TOnPaint;
FOnAcceleratedPaint : TOnAcceleratedPaint;
- FOnCursorChange : TOnCursorChange;
FOnStartDragging : TOnStartDragging;
FOnUpdateDragCursor : TOnUpdateDragCursor;
FOnScrollOffsetChanged : TOnScrollOffsetChanged;
@@ -354,7 +354,6 @@ type
function GetBrowserById(aID : integer) : ICefBrowser;
function GetBrowserCount : integer;
function GetBrowserIdByIndex(aIndex : integer) : integer;
- function GetMouseCursorChangeDisabled : boolean;
procedure SetDoNotTrack(aValue : boolean);
procedure SetSendReferrer(aValue : boolean);
@@ -397,7 +396,6 @@ type
procedure SetQuicAllowed(aValue : boolean);
procedure SetJavascriptEnabled(aValue : boolean);
procedure SetLoadImagesAutomatically(aValue : boolean);
- procedure SetMouseCursorChangeDisabled(aValue : boolean);
function CreateBrowserHost(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): boolean;
function CreateBrowserHostSync(aWindowInfo : PCefWindowInfo; const aURL : ustring; const aSettings : PCefBrowserSettings; const aExtraInfo : ICefDictionaryValue; const aContext : ICefRequestContext): Boolean;
@@ -507,6 +505,7 @@ type
function doOnConsoleMessage(const browser: ICefBrowser; level: TCefLogSeverity; const aMessage, source: ustring; line: Integer): Boolean; virtual;
function doOnAutoResize(const browser: ICefBrowser; const new_size: PCefSize): Boolean; virtual;
procedure doOnLoadingProgressChange(const browser: ICefBrowser; const progress: double); virtual;
+ procedure doOnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean); virtual;
// ICefDownloadHandler
procedure doOnBeforeDownload(const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const suggestedName: ustring; const callback: ICefBeforeDownloadCallback); virtual;
@@ -563,7 +562,6 @@ type
procedure doOnPopupSize(const browser: ICefBrowser; const rect: PCefRect); virtual;
procedure doOnPaint(const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer); virtual;
procedure doOnAcceleratedPaint(const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer); virtual;
- procedure doOnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo); virtual;
function doOnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean; virtual;
procedure doOnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation); virtual;
procedure doOnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double); virtual;
@@ -894,7 +892,6 @@ type
property QuicAllowed : boolean read FQuicAllowed write SetQuicAllowed;
property JavascriptEnabled : boolean read FJavascriptEnabled write SetJavascriptEnabled;
property LoadImagesAutomatically : boolean read FLoadImagesAutomatically write SetLoadImagesAutomatically;
- property MouseCursorChangeDisabled : boolean read GetMouseCursorChangeDisabled write SetMouseCursorChangeDisabled;
property WebRTCIPHandlingPolicy : TCefWebRTCHandlingPolicy read FWebRTCIPHandlingPolicy write SetWebRTCIPHandlingPolicy;
property WebRTCMultipleRoutes : TCefState read FWebRTCMultipleRoutes write SetWebRTCMultipleRoutes;
@@ -969,6 +966,7 @@ type
property OnConsoleMessage : TOnConsoleMessage read FOnConsoleMessage write FOnConsoleMessage;
property OnAutoResize : TOnAutoResize read FOnAutoResize write FOnAutoResize;
property OnLoadingProgressChange : TOnLoadingProgressChange read FOnLoadingProgressChange write FOnLoadingProgressChange;
+ property OnCursorChange : TOnCursorChange read FOnCursorChange write FOnCursorChange;
// ICefDownloadHandler
property OnBeforeDownload : TOnBeforeDownload read FOnBeforeDownload write FOnBeforeDownload;
@@ -1025,7 +1023,6 @@ type
property OnPopupSize : TOnPopupSize read FOnPopupSize write FOnPopupSize;
property OnPaint : TOnPaint read FOnPaint write FOnPaint;
property OnAcceleratedPaint : TOnAcceleratedPaint read FOnAcceleratedPaint write FOnAcceleratedPaint;
- property OnCursorChange : TOnCursorChange read FOnCursorChange write FOnCursorChange;
property OnStartDragging : TOnStartDragging read FOnStartDragging write FOnStartDragging;
property OnUpdateDragCursor : TOnUpdateDragCursor read FOnUpdateDragCursor write FOnUpdateDragCursor;
property OnScrollOffsetChanged : TOnScrollOffsetChanged read FOnScrollOffsetChanged write FOnScrollOffsetChanged;
@@ -1640,6 +1637,7 @@ begin
FOnConsoleMessage := nil;
FOnAutoResize := nil;
FOnLoadingProgressChange := nil;
+ FOnCursorChange := nil;
// ICefDownloadHandler
FOnBeforeDownload := nil;
@@ -1696,7 +1694,6 @@ begin
FOnPopupSize := nil;
FOnPaint := nil;
FOnAcceleratedPaint := nil;
- FOnCursorChange := nil;
FOnStartDragging := nil;
FOnUpdateDragCursor := nil;
FOnScrollOffsetChanged := nil;
@@ -2682,11 +2679,6 @@ begin
Result := Initialized and Browser.host.RequestContext.IsGlobal;
end;
-function TChromiumCore.GetMouseCursorChangeDisabled : boolean;
-begin
- Result := Initialized and Browser.host.IsMouseCursorChangeDisabled;
-end;
-
function TChromiumCore.GetAudioMuted : boolean;
begin
Result := Initialized and Browser.host.IsAudioMuted;
@@ -2738,12 +2730,6 @@ begin
end;
end;
-procedure TChromiumCore.SetMouseCursorChangeDisabled(aValue : boolean);
-begin
- if Initialized then
- Browser.Host.SetMouseCursorChangeDisabled(aValue);
-end;
-
procedure TChromiumCore.SetAudioMuted(aValue : boolean);
begin
if Initialized then
@@ -4576,7 +4562,8 @@ begin
assigned(FOnStatusMessage) or
assigned(FOnConsoleMessage) or
assigned(FOnAutoResize) or
- assigned(FOnLoadingProgressChange);
+ assigned(FOnLoadingProgressChange) or
+ assigned(FOnCursorChange);
end;
function TChromiumCore.MustCreateDownloadHandler : boolean;
@@ -5256,10 +5243,13 @@ end;
procedure TChromiumCore.doOnCursorChange(const browser : ICefBrowser;
cursor : TCefCursorHandle;
cursorType : TCefCursorType;
- const customCursorInfo : PCefCursorInfo);
+ const customCursorInfo : PCefCursorInfo;
+ var aResult : boolean);
begin
+ aResult := False;
+
if assigned(FOnCursorChange) then
- FOnCursorChange(self, browser, cursor, cursorType, customCursorInfo);
+ FOnCursorChange(self, browser, cursor, cursorType, customCursorInfo, aResult);
end;
procedure TChromiumCore.doOnDialogClosed(const browser: ICefBrowser);
diff --git a/source/uCEFChromiumEvents.pas b/source/uCEFChromiumEvents.pas
index d43bfec1..91e5fc07 100644
--- a/source/uCEFChromiumEvents.pas
+++ b/source/uCEFChromiumEvents.pas
@@ -91,6 +91,7 @@ type
TOnConsoleMessage = procedure(Sender: TObject; const browser: ICefBrowser; level: TCefLogSeverity; const message, source: ustring; line: Integer; out Result: Boolean) of object;
TOnAutoResize = procedure(Sender: TObject; const browser: ICefBrowser; const new_size: PCefSize; out Result: Boolean) of object;
TOnLoadingProgressChange = procedure(Sender: TObject; const browser: ICefBrowser; const progress: double) of object;
+ TOnCursorChange = procedure(Sender: TObject; const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean) of Object;
// ICefDownloadHandler
TOnBeforeDownload = procedure(Sender: TObject; const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const suggestedName: ustring; const callback: ICefBeforeDownloadCallback) of object;
@@ -147,7 +148,6 @@ type
TOnPopupSize = procedure(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect) of Object;
TOnPaint = procedure(Sender: TObject; const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer) of Object;
TOnAcceleratedPaint = procedure(Sender: TObject; const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer) of Object;
- TOnCursorChange = procedure(Sender: TObject; const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo) of Object;
TOnStartDragging = procedure(Sender: TObject; const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer; out Result: Boolean) of Object;
TOnUpdateDragCursor = procedure(Sender: TObject; const browser: ICefBrowser; operation: TCefDragOperation) of Object;
TOnScrollOffsetChanged = procedure(Sender: TObject; const browser: ICefBrowser; x, y: Double) of Object;
diff --git a/source/uCEFDisplayHandler.pas b/source/uCEFDisplayHandler.pas
index dabd822d..5a8aa14f 100644
--- a/source/uCEFDisplayHandler.pas
+++ b/source/uCEFDisplayHandler.pas
@@ -68,6 +68,7 @@ type
function OnConsoleMessage(const browser: ICefBrowser; level: TCefLogSeverity; const message_, source: ustring; line: Integer): Boolean; virtual;
function OnAutoResize(const browser: ICefBrowser; const new_size: PCefSize): Boolean; virtual;
procedure OnLoadingProgressChange(const browser: ICefBrowser; const progress: double); virtual;
+ procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean); virtual;
procedure RemoveReferences; virtual;
@@ -88,6 +89,7 @@ type
function OnConsoleMessage(const browser: ICefBrowser; level: TCefLogSeverity; const message_, source: ustring; line: Integer): Boolean; override;
function OnAutoResize(const browser: ICefBrowser; const new_size: PCefSize): Boolean; override;
procedure OnLoadingProgressChange(const browser: ICefBrowser; const progress: double); override;
+ procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean); override;
procedure RemoveReferences; override;
@@ -260,6 +262,28 @@ begin
progress);
end;
+function cef_display_handler_on_cursor_change( self : PCefDisplayHandler;
+ browser : PCefBrowser;
+ cursor : TCefCursorHandle;
+ type_ : TCefCursorType;
+ const custom_cursor_info : PCefCursorInfo): Integer; stdcall;
+var
+ TempObject : TObject;
+ TempResult : boolean;
+begin
+ TempResult := False;
+ TempObject := CefGetObject(self);
+
+ if (TempObject <> nil) and (TempObject is TCefDisplayHandlerOwn) then
+ TCefDisplayHandlerOwn(TempObject).OnCursorChange(TCefBrowserRef.UnWrap(browser),
+ cursor,
+ type_,
+ custom_cursor_info,
+ TempResult);
+
+ Result := Ord(TempResult);
+end;
+
constructor TCefDisplayHandlerOwn.Create;
begin
inherited CreateData(SizeOf(TCefDisplayHandler));
@@ -275,6 +299,7 @@ begin
on_console_message := {$IFDEF FPC}@{$ENDIF}cef_display_handler_on_console_message;
on_auto_resize := {$IFDEF FPC}@{$ENDIF}cef_display_handler_on_auto_resize;
on_loading_progress_change := {$IFDEF FPC}@{$ENDIF}cef_display_handler_on_loading_progress_change;
+ on_cursor_change := {$IFDEF FPC}@{$ENDIF}cef_display_handler_on_cursor_change;
end;
end;
@@ -298,6 +323,11 @@ begin
//
end;
+procedure TCefDisplayHandlerOwn.OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean);
+begin
+ aResult := False;
+end;
+
procedure TCefDisplayHandlerOwn.OnFaviconUrlChange(const browser: ICefBrowser; const iconUrls: TStrings);
begin
//
@@ -353,7 +383,8 @@ procedure TCustomDisplayHandler.OnAddressChange(const browser : ICefBrowser;
const frame : ICefFrame;
const url : ustring);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnAddressChange(browser, frame, url);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnAddressChange(browser, frame, url);
end;
function TCustomDisplayHandler.OnConsoleMessage(const browser : ICefBrowser;
@@ -378,27 +409,42 @@ end;
procedure TCustomDisplayHandler.OnLoadingProgressChange(const browser: ICefBrowser; const progress: double);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnLoadingProgressChange(browser, progress);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnLoadingProgressChange(browser, progress);
+end;
+
+procedure TCustomDisplayHandler.OnCursorChange(const browser : ICefBrowser;
+ cursor : TCefCursorHandle;
+ cursorType : TCefCursorType;
+ const customCursorInfo : PCefCursorInfo;
+ var aResult : boolean);
+begin
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnCursorChange(browser, cursor, cursorType, customCursorInfo, aResult);
end;
procedure TCustomDisplayHandler.OnFaviconUrlChange(const browser: ICefBrowser; const iconUrls: TStrings);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnFaviconUrlChange(browser, iconUrls);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnFaviconUrlChange(browser, iconUrls);
end;
procedure TCustomDisplayHandler.OnFullScreenModeChange(const browser: ICefBrowser; fullscreen: Boolean);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnFullScreenModeChange(browser, fullscreen);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnFullScreenModeChange(browser, fullscreen);
end;
procedure TCustomDisplayHandler.OnStatusMessage(const browser: ICefBrowser; const value: ustring);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnStatusMessage(browser, value);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnStatusMessage(browser, value);
end;
procedure TCustomDisplayHandler.OnTitleChange(const browser: ICefBrowser; const title: ustring);
begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnTitleChange(browser, title);
+ if (FEvents <> nil) then
+ IChromiumEvents(FEvents).doOnTitleChange(browser, title);
end;
function TCustomDisplayHandler.OnTooltip(const browser: ICefBrowser; var text: ustring): Boolean;
diff --git a/source/uCEFInterfaces.pas b/source/uCEFInterfaces.pas
index 88ceaa1d..576a1195 100644
--- a/source/uCEFInterfaces.pas
+++ b/source/uCEFInterfaces.pas
@@ -205,10 +205,12 @@ type
TOnUncaughtExceptionEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; const context: ICefv8Context; const exception: ICefV8Exception; const stackTrace: ICefV8StackTrace) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnFocusedNodeChangedEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; const node: ICefDomNode) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnProcessMessageReceivedEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId; const message: ICefProcessMessage; var aHandled : boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF LCL} of object {$ENDIF} {$ENDIF};
+ TOnGetCookieableSchemesEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(var schemes: TStringList; var include_defaults : boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF LCL} of object {$ENDIF} {$ENDIF};
TOnContextInitializedEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure() {$IFNDEF DELPHI12_UP}{$IFNDEF FPC} of object{$ENDIF}{$ENDIF};
TOnBeforeChildProcessLaunchEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const commandLine: ICefCommandLine) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnRenderProcessThreadCreatedEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const extraInfo: ICefListValue) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnScheduleMessagePumpWorkEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const delayMs: Int64) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC} of object{$ENDIF}{$ENDIF};
+ TOnGetDefaultClientEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(var aClient : ICefClient) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC} of object{$ENDIF}{$ENDIF};
TOnGetDataResourceEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(resourceId: Integer; out data: Pointer; out dataSize: NativeUInt; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnGetLocalizedStringEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(stringId: Integer; out stringVal: ustring; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
TOnGetDataResourceForScaleEvent = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(resourceId: Integer; scaleFactor: TCefScaleFactor; out data: Pointer; out dataSize: NativeUInt; var aResult : Boolean) {$IFNDEF DELPHI12_UP}{$IFNDEF FPC}of object{$ENDIF}{$ENDIF};
@@ -343,6 +345,7 @@ type
function doOnConsoleMessage(const browser: ICefBrowser; level: TCefLogSeverity; const message, source: ustring; line: Integer): Boolean;
function doOnAutoResize(const browser: ICefBrowser; const new_size: PCefSize): Boolean;
procedure doOnLoadingProgressChange(const browser: ICefBrowser; const progress: double);
+ procedure doOnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean);
// ICefDownloadHandler
procedure doOnBeforeDownload(const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const suggestedName: ustring; const callback: ICefBeforeDownloadCallback);
@@ -399,7 +402,6 @@ type
procedure doOnPopupSize(const browser: ICefBrowser; const rect: PCefRect);
procedure doOnPaint(const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);
procedure doOnAcceleratedPaint(const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer);
- procedure doOnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo);
function doOnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean;
procedure doOnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation);
procedure doOnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double);
@@ -597,8 +599,6 @@ type
function AddDevToolsMessageObserver(const observer: ICefDevToolsMessageObserver): ICefRegistration;
procedure GetNavigationEntries(const visitor: ICefNavigationEntryVisitor; currentOnly: Boolean);
procedure GetNavigationEntriesProc(const proc: TCefNavigationEntryVisitorProc; currentOnly: Boolean);
- procedure SetMouseCursorChangeDisabled(disabled: Boolean);
- function IsMouseCursorChangeDisabled: Boolean;
procedure ReplaceMisspelling(const word: ustring);
procedure AddWordToDictionary(const word: ustring);
function IsWindowRenderingDisabled: Boolean;
@@ -1430,10 +1430,12 @@ type
// /include/capi/cef_browser_process_handler_capi.h (cef_browser_process_handler_t)
ICefBrowserProcessHandler = interface(ICefBaseRefCounted)
['{27291B7A-C0AE-4EE0-9115-15C810E22F6C}']
+ procedure GetCookieableSchemes(var schemes: TStringList; var include_defaults : boolean);
procedure OnContextInitialized;
procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine);
procedure GetPrintHandler(var aHandler : ICefPrintHandler);
procedure OnScheduleMessagePumpWork(const delayMs: Int64);
+ procedure GetDefaultClient(var aClient : ICefClient);
procedure RemoveReferences; // custom procedure to clear all references
end;
@@ -1954,6 +1956,7 @@ type
function OnConsoleMessage(const browser: ICefBrowser; level: TCefLogSeverity; const message_, source: ustring; line: Integer): Boolean;
function OnAutoResize(const browser: ICefBrowser; const new_size: PCefSize): Boolean;
procedure OnLoadingProgressChange(const browser: ICefBrowser; const progress: double);
+ procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo; var aResult : boolean);
procedure RemoveReferences; // custom procedure to clear all references
end;
@@ -2054,7 +2057,6 @@ type
procedure OnPopupSize(const browser: ICefBrowser; const rect: PCefRect);
procedure OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);
procedure OnAcceleratedPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer);
- procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo);
function OnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean;
procedure OnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation);
procedure OnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double);
diff --git a/source/uCEFJson.pas b/source/uCEFJson.pas
index 518e0e88..17556b72 100644
--- a/source/uCEFJson.pas
+++ b/source/uCEFJson.pas
@@ -70,7 +70,7 @@ type
class function Parse(const jsonString: ustring; options: TCefJsonParserOptions = JSON_PARSER_RFC): ICefValue; overload;
class function Parse(const json: Pointer; json_size: NativeUInt; options: TCefJsonParserOptions = JSON_PARSER_RFC): ICefValue; overload;
- class function ParseAndReturnError(const jsonString: ustring; options: TCefJsonParserOptions; out errorCodeOut: TCefJsonParserError; out errorMsgOut: ustring): ICefValue;
+ class function ParseAndReturnError(const jsonString: ustring; options: TCefJsonParserOptions; out errorMsgOut: ustring): ICefValue;
class function Write(const node: ICefValue; options: TCefJsonWriterOptions = JSON_WRITER_DEFAULT): ustring; overload;
class function Write(const node: ICefDictionaryValue; options: TCefJsonWriterOptions = JSON_WRITER_DEFAULT): ustring; overload;
class function Write(const node: ICefValue; var aRsltStrings: TStringList): boolean; overload;
@@ -226,7 +226,6 @@ end;
class function TCEFJson.ParseAndReturnError(const jsonString : ustring;
options : TCefJsonParserOptions;
- out errorCodeOut : TCefJsonParserError;
out errorMsgOut : ustring): ICefValue;
var
TempJSON, TempError : TCefString;
@@ -235,12 +234,11 @@ begin
begin
CefStringInitialize(@TempError);
TempJSON := CefString(jsonString);
- Result := TCefValueRef.UnWrap(cef_parse_jsonand_return_error(@TempJSON, options, @errorCodeOut, @TempError));
+ Result := TCefValueRef.UnWrap(cef_parse_jsonand_return_error(@TempJSON, options, @TempError));
errorMsgOut := CefStringClearAndGet(@TempError);
end
else
begin
- errorCodeOut := JSON_NO_ERROR;
Result := nil;
errorMsgOut := '';
end;
diff --git a/source/uCEFLibFunctions.pas b/source/uCEFLibFunctions.pas
index a4674157..2623a810 100644
--- a/source/uCEFLibFunctions.pas
+++ b/source/uCEFLibFunctions.pas
@@ -121,7 +121,7 @@ var
cef_uridecode : function(const text: PCefString; convert_to_utf8: Integer; unescape_rule: TCefUriUnescapeRule): PCefStringUserFree; cdecl;
cef_parse_json : function(const json_string: PCefString; options: TCefJsonParserOptions): PCefValue; cdecl;
cef_parse_json_buffer : function(const json: Pointer; json_size: NativeUInt; options: TCefJsonParserOptions): PCefValue; cdecl;
- cef_parse_jsonand_return_error : function(const json_string: PCefString; options: TCefJsonParserOptions; error_code_out: PCefJsonParserError; error_msg_out: PCefString): PCefValue; cdecl;
+ cef_parse_jsonand_return_error : function(const json_string: PCefString; options: TCefJsonParserOptions; error_msg_out: PCefString): PCefValue; cdecl;
cef_write_json : function(node: PCefValue; options: TCefJsonWriterOptions): PCefStringUserFree; cdecl;
// /include/capi/cef_path_util_capi.h
diff --git a/source/uCEFRenderHandler.pas b/source/uCEFRenderHandler.pas
index 3ec04363..5ddfcf88 100644
--- a/source/uCEFRenderHandler.pas
+++ b/source/uCEFRenderHandler.pas
@@ -63,7 +63,6 @@ type
procedure OnPopupSize(const browser: ICefBrowser; const rect: PCefRect); virtual;
procedure OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer); virtual;
procedure OnAcceleratedPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer); virtual;
- procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo); virtual;
function OnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean; virtual;
procedure OnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation); virtual;
procedure OnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double); virtual;
@@ -89,7 +88,6 @@ type
procedure OnPopupSize(const browser: ICefBrowser; const rect: PCefRect); override;
procedure OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer); override;
procedure OnAcceleratedPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer); override;
- procedure OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo); override;
function GetScreenInfo(const browser: ICefBrowser; var screenInfo: TCefScreenInfo): Boolean; override;
function OnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean; override;
procedure OnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation); override;
@@ -264,23 +262,6 @@ begin
shared_handle);
end;
-procedure cef_render_handler_on_cursor_change( self : PCefRenderHandler;
- browser : PCefBrowser;
- cursor : TCefCursorHandle;
- type_ : TCefCursorType;
- const custom_cursor_info : PCefCursorInfo); stdcall;
-var
- TempObject : TObject;
-begin
- TempObject := CefGetObject(self);
-
- if (TempObject <> nil) and (TempObject is TCefRenderHandlerOwn) then
- TCefRenderHandlerOwn(TempObject).OnCursorChange(TCefBrowserRef.UnWrap(browser),
- cursor,
- type_,
- custom_cursor_info);
-end;
-
function cef_render_handler_start_dragging(self : PCefRenderHandler;
browser : PCefBrowser;
drag_data : PCefDragData;
@@ -388,7 +369,6 @@ begin
on_popup_size := {$IFDEF FPC}@{$ENDIF}cef_render_handler_on_popup_size;
on_paint := {$IFDEF FPC}@{$ENDIF}cef_render_handler_on_paint;
on_accelerated_paint := {$IFDEF FPC}@{$ENDIF}cef_render_handler_on_accelerated_paint;
- on_cursor_change := {$IFDEF FPC}@{$ENDIF}cef_render_handler_on_cursor_change;
start_dragging := {$IFDEF FPC}@{$ENDIF}cef_render_handler_start_dragging;
update_drag_cursor := {$IFDEF FPC}@{$ENDIF}cef_render_handler_update_drag_cursor;
on_scroll_offset_changed := {$IFDEF FPC}@{$ENDIF}cef_render_handler_on_scroll_offset_changed;
@@ -423,11 +403,6 @@ begin
//
end;
-procedure TCefRenderHandlerOwn.OnCursorChange(const browser: ICefBrowser; cursor: TCefCursorHandle; CursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo);
-begin
- //
-end;
-
procedure TCefRenderHandlerOwn.OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);
begin
//
@@ -547,14 +522,6 @@ begin
inherited GetViewRect(browser, rect);
end;
-procedure TCustomRenderHandler.OnCursorChange(const browser : ICefBrowser;
- cursor : TCefCursorHandle;
- cursorType : TCefCursorType;
- const customCursorInfo : PCefCursorInfo);
-begin
- if (FEvents <> nil) then IChromiumEvents(FEvents).doOnCursorChange(browser, cursor, cursorType, customCursorInfo);
-end;
-
procedure TCustomRenderHandler.OnPaint(const browser : ICefBrowser;
kind : TCefPaintElementType;
dirtyRectsCount : NativeUInt;
diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas
index ec6a9b88..656b7582 100644
--- a/source/uCEFTypes.pas
+++ b/source/uCEFTypes.pas
@@ -192,7 +192,6 @@ type
PCefPrintDialogCallback = ^TCefPrintDialogCallback;
PCefPrintJobCallback = ^TCefPrintJobCallback;
PCefUrlParts = ^TCefUrlParts;
- PCefJsonParserError = ^TCefJsonParserError;
PCefStreamReader = ^TCefStreamReader;
PCefReadHandler = ^TCefReadHandler;
PCefWriteHandler = ^TCefWriteHandler;
@@ -542,20 +541,6 @@ type
right : Integer;
end;
- // /include/internal/cef_types.h (cef_json_parser_error_t)
- TCefJsonParserError = (
- JSON_NO_ERROR = 0,
- JSON_INVALID_ESCAPE,
- JSON_SYNTAX_ERROR,
- JSON_UNEXPECTED_TOKEN,
- JSON_TRAILING_COMMA,
- JSON_TOO_MUCH_NESTING,
- JSON_UNEXPECTED_DATA_AFTER_ROOT,
- JSON_UNSUPPORTED_ENCODING,
- JSON_UNQUOTED_DICTIONARY_KEY,
- JSON_PARSE_ERROR_COUNT
- );
-
// /include/internal/cef_types.h (cef_state_t)
TCefState = (
STATE_DEFAULT = 0,
@@ -1550,6 +1535,7 @@ type
on_console_message : function(self: PCefDisplayHandler; browser: PCefBrowser; level: TCefLogSeverity; const message_, source: PCefString; line: Integer): Integer; stdcall;
on_auto_resize : function(self: PCefDisplayHandler; browser: PCefBrowser; const new_size: PCefSize): Integer; stdcall;
on_loading_progress_change : procedure(self: PCefDisplayHandler; browser: PCefBrowser; progress: double); stdcall;
+ on_cursor_change : function(self: PCefDisplayHandler; browser: PCefBrowser; cursor: TCefCursorHandle; type_: TCefCursorType; const custom_cursor_info: PCefCursorInfo): Integer; stdcall;
end;
// /include/capi/cef_download_handler_capi.h (cef_download_handler_t)
@@ -1752,7 +1738,6 @@ type
on_popup_size : procedure(self: PCefRenderHandler; browser: PCefBrowser; const rect: PCefRect); stdcall;
on_paint : procedure(self: PCefRenderHandler; browser: PCefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer); stdcall;
on_accelerated_paint : procedure(self: PCefRenderHandler; browser: PCefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; shared_handle: Pointer); stdcall;
- on_cursor_change : procedure(self: PCefRenderHandler; browser: PCefBrowser; cursor: TCefCursorHandle; type_: TCefCursorType; const custom_cursor_info: PCefCursorInfo); stdcall;
start_dragging : function(self: PCefRenderHandler; browser: PCefBrowser; drag_data: PCefDragData; allowed_ops: TCefDragOperations; x, y: Integer): Integer; stdcall;
update_drag_cursor : procedure(self: PCefRenderHandler; browser: PCefBrowser; operation: TCefDragOperation); stdcall;
on_scroll_offset_changed : procedure(self: PCefRenderHandler; browser: PCefBrowser; x, y: Double); stdcall;
@@ -2907,8 +2892,6 @@ type
execute_dev_tools_method : function(self: PCefBrowserHost; message_id: integer; const method: PCefString; params: PCefDictionaryValue): Integer; stdcall;
add_dev_tools_message_observer : function(self: PCefBrowserHost; observer: PCefDevToolsMessageObserver): PCefRegistration; stdcall;
get_navigation_entries : procedure(self: PCefBrowserHost; visitor: PCefNavigationEntryVisitor; current_only: Integer); stdcall;
- set_mouse_cursor_change_disabled : procedure(self: PCefBrowserHost; disabled: Integer); stdcall;
- is_mouse_cursor_change_disabled : function(self: PCefBrowserHost): Integer; stdcall;
replace_misspelling : procedure(self: PCefBrowserHost; const word: PCefString); stdcall;
add_word_to_dictionary : procedure(self: PCefBrowserHost; const word: PCefString); stdcall;
is_window_rendering_disabled : function(self: PCefBrowserHost): Integer; stdcall;
@@ -2982,10 +2965,12 @@ type
// /include/capi/cef_browser_process_handler_capi.h (cef_browser_process_handler_t)
TCefBrowserProcessHandler = record
base : TCefBaseRefCounted;
+ get_cookieable_schemes : procedure(self: PCefBrowserProcessHandler; schemes: TCefStringList; include_defaults: PInteger); stdcall;
on_context_initialized : procedure(self: PCefBrowserProcessHandler); stdcall;
on_before_child_process_launch : procedure(self: PCefBrowserProcessHandler; command_line: PCefCommandLine); stdcall;
get_print_handler : function(self: PCefBrowserProcessHandler): PCefPrintHandler; stdcall;
on_schedule_message_pump_work : procedure(self: PCefBrowserProcessHandler; delay_ms: Int64); stdcall;
+ get_default_client : function(self: PCefBrowserProcessHandler): PCefClient; stdcall;
end;
// /include/capi/cef_app_capi.h (cef_app_t)
diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json
index 5bc357f5..56d8de69 100644
--- a/update_CEF4Delphi.json
+++ b/update_CEF4Delphi.json
@@ -2,9 +2,9 @@
"UpdateLazPackages" : [
{
"ForceNotify" : true,
- "InternalVersion" : 201,
+ "InternalVersion" : 202,
"Name" : "cef4delphi_lazarus.lpk",
- "Version" : "86.0.24.0"
+ "Version" : "87.1.6.0"
}
],
"UpdatePackageData" : {