1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/base/net_errors.h" 6 7 #include "base/basictypes.h" 8 #include "base/metrics/histogram.h" 9 #include "base/strings/stringize_macros.h" 10 11 namespace { 12 13 // Get all valid error codes into an array as positive numbers, for use in the 14 // |GetAllErrorCodesForUma| function below. 15 #define NET_ERROR(label, value) -(value), 16 const int kAllErrorCodes[] = { 17 #include "net/base/net_error_list.h" 18 }; 19 #undef NET_ERROR 20 21 } // namespace 22 23 namespace net { 24 25 const char kErrorDomain[] = "net"; 26 27 const char* ErrorToString(int error) { 28 if (error == 0) 29 return "net::OK"; 30 31 switch (error) { 32 #define NET_ERROR(label, value) \ 33 case ERR_ ## label: \ 34 return "net::" STRINGIZE_NO_EXPANSION(ERR_ ## label); 35 #include "net/base/net_error_list.h" 36 #undef NET_ERROR 37 default: 38 return "net::<unknown>"; 39 } 40 } 41 42 std::vector<int> GetAllErrorCodesForUma() { 43 return base::CustomHistogram::ArrayToCustomRanges( 44 kAllErrorCodes, arraysize(kAllErrorCodes)); 45 } 46 47 Error FileErrorToNetError(base::File::Error file_error) { 48 switch (file_error) { 49 case base::File::FILE_OK: 50 return net::OK; 51 case base::File::FILE_ERROR_ACCESS_DENIED: 52 return net::ERR_ACCESS_DENIED; 53 case base::File::FILE_ERROR_INVALID_URL: 54 return net::ERR_INVALID_URL; 55 case base::File::FILE_ERROR_NOT_FOUND: 56 return net::ERR_FILE_NOT_FOUND; 57 default: 58 return net::ERR_FAILED; 59 } 60 } 61 62 } // namespace net 63