// 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/safe_numerics.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_numeric_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: 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