123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.IO;
- using CefBridgeDataExchange.Tests.Resources;
- using CefSharp;
- using CefSharp.WinForms;
- namespace CefBridgeDataExchange.Tests.CefRelated
- {
- internal static class CefInit
- {
- public static readonly string ResourceSchemeName = $"cef-custom-scheme-{Guid.NewGuid()}".ToLower();
- public static readonly string ResourceDomainName = $"app-{Guid.NewGuid()}";
- public static readonly string ResourceRootUrl = $"{ResourceSchemeName}://{ResourceDomainName}/";
- public static void Init()
- {
- CefSharpSettings.LegacyJavascriptBindingEnabled = true;
- var settings = new CefSettings();
- settings.BrowserSubprocessPath = Path.Combine(Environment.Is64BitProcess ? "x64" : "x86", settings.BrowserSubprocessPath);
- settings.LogSeverity = LogSeverity.Disable;
- settings.CefCommandLineArgs.Add("-incognito", "");
- settings.CefCommandLineArgs.Add("--disable-application-cache", "");
- settings.CefCommandLineArgs.Add("--disable-cache", "");
- settings.CefCommandLineArgs.Add("--disable-gpu-program-cache", "");
- settings.CefCommandLineArgs.Add("--disable-gpu-shader-disk-cache", "");
- settings.CefCommandLineArgs.Add("--disable-local-storage", "");
- settings.RegisterScheme(new CefCustomScheme
- {
- SchemeName = ResourceSchemeName,
- DomainName = ResourceDomainName,
- SchemeHandlerFactory = new ResourceSchemeHandlerFactory(),
- });
- Cef.Initialize(settings);
- }
- public static void Quit()
- {
- Cef.Shutdown();
- }
- }
- internal class ResourceSchemeHandlerFactory : ISchemeHandlerFactory
- {
- IResourceHandler ISchemeHandlerFactory.Create(IBrowser browser, IFrame frame, string schemeName, IRequest request)
- {
- var path = new Uri(request.Url).LocalPath.TrimStart('/');
- var resource = ResourceLoader.GetBinResource(path);
- return new ResourceHandler(ResourceHandler.GetMimeType(Path.GetExtension(path)), new MemoryStream(resource, false), true);
- }
- }
- }
|