Skip to content
This repository has been archived by the owner on Jan 15, 2023. It is now read-only.

Commit

Permalink
Fix for issue #234.
Browse files Browse the repository at this point in the history
  • Loading branch information
mattkol committed Aug 9, 2020
1 parent 9bf2efb commit e8d7b17
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 7 deletions.
53 changes: 47 additions & 6 deletions src/Chromely.CefGlue/Browser/CefGlueApp.cs
Expand Up @@ -7,7 +7,10 @@
// </license>
// ----------------------------------------------------------------------------------------------------------------------

using System;
using System.Linq;
using Chromely.CefGlue.Browser.Handlers;
using Chromely.Core;
using Chromely.Core.Configuration;
using Chromely.Core.Infrastructure;
using Xilium.CefGlue;
Expand All @@ -16,17 +19,17 @@ namespace Chromely.CefGlue.Browser
{
public class CefGlueApp : CefApp
{
private readonly IChromelyContainer _container;
private readonly IChromelyConfiguration _config;
private readonly CefRenderProcessHandler _renderProcessHandler;

private readonly CefBrowserProcessHandler _browserProcessHandler;

private readonly IChromelyConfiguration _config;

public CefGlueApp(IChromelyConfiguration config)
public CefGlueApp(IChromelyContainer container, IChromelyConfiguration config)
{
_container = container;
_config = config;
_renderProcessHandler = new CefGlueRenderProcessHandler(_config);
_browserProcessHandler = new CefGlueBrowserProcessHandler(_config);
_renderProcessHandler = RenderProcessHandler;
_browserProcessHandler = BrowserProcessHandler;
}

/// <summary>
Expand Down Expand Up @@ -116,5 +119,43 @@ protected override CefBrowserProcessHandler GetBrowserProcessHandler()
{
return _browserProcessHandler;
}

private CefGlueRenderProcessHandler RenderProcessHandler
{
get
{
var handler = GetCustomHandler(typeof(CefGlueRenderProcessHandler)) as CefGlueRenderProcessHandler;
if (handler != null)
{
return handler;
}

return new CefGlueRenderProcessHandler(_config);
}
}

private CefGlueBrowserProcessHandler BrowserProcessHandler
{
get
{
var handler = GetCustomHandler(typeof(CefGlueBrowserProcessHandler)) as CefGlueBrowserProcessHandler;
if (handler != null)
{
return handler;
}

return new CefGlueBrowserProcessHandler(_config);
}
}
private object GetCustomHandler(Type handlerType)
{
var customHandlers = _container.GetAllInstances(typeof(IChromelyCustomHandler));
if (customHandlers != null && customHandlers.Any())
{
return customHandlers.FirstOrDefault(x => x.GetType() == handlerType);
}

return null;
}
}
}
2 changes: 1 addition & 1 deletion src/Chromely.CefGlue/BrowserWindow/HostBase.cs
Expand Up @@ -224,7 +224,7 @@ private int RunInternal(string[] args)
_config.DevToolsUrl = $"http://127.0.0.1:{settings.RemoteDebuggingPort}";

var mainArgs = new CefMainArgs(argv);
CefApp app = new CefGlueApp(_config);
CefApp app = new CefGlueApp(_container, _config);

if (ClientAppUtils.ExecuteProcess(_config.Platform, argv))
{
Expand Down

0 comments on commit e8d7b17

Please sign in to comment.