| // Copyright 2013 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "ppapi/host/error_conversion.h" | |
| #include "base/numerics/safe_conversions.h" | |
| #include "net/base/net_errors.h" | |
| #include "ppapi/c/pp_errors.h" | |
| namespace ppapi { | |
| namespace host { | |
| int32_t NetErrorToPepperError(int net_error) { | |
| if (net_error > 0) | |
| return base::checked_cast<int32_t>(net_error); | |
| switch (net_error) { | |
| case net::OK: | |
| return PP_OK; | |
| case net::ERR_IO_PENDING: | |
| return PP_OK_COMPLETIONPENDING; | |
| case net::ERR_ABORTED: | |
| return PP_ERROR_ABORTED; | |
| case net::ERR_INVALID_ARGUMENT: | |
| return PP_ERROR_BADARGUMENT; | |
| case net::ERR_INVALID_HANDLE: | |
| return PP_ERROR_BADARGUMENT; | |
| case net::ERR_FILE_NOT_FOUND: | |
| return PP_ERROR_FILENOTFOUND; | |
| case net::ERR_TIMED_OUT: | |
| return PP_ERROR_TIMEDOUT; | |
| case net::ERR_FILE_TOO_BIG: | |
| return PP_ERROR_FILETOOBIG; | |
| case net::ERR_ACCESS_DENIED: | |
| return PP_ERROR_NOACCESS; | |
| case net::ERR_NOT_IMPLEMENTED: | |
| return PP_ERROR_NOTSUPPORTED; | |
| case net::ERR_OUT_OF_MEMORY: | |
| return PP_ERROR_NOMEMORY; | |
| case net::ERR_FILE_EXISTS: | |
| return PP_ERROR_FILEEXISTS; | |
| case net::ERR_FILE_NO_SPACE: | |
| return PP_ERROR_NOSPACE; | |
| case net::ERR_CONNECTION_CLOSED: | |
| return PP_ERROR_CONNECTION_CLOSED; | |
| case net::ERR_CONNECTION_RESET: | |
| return PP_ERROR_CONNECTION_RESET; | |
| case net::ERR_CONNECTION_REFUSED: | |
| return PP_ERROR_CONNECTION_REFUSED; | |
| case net::ERR_CONNECTION_ABORTED: | |
| return PP_ERROR_CONNECTION_ABORTED; | |
| case net::ERR_CONNECTION_FAILED: | |
| return PP_ERROR_CONNECTION_FAILED; | |
| case net::ERR_NAME_NOT_RESOLVED: | |
| case net::ERR_ICANN_NAME_COLLISION: | |
| return PP_ERROR_NAME_NOT_RESOLVED; | |
| case net::ERR_ADDRESS_INVALID: | |
| return PP_ERROR_ADDRESS_INVALID; | |
| case net::ERR_ADDRESS_UNREACHABLE: | |
| return PP_ERROR_ADDRESS_UNREACHABLE; | |
| case net::ERR_CONNECTION_TIMED_OUT: | |
| return PP_ERROR_CONNECTION_TIMEDOUT; | |
| case net::ERR_NETWORK_ACCESS_DENIED: | |
| return PP_ERROR_NOACCESS; | |
| case net::ERR_MSG_TOO_BIG: | |
| return PP_ERROR_MESSAGE_TOO_BIG; | |
| case net::ERR_ADDRESS_IN_USE: | |
| return PP_ERROR_ADDRESS_IN_USE; | |
| default: | |
| return PP_ERROR_FAILED; | |
| } | |
| } | |
| } // namespace host | |
| } // namespace ppapi |