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 579de43d..a4221ccd 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 ConsoleMessageEmitted; internal event Action Disposed; internal event JavascriptContextReleasedEventHandler JavascriptContextReleased; @@ -129,6 +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, new ConsoleMessageEventArgs((ELogSeverity)e.Level, e.Message, e.Source, e.Line)); chromium.RequestHandler = new InternalRequestHandler(this); chromium.LifeSpanHandler = new InternalLifeSpanHandler(this);