Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Unified Diff: ios/web/web_state/error_translation_util.mm

Issue 1178063007: Updated error translation logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/web/web_state/error_translation_util.mm
diff --git a/ios/web/web_state/error_translation_util.mm b/ios/web/web_state/error_translation_util.mm
deleted file mode 100644
index 96d862f5ad4bed243a434182297bfb2d7600d57a..0000000000000000000000000000000000000000
--- a/ios/web/web_state/error_translation_util.mm
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2015 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.
-
-#import "ios/web/web_state/error_translation_util.h"
-
-#include <CFNetwork/CFNetwork.h>
-
-#include "base/mac/scoped_nsobject.h"
-#include "net/base/net_errors.h"
-
-namespace web {
-
-namespace {
-// Translates an iOS error to a net error using |net_error_code| as an
-// out-parameter. Returns true if a valid translation was found.
-bool GetNetErrorFromIOSErrorCode(NSInteger ios_error_code,
- NSInteger* net_error_code) {
- DCHECK(net_error_code);
- bool translation_success = true;
- switch (ios_error_code) {
- case kCFURLErrorBackgroundSessionInUseByAnotherProcess:
- *net_error_code = net::ERR_ACCESS_DENIED;
- break;
- case kCFURLErrorBackgroundSessionWasDisconnected:
- *net_error_code = net::ERR_CONNECTION_ABORTED;
- break;
- case kCFURLErrorUnknown:
- *net_error_code = net::ERR_FAILED;
- break;
- case kCFURLErrorCancelled:
- *net_error_code = net::ERR_ABORTED;
- break;
- case kCFURLErrorBadURL:
- *net_error_code = net::ERR_INVALID_URL;
- break;
- case kCFURLErrorTimedOut:
- *net_error_code = net::ERR_CONNECTION_TIMED_OUT;
- break;
- case kCFURLErrorUnsupportedURL:
- *net_error_code = net::ERR_UNKNOWN_URL_SCHEME;
- break;
- case kCFURLErrorCannotFindHost:
- *net_error_code = net::ERR_NAME_NOT_RESOLVED;
- break;
- case kCFURLErrorCannotConnectToHost:
- *net_error_code = net::ERR_CONNECTION_FAILED;
- break;
- case kCFURLErrorNetworkConnectionLost:
- *net_error_code = net::ERR_INTERNET_DISCONNECTED;
- break;
- case kCFURLErrorDNSLookupFailed:
- *net_error_code = net::ERR_NAME_RESOLUTION_FAILED;
- break;
- case kCFURLErrorHTTPTooManyRedirects:
- *net_error_code = net::ERR_TOO_MANY_REDIRECTS;
- break;
- case kCFURLErrorResourceUnavailable:
- *net_error_code = net::ERR_INSUFFICIENT_RESOURCES;
- break;
- case kCFURLErrorNotConnectedToInternet:
- *net_error_code = net::ERR_INTERNET_DISCONNECTED;
- break;
- case kCFURLErrorRedirectToNonExistentLocation:
- *net_error_code = net::ERR_NAME_NOT_RESOLVED;
- break;
- case kCFURLErrorBadServerResponse:
- *net_error_code = net::ERR_INVALID_RESPONSE;
- break;
- case kCFURLErrorUserCancelledAuthentication:
- *net_error_code = net::ERR_ABORTED;
- break;
- case kCFURLErrorUserAuthenticationRequired:
- // TODO(kkhorimoto): ERR_SSL_RENEGOTIATION_REQUESTED is more specific than
- // the kCFURLErrorUserAuthenticationRequired. Consider adding a new net
- // error for this scenario.
- *net_error_code = net::ERR_SSL_RENEGOTIATION_REQUESTED;
- break;
- case kCFURLErrorZeroByteResource:
- *net_error_code = net::ERR_EMPTY_RESPONSE;
- break;
- case kCFURLErrorCannotDecodeRawData:
- *net_error_code = net::ERR_CONTENT_DECODING_FAILED;
- break;
- case kCFURLErrorCannotDecodeContentData:
- *net_error_code = net::ERR_CONTENT_DECODING_FAILED;
- break;
- case kCFURLErrorCannotParseResponse:
- *net_error_code = net::ERR_INVALID_RESPONSE;
- break;
- case kCFURLErrorInternationalRoamingOff:
- // TODO(kkhorimoto): Create new net error for disabled intl roaming.
- *net_error_code = net::ERR_INTERNET_DISCONNECTED;
- break;
- case kCFURLErrorCallIsActive:
- *net_error_code = net::ERR_CONNECTION_FAILED;
- break;
- case kCFURLErrorDataNotAllowed:
- // TODO(kkhorimoto): Create new net error for disabled data usage.
- *net_error_code = net::ERR_INTERNET_DISCONNECTED;
- break;
- case kCFURLErrorRequestBodyStreamExhausted:
- *net_error_code = net::ERR_CONTENT_LENGTH_MISMATCH;
- break;
- case kCFURLErrorFileDoesNotExist:
- *net_error_code = net::ERR_FILE_NOT_FOUND;
- break;
- case kCFURLErrorFileIsDirectory:
- *net_error_code = net::ERR_INVALID_HANDLE;
- break;
- case kCFURLErrorNoPermissionsToReadFile:
- *net_error_code = net::ERR_ACCESS_DENIED;
- break;
- case kCFURLErrorDataLengthExceedsMaximum:
- *net_error_code = net::ERR_FILE_TOO_BIG;
- break;
- default:
- translation_success = false;
- break;
- }
- return translation_success;
-}
-} // namespace
-
-NSError* NetErrorFromError(NSError* error) {
- NSError* underlying_error = error.userInfo[NSUnderlyingErrorKey];
- NSString* net_error_domain =
- [NSString stringWithUTF8String:net::kErrorDomain];
- NSError* translated_error = error;
- if (underlying_error) {
- // If |error| already has an underlying error, it should be from the net
- // stack and should already have the correct domain.
- DCHECK([underlying_error.domain isEqualToString:net_error_domain]);
- } else if ([error.domain isEqualToString:NSURLErrorDomain] ||
- [error.domain isEqualToString:static_cast<NSString*>(
- kCFErrorDomainCFNetwork)]) {
- // Attempt to translate NSURL and CFNetwork error codes into their
- // corresponding net error codes.
- NSInteger net_error_code = net::OK;
- if (GetNetErrorFromIOSErrorCode(error.code, &net_error_code)) {
- base::scoped_nsobject<NSMutableDictionary> user_info(
- [error.userInfo mutableCopy]);
- [user_info setObject:[NSError errorWithDomain:net_error_domain
- code:net_error_code
- userInfo:nil]
- forKey:NSUnderlyingErrorKey];
- translated_error = [NSError errorWithDomain:error.domain
- code:error.code
- userInfo:user_info];
- }
- }
- return translated_error;
-}
-}

Powered by Google App Engine
This is Rietveld 408576698