// Copyright © 2013 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 "include/cef_browser.h" #include "include/cef_v8.h" #include "TypeUtils.h" #include "Stdafx.h" #include "JavascriptRootObjectWrapper.h" using namespace CefSharp::BrowserSubprocess::Async; #ifndef NETCOREAPP using namespace System::ServiceModel; #endif using namespace System::Threading; using namespace System::Threading::Tasks; namespace CefSharp { namespace BrowserSubprocess { // "Master class" for wrapping everything that the Cef Subprocess needs // for ONE CefBrowser. public ref class CefBrowserWrapper { private: MCefRefPtr _cefBrowser; MCefRefPtr _javascriptBindingApiAllowOrigins; public: CefBrowserWrapper(const CefRefPtr &cefBrowser) { _cefBrowser = cefBrowser.get(); BrowserId = cefBrowser->GetIdentifier(); IsPopup = cefBrowser->IsPopup(); JavascriptBindingApiEnabled = true; JavascriptBindingApiHasAllowOrigins = false; JavascriptBindingApiAllowOrigins = nullptr; } !CefBrowserWrapper() { _cefBrowser = nullptr; _javascriptBindingApiAllowOrigins = nullptr; } ~CefBrowserWrapper() { this->!CefBrowserWrapper(); } property int BrowserId; property bool IsPopup; property bool JavascriptBindingApiEnabled; property bool JavascriptBindingApiHasAllowOrigins; property CefRefPtr JavascriptBindingApiAllowOrigins { CefRefPtr get() { return _javascriptBindingApiAllowOrigins.get(); } void set(CefRefPtr value) { _javascriptBindingApiAllowOrigins = value.get(); } } #ifndef NETCOREAPP // This allows us to create the WCF proxies back to our parent process. property ChannelFactory^ ChannelFactory; // The WCF proxy to the parent process. property IBrowserProcess^ BrowserProcess; #endif }; } }