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 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+