diff --git a/README.md b/README.md index 6eb1307a..ebc1ae8d 100644 --- a/README.md +++ b/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 LICENSE.md file. -CEF4Delphi uses CEF 131.2.7 which includes Chromium 131.0.6778.86. +CEF4Delphi uses CEF 131.3.1 which includes Chromium 131.0.6778.109. The CEF binaries used by CEF4Delphi are available for download at Spotify : -* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_windows32.tar.bz2) -* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_windows64.tar.bz2) -* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_linux64.tar.bz2) -* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_linuxarm.tar.bz2) -* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_linuxarm64.tar.bz2) -* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.2.7%2Bg9a14dc9%2Bchromium-131.0.6778.86_macosx64.tar.bz2) +* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_windows32.tar.bz2) +* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_windows64.tar.bz2) +* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_linux64.tar.bz2) +* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_linuxarm.tar.bz2) +* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_linuxarm64.tar.bz2) +* [MacOS x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_131.3.1%2Bgcb062df%2Bchromium-131.0.6778.109_macosx64.tar.bz2) CEF4Delphi was developed and tested on Delphi 12.2 and it has been tested in Delphi 6, Delphi XE, Delphi 10, Delphi 11 and Lazarus 3.6/FPC 3.2.2. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components. diff --git a/docs/cef4delphi.chm b/docs/cef4delphi.chm index c4ef43dc..7d6cf0f2 100644 Binary files a/docs/cef4delphi.chm and b/docs/cef4delphi.chm differ diff --git a/docs/html/AllClasses.html b/docs/html/AllClasses.html index b3b1c4d6..a12b5988 100644 --- a/docs/html/AllClasses.html +++ b/docs/html/AllClasses.html @@ -268,25 +268,82 @@ ICefFrameHandler uCEFInterfaces -

Implement this interface to handle events related to ICefFrame life span. The order of callbacks is: +

-

(1) During initial ICefBrowserHost creation and navigation of the main frame: - ICefFrameHandler.OnFrameCreated => The initial main frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnMainFrameChanged => The initial main frame object has been assigned to the browser. - ICefLifeSpanHandler.OnAfterCreated => The browser is now valid and can be used. - ICefFrameHandler.OnFrameAttached => The initial main frame object is now connected to its peer in the renderer process. Commands can be routed. +

Implement this structure to handle events related to cef_frame_t life span. The order of callbacks is: -

(2) During further ICefBrowserHost navigation/loading of the main frame and/or sub-frames: - ICefFrameHandler.OnFrameCreated => A new main frame or sub-frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnFrameAttached => A new main frame or sub-frame object is now connected to its peer in the renderer process. Commands can be routed. - ICefFrameHandler.OnFrameDetached => An existing main frame or sub- frame object has lost its connection to the renderer process. If multiple objects are detached at the same time then notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => A new main frame object has been assigned to the browser. This will only occur with cross-origin navigation or re-navigation after renderer process termination (due to crashes, etc). +

(1) During initial cef_browser_host_t creation and navigation of the main frame: -

(3) During final ICefBrowserHost destruction of the main frame: - ICefFrameHandler.OnFrameDetached => Any sub-frame objects have lost their connection to the renderer process. Commands can no longer be routed and will be discarded. - ICefLifeSpanHandler.OnBeforeClose => The browser has been destroyed. - ICefFrameHandler.OnFrameDetached => The main frame object have lost its connection to the renderer process. Notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => The final main frame object has been removed from the browser. +

-

Cross-origin navigation and/or loading receives special handling. +

+- cef_frame_handler_t::OnFrameCreated => The initial main frame object has
+  been created. Any commands will be queued until the frame is attached.
+- cef_frame_handler_t::OnMainFrameChanged => The initial main frame object
+  has been assigned to the browser.
+- cef_life_span_handler_t::OnAfterCreated => The browser is now valid and
+  can be used.
+- cef_frame_handler_t::OnFrameAttached => The initial main frame object is
+  now connected to its peer in the renderer process. Commands can be routed.
+ +

+ +

(2) During further cef_browser_host_t navigation/loading of the main frame and/or sub-frames: + +

+ +
+- cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame
+  object has been created. Any commands will be queued until the frame is
+  attached.
+- cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame
+  object is now connected to its peer in the renderer process. Commands can
+  be routed.
+- cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-
+  frame object has lost its connection to the renderer process. If multiple
+  objects are detached at the same time then notifications will be sent for
+  any sub-frame objects before the main frame object. Commands can no longer
+  be routed and will be discarded.
+- CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame
+  object has been destroyed.
+- cef_frame_handler_t::OnMainFrameChanged => A new main frame object has
+  been assigned to the browser. This will only occur with cross-origin
+  navigation or re-navigation after renderer process termination (due to
+  crashes, etc).
+ +

+ +

(3) During final cef_browser_host_t destruction of the main frame: + +

+ +
+- cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost
+  their connection to the renderer process. Commands can no longer be routed
+  and will be discarded.
+- CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been
+  destroyed.
+- cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.
+- cef_frame_handler_t::OnFrameDetached => The main frame object have lost
+  its connection to the renderer process. Notifications will be sent for any
+  sub-frame objects before the main frame object. Commands can no longer be
+  routed and will be discarded.
+- CefFreameHandler::OnFrameDestroyed => The main frame object has been
+  destroyed.
+- cef_frame_handler_t::OnMainFrameChanged => The final main frame object has
+  been removed from the browser.
+ +

+ +

Special handling applies for cross-origin loading on creation/navigation of sub-frames, and cross-origin loading on creation of new popup browsers. A temporary frame will first be created in the parent frame's renderer process. This temporary frame will never attach and will be discarded after the real cross-origin frame is created in the new/target renderer process. The client will receive creation callbacks for the temporary frame, followed by cross-origin navigation callbacks (2) for the transition from the temporary frame to the real frame. The temporary frame will not receive or execute commands during this transitional period (any sent commands will be discarded).

When the main frame navigates to a different origin the OnMainFrameChanged callback (2) will be executed with the old and new main frame objects. -

When a new sub-frame is loaded in, or an existing sub-frame is navigated to, a different origin from the parent frame, a temporary sub-frame object will first be created in the parent's renderer process. That temporary sub-frame will then be discarded after the real cross-origin sub-frame is created in the new/target renderer process. The client will receive cross-origin navigation callbacks (2) for the transition from the temporary sub-frame to the real sub-frame. The temporary sub-frame will not recieve or execute commands during this transitional period (any sent commands will be discarded). +

Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have cef_frame_t::get_identifier() == -4. -

When a new popup browser is created in a different origin from the parent browser, a temporary main frame object for the popup will first be created in the parent's renderer process. That temporary main frame will then be discarded after the real cross-origin main frame is created in the new/target renderer process. The client will recieve creation and initial navigation callbacks (1) for the temporary main frame, followed by cross- origin navigation callbacks (2) for the transition from the temporary main frame to the real main frame. The temporary main frame may receive and execute commands during this transitional period (any sent commands may be executed, but the behavior is potentially undesirable since they execute in the parent browser's renderer process and not the new/target renderer process). +

The functions of this structure will be called on the UI thread unless otherwise indicated. -

Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have ICefFrame.GetIdentifier() == -4. - -

The functions of this interface will be called on the UI thread unless otherwise indicated.

+

ICefImage diff --git a/docs/html/AllIdentifiers.html b/docs/html/AllIdentifiers.html index 627a0c8b..36cfdfd5 100644 --- a/docs/html/AllIdentifiers.html +++ b/docs/html/AllIdentifiers.html @@ -3108,12 +3108,12 @@

 

-DeviceToLogical +DeviceToLogical uCEFMiscFunctions

 

-DeviceToLogical +DeviceToLogical uCEFMiscFunctions

 

@@ -3123,12 +3123,12 @@

 

-DeviceToLogical +DeviceToLogical uCEFMiscFunctions

 

-DeviceToLogical +DeviceToLogical uCEFMiscFunctions

 

@@ -5017,25 +5017,82 @@ ICefFrameHandler uCEFInterfaces -

Implement this interface to handle events related to ICefFrame life span. The order of callbacks is: +

-

(1) During initial ICefBrowserHost creation and navigation of the main frame: - ICefFrameHandler.OnFrameCreated => The initial main frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnMainFrameChanged => The initial main frame object has been assigned to the browser. - ICefLifeSpanHandler.OnAfterCreated => The browser is now valid and can be used. - ICefFrameHandler.OnFrameAttached => The initial main frame object is now connected to its peer in the renderer process. Commands can be routed. +

Implement this structure to handle events related to cef_frame_t life span. The order of callbacks is: -

(2) During further ICefBrowserHost navigation/loading of the main frame and/or sub-frames: - ICefFrameHandler.OnFrameCreated => A new main frame or sub-frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnFrameAttached => A new main frame or sub-frame object is now connected to its peer in the renderer process. Commands can be routed. - ICefFrameHandler.OnFrameDetached => An existing main frame or sub- frame object has lost its connection to the renderer process. If multiple objects are detached at the same time then notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => A new main frame object has been assigned to the browser. This will only occur with cross-origin navigation or re-navigation after renderer process termination (due to crashes, etc). +

(1) During initial cef_browser_host_t creation and navigation of the main frame: -

(3) During final ICefBrowserHost destruction of the main frame: - ICefFrameHandler.OnFrameDetached => Any sub-frame objects have lost their connection to the renderer process. Commands can no longer be routed and will be discarded. - ICefLifeSpanHandler.OnBeforeClose => The browser has been destroyed. - ICefFrameHandler.OnFrameDetached => The main frame object have lost its connection to the renderer process. Notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => The final main frame object has been removed from the browser. +

-

Cross-origin navigation and/or loading receives special handling. +

+- cef_frame_handler_t::OnFrameCreated => The initial main frame object has
+  been created. Any commands will be queued until the frame is attached.
+- cef_frame_handler_t::OnMainFrameChanged => The initial main frame object
+  has been assigned to the browser.
+- cef_life_span_handler_t::OnAfterCreated => The browser is now valid and
+  can be used.
+- cef_frame_handler_t::OnFrameAttached => The initial main frame object is
+  now connected to its peer in the renderer process. Commands can be routed.
+ +

+ +

(2) During further cef_browser_host_t navigation/loading of the main frame and/or sub-frames: + +

+ +
+- cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame
+  object has been created. Any commands will be queued until the frame is
+  attached.
+- cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame
+  object is now connected to its peer in the renderer process. Commands can
+  be routed.
+- cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-
+  frame object has lost its connection to the renderer process. If multiple
+  objects are detached at the same time then notifications will be sent for
+  any sub-frame objects before the main frame object. Commands can no longer
+  be routed and will be discarded.
+- CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame
+  object has been destroyed.
+- cef_frame_handler_t::OnMainFrameChanged => A new main frame object has
+  been assigned to the browser. This will only occur with cross-origin
+  navigation or re-navigation after renderer process termination (due to
+  crashes, etc).
+ +

+ +

(3) During final cef_browser_host_t destruction of the main frame: + +

+ +
+- cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost
+  their connection to the renderer process. Commands can no longer be routed
+  and will be discarded.
+- CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been
+  destroyed.
+- cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.
+- cef_frame_handler_t::OnFrameDetached => The main frame object have lost
+  its connection to the renderer process. Notifications will be sent for any
+  sub-frame objects before the main frame object. Commands can no longer be
+  routed and will be discarded.
+- CefFreameHandler::OnFrameDestroyed => The main frame object has been
+  destroyed.
+- cef_frame_handler_t::OnMainFrameChanged => The final main frame object has
+  been removed from the browser.
+ +

+ +

Special handling applies for cross-origin loading on creation/navigation of sub-frames, and cross-origin loading on creation of new popup browsers. A temporary frame will first be created in the parent frame's renderer process. This temporary frame will never attach and will be discarded after the real cross-origin frame is created in the new/target renderer process. The client will receive creation callbacks for the temporary frame, followed by cross-origin navigation callbacks (2) for the transition from the temporary frame to the real frame. The temporary frame will not receive or execute commands during this transitional period (any sent commands will be discarded).

When the main frame navigates to a different origin the OnMainFrameChanged callback (2) will be executed with the old and new main frame objects. -

When a new sub-frame is loaded in, or an existing sub-frame is navigated to, a different origin from the parent frame, a temporary sub-frame object will first be created in the parent's renderer process. That temporary sub-frame will then be discarded after the real cross-origin sub-frame is created in the new/target renderer process. The client will receive cross-origin navigation callbacks (2) for the transition from the temporary sub-frame to the real sub-frame. The temporary sub-frame will not recieve or execute commands during this transitional period (any sent commands will be discarded). +

Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have cef_frame_t::get_identifier() == -4. -

When a new popup browser is created in a different origin from the parent browser, a temporary main frame object for the popup will first be created in the parent's renderer process. That temporary main frame will then be discarded after the real cross-origin main frame is created in the new/target renderer process. The client will recieve creation and initial navigation callbacks (1) for the temporary main frame, followed by cross- origin navigation callbacks (2) for the transition from the temporary main frame to the real main frame. The temporary main frame may receive and execute commands during this transitional period (any sent commands may be executed, but the behavior is potentially undesirable since they execute in the parent browser's renderer process and not the new/target renderer process). +

The functions of this structure will be called on the UI thread unless otherwise indicated. -

Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have ICefFrame.GetIdentifier() == -4. - -

The functions of this interface will be called on the UI thread unless otherwise indicated.

+

ICefImage @@ -7665,12 +7722,12 @@

for InitLibLocationFromArgs

-LogicalToDevice +LogicalToDevice uCEFMiscFunctions

 

-LogicalToDevice +LogicalToDevice uCEFMiscFunctions

 

@@ -13329,721 +13386,726 @@ Ranges:

ICefFrameHandler

+TOnFrameDestroyed +uCEFChromiumEvents +

 

+ + TOnFrameDetached uCEFChromiumEvents

 

- + TOnFullScreenModeChange uCEFChromiumEvents

 

- + TOnGestureCommandEvent uCEFViewsFrameworkEvents

 

- + TOnGetAccessibilityHandler uCEFChromiumEvents

ICefRenderHandler

- + TOnGetAudioParametersEvent uCEFChromiumEvents

ICefAudioHandler

- + TOnGetAuthCredentials uCEFChromiumEvents

 

- + TOnGetAuthCredentials uCEFUrlRequestClientEvents

 

- + TOnGetBrowserRuntimeStyleEvent uCEFViewsFrameworkEvents

 

- + TOnGetChromeToolbarTypeEvent uCEFViewsFrameworkEvents

 

- + TOnGetDataResourceEvent uCEFApplicationEvents

 

- + TOnGetDataResourceForScaleEvent uCEFApplicationEvents

 

- + TOnGetDefaultClientEvent uCEFApplicationEvents

 

- + TOnGetDefaultRequestContextHandlerEvent uCEFApplicationEvents

 

- + TOnGetDelegateForPopupBrowserViewEvent uCEFViewsFrameworkEvents

 

- + TOnGetHeightForWidthEvent uCEFViewsFrameworkEvents

 

- + TOnGetInitialBoundsEvent uCEFViewsFrameworkEvents

 

- + TOnGetInitialShowStateEvent uCEFViewsFrameworkEvents

 

- + TOnGetLinuxWindowPropertiesEvent uCEFViewsFrameworkEvents

 

- + TOnGetLocalizedStringEvent uCEFApplicationEvents

ICefResourceBundleHandler

- + TOnGetMaximumSizeEvent uCEFViewsFrameworkEvents

 

- + TOnGetMinimumSizeEvent uCEFViewsFrameworkEvents

 

- + TOnGetParentWindowEvent uCEFViewsFrameworkEvents

 

- + TOnGetPDFPaperSizeEvent uCEFChromiumEvents

 

- + TOnGetPreferredSizeEvent uCEFViewsFrameworkEvents

ICefViewDelegate

- + TOnGetResourceHandler uCEFChromiumEvents

 

- + TOnGetResourceRequestHandler uCEFChromiumEvents

 

- + TOnGetResourceResponseFilter uCEFChromiumEvents

 

- + TOnGetRootScreenRect uCEFChromiumEvents

 

- + TOnGetScreenInfo uCEFChromiumEvents

 

- + TOnGetScreenPoint uCEFChromiumEvents

 

- + TOnGetTitlebarHeightEvent uCEFViewsFrameworkEvents

 

- + TOnGetTouchHandleSize uCEFChromiumEvents

 

- + TOnGetViewRect uCEFChromiumEvents

 

- + TOnGetWindowRuntimeStyleEvent uCEFViewsFrameworkEvents

 

