summaryrefslogtreecommitdiffstats
path: root/src/core/web_engine_error.cpp
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2022-03-24 09:10:15 +0100
committerKirill Burtsev <kirill.burtsev@qt.io>2022-04-07 21:46:20 +0200
commita4e32eac5cb858ffa5668b01cef10cc42854713b (patch)
tree0190ecc4bd9be5b74d0be69dbb4d40186f825283 /src/core/web_engine_error.cpp
parentef685c981d4245b7c704a9d566b05db064756c1f (diff)
Resolve status code for http response with failure
All non-default https status codes are hidden under net::ERR_HTTP_RESPONSE_CODE_FAILURE error of network stack. Handle successful load case and set the real http status code for error. Also set localized load error description only for http codes. Pick-to: 6.2 6.3 Fixes: QTBUG-46860 Fixes: QTBUG-61100 Task-number: QTBUG-94963 Change-Id: I81e083441d1814fb530f39ea3da1c4ef52b7da59 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/web_engine_error.cpp')
-rw-r--r--src/core/web_engine_error.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/web_engine_error.cpp b/src/core/web_engine_error.cpp
index 52a84494c..a6580d76b 100644
--- a/src/core/web_engine_error.cpp
+++ b/src/core/web_engine_error.cpp
@@ -38,8 +38,17 @@
****************************************************************************/
#include "web_engine_error.h"
+
+#include "components/error_page/common/error.h"
+#include "components/error_page/common/localized_error.h"
#include "net/base/net_errors.h"
+#include "type_conversion.h"
+
+#include <QString>
+
+using namespace QtWebEngineCore;
+
const int WebEngineError::UserAbortedError = net::ERR_ABORTED;
namespace {
@@ -84,3 +93,13 @@ WebEngineError::ErrorDomain WebEngineError::toQtErrorDomain(int error_code)
else
return WebEngineError::InternalErrorDomain;
}
+
+QString WebEngineError::toQtErrorDescription(int errorCode)
+{
+ if (errorCode < 0)
+ return toQt(net::ErrorToString(errorCode));
+ else if (errorCode > 0)
+ return toQt(error_page::LocalizedError::GetErrorDetails(
+ error_page::Error::kHttpErrorDomain, errorCode, false, false));
+ return QString();
+}