diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2022-03-24 09:10:15 +0100 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2022-04-07 21:46:20 +0200 |
commit | a4e32eac5cb858ffa5668b01cef10cc42854713b (patch) | |
tree | 0190ecc4bd9be5b74d0be69dbb4d40186f825283 /src/core/web_engine_error.cpp | |
parent | ef685c981d4245b7c704a9d566b05db064756c1f (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.cpp | 19 |
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(); +} |