- + TOnGotFocus uCEFChromiumEvents

 

- + TOnHandledMessageEvent uCEFBufferPanel

 

- + TOnHttpRequest uCEFServerEvents

 

- + TOnIMECommitTextEvent uCEFBufferPanel

 

- + TOnIMECompositionRangeChanged uCEFChromiumEvents

 

- + TOnIMESetCompositionEvent uCEFBufferPanel

 

- + TOnInitFilterEvent uCEFResponseFilter

 

- + TOnIsChromeAppMenuItemEnabledEvent uCEFChromiumEvents

 

- + TOnIsChromeAppMenuItemVisibleEvent uCEFChromiumEvents

 

- + TOnIsChromePageActionIconVisibleEvent uCEFChromiumEvents

 

- + TOnIsChromeToolbarButtonVisibleEvent uCEFChromiumEvents

 

- + TOnIsFramelessEvent uCEFViewsFrameworkEvents

 

- + TOnIsWindowModalDialogEvent uCEFViewsFrameworkEvents

 

- + TOnJsdialog uCEFChromiumEvents

ICefJsDialogHandler

- + TOnKeyEvent uCEFChromiumEvents

 

- + TOnLayoutChangedEvent uCEFViewsFrameworkEvents

 

- + TOnLoadEnd uCEFChromiumEvents

 

- + TOnLoadError uCEFChromiumEvents

 

- + TOnLoadingProgressChange uCEFChromiumEvents

 

- + TOnLoadingStateChange uCEFChromiumEvents

 

- + TOnLoadStart uCEFChromiumEvents

ICefLoadHandler

- + TOnMainFrameChanged uCEFChromiumEvents

 

- + TOnMediaAccessChange uCEFChromiumEvents

 

- + TOnMediaRouteCreateFinishedEvent uCEFChromiumEvents

 

- + TOnMediaSinkDeviceInfoEvent uCEFChromiumEvents

 

- + TOnMenuButtonPressedEvent uCEFViewsFrameworkEvents

ICefMenuButtonDelegate

- + TOnNavigationVisitorResultAvailableEvent uCEFChromiumEvents

 

- + TOnOpenUrlFromTab uCEFChromiumEvents

 

- + TOnPaint uCEFChromiumEvents

 

- + TOnParentViewChangedEvent uCEFViewsFrameworkEvents

 

- + TOnPdfPrintFinishedEvent uCEFChromiumEvents

 

- + TOnPdfPrintFinishedProc uCEFInterfaces

 

- + TOnPopupBrowserViewCreatedEvent uCEFViewsFrameworkEvents

 

- + TOnPopupShow uCEFChromiumEvents

 

- + TOnPopupSize uCEFChromiumEvents

 

- + TOnPrefsAvailableEvent uCEFChromiumEvents

 

- + TOnPreKeyEvent uCEFChromiumEvents

ICefKeyboardHandler

- + TOnPrintDialogEvent uCEFChromiumEvents

 

- + TOnPrintJobEvent uCEFChromiumEvents

 

- + TOnPrintResetEvent uCEFChromiumEvents

 

- + TOnPrintSettingsEvent uCEFChromiumEvents

 

- + TOnPrintStartEvent uCEFChromiumEvents

ICefPrintHandler

- + TOnProcessMessageReceived uCEFChromiumEvents

ICefClient

- + TOnProcessMessageReceivedEvent uCEFApplicationEvents

 

- + TOnProtocolExecution uCEFChromiumEvents

 

- + TOnPulseEvent uCEFWorkSchedulerQueueThread

 

- + TOnQuickMenuCommandEvent uCEFChromiumEvents

 

- + TOnQuickMenuDismissedEvent uCEFChromiumEvents

 

- + TOnRegisterCustomPreferencesEvent uCEFApplicationEvents

ICefBrowserProcessHandler

- + TOnRegisterCustomSchemesEvent uCEFApplicationEvents

ICefApp

- + TOnRenderLoadEnd uCEFApplicationEvents

 

- + TOnRenderLoadError uCEFApplicationEvents

 

- + TOnRenderLoadingStateChange uCEFApplicationEvents

ICefLoadHandler

- + TOnRenderLoadStart uCEFApplicationEvents

 

- + TOnRenderProcessResponsive uCEFChromiumEvents

 

- + TOnRenderProcessTerminated uCEFChromiumEvents

 

- + TOnRenderProcessUnresponsive uCEFChromiumEvents

 

- + TOnRenderViewReady uCEFChromiumEvents

 

- + TOnRequestComplete uCEFUrlRequestClientEvents

 

- + TOnRequestContextInitialized uCEFChromiumEvents

ICefRequestContextHandler

- + TOnRequestMediaAccessPermissionEvent uCEFChromiumEvents

ICefPermissionHandler

- + TOnResetDialogState uCEFChromiumEvents

 

- + TOnResolvedIPsAvailableEvent uCEFChromiumEvents

 

- + TOnResourceLoadComplete uCEFChromiumEvents

 

- + TOnResourceRedirect uCEFChromiumEvents

 

- + TOnResourceResponse uCEFChromiumEvents

 

- + TOnRouteMessageReceivedEvent uCEFChromiumEvents

 

- + TOnRoutesEvent uCEFChromiumEvents

 

- + TOnRouteStateChangedEvent uCEFChromiumEvents

 

- + TOnRunContextMenu uCEFChromiumEvents

 

- + TOnRunQuickMenuEvent uCEFChromiumEvents

 

- + TOnScheduleMessagePumpWorkEvent uCEFApplicationEvents

 

- + TOnScrollOffsetChanged uCEFChromiumEvents

 

- + TOnSelectClientCertificate uCEFChromiumEvents

 

- + TOnServerCreated uCEFServerEvents

 

- + TOnServerDestroyed uCEFServerEvents

 

- + TOnSetFocus uCEFChromiumEvents

 

- + TOnShowPermissionPromptEvent uCEFChromiumEvents

 

- + TOnSinksEvent uCEFChromiumEvents

ICefRequestContextHandler uses the same TOnGetResourceRequestHandler event type defined for ICefRequestHandler ICefMediaObserver

- + TOnStartDragging uCEFChromiumEvents

 

- + TOnStatusMessage uCEFChromiumEvents

 

- + TOnTakeFocus uCEFChromiumEvents

ICefFocusHandler

- + TOnTextfieldKeyEventEvent uCEFViewsFrameworkEvents

ICefTextfieldDelegate

- + TOnTextResultAvailableEvent uCEFChromiumEvents

Custom

- + TOnTextSelectionChanged uCEFChromiumEvents

 

- + TOnThemeChangedEvent uCEFViewsFrameworkEvents

 

- + TOnThemeColorsChangedEvent uCEFViewsFrameworkEvents

 

- + TOnTitleChange uCEFChromiumEvents

 

- + TOnTooltip uCEFChromiumEvents

 

- + TOnTouchHandleStateChanged uCEFChromiumEvents

 

- + TOnUncaughtExceptionEvent uCEFApplicationEvents

 

- + TOnUpdateDragCursor uCEFChromiumEvents

 

- + TOnUploadProgress uCEFUrlRequestClientEvents

 

- + TOnUseFramelessWindowForPictureInPicture uCEFViewsFrameworkEvents

 

- + TOnVirtualKeyboardRequested uCEFChromiumEvents

 

- + TOnWebKitInitializedEvent uCEFApplicationEvents

ICefRenderProcessHandler

- + TOnWebSocketConnected uCEFServerEvents

 

- + TOnWebSocketMessage uCEFServerEvents

 

- + TOnWebSocketRequest uCEFServerEvents

 

- + TOnWindowActivationChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowBoundsChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowClosingEvent uCEFViewsFrameworkEvents

 

- + TOnWindowCreatedEvent uCEFViewsFrameworkEvents

ICefWindowDelegate

- + TOnWindowDestroyedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowFullscreenTransitionEvent uCEFViewsFrameworkEvents

 

- + TOnWindowKeyEventEvent uCEFViewsFrameworkEvents

 

- + TOnWithStandardWindowButtonsEvent uCEFViewsFrameworkEvents

 

- + TOnZoomPctAvailable uCEFChromiumEvents

 

- + TOsrBrowserWindow uCEFOsrBrowserWindow

TOsrBrowserWindow - Off-Screen-Rendering @@ -14054,432 +14116,432 @@ Ranges:

This component is still experimental. - On MacOS Keyboard support is not complete

- + TOSVersionInfoEx uCEFTypes

Record used with RtlGetVersion to get the Windows version information.

- + TPDFPrintOptions uCEFPDFPrintOptions

The TPDFPrintOptions properties are used to fill the TCefPdfPrintSettings record which is used in the TChromiumCore.PrintToPDF call.

- + TSentinelStatus uCEFSentinel

 

- + TSimulatedCefKeyEventType uCEFTypes

Event type used by TChromiumCore.SimulateKeyEvent

- + TT_AUTO_BOOKMARK uCEFConstants

User got to this page through a suggestion in the UI (for example, via the destinations page). Chrome style only.

- + TT_AUTO_SUBFRAME uCEFConstants

Source is a subframe navigation. This is any content that is automatically loaded in a non-toplevel frame. For example, if a page consists of several frames containing ads, those ad URLs will have this transition type. The user may not even realize the content in these pages is a separate frame, so may not care about the URL.

- + TT_AUTO_TOPLEVEL uCEFConstants

This is a toplevel navigation. This is any content that is automatically loaded in a toplevel frame. For example, opening a tab to show the ASH screen saver, opening the devtools window, opening the NTP after the safe browsing warning, opening web-based dialog boxes are examples of AUTO_TOPLEVEL navigations. Chrome style only.

- + TT_BLOCKED_FLAG uCEFConstants

Attempted to visit a URL but was blocked.

- + TT_CHAIN_END_FLAG uCEFConstants

The last transition in a redirect chain.

- + TT_CHAIN_START_FLAG uCEFConstants

The beginning of a navigation chain.

- + TT_CLIENT_REDIRECT_FLAG uCEFConstants

Redirects caused by JavaScript or a meta refresh tag on the page.

- + TT_DIRECT_LOAD_FLAG uCEFConstants

Loaded a URL directly via CreateBrowser, LoadURL or LoadRequest.

- + TT_EXPLICIT uCEFConstants

Source is some other "explicit" navigation. This is the default value for navigations where the actual type is unknown. See also TT_DIRECT_LOAD_FLAG.

- + TT_FORM_SUBMIT uCEFConstants

Source is a form submission by the user. NOTE: In some situations submitting a form does not result in this transition type. This can happen if the form uses a script to submit the contents.

- + TT_FORWARD_BACK_FLAG uCEFConstants

Used the Forward or Back function to navigate among browsing history. Will be ORed to the transition type for the original load.

- + TT_FROM_API_FLAG uCEFConstants

The transition originated from an external application; the exact definition of this is embedder dependent. Chrome style only.

- + TT_GENERATED uCEFConstants

User got to this page by typing in the URL bar and selecting an entry that did not look like a URL. For example, a match might have the URL of a Google search result page, but appear like "Search Google for ...". These are not quite the same as EXPLICIT navigations because the user didn't type or see the destination URL. Chrome style only. See also TT_KEYWORD.

- + TT_HOME_PAGE_FLAG uCEFConstants

User is navigating to the home page. Chrome style only.

- + TT_IS_REDIRECT_MASK uCEFConstants

Used to test whether a transition involves a redirect.

- + TT_KEYWORD uCEFConstants

The url was generated from a replaceable keyword other than the default search provider. If the user types a keyword (which also applies to tab-to-search) in the omnibox this qualifier is applied to the transition type of the generated url. TemplateURLModel then may generate an additional visit with a transition type of TT_KEYWORD_GENERATED against the url 'http://' + keyword. For example, if you do a tab-to-search against wikipedia the generated url has a transition qualifer of TT_KEYWORD, and TemplateURLModel generates a visit for 'wikipedia.org' with a transition type of TT_KEYWORD_GENERATED. Chrome style only.

- + TT_KEYWORD_GENERATED uCEFConstants

Corresponds to a visit generated for a keyword. See description of TT_KEYWORD for more details. Chrome style only.

- + TT_LINK uCEFConstants

Source is a link click or the JavaScript window.open function. This is also the default value for requests like sub-resource loads that are not navigations.

- + TT_MANUAL_SUBFRAME uCEFConstants

Source is a subframe navigation explicitly requested by the user that will generate new navigation entries in the back/forward list. These are probably more important than frames that were automatically loaded in the background because the user probably cares about the fact that this link was loaded.

- + TT_QUALIFIER_MASK uCEFConstants

General mask defining the bits used for the qualifiers.

- + TT_RELOAD uCEFConstants

Source is a "reload" of the page via the Reload function or by re-visiting the same URL. NOTE: This is distinct from the concept of whether a particular load uses "reload semantics" (i.e. bypasses cached data).

- + TT_SERVER_REDIRECT_FLAG uCEFConstants

Redirects sent from the server by HTTP headers.

- + TT_SOURCE_MASK uCEFConstants

General mask defining the bits used for the source values.

- + TUrlParts uCEFTypes

String version of TCefUrlParts

- + TValuesArray uCEFWorkSchedulerQueueThread

 

- + UInt64ToFileVersionInfo uCEFMiscFunctions

 

- + UnixTimeToCefTime uCEFMiscFunctions

Converts cef_time_t from time_t. time_t is almost always an integral value holding the number of seconds (not counting leap seconds) since 00:00, Jan 1 1970 UTC, corresponding to POSIX time.

- + UR_FLAG_ALLOW_STORED_CREDENTIALS uCEFConstants

If set user name, password, and cookies may be sent with the request, and cookies may be saved from the response.

- + UR_FLAG_DISABLE_CACHE uCEFConstants

If set the cache will not be used at all. Setting this value is equivalent to specifying the "Cache-Control: no-store" request header. Setting this value in combination with UR_FLAG_ONLY_FROM_CACHE will cause the request to fail.

- + UR_FLAG_NONE uCEFConstants

Default behavior.

- + UR_FLAG_NO_DOWNLOAD_DATA uCEFConstants

If set the ICefURLRequestClient.OnDownloadData method will not be called.

- + UR_FLAG_NO_RETRY_ON_5XX uCEFConstants

If set 5XX redirect errors will be propagated to the observer instead of automatically re-tried. This currently only applies for requests originated in the browser process.

- + UR_FLAG_ONLY_FROM_CACHE uCEFConstants

If set the request will fail if it cannot be served from the cache (or some equivalent local store). Setting this value is equivalent to specifying the "Cache-Control: only-if-cached" request header. Setting this value in combination with UR_FLAG_SKIP_CACHE or UR_FLAG_DISABLE_CACHE will cause the request to fail.

- + UR_FLAG_REPORT_UPLOAD_PROGRESS uCEFConstants

If set upload progress events will be generated when a request has a body.

- + UR_FLAG_SKIP_CACHE uCEFConstants

If set the cache will be skipped when handling the request. Setting this value is equivalent to specifying the "Cache-Control: no-cache" request header. Setting this value in combination with UR_FLAG_ONLY_FROM_CACHE will cause the request to fail.

- + UR_FLAG_STOP_ON_REDIRECT uCEFConstants

If set 3XX responses will cause the fetch to halt immediately rather than continue through the redirect.

- + User32DLL uCEFMiscFunctions

 

- + USER_DEFAULT_SCREEN_DPI uCEFConstants

 

- + ustring uCEFTypes

String type used by CEF. ustring was created to use the same type in Delphi and Lazarus.

- + UU_NONE uCEFConstants

Don't unescape anything at all.

- + UU_NORMAL uCEFConstants

