diff --git a/src/NetDimension.NanUI/Browser/BrowserProcess/Handlers/WinFormiumLoadHandler.cs b/src/NetDimension.NanUI/Browser/BrowserProcess/Handlers/WinFormiumLoadHandler.cs index 4863632b..ccb762f0 100644 --- a/src/NetDimension.NanUI/Browser/BrowserProcess/Handlers/WinFormiumLoadHandler.cs +++ b/src/NetDimension.NanUI/Browser/BrowserProcess/Handlers/WinFormiumLoadHandler.cs @@ -25,9 +25,16 @@ protected override void OnLoadEnd(CefBrowser browser, CefFrame frame, int httpSt if (frame.IsMain) { - if (httpStatusCode >= 400 || httpStatusCode ==0) + if (e.SkipErrorHandler == false && ((httpStatusCode >= 400 && httpStatusCode < 500) || httpStatusCode ==0)) { - frame.LoadUrl("res://formium/InternalError/index.html"); + if(string.IsNullOrEmpty(e.ErrorPageUrl)) + { + frame.LoadUrl("res://formium/InternalError/index.html"); + } + else + { + frame.LoadUrl(e.ErrorPageUrl); + } } else { @@ -39,8 +46,6 @@ protected override void OnLoadEnd(CefBrowser browser, CefFrame frame, int httpSt protected override void OnLoadError(CefBrowser browser, CefFrame frame, CefErrorCode errorCode, string errorText, string failedUrl) { - - var e = new LoadErrorEventArgs(frame, errorCode, errorText, failedUrl); _owner.InvokeIfRequired(() => _owner.OnLoadError(e)); } @@ -74,7 +79,8 @@ internal LoadEndEventArgs(CefFrame frame, int httpStatusCode) Frame = frame; HttpStatusCode = httpStatusCode; } - + public string? ErrorPageUrl { get; set; } + public bool SkipErrorHandler { get; set; } = false; public CefFrame Frame { get; } public int HttpStatusCode { get; } } diff --git a/src/NetDimension.NanUI/NetDimension.NanUI.csproj b/src/NetDimension.NanUI/NetDimension.NanUI.csproj index de0439bf..14a6ae55 100644 --- a/src/NetDimension.NanUI/NetDimension.NanUI.csproj +++ b/src/NetDimension.NanUI/NetDimension.NanUI.csproj @@ -97,15 +97,15 @@ - - - - - - - - - + + + + + + + + +