SIGN IN SIGN UP
cefsharp / CefSharp UNCLAIMED

.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework

0 0 1 C#
// Copyright © 2013 The CefSharp Authors. All rights reserved.
2014-03-09 13:49:35 +01:00
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#pragma once
2014-03-09 13:49:35 +01:00
#include "include/cef_browser.h"
#include "include/cef_v8.h"
2014-03-09 13:49:35 +01:00
#include "TypeUtils.h"
#include "Stdafx.h"
2014-12-04 13:40:41 +10:00
#include "JavascriptRootObjectWrapper.h"
using namespace CefSharp::BrowserSubprocess::Async;
#ifndef NETCOREAPP
using namespace System::ServiceModel;
#endif
2014-03-09 13:49:35 +01:00
using namespace System::Threading;
using namespace System::Threading::Tasks;
2014-03-09 13:49:35 +01:00
namespace CefSharp
{
namespace BrowserSubprocess
{
// "Master class" for wrapping everything that the Cef Subprocess needs
// for ONE CefBrowser.
public ref class CefBrowserWrapper
{
private:
MCefRefPtr<CefBrowser> _cefBrowser;
internal:
//Frame Identifier is used as Key
property ConcurrentDictionary<int64, JavascriptRootObjectWrapper^>^ JavascriptRootObjectWrappers;
public:
CefBrowserWrapper(CefRefPtr<CefBrowser> cefBrowser)
{
2021-09-03 10:51:18 +10:00
_cefBrowser = cefBrowser.get();
BrowserId = cefBrowser->GetIdentifier();
IsPopup = cefBrowser->IsPopup();
JavascriptRootObjectWrappers = gcnew ConcurrentDictionary<int64, JavascriptRootObjectWrapper^>();
}
!CefBrowserWrapper()
{
_cefBrowser = nullptr;
}
~CefBrowserWrapper()
{
this->!CefBrowserWrapper();
if (JavascriptRootObjectWrappers != nullptr)
{
for each (KeyValuePair<int64, JavascriptRootObjectWrapper^> entry in JavascriptRootObjectWrappers)
{
delete entry.Value;
}
JavascriptRootObjectWrappers = nullptr;
}
}
property int BrowserId;
property bool IsPopup;
#ifndef NETCOREAPP
// This allows us to create the WCF proxies back to our parent process.
property ChannelFactory<IBrowserProcess^>^ ChannelFactory;
// The WCF proxy to the parent process.
property IBrowserProcess^ BrowserProcess;
#endif
};
}
2014-03-09 13:49:35 +01:00
}