Don't unescape anything special, but all normal unescaping will happen. This is a placeholder and can't be combined with other flags (since it's just the absence of them). All other unescape rules imply "normal" in addition to their special meaning. Things like escaped letters, digits, and most symbols will get unescaped with this mode.

- + UU_PATH_SEPARATORS uCEFConstants

Unescapes '/' and '\\'. If these characters were unescaped, the resulting URL won't be the same as the source one. Moreover, they are dangerous to unescape in strings that will be used as file paths or names. This value should only be used when slashes don't have special meaning, like data URLs.

- + UU_REPLACE_PLUS_WITH_SPACE uCEFConstants

URL queries use "+" for space. This flag controls that replacement.

- + UU_SPACES uCEFConstants

Convert %20 to spaces. In some places where we're showing URLs, we may want this. In places where the URL may be copied and pasted out, then you wouldn't want this since it might not be interpreted in one piece by other applications.

- + UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS uCEFConstants

Unescapes various characters that will change the meaning of URLs, including '%', '+', '&', '#'. Does not unescape path separators. If these characters were unescaped, the resulting URL won't be the same as the source one. This flag is used when generating final output like filenames for URLs where we won't be interpreting as a URL and want to do as much unescaping as possible.

- + V8_PROPERTY_ATTRIBUTE_DONTDELETE uCEFConstants

Not configurable

- + V8_PROPERTY_ATTRIBUTE_DONTENUM uCEFConstants

Not enumerable

- + V8_PROPERTY_ATTRIBUTE_NONE uCEFConstants

Writeable, Enumerable, Configurable

- + V8_PROPERTY_ATTRIBUTE_READONLY uCEFConstants

Not writeable

- + ValidCefWindowHandle uCEFMiscFunctions

 

- + WindowInfoAsChild uCEFMiscFunctions

 

- + WindowInfoAsPopUp uCEFMiscFunctions

 

- + WindowInfoAsWindowless uCEFMiscFunctions

 

- + WM_POINTERDOWN uCEFConstants

 

- + WM_POINTERUP uCEFConstants

 

- + WM_POINTERUPDATE uCEFConstants

 

- + WM_TOUCH uCEFConstants

Lazarus and some old Delphi versions don't have these message contants

- + YOUTUBE_RESTRICT_MODERATE uCEFConstants

 

- + YOUTUBE_RESTRICT_OFF uCEFConstants

delay in ms to enable the browser focus <summary> YouTube restrict mode. </summary> <remarks> <para><see href="https://chromium.googlesource.com/chromium/src/+/refs/tags/77.0.3865.90/chrome/common/net/safe_search_util.h">Chromium source file: /chrome/common/net/safe_search_util.h (YouTubeRestrictMode)</see></para> <para><see href="https://www.chromium.org/administrators/policy-list-3#ForceYouTubeRestrict">Chromium policy list: https://www.chromium.org/administrators/policy-list-3#ForceYouTubeRestrict</see></para> </remarks>

- + YOUTUBE_RESTRICT_STRICT uCEFConstants

 

- + ZoomStepValues uCEFConstants

 

- + ZOOM_PCT_DELTA uCEFConstants

 

- + ZOOM_STEP_100 uCEFConstants

 

- + ZOOM_STEP_110 uCEFConstants

 

- + ZOOM_STEP_125 uCEFConstants

 

- + ZOOM_STEP_150 uCEFConstants

 

- + ZOOM_STEP_175 uCEFConstants

 

- + ZOOM_STEP_200 uCEFConstants

 

- + ZOOM_STEP_25 uCEFConstants

 

- + ZOOM_STEP_250 uCEFConstants

 

- + ZOOM_STEP_300 uCEFConstants

 

- + ZOOM_STEP_33 uCEFConstants

 

- + ZOOM_STEP_400 uCEFConstants

 

- + ZOOM_STEP_50 uCEFConstants

 

- + ZOOM_STEP_500 uCEFConstants

 

- + ZOOM_STEP_67 uCEFConstants

 

- + ZOOM_STEP_75 uCEFConstants

 

- + ZOOM_STEP_90 uCEFConstants

 

- + ZOOM_STEP_DEF uCEFConstants

 

- + ZOOM_STEP_MAX uCEFConstants

 

- + ZOOM_STEP_MIN uCEFConstants

 

- + ZOOM_STEP_UNK uCEFConstants

 

diff --git a/docs/html/AllTypes.html b/docs/html/AllTypes.html index f7dbb658..cb10eacb 100644 --- a/docs/html/AllTypes.html +++ b/docs/html/AllTypes.html @@ -2458,736 +2458,741 @@ Ranges:

ICefFrameHandler

+TOnFrameDestroyed +uCEFChromiumEvents +

 

+ + TOnFrameDetached uCEFChromiumEvents

 

- + TOnFullScreenModeChange uCEFChromiumEvents

 

- + TOnGestureCommandEvent uCEFViewsFrameworkEvents

 

- + TOnGetAccessibilityHandler uCEFChromiumEvents

ICefRenderHandler

- + TOnGetAudioParametersEvent uCEFChromiumEvents

ICefAudioHandler

- + TOnGetAuthCredentials uCEFChromiumEvents

 

- + TOnGetAuthCredentials uCEFUrlRequestClientEvents

 

- + TOnGetBrowserRuntimeStyleEvent uCEFViewsFrameworkEvents

 

- + TOnGetChromeToolbarTypeEvent uCEFViewsFrameworkEvents

 

- + TOnGetDataResourceEvent uCEFApplicationEvents

 

- + TOnGetDataResourceForScaleEvent uCEFApplicationEvents

 

- + TOnGetDefaultClientEvent uCEFApplicationEvents

 

- + TOnGetDefaultRequestContextHandlerEvent uCEFApplicationEvents

 

- + TOnGetDelegateForPopupBrowserViewEvent uCEFViewsFrameworkEvents

 

- + TOnGetHeightForWidthEvent uCEFViewsFrameworkEvents

 

- + TOnGetInitialBoundsEvent uCEFViewsFrameworkEvents

 

- + TOnGetInitialShowStateEvent uCEFViewsFrameworkEvents

 

- + TOnGetLinuxWindowPropertiesEvent uCEFViewsFrameworkEvents

 

- + TOnGetLocalizedStringEvent uCEFApplicationEvents

ICefResourceBundleHandler

- + TOnGetMaximumSizeEvent uCEFViewsFrameworkEvents

 

- + TOnGetMinimumSizeEvent uCEFViewsFrameworkEvents

 

- + TOnGetParentWindowEvent uCEFViewsFrameworkEvents

 

- + TOnGetPDFPaperSizeEvent uCEFChromiumEvents

 

- + TOnGetPreferredSizeEvent uCEFViewsFrameworkEvents

ICefViewDelegate

- + TOnGetResourceHandler uCEFChromiumEvents

 

- + TOnGetResourceRequestHandler uCEFChromiumEvents

 

- + TOnGetResourceResponseFilter uCEFChromiumEvents

 

- + TOnGetRootScreenRect uCEFChromiumEvents

 

- + TOnGetScreenInfo uCEFChromiumEvents

 

- + TOnGetScreenPoint uCEFChromiumEvents

 

- + TOnGetTitlebarHeightEvent uCEFViewsFrameworkEvents

 

- + TOnGetTouchHandleSize uCEFChromiumEvents

 

- + TOnGetViewRect uCEFChromiumEvents

 

- + TOnGetWindowRuntimeStyleEvent uCEFViewsFrameworkEvents

 

- + TOnGotFocus uCEFChromiumEvents

 

- + TOnHandledMessageEvent uCEFBufferPanel

 

- + TOnHttpRequest uCEFServerEvents

 

- + TOnIMECommitTextEvent uCEFBufferPanel

 

- + TOnIMECompositionRangeChanged uCEFChromiumEvents

 

- + TOnIMESetCompositionEvent uCEFBufferPanel

 

- + TOnInitFilterEvent uCEFResponseFilter

 

- + TOnIsChromeAppMenuItemEnabledEvent uCEFChromiumEvents

 

- + TOnIsChromeAppMenuItemVisibleEvent uCEFChromiumEvents

 

- + TOnIsChromePageActionIconVisibleEvent uCEFChromiumEvents

 

- + TOnIsChromeToolbarButtonVisibleEvent uCEFChromiumEvents

 

- + TOnIsFramelessEvent uCEFViewsFrameworkEvents

 

- + TOnIsWindowModalDialogEvent uCEFViewsFrameworkEvents

 

- + TOnJsdialog uCEFChromiumEvents

ICefJsDialogHandler

- + TOnKeyEvent uCEFChromiumEvents

 

- + TOnLayoutChangedEvent uCEFViewsFrameworkEvents

 

- + TOnLoadEnd uCEFChromiumEvents

 

- + TOnLoadError uCEFChromiumEvents

 

- + TOnLoadingProgressChange uCEFChromiumEvents

 

- + TOnLoadingStateChange uCEFChromiumEvents

 

- + TOnLoadStart uCEFChromiumEvents

ICefLoadHandler

- + TOnMainFrameChanged uCEFChromiumEvents

 

- + TOnMediaAccessChange uCEFChromiumEvents

 

- + TOnMediaRouteCreateFinishedEvent uCEFChromiumEvents

 

- + TOnMediaSinkDeviceInfoEvent uCEFChromiumEvents

 

- + TOnMenuButtonPressedEvent uCEFViewsFrameworkEvents

ICefMenuButtonDelegate

- + TOnNavigationVisitorResultAvailableEvent uCEFChromiumEvents

 

- + TOnOpenUrlFromTab uCEFChromiumEvents

 

- + TOnPaint uCEFChromiumEvents

 

- + TOnParentViewChangedEvent uCEFViewsFrameworkEvents

 

- + TOnPdfPrintFinishedEvent uCEFChromiumEvents

 

- + TOnPdfPrintFinishedProc uCEFInterfaces

 

- + TOnPopupBrowserViewCreatedEvent uCEFViewsFrameworkEvents

 

- + TOnPopupShow uCEFChromiumEvents

 

- + TOnPopupSize uCEFChromiumEvents

 

- + TOnPrefsAvailableEvent uCEFChromiumEvents

 

- + TOnPreKeyEvent uCEFChromiumEvents

ICefKeyboardHandler

- + TOnPrintDialogEvent uCEFChromiumEvents

 

- + TOnPrintJobEvent uCEFChromiumEvents

 

- + TOnPrintResetEvent uCEFChromiumEvents

 

- + TOnPrintSettingsEvent uCEFChromiumEvents

 

- + TOnPrintStartEvent uCEFChromiumEvents

ICefPrintHandler

- + TOnProcessMessageReceived uCEFChromiumEvents

ICefClient

- + TOnProcessMessageReceivedEvent uCEFApplicationEvents

 

- + TOnProtocolExecution uCEFChromiumEvents

 

- + TOnPulseEvent uCEFWorkSchedulerQueueThread

 

- + TOnQuickMenuCommandEvent uCEFChromiumEvents

 

- + TOnQuickMenuDismissedEvent uCEFChromiumEvents

 

- + TOnRegisterCustomPreferencesEvent uCEFApplicationEvents

ICefBrowserProcessHandler

- + TOnRegisterCustomSchemesEvent uCEFApplicationEvents

ICefApp

- + TOnRenderLoadEnd uCEFApplicationEvents

 

- + TOnRenderLoadError uCEFApplicationEvents

 

- + TOnRenderLoadingStateChange uCEFApplicationEvents

ICefLoadHandler

- + TOnRenderLoadStart uCEFApplicationEvents

 

- + TOnRenderProcessResponsive uCEFChromiumEvents

 

- + TOnRenderProcessTerminated uCEFChromiumEvents

 

- + TOnRenderProcessUnresponsive uCEFChromiumEvents

 

- + TOnRenderViewReady uCEFChromiumEvents

 

- + TOnRequestComplete uCEFUrlRequestClientEvents

 

- + TOnRequestContextInitialized uCEFChromiumEvents

ICefRequestContextHandler

- + TOnRequestMediaAccessPermissionEvent uCEFChromiumEvents

ICefPermissionHandler

- + TOnResetDialogState uCEFChromiumEvents

 

- + TOnResolvedIPsAvailableEvent uCEFChromiumEvents

 

- + TOnResourceLoadComplete uCEFChromiumEvents

 

- + TOnResourceRedirect uCEFChromiumEvents

 

- + TOnResourceResponse uCEFChromiumEvents

 

- + TOnRouteMessageReceivedEvent uCEFChromiumEvents

 

- + TOnRoutesEvent uCEFChromiumEvents

 

- + TOnRouteStateChangedEvent uCEFChromiumEvents

 

- + TOnRunContextMenu uCEFChromiumEvents

 

- + TOnRunQuickMenuEvent uCEFChromiumEvents

 

- + TOnScheduleMessagePumpWorkEvent uCEFApplicationEvents

 

- + TOnScrollOffsetChanged uCEFChromiumEvents

 

- + TOnSelectClientCertificate uCEFChromiumEvents

 

- + TOnServerCreated uCEFServerEvents

 

- + TOnServerDestroyed uCEFServerEvents

 

- + TOnSetFocus uCEFChromiumEvents

 

- + TOnShowPermissionPromptEvent uCEFChromiumEvents

 

- + TOnSinksEvent uCEFChromiumEvents

ICefRequestContextHandler uses the same TOnGetResourceRequestHandler event type defined for ICefRequestHandler ICefMediaObserver

- + TOnStartDragging uCEFChromiumEvents

 

- + TOnStatusMessage uCEFChromiumEvents

 

- + TOnTakeFocus uCEFChromiumEvents

ICefFocusHandler

- + TOnTextfieldKeyEventEvent uCEFViewsFrameworkEvents

ICefTextfieldDelegate

- + TOnTextResultAvailableEvent uCEFChromiumEvents

Custom

- + TOnTextSelectionChanged uCEFChromiumEvents

 

- + TOnThemeChangedEvent uCEFViewsFrameworkEvents

 

- + TOnThemeColorsChangedEvent uCEFViewsFrameworkEvents

 

- + TOnTitleChange uCEFChromiumEvents

 

- + TOnTooltip uCEFChromiumEvents

 

- + TOnTouchHandleStateChanged uCEFChromiumEvents

 

- + TOnUncaughtExceptionEvent uCEFApplicationEvents

 

- + TOnUpdateDragCursor uCEFChromiumEvents

 

- + TOnUploadProgress uCEFUrlRequestClientEvents

 

- + TOnUseFramelessWindowForPictureInPicture uCEFViewsFrameworkEvents

 

- + TOnVirtualKeyboardRequested uCEFChromiumEvents

 

- + TOnWebKitInitializedEvent uCEFApplicationEvents

ICefRenderProcessHandler

- + TOnWebSocketConnected uCEFServerEvents

 

- + TOnWebSocketMessage uCEFServerEvents

 

- + TOnWebSocketRequest uCEFServerEvents

 

- + TOnWindowActivationChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowBoundsChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowChangedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowClosingEvent uCEFViewsFrameworkEvents

 

- + TOnWindowCreatedEvent uCEFViewsFrameworkEvents

ICefWindowDelegate

- + TOnWindowDestroyedEvent uCEFViewsFrameworkEvents

 

- + TOnWindowFullscreenTransitionEvent uCEFViewsFrameworkEvents

 

- + TOnWindowKeyEventEvent uCEFViewsFrameworkEvents

 

- + TOnWithStandardWindowButtonsEvent uCEFViewsFrameworkEvents

 

- + TOnZoomPctAvailable uCEFChromiumEvents

 

- + TSentinelStatus uCEFSentinel

 

- + TSimulatedCefKeyEventType uCEFTypes

Event type used by TChromiumCore.SimulateKeyEvent

- + TValuesArray uCEFWorkSchedulerQueueThread

 

- + ustring uCEFTypes

String type used by CEF. ustring was created to use the same type in Delphi and Lazarus.

diff --git a/docs/html/cef4delphi.hhc b/docs/html/cef4delphi.hhc index 610af84f..b811b87f 100644 --- a/docs/html/cef4delphi.hhc +++ b/docs/html/cef4delphi.hhc @@ -3652,20 +3652,16 @@
  • - - + +
  • - - + +
  • - - - -
  • - - + +
  • @@ -6486,6 +6482,10 @@
  • + + + +
  • @@ -7528,6 +7528,10 @@
  • + + + +
  • @@ -8590,6 +8594,10 @@
  • + + + +
  • @@ -9988,6 +9996,10 @@
  • + + + +
  • @@ -19468,6 +19480,10 @@
  • + + + +
  • @@ -19514,6 +19530,10 @@
  • + + + +
  • @@ -20470,6 +20490,10 @@
  • + + + +
  • @@ -22130,6 +22154,10 @@
  • + + + +
  • @@ -47194,6 +47222,10 @@
  • + + + +
  • @@ -58848,6 +58880,10 @@
  • + + + +
  • @@ -65010,6 +65046,10 @@
  • + + + +
  • @@ -69216,16 +69256,12 @@
  • - - + +
  • - - - -
  • - - + +
  • @@ -69236,8 +69272,8 @@
  • - - + +
  • @@ -76322,6 +76358,10 @@
  • + + + +
  • @@ -76354,6 +76394,10 @@
  • + + + +
  • @@ -93160,6 +93204,10 @@
  • + + + +
  • @@ -94114,6 +94162,10 @@
  • + + + +
  • @@ -95904,6 +95956,10 @@
  • + + + +
  • @@ -98144,6 +98200,10 @@
  • + + + +
  • diff --git a/docs/html/cef4delphi.hhk b/docs/html/cef4delphi.hhk index 5705ed75..8a033a6c 100644 --- a/docs/html/cef4delphi.hhk +++ b/docs/html/cef4delphi.hhk @@ -114,16 +114,16 @@
  • - +
  • @@ -2516,12 +2516,12 @@
  • - +
  • @@ -5634,16 +5634,16 @@
  • - +
  • @@ -6283,6 +6283,10 @@
  • + + + +
  • @@ -11215,6 +11219,10 @@
  • + + + +
  • @@ -13346,16 +13354,16 @@
  • - +
  • @@ -18203,8 +18211,8 @@
  • - - + +
  • @@ -18215,10 +18223,6 @@
  • - - - -
  • @@ -18239,8 +18243,8 @@
  • - - + +
  • @@ -18263,8 +18267,8 @@
  • - - + +
  • @@ -22454,16 +22458,16 @@
  • - +
  • @@ -24223,6 +24227,10 @@
  • + + + +
  • @@ -24247,6 +24255,10 @@
  • + + + +
  • @@ -24708,12 +24720,12 @@
  • - +
  • @@ -38652,16 +38664,16 @@
  • - +
  • @@ -38700,16 +38712,16 @@
  • - +
  • @@ -38746,16 +38758,16 @@
  • - +
  • @@ -39103,6 +39115,10 @@
  • + + + +
  • @@ -39993,6 +40009,10 @@
  • + + + +
  • @@ -40830,16 +40850,16 @@
  • - +
  • @@ -41231,6 +41251,10 @@
  • + + + +
  • @@ -41692,30 +41716,30 @@
  • - +
  • - +
  • @@ -42087,16 +42111,16 @@
  • + + +
  • +
  • -
  • - - -
  • @@ -43547,6 +43571,10 @@
  • + + + +
  • @@ -44632,21 +44660,21 @@
  • - +
  • @@ -44964,16 +44992,16 @@
  • - +
  • @@ -45885,6 +45913,10 @@
  • + + + +
  • diff --git a/docs/html/uCEFApplicationCore.html b/docs/html/uCEFApplicationCore.html index 144311a8..4f784d72 100644 --- a/docs/html/uCEFApplicationCore.html +++ b/docs/html/uCEFApplicationCore.html @@ -40,10 +40,10 @@ CEF_SUPPORTED_VERSION_MAJOR = 131; -CEF_SUPPORTED_VERSION_MINOR = 2; +CEF_SUPPORTED_VERSION_MINOR = 3; -CEF_SUPPORTED_VERSION_RELEASE = 2; +CEF_SUPPORTED_VERSION_RELEASE = 1; CEF_SUPPORTED_VERSION_BUILD = 0; @@ -58,7 +58,7 @@ CEF_CHROMEELF_VERSION_RELEASE = 6778; -CEF_CHROMEELF_VERSION_BUILD = 70; +CEF_CHROMEELF_VERSION_BUILD = 109; LIBCEF_DLL = 'libcef.dll'; @@ -101,14 +101,14 @@ - +
    CEF_SUPPORTED_VERSION_MINOR = 2;CEF_SUPPORTED_VERSION_MINOR = 3;

    This item has no description.

    - + @@ -143,7 +143,7 @@
    CEF_SUPPORTED_VERSION_RELEASE = 2;CEF_SUPPORTED_VERSION_RELEASE = 1;

    This item has no description.

    - + diff --git a/docs/html/uCEFBrowserBitmap.TCEFBrowserBitmap.html b/docs/html/uCEFBrowserBitmap.TCEFBrowserBitmap.html index 567cfa3b..d4c891bf 100644 --- a/docs/html/uCEFBrowserBitmap.TCEFBrowserBitmap.html +++ b/docs/html/uCEFBrowserBitmap.TCEFBrowserBitmap.html @@ -60,22 +60,18 @@ - + - + - + - - - -
    CEF_CHROMEELF_VERSION_BUILD = 70;CEF_CHROMEELF_VERSION_BUILD = 109;

    This item has no description.

    Publicfunction BeginBufferDraw: boolean;function BeginDraw: boolean;
    Publicprocedure EndBufferDraw;procedure EndDraw;
    Publicfunction UpdateBufferDimensions(aWidth, aHeight : integer) : boolean;function UpdateDimensions(aWidth, aHeight : integer) : boolean;
    Publicfunction BufferIsResized(aUseMutex : boolean = True) : boolean;
    Public procedure BufferDraw(const aBitmap : TBitmap; const aSrcRect, aDstRect : TRect);
    @@ -164,7 +160,7 @@ - + @@ -172,7 +168,7 @@
    Publicfunction BeginBufferDraw: boolean;function BeginDraw: boolean;

    This item has no description.

    - + @@ -180,15 +176,7 @@
    Publicprocedure EndBufferDraw;procedure EndDraw;

    This item has no description.

    - - - -
    Publicfunction UpdateBufferDimensions(aWidth, aHeight : integer) : boolean;
    -

    This item has no description.

    - - - - + diff --git a/docs/html/uCEFChromiumCore.TChromiumCore.html b/docs/html/uCEFChromiumCore.TChromiumCore.html index 730f1c7d..12e9ad70 100644 --- a/docs/html/uCEFChromiumCore.TChromiumCore.html +++ b/docs/html/uCEFChromiumCore.TChromiumCore.html @@ -777,133 +777,137 @@ - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1924,801 +1928,805 @@ - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3631,45 +3639,49 @@ - + + + + + - + - + - + - + - + - + - + - + - + @@ -5219,6 +5231,14 @@ ICefFrameHandler

    Publicfunction BufferIsResized(aUseMutex : boolean = True) : boolean;function UpdateDimensions(aWidth, aHeight : integer) : boolean;

    This item has no description.

    ProtectedFOnFrameAttached: TOnFrameAttached;FOnFrameDestroyed: TOnFrameDestroyed;
    ProtectedFOnFrameAttached: TOnFrameAttached;
    Protected FOnFrameDetached: TOnFrameDetached;
    Protected FOnMainFrameChanged: TOnMainFrameChanged;
    Protected FOnChromeCommand: TOnChromeCommandEvent;
    Protected FOnIsChromeAppMenuItemVisible: TOnIsChromeAppMenuItemVisibleEvent;
    Protected FOnIsChromeAppMenuItemEnabled: TOnIsChromeAppMenuItemEnabledEvent;
    Protected FOnIsChromePageActionIconVisible: TOnIsChromePageActionIconVisibleEvent;
    Protected FOnIsChromeToolbarButtonVisible: TOnIsChromeToolbarButtonVisibleEvent;
    Protected FOnRequestMediaAccessPermission: TOnRequestMediaAccessPermissionEvent;
    Protected FOnShowPermissionPrompt: TOnShowPermissionPromptEvent;
    Protected FOnDismissPermissionPrompt: TOnDismissPermissionPromptEvent;
    Protected FOnTextResultAvailable: TOnTextResultAvailableEvent;
    Protected FOnPdfPrintFinished: TOnPdfPrintFinishedEvent;
    Protected FOnPrefsAvailable: TOnPrefsAvailableEvent;
    Protected FOnPrefsUpdated: TNotifyEvent;
    Protected FOnCookiesDeleted: TOnCookiesDeletedEvent;
    Protected FOnResolvedHostAvailable: TOnResolvedIPsAvailableEvent;
    Protected FOnNavigationVisitorResultAvailable: TOnNavigationVisitorResultAvailableEvent;
    Protected FOnDownloadImageFinished: TOnDownloadImageFinishedEvent;
    Protected FOnCookiesFlushed: TNotifyEvent;
    Protected FOnCertificateExceptionsCleared: TNotifyEvent;
    Protected FOnHttpAuthCredentialsCleared: TNotifyEvent;
    Protected FOnAllConnectionsClosed: TNotifyEvent;
    Protected FOnExecuteTaskOnCefThread: TOnExecuteTaskOnCefThread;
    Protected FOnCookiesVisited: TOnCookiesVisited;
    Protected FOnCookieVisitorDestroyed: TOnCookieVisitorDestroyed;
    Protected FOnCookieSet: TOnCookieSet;
    Protected FOnZoomPctAvailable: TOnZoomPctAvailable;
    Protected FOnMediaRouteCreateFinished: TOnMediaRouteCreateFinishedEvent;
    Protected FOnMediaSinkDeviceInfo: TOnMediaSinkDeviceInfoEvent;
    Protected FOnCanFocus: TNotifyEvent;
    Protected FOnBrowserCompMsg: TOnCompMsgEvent;
    Protected FOnRenderCompMsg: TOnCompMsgEvent;
    Protectedprocedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);procedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    Protectedprocedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);
    Protected procedure doOnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame);
    Protected procedure doOnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame);
    Protected function doOnChromeCommand(const browser: ICefBrowser; command_id: integer; disposition: TCefWindowOpenDisposition): boolean;
    Protected function doOnIsChromeAppMenuItemVisible(const browser: ICefBrowser; command_id: integer): boolean;
    Protected function doOnIsChromeAppMenuItemEnabled(const browser: ICefBrowser; command_id: integer): boolean;
    Protected function doOnIsChromePageActionIconVisible(icon_type: TCefChromePageActionIconType): boolean;
    Protected function doOnIsChromeToolbarButtonVisible(button_type: TCefChromeToolbarButtonType): boolean;
    Protected function doOnRequestMediaAccessPermission(const browser: ICefBrowser; const frame: ICefFrame; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefMediaAccessCallback): boolean;
    Protected function doOnShowPermissionPrompt(const browser: ICefBrowser; prompt_id: uint64; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefPermissionPromptCallback): boolean;
    Protected procedure doOnDismissPermissionPrompt(const browser: ICefBrowser; prompt_id: uint64; result: TCefPermissionRequestResult);
    Protected procedure GetSettings(var aSettings : TCefBrowserSettings);
    Protected procedure doCookiesDeleted(numDeleted : integer); virtual;
    Protected procedure doPdfPrintFinished(aResultOK : boolean); virtual;
    Protected procedure doTextResultAvailable(const aText : ustring); virtual;
    Protected procedure doUpdatePreferences(const aBrowser: ICefBrowser); virtual;
    Protected procedure doUpdateOwnPreferences; virtual;
    Protected function doSavePreferences: boolean; virtual;
    Protected procedure doResolvedHostAvailable(result: TCefErrorCode; const resolvedIps: TStrings); virtual;
    Protected function doNavigationVisitorResultAvailable(const entry: ICefNavigationEntry; current: Boolean; index, total: Integer) : boolean; virtual;
    Protected procedure doDownloadImageFinished(const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage); virtual;
    Protected procedure doOnCookiesStoreFlushed; virtual;
    Protected procedure doCertificateExceptionsCleared; virtual;
    Protected procedure doHttpAuthCredentialsCleared; virtual;
    Protected procedure doAllConnectionsClosed; virtual;
    Protected procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal); virtual;
    Protected procedure doOnCookiesVisited(const name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total, aID : Integer; same_site : TCefCookieSameSite; priority : TCefCookiePriority; var aDeleteCookie, aResult : Boolean); virtual;
    Protected procedure doOnCookieVisitorDestroyed(aID : integer); virtual;
    Protected procedure doOnCookieSet(aSuccess : boolean; aID : integer); virtual;
    Protected procedure doUpdateZoomStep(aInc : boolean); virtual;
    Protected procedure doUpdateZoomPct(aInc : boolean); virtual;
    Protected procedure doReadZoom; virtual;
    Protected procedure doSetZoomLevel(const aValue : double); virtual;
    Protected procedure doSetZoomPct(const aValue : double); virtual;
    Protected procedure doSetZoomStep(aValue : byte); virtual;
    Protected procedure doMediaRouteCreateFinished(result: TCefMediaRouterCreateResult; const error: ustring; const route: ICefMediaRoute); virtual;
    Protected procedure doOnMediaSinkDeviceInfo(const ip_address: ustring; port: integer; const model_name: ustring); virtual;
    Protected procedure doBrowserNavigation(aTask : TCefBrowserNavigation); virtual;
    Protected procedure doSetAudioMuted(aValue : boolean); virtual;
    Protected procedure doToggleAudioMuted; virtual;
    Protected procedure doEnableFocus; virtual;
    Protected function doTryCloseBrowser: boolean; virtual;
    Protected function MustCreateAudioHandler: boolean; virtual;
    Protected function MustCreateCommandHandler: boolean; virtual;
    Protected function MustCreateDevToolsMessageObserver: boolean; virtual;
    Protected function MustCreateLoadHandler: boolean; virtual;
    Protected function MustCreateFocusHandler: boolean; virtual;
    Protected function MustCreateContextMenuHandler: boolean; virtual;
    Protected function MustCreateDialogHandler: boolean; virtual;
    Protected function MustCreateKeyboardHandler: boolean; virtual;
    Protected function MustCreateDisplayHandler: boolean; virtual;
    Protected function MustCreateDownloadHandler: boolean; virtual;
    Protected function MustCreateJsDialogHandler: boolean; virtual;
    Protected function MustCreateLifeSpanHandler: boolean; virtual;
    Protected function MustCreateRenderHandler: boolean; virtual;
    Protected function MustCreateRequestHandler: boolean; virtual;
    Protected function MustCreateDragHandler: boolean; virtual;
    Protected function MustCreateFindHandler: boolean; virtual;
    Protected function MustCreateResourceRequestHandler: boolean; virtual;
    Protected function MustCreateCookieAccessFilter: boolean; virtual;
    Protected function MustCreateMediaObserver: boolean; virtual;
    Protected function MustCreatePrintHandler: boolean; virtual;
    Protected function MustCreateFrameHandler: boolean; virtual;
    Protected function MustCreatePermissionHandler: boolean; virtual;
    Public constructor Create(AOwner: TComponent); override;
    Public destructor Destroy; override;
    Public procedure AfterConstruction; override;
    Public procedure BeforeDestruction; override;
    Public function CreateClientHandler(aIsOSR : boolean = True) : boolean; overload;
    Public function CreateClientHandler(var aClient : ICefClient; aIsOSR : boolean = True) : boolean; overload;
    Public procedure CloseBrowser(aForceClose : boolean);
    Public procedure CloseAllBrowsers;
    Public function TryCloseBrowser: boolean;
    Public function IsReadyToBeClosed: boolean;
    Public function SelectBrowser(aID : integer) : boolean;
    Public function IndexOfBrowserID(aID : integer) : integer;
    Public function ShareRequestContext(var aContext : ICefRequestContext; const aHandler : ICefRequestContextHandler = nil) : boolean;
    Public procedure InitializeDragAndDrop(const aDropTargetWnd : HWND);
    Public procedure ShutdownDragAndDrop;
    Public function SetNewBrowserParent(aNewParentHwnd : HWND) : boolean;
    Public function CreateBrowser(aParentHandle : TCefWindowHandle; aParentRect : TRect; const aWindowName : ustring = ''; const aContext : ICefRequestContext = nil; const aExtraInfo : ICefDictionaryValue = nil; aForceAsPopup : boolean = False) : boolean; overload; virtual;
    Public function CreateBrowser(const aURL : ustring; const aBrowserViewComp : TCEFBrowserViewComponent; const aContext : ICefRequestContext = nil; const aExtraInfo : ICefDictionaryValue = nil) : boolean; overload; virtual;
    Public procedure LoadURL(const aURL : ustring; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure LoadURL(const aURL : ustring; const aFrame : ICefFrame); overload;
    Public procedure LoadString(const aHTML : ustring; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure LoadString(const aHTML : ustring; const aFrame : ICefFrame); overload;
    Public procedure LoadResource(const aStream : TCustomMemoryStream; const aMimeType, aCharset : string; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure LoadResource(const aStream : TCustomMemoryStream; const aMimeType, aCharset : string; const aFrame : ICefFrame); overload;
    Public procedure LoadRequest(const aRequest: ICefRequest);
    Public procedure GoBack;
    Public procedure GoForward;
    Public procedure Reload;
    Public procedure ReloadIgnoreCache;
    Public procedure StopLoad;
    Public procedure StartDownload(const aURL : ustring);
    Public procedure DownloadImage(const imageUrl: ustring; isFavicon: Boolean; maxImageSize: cardinal; bypassCache: Boolean);
    Public procedure SimulateMouseWheel(aDeltaX, aDeltaY : integer);
    Public procedure SimulateKeyEvent(type_: TSimulatedCefKeyEventType; modifiers: integer = CEF_MOUSETOUCH_EVENT_MODIFIERS_NONE; timestamp: single = 0; const text: ustring = ''; const unmodifiedtext: ustring = ''; const keyIdentifier: ustring = ''; const code: ustring = ''; const key: ustring = ''; windowsVirtualKeyCode: integer = 0; nativeVirtualKeyCode: integer = 0; autoRepeat: boolean = False; isKeypad: boolean = False; isSystemKey: boolean = False; location: TCefKeyLocation = CEF_KEYLOCATION_NONE; commands: TCefEditingCommand = ecNone);
    Public procedure SimulateMouseEvent(type_: TCefSimulatedMouseEventType; x, y: single; modifiers: integer = CEF_MOUSETOUCH_EVENT_MODIFIERS_NONE; timestamp: single = 0; button: TCefSimulatedMouseButton = CEF_SIMULATEDMOUSEBUTTON_NONE; buttons: integer = CEF_PRESSED_MOUSE_BUTTONS_NONE; clickCount: integer = 0; force: single = 0; tangentialPressure: single = 0; tiltX: single = 0; tiltY: single = 0; twist: integer = 0; deltaX: single = 0; deltaY: single = 0; pointerType: TCefSimulatedPointerType = CEF_SIMULATEDPOINTERTYPE_MOUSE);
    Public procedure SimulateTouchEvent(type_: TCefSimulatedTouchEventType; var touchPoints: TCefSimulatedTouchPointArray; modifiers: integer = CEF_MOUSETOUCH_EVENT_MODIFIERS_NONE; timestamp: single = 0);
    Public procedure SimulateEditingCommand(command : TCefEditingCommand);
    Public function ClearCertificateExceptions(aClearImmediately : boolean = True) : boolean;
    Public function ClearHttpAuthCredentials(aClearImmediately : boolean = True) : boolean;
    Public function CloseAllConnections(aCloseImmediately : boolean = True) : boolean;
    Public procedure RetrieveHTML(const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure RetrieveHTML(const aFrame : ICefFrame); overload;
    Public procedure RetrieveText(const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure RetrieveText(const aFrame : ICefFrame); overload;
    Public procedure GetNavigationEntries(currentOnly: Boolean);
    Public function GetFrameNames(var aFrameNames : TStrings) : boolean;
    Public function GetFrameIdentifiers(var aFrameIdentifiers : TStrings) : boolean;
    Public procedure ExecuteJavaScript(const aCode, aScriptURL : ustring; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''; aStartLine : integer = 0); overload;
    Public procedure ExecuteJavaScript(const aCode, aScriptURL : ustring; const aFrame : ICefFrame; aStartLine : integer = 0); overload;
    Public procedure UpdatePreferences;
    Public procedure SavePreferences(const aFileName : string);
    Public procedure ResolveHost(const aURL : ustring);
    Public function IsSameBrowser(const aBrowser : ICefBrowser) : boolean;
    Public function ExecuteTaskOnCefThread(aCefThreadId : TCefThreadId; aTaskID : cardinal; aDelayMs : Int64 = 0) : boolean;
    Public procedure SetUserAgentOverride(const aUserAgent : ustring; const aAcceptLanguage : ustring = ''; const aPlatform : ustring = '');
    Public procedure ClearDataForOrigin(const aOrigin : ustring; aStorageTypes : TCefClearDataStorageTypes = cdstAll);
    Public procedure ClearCache;
    Public procedure ToggleAudioMuted;
    Public function DeleteCookies(const url : ustring = ''; const cookieName : ustring = ''; aDeleteImmediately : boolean = False) : boolean;
    Public function VisitAllCookies(aID : integer = 0) : boolean;
    Public function VisitURLCookies(const url : ustring; includeHttpOnly : boolean = False; aID : integer = 0) : boolean;
    Public function SetCookie(const url, name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; same_site : TCefCookieSameSite; priority : TCefCookiePriority; aSetImmediately : boolean = True; aID : integer = 0): Boolean;
    Public function FlushCookieStore(aFlushImmediately : boolean = True) : boolean;
    Public procedure ShowDevTools(const inspectElementAt: TPoint; aWindowInfo: PCefWindowInfo);
    Public procedure CloseDevTools; overload;
    Public procedure CloseDevTools(const aDevToolsWnd : TCefWindowHandle); overload;
    Public function SendDevToolsMessage(const message_: ustring): boolean;
    Public function ExecuteDevToolsMethod(message_id: integer; const method: ustring; const params: ICefDictionaryValue): Integer;
    Public function AddDevToolsMessageObserver(const observer: ICefDevToolsMessageObserver): ICefRegistration;
    Public procedure Find(const aSearchText : ustring; aForward, aMatchCase, aFindNext : Boolean);
    Public procedure StopFinding(aClearSelection : Boolean);
    Public procedure Print;
    Public procedure PrintToPDF(const aFilePath : ustring);
    Public procedure ClipboardCopy;
    Public procedure ClipboardPaste;
    Public procedure ClipboardPasteAndMatchStyle;
    Public procedure ClipboardCut;
    Public procedure ClipboardUndo;
    Public procedure ClipboardRedo;
    Public procedure ClipboardDel;
    Public procedure SelectAll;
    Public procedure IncZoomStep;
    Public procedure DecZoomStep;
    Public procedure IncZoomPct;
    Public procedure DecZoomPct;
    Public procedure ResetZoomStep;
    Public procedure ResetZoomLevel;
    Public procedure ResetZoomPct;
    Public procedure ReadZoom;
    Public procedure IncZoomCommand;
    Public procedure DecZoomCommand;
    Public procedure ResetZoomCommand;
    Public procedure WasResized;
    Public procedure WasHidden(hidden: Boolean);
    Public procedure NotifyScreenInfoChanged;
    Public procedure NotifyMoveOrResizeStarted;
    Public procedure Invalidate(type_: TCefPaintElementType = PET_VIEW);
    Public procedure ExitFullscreen(will_cause_resize: boolean);
    Public function CanExecuteChromeCommand(command_id: integer): boolean;
    Public procedure ExecuteChromeCommand(command_id: integer; disposition: TCefWindowOpenDisposition);
    Public procedure SendExternalBeginFrame;
    Public procedure SendKeyEvent(const event: PCefKeyEvent);
    Public procedure SendMouseClickEvent(const event: PCefMouseEvent; type_: TCefMouseButtonType; mouseUp: Boolean; clickCount: Integer);
    Public procedure SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean);
    Public procedure SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer);
    Public procedure SendTouchEvent(const event: PCefTouchEvent);
    Public procedure SendCaptureLostEvent;
    Public procedure SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''); overload;
    Public procedure SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage; const aFrame : ICefFrame); overload;
    Public function CreateUrlRequest(const request: ICefRequest; const client: ICefUrlrequestClient; const aFrameName : ustring = ''; const aFrameIdentifier : ustring = ''): ICefUrlRequest; overload;
    Public function CreateUrlRequest(const request: ICefRequest; const client: ICefUrlrequestClient; const aFrame : ICefFrame): ICefUrlRequest; overload;
    Public procedure SetFocus(focus: Boolean);
    Public procedure SetAccessibilityState(accessibilityState: TCefState);
    Public procedure DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations);
    Public procedure DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations);
    Public procedure DragTargetDragLeave;
    Public procedure DragTargetDrop(const event: PCefMouseEvent);
    Public procedure DragSourceEndedAt(x, y: Integer; op: TCefDragOperation);
    Public procedure DragSourceSystemDragEnded;
    Public procedure IMESetComposition(const text: ustring; const underlines : TCefCompositionUnderlineDynArray; const replacement_range, selection_range : PCefRange);
    Public procedure IMECommitText(const text: ustring; const replacement_range : PCefRange; relative_cursor_pos : integer);
    Public procedure IMEFinishComposingText(keep_selection : boolean);
    Public procedure IMECancelComposition;
    Public procedure ReplaceMisspelling(const aWord : ustring);
    Public procedure AddWordToDictionary(const aWord : ustring);
    Public function AddObserver(const observer: ICefMediaObserver): ICefRegistration;
    Public function GetSource(const urn: ustring): ICefMediaSource;
    Public procedure NotifyCurrentSinks;
    Public procedure NotifyCurrentRoutes;
    Public procedure CreateRoute(const source: ICefMediaSource; const sink: ICefMediaSink);
    Public procedure GetDeviceInfo(const aMediaSink: ICefMediaSink);
    Public function GetWebsiteSetting(const requesting_url, top_level_url: ustring; content_type: TCefContentSettingTypes): ICefValue;
    Public procedure SetWebsiteSetting(const requesting_url, top_level_url: ustring; content_type: TCefContentSettingTypes; const value: ICefValue);
    Public function GetContentSetting(const requesting_url, top_level_url: ustring; content_type: TCefContentSettingTypes): TCefContentSettingValues;
    Public procedure SetContentSetting(const requesting_url, top_level_url: ustring; content_type: TCefContentSettingTypes; value: TCefContentSettingValues);
    Public procedure SetChromeColorScheme(variant: TCefColorVariant; user_color: TCefColor);
    Publishedproperty OnFrameAttached : TOnFrameAttached read FOnFrameAttached write FOnFrameAttached;property OnFrameDestroyed : TOnFrameDestroyed read FOnFrameDestroyed write FOnFrameDestroyed;
    Publishedproperty OnFrameAttached : TOnFrameAttached read FOnFrameAttached write FOnFrameAttached;
    Published property OnFrameDetached : TOnFrameDetached read FOnFrameDetached write FOnFrameDetached;
    Published property OnMainFrameChanged : TOnMainFrameChanged read FOnMainFrameChanged write FOnMainFrameChanged;
    Published property OnChromeCommand : TOnChromeCommandEvent read FOnChromeCommand write FOnChromeCommand;
    Published property OnIsChromeAppMenuItemVisible : TOnIsChromeAppMenuItemVisibleEvent read FOnIsChromeAppMenuItemVisible write FOnIsChromeAppMenuItemVisible;
    Published property OnIsChromeAppMenuItemEnabled : TOnIsChromeAppMenuItemEnabledEvent read FOnIsChromeAppMenuItemEnabled write FOnIsChromeAppMenuItemEnabled;
    Published property OnIsChromePageActionIconVisible : TOnIsChromePageActionIconVisibleEvent read FOnIsChromePageActionIconVisible write FOnIsChromePageActionIconVisible;
    Published property OnIsChromeToolbarButtonVisible : TOnIsChromeToolbarButtonVisibleEvent read FOnIsChromeToolbarButtonVisible write FOnIsChromeToolbarButtonVisible;
    Published property OnRequestMediaAccessPermission : TOnRequestMediaAccessPermissionEvent read FOnRequestMediaAccessPermission write FOnRequestMediaAccessPermission;
    Published property OnShowPermissionPrompt : TOnShowPermissionPromptEvent read FOnShowPermissionPrompt write FOnShowPermissionPrompt;
    Published property OnDismissPermissionPrompt : TOnDismissPermissionPromptEvent read FOnDismissPermissionPrompt write FOnDismissPermissionPrompt;
    + + + +
    ProtectedFOnFrameDestroyed: TOnFrameDestroyed;
    +

    This item has no description.

    + + +
    Protected FOnFrameAttached: TOnFrameAttached;
    @@ -7560,6 +7580,14 @@ ICefFrameHandler

    + + + +
    Protectedprocedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    +

    This item has no description.

    + + + +
    Protected procedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);
    @@ -12888,7 +12916,23 @@ Custom

    - Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued until OnFrameAttached is called for |frame|.

    + Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued. The queued commands will be sent before OnFrameAttached or discarded before OnFrameDestroyed if the frame never attaches.

    +

    + + +

    This event will be called on the browser process CEF UI thread. + +

    <see href="https://bitbucket.org/chromiumembedded/cef/src/master/include/capi/cef_frame_handler_capi.h">CEF source file: /include/capi/cef_frame_handler_capi.h (cef_frame_handler_t))

    +
    + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
    Publishedproperty OnFrameDestroyed : TOnFrameDestroyed read FOnFrameDestroyed write FOnFrameDestroyed;
    +

    + Called when an existing frame is destroyed. This will be the last notification that references |frame| and ICefFrame.IsValid will return false (0) for |frame|. If called during browser destruction and after TChromiumCore.OnBeforeClose then ICefBrowser.IsValid will return false (0) for |browser|. Any queued commands that have not been sent will be discarded before this callback.

    @@ -12904,7 +12948,7 @@ Custom

    - Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache. Any commands that were queued have now been dispatched.

    + Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache or after encountering a recoverable connection error. Any queued commands will now have been dispatched. This function will not be called for temporary frames created during cross-origin navigation.

    @@ -12920,7 +12964,7 @@ Custom

    - Called when a frame loses its connection to the renderer process and will be destroyed. Any pending or future commands will be discarded and ICefFrame.IsValid() will now return false (0) for |frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when a frame loses its connection to the renderer process. This may occur when a frame is destroyed, enters the BackForwardCache, or encounters a rare connection error. In the case of frame destruction this call will be followed by a (potentially async) call to OnFrameDestroyed. If frame destruction is occuring synchronously then ICefFrame.IsValid will return false (0) for |frame|. If called during browser destruction and after TChromiumCore.OnBeforeClose then ICefBrowser.IsValid will return false (0) for |browser|. If, in the non-destruction case, the same frame later exits the BackForwardCache or recovers from a connection error then there will be a follow-up call to OnFrameAttached. This function will not be called for temporary frames created during cross- origin navigation.

    @@ -12936,7 +12980,7 @@ Custom

    - Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL and when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non-NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after OnFrameDetached() for |old_frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non- NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after OnFrameCreated for |new_frame| and/or after OnFrameDestroyed for |old_frame|. If called during browser destruction and after TChromiumCore.OnBeforeClose then ICefBrowser.IsValid will return false (0) for |browser|.

    diff --git a/docs/html/uCEFChromiumEvents.html b/docs/html/uCEFChromiumEvents.html index 63a87b28..e7e10fd7 100644 --- a/docs/html/uCEFChromiumEvents.html +++ b/docs/html/uCEFChromiumEvents.html @@ -337,81 +337,84 @@

    TOnFrameCreated = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object;
    TOnFrameDestroyed = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object;
    TOnFrameAttached = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean) of object;
    TOnFrameDetached = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object;
    TOnMainFrameChanged = procedure(Sender: TObject; const browser: ICefBrowser; const old_frame, new_frame: ICefFrame) of object;
    TOnChromeCommandEvent = procedure(Sender: TObject; const browser: ICefBrowser; command_id: integer; disposition: TCefWindowOpenDisposition; var aResult: boolean) of object;
    TOnIsChromeAppMenuItemVisibleEvent = procedure(Sender: TObject; const browser: ICefBrowser; command_id: integer; var aResult: boolean) of object;
    TOnIsChromeAppMenuItemEnabledEvent = procedure(Sender: TObject; const browser: ICefBrowser; command_id: integer; var aResult: boolean) of object;
    TOnIsChromePageActionIconVisibleEvent = procedure(Sender: TObject; icon_type: TCefChromePageActionIconType; var aResult: boolean) of object;
    TOnIsChromeToolbarButtonVisibleEvent = procedure(Sender: TObject; button_type: TCefChromeToolbarButtonType; var aResult: boolean) of object;
    TOnRequestMediaAccessPermissionEvent = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefMediaAccessCallback; var aResult: boolean) of object;
    TOnShowPermissionPromptEvent = procedure(Sender: TObject; const browser: ICefBrowser; prompt_id: uint64; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefPermissionPromptCallback; var aResult: boolean) of object;
    TOnDismissPermissionPromptEvent = procedure(Sender: TObject; const browser: ICefBrowser; prompt_id: uint64; result: TCefPermissionRequestResult) of object;
    TOnTextResultAvailableEvent = procedure(Sender: TObject; const aText : ustring) of object;
    TOnPdfPrintFinishedEvent = procedure(Sender: TObject; aResultOK : boolean) of object;
    TOnPrefsAvailableEvent = procedure(Sender: TObject; aResultOK : boolean) of object;
    TOnCookiesDeletedEvent = procedure(Sender: TObject; numDeleted : integer) of object;
    TOnResolvedIPsAvailableEvent = procedure(Sender: TObject; result: TCefErrorCode; const resolvedIps: TStrings) of object;
    TOnNavigationVisitorResultAvailableEvent = procedure(Sender: TObject; const entry: ICefNavigationEntry; current: Boolean; index, total: Integer; var aResult : boolean) of object;
    TOnDownloadImageFinishedEvent = procedure(Sender: TObject; const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage) 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; same_site : TCefCookieSameSite; priority : TCefCookiePriority; var aDeleteCookie, aResult : Boolean) of object;
    TOnCookieVisitorDestroyed = procedure(Sender: TObject; aID : integer) of object;
    TOnCookieSet = procedure(Sender: TObject; aSuccess : boolean; aID : integer) of object;
    TOnZoomPctAvailable = procedure(Sender: TObject; const aZoomPct : double) of object;
    TOnMediaRouteCreateFinishedEvent = procedure(Sender: TObject; result: TCefMediaRouterCreateResult; const error: ustring; const route: ICefMediaRoute) of object;
    TOnMediaSinkDeviceInfoEvent = procedure(Sender: TObject; const ip_address: ustring; port: integer; const model_name: ustring) of object;
    TOnCompMsgEvent = procedure(Sender: TObject; var aMessage: TMessage; var aHandled: Boolean) of object;
    @@ -1212,6 +1215,13 @@ ICefFrameHandler

    + + + +
    TOnFrameDestroyed = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object;
    +

    This item has no description.

    + + - + + + + + - + - + - + @@ -58,7 +62,17 @@ +
    TOnFrameAttached = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean) of object;
    diff --git a/docs/html/uCEFFrameHandler.TCefFrameHandlerOwn.html b/docs/html/uCEFFrameHandler.TCefFrameHandlerOwn.html index aaffe072..ec9f195e 100644 --- a/docs/html/uCEFFrameHandler.TCefFrameHandlerOwn.html +++ b/docs/html/uCEFFrameHandler.TCefFrameHandlerOwn.html @@ -30,21 +30,25 @@
    Protectedprocedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); virtual;procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); virtual;
    Protectedprocedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); virtual;
    Protected procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); virtual;
    Protected procedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); virtual;
    Protected procedure RemoveReferences; virtual;
    Public constructor Create; virtual;

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameCreated.

    - Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued until OnFrameAttached is called for |frame|.

    + Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued. The queued commands will be sent before OnFrameAttached or discarded before OnFrameDestroyed if the frame never attaches.

    +
    + + + + + +
    Protectedprocedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); virtual;
    +

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameDestroyed.

    + Called when an existing frame is destroyed. This will be the last notification that references |frame| and cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. Any queued commands that have not been sent will be discarded before this callback.

    @@ -68,7 +82,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameAttached.

    - Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache. Any commands that were queued have now been dispatched.

    + Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache or after encountering a recoverable connection error. Any queued commands will now have been dispatched. This function will not be called for temporary frames created during cross-origin navigation.

    @@ -78,7 +92,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameDetached.

    - Called when a frame loses its connection to the renderer process and will be destroyed. Any pending or future commands will be discarded and ICefFrame.IsValid() will now return false (0) for |frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when a frame loses its connection to the renderer process. This may occur when a frame is destroyed, enters the BackForwardCache, or encounters a rare connection error. In the case of frame destruction this call will be followed by a (potentially async) call to OnFrameDestroyed. If frame destruction is occuring synchronously then cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. If, in the non-destruction case, the same frame later exits the BackForwardCache or recovers from a connection error then there will be a follow-up call to OnFrameAttached. This function will not be called for temporary frames created during cross- origin navigation.

    @@ -88,7 +102,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnMainFrameChanged.

    - Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL and when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non-NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after OnFrameDetached() for |old_frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non- NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after on_frame_destroyed() for |old_frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|.

    diff --git a/docs/html/uCEFFrameHandler.TCustomFrameHandler.html b/docs/html/uCEFFrameHandler.TCustomFrameHandler.html index a3099f27..7b91f054 100644 --- a/docs/html/uCEFFrameHandler.TCustomFrameHandler.html +++ b/docs/html/uCEFFrameHandler.TCustomFrameHandler.html @@ -38,25 +38,29 @@ - + + + + + - + - + - + - + @@ -79,7 +83,17 @@ +
    Protectedprocedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); override;procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); override;
    Protectedprocedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); override;
    Protected procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); override;
    Protected procedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); override;
    Protected procedure RemoveReferences; override;
    Public constructor Create(const events : IChromiumEvents); reintroduce; virtual;
    Public destructor Destroy; override;

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameCreated.

    - Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued until OnFrameAttached is called for |frame|.

    + Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued. The queued commands will be sent before OnFrameAttached or discarded before OnFrameDestroyed if the frame never attaches.

    +
    + + + + + +
    Protectedprocedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); override;
    +

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameDestroyed.

    + Called when an existing frame is destroyed. This will be the last notification that references |frame| and cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. Any queued commands that have not been sent will be discarded before this callback.

    @@ -89,7 +103,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameAttached.

    - Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache. Any commands that were queued have now been dispatched.

    + Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache or after encountering a recoverable connection error. Any queued commands will now have been dispatched. This function will not be called for temporary frames created during cross-origin navigation.

    @@ -99,7 +113,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnFrameDetached.

    - Called when a frame loses its connection to the renderer process and will be destroyed. Any pending or future commands will be discarded and ICefFrame.IsValid() will now return false (0) for |frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when a frame loses its connection to the renderer process. This may occur when a frame is destroyed, enters the BackForwardCache, or encounters a rare connection error. In the case of frame destruction this call will be followed by a (potentially async) call to OnFrameDestroyed. If frame destruction is occuring synchronously then cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. If, in the non-destruction case, the same frame later exits the BackForwardCache or recovers from a connection error then there will be a follow-up call to OnFrameAttached. This function will not be called for temporary frames created during cross- origin navigation.

    @@ -109,7 +123,7 @@

    This item has no description. Showing description inherited from ICefFrameHandler.OnMainFrameChanged.

    - Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL and when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non-NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after OnFrameDetached() for |old_frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non- NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after on_frame_destroyed() for |old_frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|.

    diff --git a/docs/html/uCEFInterfaces.ICefFrameHandler.html b/docs/html/uCEFInterfaces.ICefFrameHandler.html index f6dc1eeb..3e9b34e6 100644 --- a/docs/html/uCEFInterfaces.ICefFrameHandler.html +++ b/docs/html/uCEFInterfaces.ICefFrameHandler.html @@ -19,25 +19,82 @@ type ICefFrameHandler = interface(ICefBaseRefCounted)

    Description

    - Implement this interface to handle events related to ICefFrame life span. The order of callbacks is: -

    (1) During initial ICefBrowserHost creation and navigation of the main frame: - ICefFrameHandler.OnFrameCreated => The initial main frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnMainFrameChanged => The initial main frame object has been assigned to the browser. - ICefLifeSpanHandler.OnAfterCreated => The browser is now valid and can be used. - ICefFrameHandler.OnFrameAttached => The initial main frame object is now connected to its peer in the renderer process. Commands can be routed. -

    (2) During further ICefBrowserHost navigation/loading of the main frame and/or sub-frames: - ICefFrameHandler.OnFrameCreated => A new main frame or sub-frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnFrameAttached => A new main frame or sub-frame object is now connected to its peer in the renderer process. Commands can be routed. - ICefFrameHandler.OnFrameDetached => An existing main frame or sub- frame object has lost its connection to the renderer process. If multiple objects are detached at the same time then notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => A new main frame object has been assigned to the browser. This will only occur with cross-origin navigation or re-navigation after renderer process termination (due to crashes, etc). +

    Implement this structure to handle events related to cef_frame_t life span. The order of callbacks is: -

    (3) During final ICefBrowserHost destruction of the main frame: - ICefFrameHandler.OnFrameDetached => Any sub-frame objects have lost their connection to the renderer process. Commands can no longer be routed and will be discarded. - ICefLifeSpanHandler.OnBeforeClose => The browser has been destroyed. - ICefFrameHandler.OnFrameDetached => The main frame object have lost its connection to the renderer process. Notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => The final main frame object has been removed from the browser. +

    (1) During initial cef_browser_host_t creation and navigation of the main frame: -

    Cross-origin navigation and/or loading receives special handling. +

    + +
    +- cef_frame_handler_t::OnFrameCreated => The initial main frame object has
    +  been created. Any commands will be queued until the frame is attached.
    +- cef_frame_handler_t::OnMainFrameChanged => The initial main frame object
    +  has been assigned to the browser.
    +- cef_life_span_handler_t::OnAfterCreated => The browser is now valid and
    +  can be used.
    +- cef_frame_handler_t::OnFrameAttached => The initial main frame object is
    +  now connected to its peer in the renderer process. Commands can be routed.
    + +

    + +

    (2) During further cef_browser_host_t navigation/loading of the main frame and/or sub-frames: + +

    + +
    +- cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame
    +  object has been created. Any commands will be queued until the frame is
    +  attached.
    +- cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame
    +  object is now connected to its peer in the renderer process. Commands can
    +  be routed.
    +- cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-
    +  frame object has lost its connection to the renderer process. If multiple
    +  objects are detached at the same time then notifications will be sent for
    +  any sub-frame objects before the main frame object. Commands can no longer
    +  be routed and will be discarded.
    +- CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame
    +  object has been destroyed.
    +- cef_frame_handler_t::OnMainFrameChanged => A new main frame object has
    +  been assigned to the browser. This will only occur with cross-origin
    +  navigation or re-navigation after renderer process termination (due to
    +  crashes, etc).
    + +

    + +

    (3) During final cef_browser_host_t destruction of the main frame: + +

    + +
    +- cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost
    +  their connection to the renderer process. Commands can no longer be routed
    +  and will be discarded.
    +- CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been
    +  destroyed.
    +- cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.
    +- cef_frame_handler_t::OnFrameDetached => The main frame object have lost
    +  its connection to the renderer process. Notifications will be sent for any
    +  sub-frame objects before the main frame object. Commands can no longer be
    +  routed and will be discarded.
    +- CefFreameHandler::OnFrameDestroyed => The main frame object has been
    +  destroyed.
    +- cef_frame_handler_t::OnMainFrameChanged => The final main frame object has
    +  been removed from the browser.
    + +

    + +

    Special handling applies for cross-origin loading on creation/navigation of sub-frames, and cross-origin loading on creation of new popup browsers. A temporary frame will first be created in the parent frame's renderer process. This temporary frame will never attach and will be discarded after the real cross-origin frame is created in the new/target renderer process. The client will receive creation callbacks for the temporary frame, followed by cross-origin navigation callbacks (2) for the transition from the temporary frame to the real frame. The temporary frame will not receive or execute commands during this transitional period (any sent commands will be discarded).

    When the main frame navigates to a different origin the OnMainFrameChanged callback (2) will be executed with the old and new main frame objects. -

    When a new sub-frame is loaded in, or an existing sub-frame is navigated to, a different origin from the parent frame, a temporary sub-frame object will first be created in the parent's renderer process. That temporary sub-frame will then be discarded after the real cross-origin sub-frame is created in the new/target renderer process. The client will receive cross-origin navigation callbacks (2) for the transition from the temporary sub-frame to the real sub-frame. The temporary sub-frame will not recieve or execute commands during this transitional period (any sent commands will be discarded). +

    Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have cef_frame_t::get_identifier() == -4. -

    When a new popup browser is created in a different origin from the parent browser, a temporary main frame object for the popup will first be created in the parent's renderer process. That temporary main frame will then be discarded after the real cross-origin main frame is created in the new/target renderer process. The client will recieve creation and initial navigation callbacks (1) for the temporary main frame, followed by cross- origin navigation callbacks (2) for the transition from the temporary main frame to the real main frame. The temporary main frame may receive and execute commands during this transitional period (any sent commands may be executed, but the behavior is potentially undesirable since they execute in the parent browser's renderer process and not the new/target renderer process). +

    The functions of this structure will be called on the UI thread unless otherwise indicated. -

    Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have ICefFrame.GetIdentifier() == -4. - -

    The functions of this interface will be called on the UI thread unless otherwise indicated.

    +

    @@ -56,18 +113,22 @@

    - + - + - + + + + +
    Publicprocedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    Publicprocedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame);procedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);
    Publicprocedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame);procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame);
    Publicprocedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame);
    Public procedure RemoveReferences;
    @@ -80,7 +141,7 @@

    - Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued until OnFrameAttached is called for |frame|.

    + Called when a new frame is created. This will be the first notification that references |frame|. Any commands that require transport to the associated renderer process (LoadRequest, SendProcessMessage, GetSource, etc.) will be queued. The queued commands will be sent before OnFrameAttached or discarded before OnFrameDestroyed if the frame never attaches.

    Attributes
    GUID['{B437128C-F7CB-4F75-83CF-A257B98C0B6E}']
    @@ -91,11 +152,21 @@ + + + +
    Publicprocedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    +

    + Called when an existing frame is destroyed. This will be the last notification that references |frame| and cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. Any queued commands that have not been sent will be discarded before this callback.

    +
    + + +
    Public procedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);

    - Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache. Any commands that were queued have now been dispatched.

    + Called when a frame can begin routing commands to/from the associated renderer process. |reattached| will be true (1) if the frame was re- attached after exiting the BackForwardCache or after encountering a recoverable connection error. Any queued commands will now have been dispatched. This function will not be called for temporary frames created during cross-origin navigation.

    @@ -105,7 +176,7 @@

    - Called when a frame loses its connection to the renderer process and will be destroyed. Any pending or future commands will be discarded and ICefFrame.IsValid() will now return false (0) for |frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when a frame loses its connection to the renderer process. This may occur when a frame is destroyed, enters the BackForwardCache, or encounters a rare connection error. In the case of frame destruction this call will be followed by a (potentially async) call to OnFrameDestroyed. If frame destruction is occuring synchronously then cef_frame_t::is_valid() will return false (0) for |frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|. If, in the non-destruction case, the same frame later exits the BackForwardCache or recovers from a connection error then there will be a follow-up call to OnFrameAttached. This function will not be called for temporary frames created during cross- origin navigation.

    @@ -115,7 +186,7 @@

    - Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL and when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non-NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after OnFrameDetached() for |old_frame|. If called after ICefLifeSpanHandler.OnBeforeClose() during browser destruction then ICefBrowser.IsValid() will return false (0) for |browser|.

    + Called when the main frame changes due to (a) initial browser creation, (b) final browser destruction, (c) cross-origin navigation or (d) re- navigation after renderer process termination (due to crashes, etc). |old_frame| will be NULL and |new_frame| will be non-NULL when a main frame is assigned to |browser| for the first time. |old_frame| will be non-NULL and |new_frame| will be NULL when a main frame is removed from |browser| for the last time. Both |old_frame| and |new_frame| will be non- NULL for cross-origin navigations or re-navigation after renderer process termination. This function will be called after on_frame_created() for |new_frame| and/or after on_frame_destroyed() for |old_frame|. If called during browser destruction and after cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() will return false (0) for |browser|.

    diff --git a/docs/html/uCEFInterfaces.IChromiumEvents.html b/docs/html/uCEFInterfaces.IChromiumEvents.html index 9e348186..ffcfa898 100644 --- a/docs/html/uCEFInterfaces.IChromiumEvents.html +++ b/docs/html/uCEFInterfaces.IChromiumEvents.html @@ -456,253 +456,257 @@ - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1611,6 +1615,14 @@ ICefFrameHandler

    Publicprocedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);procedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    Publicprocedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);
    Public procedure doOnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame);
    Public procedure doOnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame);
    Public function doOnChromeCommand(const browser: ICefBrowser; command_id: integer; disposition: TCefWindowOpenDisposition): boolean;
    Public function doOnIsChromeAppMenuItemVisible(const browser: ICefBrowser; command_id: integer): boolean;
    Public function doOnIsChromeAppMenuItemEnabled(const browser: ICefBrowser; command_id: integer): boolean;
    Public function doOnIsChromePageActionIconVisible(icon_type: TCefChromePageActionIconType): boolean;
    Public function doOnIsChromeToolbarButtonVisible(button_type: TCefChromeToolbarButtonType): boolean;
    Public function doOnRequestMediaAccessPermission(const browser: ICefBrowser; const frame: ICefFrame; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefMediaAccessCallback): boolean;
    Public function doOnShowPermissionPrompt(const browser: ICefBrowser; prompt_id: uint64; const requesting_origin: ustring; requested_permissions: cardinal; const callback: ICefPermissionPromptCallback): boolean;
    Public procedure doOnDismissPermissionPrompt(const browser: ICefBrowser; prompt_id: uint64; result: TCefPermissionRequestResult);
    Public procedure doCookiesDeleted(numDeleted : integer);
    Public procedure doPdfPrintFinished(aResultOK : boolean);
    Public procedure doTextResultAvailable(const aText : ustring);
    Public procedure doUpdatePreferences(const aBrowser: ICefBrowser);
    Public procedure doUpdateOwnPreferences;
    Public function doSavePreferences: boolean;
    Public procedure doResolvedHostAvailable(result: TCefErrorCode; const resolvedIps: TStrings);
    Public function doNavigationVisitorResultAvailable(const entry: ICefNavigationEntry; current: Boolean; index, total: Integer) : boolean;
    Public procedure doDownloadImageFinished(const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage);
    Public procedure doOnCookiesStoreFlushed;
    Public procedure doCertificateExceptionsCleared;
    Public procedure doHttpAuthCredentialsCleared;
    Public procedure doAllConnectionsClosed;
    Public procedure doOnExecuteTaskOnCefThread(aTaskID : cardinal);
    Public procedure doOnCookiesVisited(const name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total, aID : Integer; same_site : TCefCookieSameSite; priority : TCefCookiePriority; var aDeleteCookie, aResult : Boolean);
    Public procedure doOnCookieVisitorDestroyed(aID : integer);
    Public procedure doOnCookieSet(aSuccess : boolean; aID : integer);
    Public procedure doUpdateZoomStep(aInc : boolean);
    Public procedure doUpdateZoomPct(aInc : boolean);
    Public procedure doSetZoomLevel(const aValue : double);
    Public procedure doSetZoomPct(const aValue : double);
    Public procedure doSetZoomStep(aValue : byte);
    Public procedure doReadZoom;
    Public procedure doMediaRouteCreateFinished(result: TCefMediaRouterCreateResult; const error: ustring; const route: ICefMediaRoute);
    Public procedure doOnMediaSinkDeviceInfo(const ip_address: ustring; port: integer; const model_name: ustring);
    Public procedure doBrowserNavigation(aTask : TCefBrowserNavigation);
    Public procedure doSetAudioMuted(aValue : boolean);
    Public procedure doToggleAudioMuted;
    Public procedure doEnableFocus;
    Public function doTryCloseBrowser: boolean;
    Public function MustCreateAudioHandler: boolean;
    Public function MustCreateCommandHandler: boolean;
    Public function MustCreateLoadHandler: boolean;
    Public function MustCreateFocusHandler: boolean;
    Public function MustCreateContextMenuHandler: boolean;
    Public function MustCreateDialogHandler: boolean;
    Public function MustCreateKeyboardHandler: boolean;
    Public function MustCreateDisplayHandler: boolean;
    Public function MustCreateDownloadHandler: boolean;
    Public function MustCreateJsDialogHandler: boolean;
    Public function MustCreateLifeSpanHandler: boolean;
    Public function MustCreateRenderHandler: boolean;
    Public function MustCreateRequestHandler: boolean;
    Public function MustCreateDragHandler: boolean;
    Public function MustCreateFindHandler: boolean;
    Public function MustCreateResourceRequestHandler: boolean;
    Public function MustCreateCookieAccessFilter: boolean;
    Public function MustCreateMediaObserver: boolean;
    Public function MustCreatePrintHandler: boolean;
    Public function MustCreateFrameHandler: boolean;
    Public function MustCreatePermissionHandler: boolean;
    Public function GetComponentID: integer;
    + + + +
    Publicprocedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame);
    +

    This item has no description.

    + + + - +

    diff --git a/docs/html/uCEFTypes.TCefFrameHandler.html b/docs/html/uCEFTypes.TCefFrameHandler.html index 56be3e63..60de07d7 100644 --- a/docs/html/uCEFTypes.TCefFrameHandler.html +++ b/docs/html/uCEFTypes.TCefFrameHandler.html @@ -57,14 +57,18 @@ - + - + + + + +
    Public procedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean);
    diff --git a/docs/html/uCEFInterfaces.html b/docs/html/uCEFInterfaces.html index 2f6d6839..33e25977 100644 --- a/docs/html/uCEFInterfaces.html +++ b/docs/html/uCEFInterfaces.html @@ -141,25 +141,82 @@
    Interface ICefFrameHandler Implement this interface to handle events related to ICefFrame life span. The order of callbacks is: + -

    (1) During initial ICefBrowserHost creation and navigation of the main frame: - ICefFrameHandler.OnFrameCreated => The initial main frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnMainFrameChanged => The initial main frame object has been assigned to the browser. - ICefLifeSpanHandler.OnAfterCreated => The browser is now valid and can be used. - ICefFrameHandler.OnFrameAttached => The initial main frame object is now connected to its peer in the renderer process. Commands can be routed. +

    Implement this structure to handle events related to cef_frame_t life span. The order of callbacks is: -

    (2) During further ICefBrowserHost navigation/loading of the main frame and/or sub-frames: - ICefFrameHandler.OnFrameCreated => A new main frame or sub-frame object has been created. Any commands will be queued until the frame is attached. - ICefFrameHandler.OnFrameAttached => A new main frame or sub-frame object is now connected to its peer in the renderer process. Commands can be routed. - ICefFrameHandler.OnFrameDetached => An existing main frame or sub- frame object has lost its connection to the renderer process. If multiple objects are detached at the same time then notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => A new main frame object has been assigned to the browser. This will only occur with cross-origin navigation or re-navigation after renderer process termination (due to crashes, etc). +

    (1) During initial cef_browser_host_t creation and navigation of the main frame: -

    (3) During final ICefBrowserHost destruction of the main frame: - ICefFrameHandler.OnFrameDetached => Any sub-frame objects have lost their connection to the renderer process. Commands can no longer be routed and will be discarded. - ICefLifeSpanHandler.OnBeforeClose => The browser has been destroyed. - ICefFrameHandler.OnFrameDetached => The main frame object have lost its connection to the renderer process. Notifications will be sent for any sub-frame objects before the main frame object. Commands can no longer be routed and will be discarded. - ICefFrameHandler.OnMainFrameChanged => The final main frame object has been removed from the browser. +

    -

    Cross-origin navigation and/or loading receives special handling. +

    +- cef_frame_handler_t::OnFrameCreated => The initial main frame object has
    +  been created. Any commands will be queued until the frame is attached.
    +- cef_frame_handler_t::OnMainFrameChanged => The initial main frame object
    +  has been assigned to the browser.
    +- cef_life_span_handler_t::OnAfterCreated => The browser is now valid and
    +  can be used.
    +- cef_frame_handler_t::OnFrameAttached => The initial main frame object is
    +  now connected to its peer in the renderer process. Commands can be routed.
    + +

    + +

    (2) During further cef_browser_host_t navigation/loading of the main frame and/or sub-frames: + +

    + +
    +- cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame
    +  object has been created. Any commands will be queued until the frame is
    +  attached.
    +- cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame
    +  object is now connected to its peer in the renderer process. Commands can
    +  be routed.
    +- cef_frame_handler_t::OnFrameDetached => An existing main frame or sub-
    +  frame object has lost its connection to the renderer process. If multiple
    +  objects are detached at the same time then notifications will be sent for
    +  any sub-frame objects before the main frame object. Commands can no longer
    +  be routed and will be discarded.
    +- CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame
    +  object has been destroyed.
    +- cef_frame_handler_t::OnMainFrameChanged => A new main frame object has
    +  been assigned to the browser. This will only occur with cross-origin
    +  navigation or re-navigation after renderer process termination (due to
    +  crashes, etc).
    + +

    + +

    (3) During final cef_browser_host_t destruction of the main frame: + +

    + +
    +- cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost
    +  their connection to the renderer process. Commands can no longer be routed
    +  and will be discarded.
    +- CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been
    +  destroyed.
    +- cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed.
    +- cef_frame_handler_t::OnFrameDetached => The main frame object have lost
    +  its connection to the renderer process. Notifications will be sent for any
    +  sub-frame objects before the main frame object. Commands can no longer be
    +  routed and will be discarded.
    +- CefFreameHandler::OnFrameDestroyed => The main frame object has been
    +  destroyed.
    +- cef_frame_handler_t::OnMainFrameChanged => The final main frame object has
    +  been removed from the browser.
    + +

    + +

    Special handling applies for cross-origin loading on creation/navigation of sub-frames, and cross-origin loading on creation of new popup browsers. A temporary frame will first be created in the parent frame's renderer process. This temporary frame will never attach and will be discarded after the real cross-origin frame is created in the new/target renderer process. The client will receive creation callbacks for the temporary frame, followed by cross-origin navigation callbacks (2) for the transition from the temporary frame to the real frame. The temporary frame will not receive or execute commands during this transitional period (any sent commands will be discarded).

    When the main frame navigates to a different origin the OnMainFrameChanged callback (2) will be executed with the old and new main frame objects. -

    When a new sub-frame is loaded in, or an existing sub-frame is navigated to, a different origin from the parent frame, a temporary sub-frame object will first be created in the parent's renderer process. That temporary sub-frame will then be discarded after the real cross-origin sub-frame is created in the new/target renderer process. The client will receive cross-origin navigation callbacks (2) for the transition from the temporary sub-frame to the real sub-frame. The temporary sub-frame will not recieve or execute commands during this transitional period (any sent commands will be discarded). +

    Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have cef_frame_t::get_identifier() == -4. -

    When a new popup browser is created in a different origin from the parent browser, a temporary main frame object for the popup will first be created in the parent's renderer process. That temporary main frame will then be discarded after the real cross-origin main frame is created in the new/target renderer process. The client will recieve creation and initial navigation callbacks (1) for the temporary main frame, followed by cross- origin navigation callbacks (2) for the transition from the temporary main frame to the real main frame. The temporary main frame may receive and execute commands during this transitional period (any sent commands may be executed, but the behavior is potentially undesirable since they execute in the parent browser's renderer process and not the new/target renderer process). +

    The functions of this structure will be called on the UI thread unless otherwise indicated. -

    Callbacks will not be executed for placeholders that may be created during pre-commit navigation for sub-frames that do not yet exist in the renderer process. Placeholders will have ICefFrame.GetIdentifier() == -4. - -

    The functions of this interface will be called on the UI thread unless otherwise indicated.

    Interface ICefCustomStreamReader
    Publicon_frame_attached: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame; reattached: integer); stdcall;on_frame_destroyed: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall;
    Publicon_frame_detached: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall;on_frame_attached: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame; reattached: integer); stdcall;
    Publicon_frame_detached: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall;
    Public on_main_frame_changed: procedure(self: PCefFrameHandler; browser: PCefBrowser; old_frame, new_frame: PCefFrame); stdcall;
    @@ -89,6 +93,14 @@ + + + +
    Publicon_frame_destroyed: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall;
    +

    This item has no description.

    + + +
    Public on_frame_attached: procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame; reattached: integer); stdcall;
    diff --git a/packages/cef4delphi_lazarus.lpk b/packages/cef4delphi_lazarus.lpk index 65ad11bf..894735b2 100644 --- a/packages/cef4delphi_lazarus.lpk +++ b/packages/cef4delphi_lazarus.lpk @@ -21,7 +21,7 @@ - + diff --git a/source/uCEFChromiumCore.pas b/source/uCEFChromiumCore.pas index 1c6e9445..2bf6311a 100644 --- a/source/uCEFChromiumCore.pas +++ b/source/uCEFChromiumCore.pas @@ -283,6 +283,7 @@ type // ICefFrameHandler FOnFrameCreated : TOnFrameCreated; + FOnFrameDestroyed : TOnFrameDestroyed; FOnFrameAttached : TOnFrameAttached; FOnFrameDetached : TOnFrameDetached; FOnMainFrameChanged : TOnMainFrameChanged; @@ -646,6 +647,7 @@ type // ICefFrameHandler procedure doOnFrameCreated(const browser: ICefBrowser; const frame: ICefFrame); + procedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); procedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); procedure doOnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); procedure doOnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); @@ -3752,7 +3754,9 @@ type /// Called when a new frame is created. This will be the first notification /// that references |frame|. Any commands that require transport to the /// associated renderer process (LoadRequest, SendProcessMessage, GetSource, - /// etc.) will be queued until OnFrameAttached is called for |frame|. + /// etc.) will be queued. The queued commands will be sent before + /// OnFrameAttached or discarded before OnFrameDestroyed if the frame never + /// attaches. /// /// /// This event will be called on the browser process CEF UI thread. @@ -3760,10 +3764,25 @@ type /// property OnFrameCreated : TOnFrameCreated read FOnFrameCreated write FOnFrameCreated; /// + /// Called when an existing frame is destroyed. This will be the last + /// notification that references |frame| and ICefFrame.IsValid will + /// return false (0) for |frame|. If called during browser destruction and + /// after TChromiumCore.OnBeforeClose then + /// ICefBrowser.IsValid will return false (0) for |browser|. Any queued + /// commands that have not been sent will be discarded before this callback. + /// + /// + /// This event will be called on the browser process CEF UI thread. + /// CEF source file: /include/capi/cef_frame_handler_capi.h (cef_frame_handler_t) + /// + property OnFrameDestroyed : TOnFrameDestroyed read FOnFrameDestroyed write FOnFrameDestroyed; + /// /// Called when a frame can begin routing commands to/from the associated /// renderer process. |reattached| will be true (1) if the frame was re- - /// attached after exiting the BackForwardCache. Any commands that were queued - /// have now been dispatched. + /// attached after exiting the BackForwardCache or after encountering a + /// recoverable connection error. Any queued commands will now have been + /// dispatched. This function will not be called for temporary frames created + /// during cross-origin navigation. /// /// /// This event will be called on the browser process CEF UI thread. @@ -3771,12 +3790,19 @@ type /// property OnFrameAttached : TOnFrameAttached read FOnFrameAttached write FOnFrameAttached; /// - /// Called when a frame loses its connection to the renderer process and will - /// be destroyed. Any pending or future commands will be discarded and - /// ICefFrame.IsValid() will now return false (0) for |frame|. If called - /// after ICefLifeSpanHandler.OnBeforeClose() during browser - /// destruction then ICefBrowser.IsValid() will return false (0) for - /// |browser|. + /// Called when a frame loses its connection to the renderer process. This may + /// occur when a frame is destroyed, enters the BackForwardCache, or + /// encounters a rare connection error. In the case of frame destruction this + /// call will be followed by a (potentially async) call to OnFrameDestroyed. + /// If frame destruction is occuring synchronously then + /// ICefFrame.IsValid will return false (0) for |frame|. If called + /// during browser destruction and after + /// TChromiumCore.OnBeforeClose then ICefBrowser.IsValid + /// will return false (0) for |browser|. If, in the non-destruction case, the + /// same frame later exits the BackForwardCache or recovers from a connection + /// error then there will be a follow-up call to OnFrameAttached. This + /// function will not be called for temporary frames created during cross- + /// origin navigation. /// /// /// This event will be called on the browser process CEF UI thread. @@ -3789,14 +3815,14 @@ type /// navigation after renderer process termination (due to crashes, etc). /// |old_frame| will be NULL and |new_frame| will be non-NULL when a main /// frame is assigned to |browser| for the first time. |old_frame| will be - /// non-NULL and |new_frame| will be NULL and when a main frame is removed - /// from |browser| for the last time. Both |old_frame| and |new_frame| will be - /// non-NULL for cross-origin navigations or re-navigation after renderer - /// process termination. This function will be called after on_frame_created() - /// for |new_frame| and/or after OnFrameDetached() for |old_frame|. If - /// called after ICefLifeSpanHandler.OnBeforeClose() during browser - /// destruction then ICefBrowser.IsValid() will return false (0) for - /// |browser|. + /// non-NULL and |new_frame| will be NULL when a main frame is removed from + /// |browser| for the last time. Both |old_frame| and |new_frame| will be non- + /// NULL for cross-origin navigations or re-navigation after renderer process + /// termination. This function will be called after OnFrameCreated for + /// |new_frame| and/or after OnFrameDestroyed for |old_frame|. If called + /// during browser destruction and after + /// TChromiumCore.OnBeforeClose then ICefBrowser.IsValid + /// will return false (0) for |browser|. /// /// /// This event will be called on the browser process CEF UI thread. @@ -4618,6 +4644,7 @@ begin // ICefFrameHandler FOnFrameCreated := nil; + FOnFrameDestroyed := nil; FOnFrameAttached := nil; FOnFrameDetached := nil; FOnMainFrameChanged := nil; @@ -8062,9 +8089,10 @@ end; function TChromiumCore.MustCreateFrameHandler : boolean; begin - Result := assigned(FOnFrameCreated) or - assigned(FOnFrameAttached) or - assigned(FOnFrameDetached) or + Result := assigned(FOnFrameCreated) or + assigned(FOnFrameDestroyed) or + assigned(FOnFrameAttached) or + assigned(FOnFrameDetached) or assigned(FOnMainFrameChanged); end; @@ -8984,6 +9012,12 @@ begin FOnFrameCreated(self, browser, frame); end; +procedure TChromiumCore.doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); +begin + if assigned(FOnFrameDestroyed) then + FOnFrameDestroyed(self, browser, frame); +end; + procedure TChromiumCore.doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); begin if assigned(FOnFrameAttached) then diff --git a/source/uCEFChromiumEvents.pas b/source/uCEFChromiumEvents.pas index ba33ba95..1c3c9c26 100644 --- a/source/uCEFChromiumEvents.pas +++ b/source/uCEFChromiumEvents.pas @@ -171,6 +171,7 @@ type // ICefFrameHandler TOnFrameCreated = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object; + TOnFrameDestroyed = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object; TOnFrameAttached = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean) of object; TOnFrameDetached = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame) of object; TOnMainFrameChanged = procedure(Sender: TObject; const browser: ICefBrowser; const old_frame, new_frame: ICefFrame) of object; diff --git a/source/uCEFFrameHandler.pas b/source/uCEFFrameHandler.pas index 002be0a8..f5deacc4 100644 --- a/source/uCEFFrameHandler.pas +++ b/source/uCEFFrameHandler.pas @@ -18,6 +18,7 @@ type TCefFrameHandlerOwn = class(TCefBaseRefCountedOwn, ICefFrameHandler) protected procedure OnFrameCreated(const browser: ICefBrowser; const frame: ICefFrame); virtual; + procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); virtual; procedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); virtual; procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); virtual; procedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); virtual; @@ -33,6 +34,7 @@ type FEvents : Pointer; procedure OnFrameCreated(const browser: ICefBrowser; const frame: ICefFrame); override; + procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); override; procedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); override; procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); override; procedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); override; @@ -68,6 +70,17 @@ begin TCefFrameRef.UnWrap(frame)); end; +procedure cef_frame_handler_on_frame_destroyed(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall; +var + TempObject : TObject; +begin + TempObject := CefGetObject(self); + + if (TempObject <> nil) and (TempObject is TCefFrameHandlerOwn) then + TCefFrameHandlerOwn(TempObject).OnFrameDestroyed(TCefBrowserRef.UnWrap(browser), + TCefFrameRef.UnWrap(frame)); +end; + procedure cef_frame_handler_on_frame_attached(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame; reattached: integer); stdcall; var TempObject : TObject; @@ -110,6 +123,7 @@ begin with PCefFrameHandler(FData)^ do begin on_frame_created := {$IFDEF FPC}@{$ENDIF}cef_frame_handler_on_frame_created; + on_frame_destroyed := {$IFDEF FPC}@{$ENDIF}cef_frame_handler_on_frame_destroyed; on_frame_attached := {$IFDEF FPC}@{$ENDIF}cef_frame_handler_on_frame_attached; on_frame_detached := {$IFDEF FPC}@{$ENDIF}cef_frame_handler_on_frame_detached; on_main_frame_changed := {$IFDEF FPC}@{$ENDIF}cef_frame_handler_on_main_frame_changed; @@ -121,6 +135,11 @@ begin // end; +procedure TCefFrameHandlerOwn.OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); +begin + // +end; + procedure TCefFrameHandlerOwn.OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); begin // @@ -169,6 +188,12 @@ begin IChromiumEvents(FEvents).doOnFrameCreated(browser, frame); end; +procedure TCustomFrameHandler.OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); +begin + if (FEvents <> nil) then + IChromiumEvents(FEvents).doOnFrameDestroyed(browser, frame); +end; + procedure TCustomFrameHandler.OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); begin if (FEvents <> nil) then diff --git a/source/uCEFInterfaces.pas b/source/uCEFInterfaces.pas index f676c431..629f1e8e 100644 --- a/source/uCEFInterfaces.pas +++ b/source/uCEFInterfaces.pas @@ -462,6 +462,7 @@ type // ICefFrameHandler procedure doOnFrameCreated(const browser: ICefBrowser; const frame: ICefFrame); + procedure doOnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); procedure doOnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); procedure doOnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); procedure doOnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); @@ -2111,81 +2112,79 @@ type end; /// - /// Implement this interface to handle events related to ICefFrame life span. - /// The order of callbacks is: + /// Implement this structure to handle events related to cef_frame_t life span. + /// The order of callbacks is: /// - /// (1) During initial ICefBrowserHost creation and navigation of the main - /// frame: - /// - ICefFrameHandler.OnFrameCreated => The initial main frame - /// object has been created. Any commands will be queued until the frame is attached. - /// - ICefFrameHandler.OnMainFrameChanged => The initial main frame object - /// has been assigned to the browser. - /// - ICefLifeSpanHandler.OnAfterCreated => The browser is now valid and - /// can be used. - /// - ICefFrameHandler.OnFrameAttached => The initial main frame object is - /// now connected to its peer in the renderer process. Commands can be routed. - /// - /// (2) During further ICefBrowserHost navigation/loading of the main frame - /// and/or sub-frames: - /// - ICefFrameHandler.OnFrameCreated => A new main frame or sub-frame - /// object has been created. Any commands will be queued until the frame is attached. - /// - ICefFrameHandler.OnFrameAttached => A new main frame or sub-frame - /// object is now connected to its peer in the renderer process. Commands can be routed. - /// - ICefFrameHandler.OnFrameDetached => An existing main frame or sub- - /// frame object has lost its connection to the renderer process. If multiple + /// (1) During initial cef_browser_host_t creation and navigation of the main + /// frame: + /// + /// - cef_frame_handler_t::OnFrameCreated => The initial main frame object has + /// been created. Any commands will be queued until the frame is attached. + /// - cef_frame_handler_t::OnMainFrameChanged => The initial main frame object + /// has been assigned to the browser. + /// - cef_life_span_handler_t::OnAfterCreated => The browser is now valid and + /// can be used. + /// - cef_frame_handler_t::OnFrameAttached => The initial main frame object is + /// now connected to its peer in the renderer process. Commands can be routed. + /// + /// (2) During further cef_browser_host_t navigation/loading of the main frame + /// and/or sub-frames: + /// + /// - cef_frame_handler_t::OnFrameCreated => A new main frame or sub-frame + /// object has been created. Any commands will be queued until the frame is + /// attached. + /// - cef_frame_handler_t::OnFrameAttached => A new main frame or sub-frame + /// object is now connected to its peer in the renderer process. Commands can + /// be routed. + /// - cef_frame_handler_t::OnFrameDetached => An existing main frame or sub- + /// frame object has lost its connection to the renderer process. If multiple /// objects are detached at the same time then notifications will be sent for /// any sub-frame objects before the main frame object. Commands can no longer /// be routed and will be discarded. - /// - ICefFrameHandler.OnMainFrameChanged => A new main frame object has - /// been assigned to the browser. This will only occur with cross-origin navigation - /// or re-navigation after renderer process termination (due to crashes, etc). - /// - /// (3) During final ICefBrowserHost destruction of the main frame: - /// - ICefFrameHandler.OnFrameDetached => Any sub-frame objects have lost - /// their connection to the renderer process. Commands can no longer be routed and - /// will be discarded. - /// - ICefLifeSpanHandler.OnBeforeClose => The browser has been destroyed. - /// - ICefFrameHandler.OnFrameDetached => The main frame object have lost - /// its connection to the renderer process. Notifications will be sent for any + /// - CefFremeHadler::OnFrameDestroyed => An existing main frame or sub-frame + /// object has been destroyed. + /// - cef_frame_handler_t::OnMainFrameChanged => A new main frame object has + /// been assigned to the browser. This will only occur with cross-origin + /// navigation or re-navigation after renderer process termination (due to + /// crashes, etc). + /// + /// (3) During final cef_browser_host_t destruction of the main frame: + /// + /// - cef_frame_handler_t::OnFrameDetached => Any sub-frame objects have lost + /// their connection to the renderer process. Commands can no longer be routed + /// and will be discarded. + /// - CefFreameHandler::OnFrameDestroyed => Any sub-frame objects have been + /// destroyed. + /// - cef_life_span_handler_t::OnBeforeClose => The browser has been destroyed. + /// - cef_frame_handler_t::OnFrameDetached => The main frame object have lost + /// its connection to the renderer process. Notifications will be sent for any /// sub-frame objects before the main frame object. Commands can no longer be /// routed and will be discarded. - /// - ICefFrameHandler.OnMainFrameChanged => The final main frame object has + /// - CefFreameHandler::OnFrameDestroyed => The main frame object has been + /// destroyed. + /// - cef_frame_handler_t::OnMainFrameChanged => The final main frame object has /// been removed from the browser. + /// + /// Special handling applies for cross-origin loading on creation/navigation of + /// sub-frames, and cross-origin loading on creation of new popup browsers. A + /// temporary frame will first be created in the parent frame's renderer + /// process. This temporary frame will never attach and will be discarded after + /// the real cross-origin frame is created in the new/target renderer process. + /// The client will receive creation callbacks for the temporary frame, followed + /// by cross-origin navigation callbacks (2) for the transition from the + /// temporary frame to the real frame. The temporary frame will not receive or + /// execute commands during this transitional period (any sent commands will be + /// discarded). /// - /// Cross-origin navigation and/or loading receives special handling. + /// When the main frame navigates to a different origin the OnMainFrameChanged + /// callback (2) will be executed with the old and new main frame objects. /// - /// When the main frame navigates to a different origin the OnMainFrameChanged - /// callback (2) will be executed with the old and new main frame objects. - /// - /// When a new sub-frame is loaded in, or an existing sub-frame is navigated to, - /// a different origin from the parent frame, a temporary sub-frame object will - /// first be created in the parent's renderer process. That temporary sub-frame - /// will then be discarded after the real cross-origin sub-frame is created in - /// the new/target renderer process. The client will receive cross-origin - /// navigation callbacks (2) for the transition from the temporary sub-frame to - /// the real sub-frame. The temporary sub-frame will not recieve or execute - /// commands during this transitional period (any sent commands will be - /// discarded). - /// - /// When a new popup browser is created in a different origin from the parent - /// browser, a temporary main frame object for the popup will first be created - /// in the parent's renderer process. That temporary main frame will then be - /// discarded after the real cross-origin main frame is created in the - /// new/target renderer process. The client will recieve creation and initial - /// navigation callbacks (1) for the temporary main frame, followed by cross- - /// origin navigation callbacks (2) for the transition from the temporary main - /// frame to the real main frame. The temporary main frame may receive and - /// execute commands during this transitional period (any sent commands may be - /// executed, but the behavior is potentially undesirable since they execute in - /// the parent browser's renderer process and not the new/target renderer - /// process). - /// - /// Callbacks will not be executed for placeholders that may be created during + /// Callbacks will not be executed for placeholders that may be created during /// pre-commit navigation for sub-frames that do not yet exist in the renderer - /// process. Placeholders will have ICefFrame.GetIdentifier() == -4. + /// process. Placeholders will have cef_frame_t::get_identifier() == -4. /// - /// The functions of this interface will be called on the UI thread unless - /// otherwise indicated. + /// The functions of this structure will be called on the UI thread unless + /// otherwise indicated. /// /// /// Implements TCefFrameHandler @@ -2197,23 +2196,43 @@ type /// Called when a new frame is created. This will be the first notification /// that references |frame|. Any commands that require transport to the /// associated renderer process (LoadRequest, SendProcessMessage, GetSource, - /// etc.) will be queued until OnFrameAttached is called for |frame|. + /// etc.) will be queued. The queued commands will be sent before + /// OnFrameAttached or discarded before OnFrameDestroyed if the frame never + /// attaches. /// procedure OnFrameCreated(const browser: ICefBrowser; const frame: ICefFrame); /// + /// Called when an existing frame is destroyed. This will be the last + /// notification that references |frame| and cef_frame_t::is_valid() will + /// return false (0) for |frame|. If called during browser destruction and + /// after cef_life_span_handler_t::on_before_close() then + /// cef_browser_t::is_valid() will return false (0) for |browser|. Any queued + /// commands that have not been sent will be discarded before this callback. + /// + procedure OnFrameDestroyed(const browser: ICefBrowser; const frame: ICefFrame); + /// /// Called when a frame can begin routing commands to/from the associated /// renderer process. |reattached| will be true (1) if the frame was re- - /// attached after exiting the BackForwardCache. Any commands that were queued - /// have now been dispatched. + /// attached after exiting the BackForwardCache or after encountering a + /// recoverable connection error. Any queued commands will now have been + /// dispatched. This function will not be called for temporary frames created + /// during cross-origin navigation. /// procedure OnFrameAttached(const browser: ICefBrowser; const frame: ICefFrame; reattached: boolean); /// - /// Called when a frame loses its connection to the renderer process and will - /// be destroyed. Any pending or future commands will be discarded and - /// ICefFrame.IsValid() will now return false (0) for |frame|. If called - /// after ICefLifeSpanHandler.OnBeforeClose() during browser - /// destruction then ICefBrowser.IsValid() will return false (0) for - /// |browser|. + /// Called when a frame loses its connection to the renderer process. This may + /// occur when a frame is destroyed, enters the BackForwardCache, or + /// encounters a rare connection error. In the case of frame destruction this + /// call will be followed by a (potentially async) call to OnFrameDestroyed. + /// If frame destruction is occuring synchronously then + /// cef_frame_t::is_valid() will return false (0) for |frame|. If called + /// during browser destruction and after + /// cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() + /// will return false (0) for |browser|. If, in the non-destruction case, the + /// same frame later exits the BackForwardCache or recovers from a connection + /// error then there will be a follow-up call to OnFrameAttached. This + /// function will not be called for temporary frames created during cross- + /// origin navigation. /// procedure OnFrameDetached(const browser: ICefBrowser; const frame: ICefFrame); /// @@ -2222,14 +2241,14 @@ type /// navigation after renderer process termination (due to crashes, etc). /// |old_frame| will be NULL and |new_frame| will be non-NULL when a main /// frame is assigned to |browser| for the first time. |old_frame| will be - /// non-NULL and |new_frame| will be NULL and when a main frame is removed - /// from |browser| for the last time. Both |old_frame| and |new_frame| will be - /// non-NULL for cross-origin navigations or re-navigation after renderer - /// process termination. This function will be called after on_frame_created() - /// for |new_frame| and/or after OnFrameDetached() for |old_frame|. If - /// called after ICefLifeSpanHandler.OnBeforeClose() during browser - /// destruction then ICefBrowser.IsValid() will return false (0) for - /// |browser|. + /// non-NULL and |new_frame| will be NULL when a main frame is removed from + /// |browser| for the last time. Both |old_frame| and |new_frame| will be non- + /// NULL for cross-origin navigations or re-navigation after renderer process + /// termination. This function will be called after on_frame_created() for + /// |new_frame| and/or after on_frame_destroyed() for |old_frame|. If called + /// during browser destruction and after + /// cef_life_span_handler_t::on_before_close() then cef_browser_t::is_valid() + /// will return false (0) for |browser|. /// procedure OnMainFrameChanged(const browser: ICefBrowser; const old_frame, new_frame: ICefFrame); /// diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas index 8d7c3b21..cc0d92e3 100644 --- a/source/uCEFTypes.pas +++ b/source/uCEFTypes.pas @@ -7663,6 +7663,7 @@ type TCefFrameHandler = record base : TCefBaseRefCounted; on_frame_created : procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall; + on_frame_destroyed : procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall; on_frame_attached : procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame; reattached: integer); stdcall; on_frame_detached : procedure(self: PCefFrameHandler; browser: PCefBrowser; frame: PCefFrame); stdcall; on_main_frame_changed : procedure(self: PCefFrameHandler; browser: PCefBrowser; old_frame, new_frame: PCefFrame); stdcall; diff --git a/source/uCEFVersion.inc b/source/uCEFVersion.inc index 0b8e2ffe..d0c0279b 100644 --- a/source/uCEFVersion.inc +++ b/source/uCEFVersion.inc @@ -1,9 +1,9 @@ CEF_SUPPORTED_VERSION_MAJOR = 131; - CEF_SUPPORTED_VERSION_MINOR = 2; - CEF_SUPPORTED_VERSION_RELEASE = 7; + CEF_SUPPORTED_VERSION_MINOR = 3; + CEF_SUPPORTED_VERSION_RELEASE = 1; CEF_SUPPORTED_VERSION_BUILD = 0; CEF_CHROMEELF_VERSION_MAJOR = CEF_SUPPORTED_VERSION_MAJOR; CEF_CHROMEELF_VERSION_MINOR = 0; CEF_CHROMEELF_VERSION_RELEASE = 6778; - CEF_CHROMEELF_VERSION_BUILD = 86; + CEF_CHROMEELF_VERSION_BUILD = 109;