| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the QtWebEngine module of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Lesser General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Lesser |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.LGPL3 included in the |
| ** packaging of this file. Please review the following information to |
| ** ensure the GNU Lesser General Public License version 3 requirements |
| ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 2.0 or (at your option) the GNU General |
| ** Public license version 3 or any later version approved by the KDE Free |
| ** Qt Foundation. The licenses are as published by the Free Software |
| ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-2.0.html and |
| ** https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #include "web_engine_error.h" |
| #include "net/base/net_errors.h" |
| |
| const int WebEngineError::UserAbortedError = net::ERR_ABORTED; |
| |
| namespace { |
| const int noError = 0; |
| const int systemRelatedErrors = -1; |
| const int connectionRelatedErrors = -100; |
| const int certificateErrors = -200; |
| const int httpErrors = -300; |
| const int cacheErrors = -400; |
| const int internalErrors = -500; |
| const int ftpErrors = -600; |
| const int certificateManagerErrors = -700; |
| const int dnsResolverErrors = -800; |
| const int endErrors = -900; |
| } |
| |
| WebEngineError::ErrorDomain WebEngineError::toQtErrorDomain(int error_code) |
| { |
| // Chromium's ranges from net/base/net_error_list.h: |
| // 0 No error |
| // 1- 99 System related errors |
| // 100-199 Connection related errors |
| // 200-299 Certificate errors |
| // 300-399 HTTP errors |
| // 400-499 Cache errors |
| // 500-599 Internal errors |
| // 600-699 FTP errors |
| // 700-799 Certificate manager errors |
| // 800-899 DNS resolver errors |
| |
| if (error_code == noError) |
| return WebEngineError::NoErrorDomain; |
| else if (certificateErrors < error_code && error_code <= connectionRelatedErrors) |
| return WebEngineError::ConnectionErrorDomain; |
| else if ((httpErrors < error_code && error_code <= certificateErrors) |
| || (dnsResolverErrors < error_code && error_code <= certificateManagerErrors)) |
| return WebEngineError::CertificateErrorDomain; |
| else if (cacheErrors < error_code && error_code <= httpErrors) |
| return WebEngineError::HttpErrorDomain; |
| else if (certificateManagerErrors < error_code && error_code <= ftpErrors) |
| return WebEngineError::FtpErrorDomain; |
| else if (endErrors < error_code && error_code <= dnsResolverErrors) |
| return WebEngineError::DnsErrorDomain; |
| else |
| return WebEngineError::InternalErrorDomain; |
| } |