Files
lserp_cs_6.0/插件库/Lskj.Control/BrowserSetting2/BsLifeSpanHandler.cs
T

61 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Xilium.CefGlue;
namespace Lskj.Control.BrowserSetting2
{
public class BsLifeSpanHandler : CefLifeSpanHandler
{
private BsClient BsClient;
public BsLifeSpanHandler(BsClient bsClient)
{
BsClient = bsClient;
}
protected override void OnAfterCreated(Xilium.CefGlue.CefBrowser browser)
{
base.OnAfterCreated(browser);
BsClient.Created(browser);
}
protected override bool DoClose(CefBrowser browser)
{
// CEF sends WM_CLOSE to the parked application-owned host after
// this callback. The host only allows that second close attempt.
return BsClient.Closing(browser);
}
protected override void OnBeforeClose(CefBrowser browser)
{
base.OnBeforeClose(browser);
// Release owner references after CEF completes its async close.
BsClient.Closed(browser);
}
protected override bool OnBeforePopup(
CefBrowser browser,
CefFrame frame,
string targetUrl,
string targetFrameName,
CefWindowOpenDisposition targetDisposition,
bool userGesture,
CefPopupFeatures popupFeatures,
CefWindowInfo windowInfo,
ref CefClient client,
CefBrowserSettings settings,
ref CefDictionaryValue extraInfo,
ref bool noJavascriptAccess)
{
if (BsExternalProtocolHandler.TryHandle(targetUrl))
return true;
return base.OnBeforePopup(browser, frame, targetUrl, targetFrameName, targetDisposition,
userGesture, popupFeatures, windowInfo, ref client, settings, ref extraInfo, ref noJavascriptAccess);
}
}
}