Skip to content

Commit

Permalink
5249 (OutSystems#56)
Browse files Browse the repository at this point in the history
* Smash 4472 CefGlue and CefGlue.Interop.Gen folders with 5249 original folders

* Partially apply patch with outsystems changes

* Bring changes from CefGlue/CefGlue.csproj CefGlue/CefObjectTracker.cs CefGlue/CefRuntime.cs CefGlue/Classes.Handlers/CefAccessibilityHandler.cs Directory.Build.props

* Bring changes from CefGlue/Classes.Handlers/CefApp.cs

* Bring changes to CefGlue/Classes.Handlers/CefBrowserProcessHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefClient.cs

* Bring changes from CefGlue/Classes.Handlers/CefContextMenuHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefDownloadHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefDownloadImageCallback.cs

* Bring changes from CefGlue/Classes.Handlers/CefDragHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefKeyboardHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefLifeSpanHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefMenuModelDelegate.cs

* Bring changes from CefGlue/Classes.Handlers/CefNavigationEntryVisitor.cs

* Bring changes from CefGlue/Classes.Handlers/CefPrintHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefRenderHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefRenderProcessHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefRequestContextHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefRequestHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefResourceHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefResourceRequestHandler.cs

* Bring changes from CefGlue/Classes.Handlers/CefSchemeHandlerFactory.cs

* Bring changes from CefGlue/Classes.Handlers/CefUrlRequestClient.cs

* Bring changes from CefGlue/Classes.Handlers/CefV8Accessor.cs

* Bring changes from CefGlue/Classes.Handlers/CefV8Handler.cs

* Bring changes from CefGlue/Classes.Handlers/CefV8Interceptor.cs

* Bring changes from CefGlue/Classes.Proxies/CefBinaryValue.cs

* Bring changes from CefGlue/Classes.Proxies/CefBrowserHost.cs

* Bring changes from CefGlue/Classes.Proxies/CefDictionaryValue.cs

* Bring changes from CefGlue/Classes.Proxies/CefListValue.cs

* Bring changes from CefGlue/ExceptionBuilder.cs

* Bring changes from CefGlue/Wrapper/MessageRouter/CefMessageRouterRendererSide.cs

* Bring new files Classes.Interfaces/ICefListValue.cs Classes.Interfaces/ICefDictionaryValue.cs Classes.Interfaces/ICefBinaryValue.cs

* Create gen bash command

* Update cef binary versions and upgrade cefglue version

* Add generated files and fix some build issues (OutSystems#58)

* Fix avalonia example app: evaluate javascript

* Fix date serialization from javascript

* Fix identation

* Fix cefglue package version

* Upgrade avalonia version

* Improve date serialization and fix date tests

* Fix generator script

* Migrate to .net6

* Remove comments

* Remove newline on Directory.Build.props

Co-authored-by: João Neves <[email protected]>

* Support net6.0

* Support WPF for CEF 5249 (OutSystems#62)

* Add support for WPF

* Add wpf support

* Remove comments

* Removing slow opening and runtime errors (OutSystems#61)

* Removing slow opening and and runtime errors

* RICT-5043 :: Moving net versions to variables

* RICT-5043 :: Merging copy into the same section

* RICT-5043 :: Adding move target

* Update CefGlue.Common/build/CefGlue.Common.targets

Co-authored-by: João Neves <[email protected]>

* RICT-5043 :: Code Review

* RICT-5043 :: Code Review

---------

Co-authored-by: João Neves <[email protected]>

* CEF 5249: Fix Javascript context events not being fired (OutSystems#63)

* Fix js context events not being fired

* Remove comment

* Remove unused messages

* Remove debug logs

* Remove unused files

* Extract javascript events from javascript execution engine

* Apply review suggestions

* Overal csproj improvements (OutSystems#65)

* RICT-5053 :: Overall csproj improvements

* RICT-5053 :: code review

* Update Directory.Build.props

Co-authored-by: João Neves <[email protected]>

* RICT-5053 :: code review

---------

Co-authored-by: João Neves <[email protected]>

* Apply rename variables; Improve tests

* Remove WPF

* Increase coverage for javascript context events

* Remove useless file

* Remove rubish file

* Improve tests

* Keep WPF on 5249 (OutSystems#67)

* Bring back WPF

* Bring WPF back

* Fix build

* Fix copy cefglueprocess issues

* Update target framework to use variables

* Remove references

* Remove warnings

* Update CefGlue.Demo.WPF/CefGlue.Demo.WPF.csproj

Co-authored-by: João Neves <[email protected]>

* Update CefGlue.Demo.WPF/CefGlue.Demo.WPF.csproj

Co-authored-by: João Neves <[email protected]>

---------

Co-authored-by: João Neves <[email protected]>

* Revert changes to solution file

* Update solution file

* Move all projects to .net 6.0

* Update CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj

Co-authored-by: João Neves <[email protected]>

* Fix build

---------

Co-authored-by: João Neves <[email protected]>
Co-authored-by: José Santos <[email protected]>
  • Loading branch information
3 people authored Feb 8, 2023
1 parent e635050 commit 31fd774
Show file tree
Hide file tree
Showing 367 changed files with 12,625 additions and 10,093 deletions.
2 changes: 1 addition & 1 deletion CefGlue.Avalonia/CefGlue.Avalonia.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>$(DotnetVersion)</TargetFramework>
<RootNamespace>Xilium.CefGlue.Avalonia</RootNamespace>
<AssemblyName>Xilium.CefGlue.Avalonia</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
Expand Down
12 changes: 6 additions & 6 deletions CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFrameworks>net472;net5.0</TargetFrameworks>
<TargetFrameworks>$(DotnetVersion)</TargetFrameworks>
<AssemblyName>Xilium.CefGlue.BrowserProcess</AssemblyName>
<RootNamespace>Xilium.CefGlue.BrowserProcess</RootNamespace>
<Configurations>Debug;Release;Debug_WindowlessRender</Configurations>
<RuntimeIdentifiers>osx-x64;win-x64</RuntimeIdentifiers>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IsWindows Condition="$([MSBuild]::IsOSPlatform('Windows'))">True</IsWindows>
<IsWindows Condition="$([MSBuild]::IsOSPlatform('Windows'))">True</IsWindows>
</PropertyGroup>

<ItemGroup>
Expand All @@ -20,11 +20,11 @@
<ItemGroup>
<PackageReference Include="System.Runtime.Loader" />
</ItemGroup>
<Target Name="PublishApp" AfterTargets="AfterBuild" Condition="'$(_AssemblyTimestampBeforeCompile)' != '$(_AssemblyTimestampAfterCompile)' and $(TargetFramework.StartsWith('net5')) and '$(IsPublishing)' != 'True'">

<Target Name="PublishApp" AfterTargets="AfterBuild" Condition="'$(_AssemblyTimestampBeforeCompile)' != '$(_AssemblyTimestampAfterCompile)' and '$(IsPublishing)' != 'True'">
<!-- Publish both platforms on Windows for packaging -->
<Message Text="Publishing..." Importance="High" />
<MSBuild Condition="$(IsWindows) == 'True'" Projects="CefGlue.BrowserProcess.csproj" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;RuntimeIdentifier=win-x64"/>
<MSBuild Projects="CefGlue.BrowserProcess.csproj" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;RuntimeIdentifier=osx-x64"/>
<MSBuild Condition="$(IsWindows) == 'True'" Projects="CefGlue.BrowserProcess.csproj" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;RuntimeIdentifier=win-x64" />
<MSBuild Projects="CefGlue.BrowserProcess.csproj" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;RuntimeIdentifier=osx-x64" />
</Target>
</Project>
8 changes: 0 additions & 8 deletions CefGlue.BrowserProcess/Handlers/RenderProcessHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ protected override void OnContextCreated(CefBrowser browser, CefFrame frame, Cef
{
base.OnContextCreated(browser, frame, context);
_javascriptToNativeDispatcher.HandleContextCreated(context, frame.IsMain);

var message = new Messages.JsContextCreated();
var cefMessage = message.ToCefProcessMessage();
frame.SendProcessMessage(CefProcessId.Browser, cefMessage);
}
}, frame);
}
Expand All @@ -63,10 +59,6 @@ protected override void OnContextReleased(CefBrowser browser, CefFrame frame, Ce
{
_javascriptToNativeDispatcher.HandleContextReleased(context, frame.IsMain);
base.OnContextReleased(browser, frame, context);

var message = new Messages.JsContextReleased();
var cefMessage = message.ToCefProcessMessage();
frame.SendProcessMessage(CefProcessId.Browser, cefMessage);
}
}, frame);
}
Expand Down
2 changes: 1 addition & 1 deletion CefGlue.BrowserProcess/Helpers/NativeLibsLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ internal static class NativeLibsLoader
/// </summary>
public static void Install()
{
#if NET5_0
#if NET5_0_OR_GREATER
string extension = null;
var basePath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ".."));

Expand Down
2 changes: 1 addition & 1 deletion CefGlue.Common.Shared/CefGlue.Common.Shared.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net472;netstandard2.0</TargetFrameworks>
<TargetFramework>$(DotnetVersion)</TargetFramework>
<AssemblyName>Xilium.CefGlue.Common.Shared</AssemblyName>
<RootNamespace>Xilium.CefGlue.Common.Shared</RootNamespace>
<Configurations>Debug;Release;Debug_WindowlessRender</Configurations>
Expand Down
30 changes: 0 additions & 30 deletions CefGlue.Common.Shared/RendererProcessCommunication/Messages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -226,36 +226,6 @@ public static NativeObjectCallResult FromCefMessage(CefProcessMessage message)
}
}

public struct JsContextCreated
{
public const string Name = nameof(JsContextCreated);

public CefProcessMessage ToCefProcessMessage()
{
return CefProcessMessage.Create(Name);
}

public static JsContextCreated FromCefMessage(CefProcessMessage message)
{
return new JsContextCreated();
}
}

public struct JsContextReleased
{
public const string Name = nameof(JsContextReleased);

public CefProcessMessage ToCefProcessMessage()
{
return CefProcessMessage.Create(Name);
}

public static JsContextReleased FromCefMessage(CefProcessMessage message)
{
return new JsContextReleased();
}
}

public struct JsUncaughtException
{
public const string Name = nameof(JsUncaughtException);
Expand Down
11 changes: 5 additions & 6 deletions CefGlue.Common/CefGlue.Common.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net472;netstandard2.0</TargetFrameworks>
<TargetFramework>$(DotnetVersion)</TargetFramework>
<AssemblyName>Xilium.CefGlue.Common</AssemblyName>
<RootNamespace>Xilium.CefGlue.Common</RootNamespace>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
Expand Down Expand Up @@ -33,7 +33,7 @@
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
<IncludeAssets>CefGlue.Common.Shared.dll</IncludeAssets>
</ProjectReference>

<ProjectReference Include="..\CefGlue\CefGlue.csproj">
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
<IncludeAssets>CefGlue.dll</IncludeAssets>
Expand All @@ -46,16 +46,15 @@
<Target DependsOnTargets="ResolveReferences" Name="CopyProjectReferencesToPackage">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths-&gt;WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
<BuildOutputInPackage Condition="'$(TargetFramework)' == 'net472'" Include="..\CefGlue.BrowserProcess\bin\$(Configuration)\net472\Xilium.CefGlue.BrowserProcess.*" />

<TfmSpecificPackageFile Include="..\CefGlue.BrowserProcess\bin\$(Configuration)\net5.0\win-x64\publish\**\*">
<TfmSpecificPackageFile Include="..\CefGlue.BrowserProcess\bin\$(Configuration)\$(DotnetVersion)\win-x64\publish\**\*">
<PackagePath>bin\win</PackagePath>
</TfmSpecificPackageFile>

<TfmSpecificPackageFile Include="..\CefGlue.BrowserProcess\bin\$(Configuration)\net5.0\osx-x64\publish\**\*">
<TfmSpecificPackageFile Include="..\CefGlue.BrowserProcess\bin\$(Configuration)\$(DotnetVersion)\osx-x64\publish\**\*">
<PackagePath>bin\osx</PackagePath>
</TfmSpecificPackageFile>
</ItemGroup>
</Target>

</Project>
32 changes: 19 additions & 13 deletions CefGlue.Common/CommonBrowserAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public double ZoomLevel
set => BrowserHost?.SetZoomLevel(value);
}

public bool IsJavascriptEngineInitialized => _javascriptExecutionEngine?.IsMainFrameContextInitialized == true;
public bool IsJavascriptEngineInitialized { get; private set; }

public CefBrowserSettings Settings { get; } = new CefBrowserSettings();

Expand Down Expand Up @@ -322,16 +322,6 @@ protected virtual void SetupBrowserView(CefWindowInfo windowInfo, int width, int
windowInfo.SetAsChild(hostViewHandle, new CefRectangle(0, 0, width, height));
}

private void OnJavascriptExecutionEngineContextCreated(CefFrame frame)
{
JavascriptContextCreated?.Invoke(_eventsEmitter, new JavascriptContextLifetimeEventArgs(frame));
}

private void OnJavascriptExecutionEngineContextReleased(CefFrame frame)
{
JavascriptContextReleased?.Invoke(_eventsEmitter, new JavascriptContextLifetimeEventArgs(frame));
}

private void OnJavascriptExecutionEngineUncaughtException(JavascriptUncaughtExceptionEventArgs args)
{
JavascriptUncaughtException?.Invoke(_eventsEmitter, args);
Expand Down Expand Up @@ -417,8 +407,6 @@ private void OnBrowserCreated(CefBrowser browser)
if (dispatcher != null)
{
var javascriptExecutionEngine = new JavascriptExecutionEngine(dispatcher);
javascriptExecutionEngine.ContextCreated += OnJavascriptExecutionEngineContextCreated;
javascriptExecutionEngine.ContextReleased += OnJavascriptExecutionEngineContextReleased;
javascriptExecutionEngine.UncaughtException += OnJavascriptExecutionEngineUncaughtException;
_javascriptExecutionEngine = javascriptExecutionEngine;

Expand Down Expand Up @@ -574,6 +562,24 @@ void ICefBrowserHost.HandleLoadingStateChange(CefBrowser browser, bool isLoading
LoadingStateChange?.Invoke(_eventsEmitter, new LoadingStateChangeEventArgs(isLoading, canGoBack, canGoForward));
}

void ICefBrowserHost.HandleFrameAttached(CefBrowser browser, CefFrame frame, bool reattached)
{
if (frame.IsMain)
{
IsJavascriptEngineInitialized = true;
}
JavascriptContextCreated?.Invoke(_eventsEmitter, new JavascriptContextLifetimeEventArgs(frame));
}

void ICefBrowserHost.HandleFrameDetached(CefBrowser browser, CefFrame frame)
{
if (frame.IsMain)
{
IsJavascriptEngineInitialized = false;
}
JavascriptContextReleased?.Invoke(_eventsEmitter, new JavascriptContextLifetimeEventArgs(frame));
}

void ICefBrowserHost.HandleOpenContextMenu(CefContextMenuParams parameters, CefMenuModel model, CefRunContextMenuCallback callback)
{
Control.OpenContextMenu(MenuEntry.FromCefModel(model), parameters.X, parameters.Y, callback);
Expand Down
8 changes: 8 additions & 0 deletions CefGlue.Common/CommonCefClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ internal sealed class CommonCefClient : CefClient
private readonly CefDisplayHandler _displayHandler;
private readonly CefRenderHandler _renderHandler;
private readonly CefLoadHandler _loadHandler;
private readonly CefFrameHandler _frameHandler;
private readonly CefContextMenuHandler _contextMenuHandler;
private readonly ICefBrowserHost _owner;

Expand All @@ -29,6 +30,8 @@ public CommonCefClient(ICefBrowserHost owner, CefRenderHandler renderHandler, IL
_lifeSpanHandler = new CommonCefLifeSpanHandler(owner);
_displayHandler = new CommonCefDisplayHandler(owner);
_loadHandler = new CommonCefLoadHandler(owner);
_frameHandler = new CommonCefFrameHandler(owner);

_contextMenuHandler = new CommonCefContextMenuHandler(owner);
}

Expand Down Expand Up @@ -97,6 +100,11 @@ protected override CefLoadHandler GetLoadHandler()
return _loadHandler;
}

protected override CefFrameHandler GetFrameHandler()
{
return _frameHandler;
}

protected override bool OnProcessMessageReceived(CefBrowser browser, CefFrame frame, CefProcessId sourceProcess, CefProcessMessage message)
{
try
Expand Down
10 changes: 1 addition & 9 deletions CefGlue.Common/CommonOffscreenBrowserAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,11 @@ private void SendMouseClickEvent(CefMouseEvent mouseEvent, CefMouseButtonType mo
BrowserHost?.SendMouseClickEvent(mouseEvent, mouseButton, isMouseUp, clickCount);
}

protected override void HandleGotFocus()
{
WithErrorHandling(nameof(HandleGotFocus), () =>
{
BrowserHost?.SendFocusEvent(true);
});
}

private void HandleLostFocus()
{
WithErrorHandling(nameof(HandleLostFocus), () =>
{
BrowserHost?.SendFocusEvent(false);
BrowserHost?.SetFocus(false);
});
}

Expand Down
8 changes: 8 additions & 0 deletions CefGlue.Common/Helpers/JavascriptToNativeTypeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ internal static class JavascriptToNativeTypeConverter
{
private delegate IList ListContructor(int length, out Type genericType);

private static readonly DateTime _windowsEpoch = new DateTime(1601, 1, 1);
private static readonly IDictionary<Type, MemberInfo[]> _typeMembersCache = new Dictionary<Type, MemberInfo[]>();
private static readonly IDictionary<Type, ListContructor> _typeListConstructorCache = new Dictionary<Type, ListContructor>();

Expand Down Expand Up @@ -48,6 +49,13 @@ public static object ConvertToNative(object obj, Type expectedType)
return Convert.ToDouble(obj);
}

if (expectedType == typeof(DateTime)
&& obj is Dictionary<string,object> { Count: 1 } objValue
&& objValue.TryGetValue("Ticks", out var dateTicksInMicroseconds)) {
var milliseconds = Convert.ToDouble(dateTicksInMicroseconds) / 1000;
return _windowsEpoch.AddMilliseconds(milliseconds);
}

var objType = obj.GetType();

// expectedType can be assigned directly from objectType
Expand Down
2 changes: 1 addition & 1 deletion CefGlue.Common/Helpers/MenuEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ internal class MenuEntry
internal static MenuEntry[] FromCefModel(CefMenuModel model)
{
var menuItems = new List<MenuEntry>();
for (var i = 0; i < model.Count; i++)
for (nuint i = 0; i < model.Count; i++)
{
var entry = new MenuEntry()
{
Expand Down
3 changes: 3 additions & 0 deletions CefGlue.Common/ICefBrowserHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ internal interface ICefBrowserHost
void HandleLoadError(CefBrowser browser, CefFrame frame, CefErrorCode errorCode, string errorText, string failedUrl);
void HandleLoadingStateChange(CefBrowser browser, bool isLoading, bool canGoBack, bool canGoForward);

void HandleFrameAttached(CefBrowser browser, CefFrame frame, bool reattached);
void HandleFrameDetached(CefBrowser browser, CefFrame frame);

void HandleOpenContextMenu(CefContextMenuParams parameters, CefMenuModel model, CefRunContextMenuCallback callback);
void HandleCloseContextMenu();

Expand Down
28 changes: 28 additions & 0 deletions CefGlue.Common/InternalHandlers/CommonCefFrameHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace Xilium.CefGlue.Common.InternalHandlers
{
internal class CommonCefFrameHandler : CefFrameHandler
{
private readonly ICefBrowserHost _owner;

public CommonCefFrameHandler(ICefBrowserHost owner)
{
_owner = owner;
}

protected override void OnFrameAttached(CefBrowser browser, CefFrame frame, bool reattached)
{
base.OnFrameAttached(browser, frame, reattached);
_owner.HandleFrameAttached(browser, frame, reattached);
}

protected override void OnFrameDetached(CefBrowser browser, CefFrame frame)
{
base.OnFrameDetached(browser, frame);
_owner.HandleFrameDetached(browser, frame);
}
}
}
28 changes: 0 additions & 28 deletions CefGlue.Common/JavascriptExecution/JavascriptExecutionEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,9 @@ internal class JavascriptExecutionEngine : IDisposable
public JavascriptExecutionEngine(MessageDispatcher dispatcher)
{
dispatcher.RegisterMessageHandler(Messages.JsEvaluationResult.Name, HandleScriptEvaluationResultMessage);
dispatcher.RegisterMessageHandler(Messages.JsContextCreated.Name, HandleContextCreatedMessage);
dispatcher.RegisterMessageHandler(Messages.JsContextReleased.Name, HandleContextReleasedMessage);
dispatcher.RegisterMessageHandler(Messages.JsUncaughtException.Name, HandleUncaughtExceptionMessage);
}

public bool IsMainFrameContextInitialized { get; private set; }

public event Action<CefFrame> ContextCreated;
public event Action<CefFrame> ContextReleased;
public event Action<JavascriptUncaughtExceptionEventArgs> UncaughtException;

private void HandleScriptEvaluationResultMessage(MessageReceivedEventArgs args)
Expand All @@ -47,26 +41,6 @@ private void HandleScriptEvaluationResultMessage(MessageReceivedEventArgs args)
}
}

private void HandleContextCreatedMessage(MessageReceivedEventArgs args)
{
var message = Messages.JsContextCreated.FromCefMessage(args.Message);
if (args.Frame.IsMain)
{
IsMainFrameContextInitialized = true;
}
ContextCreated?.Invoke(args.Frame);
}

private void HandleContextReleasedMessage(MessageReceivedEventArgs args)
{
var message = Messages.JsContextReleased.FromCefMessage(args.Message);
if (args.Frame.IsMain)
{
IsMainFrameContextInitialized = false;
}
ContextReleased?.Invoke(args.Frame);
}

private void HandleUncaughtExceptionMessage(MessageReceivedEventArgs args)
{
var message = Messages.JsUncaughtException.FromCefMessage(args.Message);
Expand Down Expand Up @@ -119,8 +93,6 @@ public Task<T> Evaluate<T>(string script, string url, int line, CefFrame frame,

public void Dispose()
{
ContextCreated = null;
ContextReleased = null;
UncaughtException = null;
foreach (var task in _pendingTasks)
{
Expand Down
2 changes: 1 addition & 1 deletion CefGlue.Common/build/CefGlue.Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
<ItemGroup Condition="'$(CefGlueTargetPlatform)' != ''">
<CefGlueBrowserProcessFiles Include="$(MSBuildThisFileDirectory)..\bin\$(CefGlueTargetPlatform)\*" />
</ItemGroup>
</Project>
</Project>
Loading

0 comments on commit 31fd774

Please sign in to comment.