// Copyright © 2021 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
using CefSharp.WinForms.Host;
namespace CefSharp.WinForms.Handler
{
///
/// A WinForms Specific implementation that simplifies
/// the process of hosting a Popup as a Control/Tab.Use this implementation as a base
/// for your own custom implementation if you are using
///
public class LoadHandler : CefSharp.Handler.LoadHandler
{
///
protected override void OnFrameLoadEnd(IWebBrowser chromiumWebBrowser, FrameLoadEndEventArgs args)
{
var browser = args.Browser;
if (browser.IsPopup)
{
var control = ChromiumHostControl.FromBrowser(browser);
control?.OnFrameLoadEnd(args);
}
base.OnFrameLoadEnd(chromiumWebBrowser, args);
}
///
protected override void OnFrameLoadStart(IWebBrowser chromiumWebBrowser, FrameLoadStartEventArgs args)
{
var browser = args.Browser;
if (browser.IsPopup)
{
var control = ChromiumHostControl.FromBrowser(browser);
control?.OnFrameLoadStart(args);
}
base.OnFrameLoadStart(chromiumWebBrowser, args);
}
///
protected override void OnLoadError(IWebBrowser chromiumWebBrowser, LoadErrorEventArgs args)
{
var browser = args.Browser;
if (browser.IsPopup)
{
var control = ChromiumHostControl.FromBrowser(browser);
control?.OnLoadError(args);
}
base.OnLoadError(chromiumWebBrowser, args);
}
///
protected override void OnLoadingStateChange(IWebBrowser chromiumWebBrowser, LoadingStateChangedEventArgs args)
{
var browser = args.Browser;
if (browser.IsPopup)
{
var control = ChromiumHostControl.FromBrowser(browser);
control?.OnLoadingStateChange(args);
}
base.OnLoadingStateChange(chromiumWebBrowser, args);
}
}
}