LifeSpanHandler Class |
Namespace: CefSharp.WinForms.Handler
The LifeSpanHandler type exposes the following members.
Name | Description | |
---|---|---|
LifeSpanHandler | Initializes a new instance of the LifeSpanHandler class |
Name | Description | |
---|---|---|
Create |
Create a new instance of the LifeSpanHandlerBuilder
which can be used to create a WinForms specific ILifeSpanHandler
implementation that simplifies the process of hosting a Popup as a Control/Tab.
In scnarios where you also need to implement ILoadHandler then instead
of implementing directly you will need to inherit from LoadHandler.
As it provides base functionality required to make ChromiumHostControl events work correctly.
| |
DoClose |
Called when a browser has recieved a request to close. This may result
directly from a call to CefBrowserHost::CloseBrowser() or indirectly if the
browser is a top-level OS window created by CEF and the user attempts to
close the window. This method will be called after the JavaScript
'onunload' event has been fired. It will not be called for browsers after
the associated OS window has been destroyed (for those browsers it is no
longer possible to cancel the close).
If CEF created an OS window for the browser returning false will send an OS
close notification to the browser window's top-level owner (e.g. WM_CLOSE
on Windows). If no OS window exists (window rendering disabled) returning false
will cause the browser object to be destroyed immediately. Return true if
the browser is parented to another window and that other window needs to
receive close notification via some non-standard technique.
!!IMPORTANT!!: Behaviour of this implementation differs from the default,
the WM_CLOSE message is only sent by default for popups (return false),
for the main browser we return true to cancel this behaviour.
If an application provides its own top-level window it should handle OS
close notifications by calling CefBrowserHost::CloseBrowser(false) instead
of immediately closing (see the example below). This gives CEF an
opportunity to process the 'onbeforeunload' event and optionally cancel the
close before DoClose() is called.
The CefLifeSpanHandler::OnBeforeClose() method will be called immediately
before the browser object is destroyed. The application should only exit
after OnBeforeClose() has been called for all existing browsers.
If the browser represents a modal window and a custom modal loop
implementation was provided in CefLifeSpanHandler::RunModal() this callback
should be used to restore the opener window to a usable state.
By way of example consider what should happen during window close when the
browser is parented to an application-provided top-level OS window.
1. User clicks the window close button which sends an OS close
notification (e.g. WM_CLOSE on Windows, performClose: on OS-X and
"delete_event" on Linux).
2. Application's top-level window receives the close notification and:
A. Calls CefBrowserHost::CloseBrowser(false).
B. Cancels the window close.
3. JavaScript 'onbeforeunload' handler executes and shows the close
confirmation dialog (which can be overridden via
CefJSDialogHandler::OnBeforeUnloadDialog()).
4. User approves the close.
5. JavaScript 'onunload' handler executes.
6. Application's DoClose() handler is called. Application will:
A. Set a flag to indicate that the next close attempt will be allowed.
B. Return false.
7. CEF sends an OS close notification.
8. Application's top-level window receives the OS close notification and
allows the window to close based on the flag from #6B.
9. Browser OS window is destroyed.
10. Application's CefLifeSpanHandler::OnBeforeClose() handler is called and
the browser object is destroyed.
11. Application exits by calling CefQuitMessageLoop() if no other browsers
exist.
(Overrides LifeSpanHandlerDoClose(IWebBrowser, IBrowser).) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnAfterCreated |
Called after a new browser is created.
(Overrides LifeSpanHandlerOnAfterCreated(IWebBrowser, IBrowser).) | |
OnBeforeClose |
Called before a CefBrowser window (either the main browser for IWebBrowser,
or one of its children)
(Overrides LifeSpanHandlerOnBeforeClose(IWebBrowser, IBrowser).) | |
OnBeforePopup |
Called before a popup window is created. By default the popup (browser) is created in a new native window.
(Overrides LifeSpanHandlerOnBeforePopup(IWebBrowser, IBrowser, IFrame, String, String, WindowOpenDisposition, Boolean, IPopupFeatures, IWindowInfo, IBrowserSettings, Boolean, IWebBrowser).) | |
OnBeforePopupCreated |
The OnBeforePopupCreatedDelegate will be called before the popup has been created and
can be used to cancel popup creation if required or modify IBrowserSettings.
| |
OnPopupBrowserCreated |
The OnPopupBrowserCreatedDelegate will be called when theIBrowser has been
created. The IBrowser instance is valid until OnPopupDestroyed(OnPopupDestroyedDelegate)
is called. IBrowser provides low level access to the CEF Browser, you can access frames, view source,
perform navigation (via frame) etc.
| |
OnPopupCreated |
The OnPopupCreatedDelegate will be called when theChromiumHostControl has been
created. When the OnPopupCreatedDelegate is called you must add the control to it's intended parent
so the ClientRectangle can be calculated to set the initial
size correctly.
| |
OnPopupDestroyed |
The OnPopupDestroyedDelegate will be called when the ChromiumHostControl is to be
removed from it's parent.
When the OnPopupDestroyedDelegate is called you must remove/dispose of the ChromiumHostControl.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |