From 90aed8b176535c92bf05024ebfa3eaf0ddf8433f Mon Sep 17 00:00:00 2001 From: youri Date: Tue, 3 Sep 2024 14:31:36 -0400 Subject: [PATCH 1/3] add OnConsoleMessage from browser --- WebViewControl/WebView.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WebViewControl/WebView.cs b/WebViewControl/WebView.cs index 579de43d..49c90d66 100644 --- a/WebViewControl/WebView.cs +++ b/WebViewControl/WebView.cs @@ -72,6 +72,7 @@ public partial class WebView : IDisposable { public event Action TitleChanged; public event UnhandledAsyncExceptionEventHandler UnhandledAsyncException; public event Action PopupOpening; + public event ConsoleMessageEventHandler OnConsoleMessage; internal event Action Disposed; internal event JavascriptContextReleasedEventHandler JavascriptContextReleased; @@ -129,6 +130,8 @@ private void Initialize() { chromium.JavascriptContextReleased += OnJavascriptContextReleased; chromium.JavascriptUncaughException += OnJavascriptUncaughException; chromium.UnhandledException += (o, e) => ForwardUnhandledAsyncException(e.Exception); + chromium.ConsoleMessage += (o, e) => OnConsoleMessage.Invoke(o, e); + chromium.RequestHandler = new InternalRequestHandler(this); chromium.LifeSpanHandler = new InternalLifeSpanHandler(this); From 983bcb182ecd74036a3e001c48f5e80da3b8c4e4 Mon Sep 17 00:00:00 2001 From: youri Date: Wed, 4 Sep 2024 11:21:12 -0400 Subject: [PATCH 2/3] rename OnConsoleMessage to ConsoleMessageEmitted --- WebViewControl/WebView.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebViewControl/WebView.cs b/WebViewControl/WebView.cs index 49c90d66..94ad36f2 100644 --- a/WebViewControl/WebView.cs +++ b/WebViewControl/WebView.cs @@ -72,7 +72,7 @@ public partial class WebView : IDisposable { public event Action TitleChanged; public event UnhandledAsyncExceptionEventHandler UnhandledAsyncException; public event Action PopupOpening; - public event ConsoleMessageEventHandler OnConsoleMessage; + public event ConsoleMessageEventHandler ConsoleMessageEmitted; internal event Action Disposed; internal event JavascriptContextReleasedEventHandler JavascriptContextReleased; @@ -130,7 +130,7 @@ private void Initialize() { chromium.JavascriptContextReleased += OnJavascriptContextReleased; chromium.JavascriptUncaughException += OnJavascriptUncaughException; chromium.UnhandledException += (o, e) => ForwardUnhandledAsyncException(e.Exception); - chromium.ConsoleMessage += (o, e) => OnConsoleMessage.Invoke(o, e); + chromium.ConsoleMessage += (o, e) => ConsoleMessageEmitted.Invoke(o, e); chromium.RequestHandler = new InternalRequestHandler(this); From e31e5fb6230ccba8e0b4f262d60d064ead28ebc5 Mon Sep 17 00:00:00 2001 From: youri Date: Fri, 6 Sep 2024 08:23:47 -0400 Subject: [PATCH 3/3] recreate ConsoleMessageEventArgs, ConsoleMessageEventHandler and CefLogSeverity in the webviewcontrol namespace --- .../ConsoleMessageEventArgs.cs | 23 ++++++++++ .../ConsoleMessageEventHandler.cs | 7 +++ WebViewControl.Avalonia/ELogSeverity.cs | 46 +++++++++++++++++++ WebViewControl/ConsoleMessageEventArgs.cs | 23 ++++++++++ WebViewControl/ConsoleMessageEventHandler.cs | 7 +++ WebViewControl/ELogSeverity.cs | 46 +++++++++++++++++++ WebViewControl/WebView.cs | 3 +- 7 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 WebViewControl.Avalonia/ConsoleMessageEventArgs.cs create mode 100644 WebViewControl.Avalonia/ConsoleMessageEventHandler.cs create mode 100644 WebViewControl.Avalonia/ELogSeverity.cs create mode 100644 WebViewControl/ConsoleMessageEventArgs.cs create mode 100644 WebViewControl/ConsoleMessageEventHandler.cs create mode 100644 WebViewControl/ELogSeverity.cs diff --git a/WebViewControl.Avalonia/ConsoleMessageEventArgs.cs b/WebViewControl.Avalonia/ConsoleMessageEventArgs.cs new file mode 100644 index 00000000..6b5997d1 --- /dev/null +++ b/WebViewControl.Avalonia/ConsoleMessageEventArgs.cs @@ -0,0 +1,23 @@ +using System; + + +namespace WebViewControl { + public class ConsoleMessageEventArgs : EventArgs { + public ConsoleMessageEventArgs(ELogSeverity level, string message, string source, int line) { + Level = level; + Message = message; + Source = source; + Line = line; + } + + public ELogSeverity Level { get; } + + public string Message { get; } + + public string Source { get; } + + public int Line { get; } + + public bool OutputToConsole { get; set; } = true; + } +} diff --git a/WebViewControl.Avalonia/ConsoleMessageEventHandler.cs b/WebViewControl.Avalonia/ConsoleMessageEventHandler.cs new file mode 100644 index 00000000..0d4d24cb --- /dev/null +++ b/WebViewControl.Avalonia/ConsoleMessageEventHandler.cs @@ -0,0 +1,7 @@ +using System; + +namespace WebViewControl { + + public delegate void ConsoleMessageEventHandler(object sender, ConsoleMessageEventArgs message); + +} diff --git a/WebViewControl.Avalonia/ELogSeverity.cs b/WebViewControl.Avalonia/ELogSeverity.cs new file mode 100644 index 00000000..93256191 --- /dev/null +++ b/WebViewControl.Avalonia/ELogSeverity.cs @@ -0,0 +1,46 @@ + +namespace WebViewControl { + public enum ELogSeverity { + + /// + /// Default logging (currently INFO logging). + /// + Default, + + /// + /// Verbose logging. + /// + Verbose, + + /// + /// DEBUG logging. + /// + Debug = Verbose, + + /// + /// INFO logging. + /// + Info, + + /// + /// WARNING logging. + /// + Warning, + + /// + /// ERROR logging. + /// + Error, + + /// + /// FATAL logging. + /// + Fatal, + + /// + /// Disable logging to file for all messages, and to stderr for messages with + /// severity less than FATAL. + /// + Disable = 99, + } +} diff --git a/WebViewControl/ConsoleMessageEventArgs.cs b/WebViewControl/ConsoleMessageEventArgs.cs new file mode 100644 index 00000000..6b5997d1 --- /dev/null +++ b/WebViewControl/ConsoleMessageEventArgs.cs @@ -0,0 +1,23 @@ +using System; + + +namespace WebViewControl { + public class ConsoleMessageEventArgs : EventArgs { + public ConsoleMessageEventArgs(ELogSeverity level, string message, string source, int line) { + Level = level; + Message = message; + Source = source; + Line = line; + } + + public ELogSeverity Level { get; } + + public string Message { get; } + + public string Source { get; } + + public int Line { get; } + + public bool OutputToConsole { get; set; } = true; + } +} diff --git a/WebViewControl/ConsoleMessageEventHandler.cs b/WebViewControl/ConsoleMessageEventHandler.cs new file mode 100644 index 00000000..0d4d24cb --- /dev/null +++ b/WebViewControl/ConsoleMessageEventHandler.cs @@ -0,0 +1,7 @@ +using System; + +namespace WebViewControl { + + public delegate void ConsoleMessageEventHandler(object sender, ConsoleMessageEventArgs message); + +} diff --git a/WebViewControl/ELogSeverity.cs b/WebViewControl/ELogSeverity.cs new file mode 100644 index 00000000..93256191 --- /dev/null +++ b/WebViewControl/ELogSeverity.cs @@ -0,0 +1,46 @@ + +namespace WebViewControl { + public enum ELogSeverity { + + /// + /// Default logging (currently INFO logging). + /// + Default, + + /// + /// Verbose logging. + /// + Verbose, + + /// + /// DEBUG logging. + /// + Debug = Verbose, + + /// + /// INFO logging. + /// + Info, + + /// + /// WARNING logging. + /// + Warning, + + /// + /// ERROR logging. + /// + Error, + + /// + /// FATAL logging. + /// + Fatal, + + /// + /// Disable logging to file for all messages, and to stderr for messages with + /// severity less than FATAL. + /// + Disable = 99, + } +} diff --git a/WebViewControl/WebView.cs b/WebViewControl/WebView.cs index 94ad36f2..a4221ccd 100644 --- a/WebViewControl/WebView.cs +++ b/WebViewControl/WebView.cs @@ -130,8 +130,7 @@ private void Initialize() { chromium.JavascriptContextReleased += OnJavascriptContextReleased; chromium.JavascriptUncaughException += OnJavascriptUncaughException; chromium.UnhandledException += (o, e) => ForwardUnhandledAsyncException(e.Exception); - chromium.ConsoleMessage += (o, e) => ConsoleMessageEmitted.Invoke(o, e); - + chromium.ConsoleMessage += (o, e) => ConsoleMessageEmitted.Invoke(o, new ConsoleMessageEventArgs((ELogSeverity)e.Level, e.Message, e.Source, e.Line)); chromium.RequestHandler = new InternalRequestHandler(this); chromium.LifeSpanHandler = new InternalLifeSpanHandler(this);