17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "ppapi/host/error_conversion.h" 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/numerics/safe_conversions.h" 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "net/base/net_errors.h" 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "ppapi/c/pp_errors.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace ppapi { 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace host { 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)int32_t NetErrorToPepperError(int net_error) { 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (net_error > 0) 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::checked_cast<int32_t>(net_error); 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) switch (net_error) { 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::OK: 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_OK; 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_IO_PENDING: 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_OK_COMPLETIONPENDING; 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_ABORTED: 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_ABORTED; 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_INVALID_ARGUMENT: 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_BADARGUMENT; 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_INVALID_HANDLE: 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_BADARGUMENT; 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_FILE_NOT_FOUND: 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_FILENOTFOUND; 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_TIMED_OUT: 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_TIMEDOUT; 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_FILE_TOO_BIG: 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_FILETOOBIG; 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_ACCESS_DENIED: 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NOACCESS; 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_NOT_IMPLEMENTED: 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NOTSUPPORTED; 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_OUT_OF_MEMORY: 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NOMEMORY; 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_FILE_EXISTS: 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_FILEEXISTS; 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_FILE_NO_SPACE: 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NOSPACE; 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_CLOSED: 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_CLOSED; 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_RESET: 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_RESET; 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_REFUSED: 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_REFUSED; 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_ABORTED: 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_ABORTED; 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_FAILED: 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_FAILED; 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_NAME_NOT_RESOLVED: 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NAME_NOT_RESOLVED; 577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_ADDRESS_INVALID: 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_ADDRESS_INVALID; 597d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_ADDRESS_UNREACHABLE: 607d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_ADDRESS_UNREACHABLE; 617d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_CONNECTION_TIMED_OUT: 627d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_CONNECTION_TIMEDOUT; 637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_NETWORK_ACCESS_DENIED: 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_NOACCESS; 657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_MSG_TOO_BIG: 667d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_MESSAGE_TOO_BIG; 677d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case net::ERR_ADDRESS_IN_USE: 687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_ADDRESS_IN_USE; 697d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) default: 707d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return PP_ERROR_FAILED; 717d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 737d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 747d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace host 757d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace ppapi 76