Repository navigation
Expand file tree
/
Copy pathBrowserManager.cs
More file actions
77 lines (60 loc) · 2.19 KB
/
Copy pathBrowserManager.cs
File metadata and controls
77 lines (60 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using CefSharp.WinForms;
using CefSharp;
using SharpBrowser.Handlers;
using System.IO;
using SharpBrowser.Config;
using SharpBrowser.Utils;
namespace SharpBrowser.Managers {
internal static class BrowserManager {
public static HostHandler _HostHandler;
private static DownloadHandler dHandler;
private static ContextMenuHandler mHandler;
private static LifeSpanHandler lHandler;
private static KeyboardHandler kHandler;
private static RequestHandler rHandler;
private static PermissionHandler pHandler;
public static void Init(MainForm form) {
if (Cef.IsInitialized != true) {
CefSettings settings = new CefSettings();
settings.RegisterScheme(new CefCustomScheme {
SchemeName = BrowserConfig.InternalScheme,
SchemeHandlerFactory = new SchemeHandlerFactory()
});
//------------------------------------------------------------
// FIX: this prevents a crash if 2 CefSharp apps are opened at once
// init cache dirs in AppData Roaming
var rcPath = Path.Combine(ConfigManager.AppDataPath, "CefCache");
// fix: CachePath MUST be a child of the RootCachePath as of CEF 128+
var cPath = Path.Combine(rcPath, "_TempCache");
// create cache dirs
rcPath.EnsureFolderExists();
cPath.EnsureFolderExists();
settings.RootCachePath = rcPath;
settings.CachePath = cPath;
//------------------------------------------------------------
BrowserConfig.GetCefSettings(settings);
Cef.Initialize(settings);
}
if (dHandler == null) {
dHandler = new DownloadHandler(form);
lHandler = new LifeSpanHandler(form);
mHandler = new ContextMenuHandler(form);
kHandler = new KeyboardHandler(form);
rHandler = new RequestHandler(form);
pHandler = new PermissionHandler();
_HostHandler = new HostHandler(form);
}
}
/// <summary>
/// Register our handlers with the given CefSharp browser instance.
/// </summary>
public static void SetupHandlers(ChromiumWebBrowser browser) {
browser.DownloadHandler = dHandler;
browser.MenuHandler = mHandler;
browser.LifeSpanHandler = lHandler;
browser.KeyboardHandler = kHandler;
browser.RequestHandler = rHandler;
browser.PermissionHandler = pHandler;
}
}
}