// Copyright © 2019 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. #pragma once #include "Stdafx.h" #include "SubProcess.h" #include "WcfEnabledSubProcess.h" #include "BrowserSubprocessExecutable.h" using namespace System; using namespace CefSharp::Internals; namespace CefSharp { namespace BrowserSubprocess { /// /// WcfBrowserSubprocessExecutable provides the fundimental browser process handling for /// CefSharp.BrowserSubprocess.exe and can be used to self host the BrowserSubProcess in your /// existing application (preferred approach for .Net Core). /// If the command line argument is /// present then the WcfEnabledSubProcess implementation is used. /// public ref class WcfBrowserSubprocessExecutable : BrowserSubprocessExecutable { public: WcfBrowserSubprocessExecutable() { } protected: SubProcess^ GetSubprocess(IEnumerable^ args, int parentProcessId, IRenderProcessHandler^ handler) override { auto wcfEnabled = CommandLineArgsParser::HasArgument(args, CefSharpArguments::WcfEnabledArgument); if (wcfEnabled) { return gcnew WcfEnabledSubProcess(parentProcessId, handler, args); } return gcnew SubProcess(handler, args); } }; } }