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

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, 5 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
« no previous file with comments | « ios/web/web_state/error_translation_util.h ('k') | ios/web/web_state/ui/crw_ui_web_view_web_controller.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
index 96d862f5ad4bed243a434182297bfb2d7600d57a..9c6cbd00e3a1d971b994af08cd88351d1b903c8c 100644
--- a/ios/web/web_state/error_translation_util.mm
+++ b/ios/web/web_state/error_translation_util.mm
@@ -6,6 +6,7 @@
#include <CFNetwork/CFNetwork.h>
+#import "base/ios/ns_error_util.h"
#include "base/mac/scoped_nsobject.h"
#include "net/base/net_errors.h"
@@ -123,32 +124,26 @@ bool GetNetErrorFromIOSErrorCode(NSInteger ios_error_code,
} // namespace
NSError* NetErrorFromError(NSError* error) {
- NSError* underlying_error = error.userInfo[NSUnderlyingErrorKey];
- NSString* net_error_domain =
- [NSString stringWithUTF8String:net::kErrorDomain];
+ DCHECK(error);
+ NSError* underlying_error =
+ base::ios::GetFinalUnderlyingErrorFromError(error);
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)]) {
+ if ([underlying_error.domain isEqualToString:NSURLErrorDomain] ||
+ [underlying_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
+ if (GetNetErrorFromIOSErrorCode(underlying_error.code, &net_error_code)) {
+ NSString* net_error_domain =
+ [NSString stringWithUTF8String:net::kErrorDomain];
+ NSError* net_error = [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];
+ userInfo:nil];
+ translated_error =
+ base::ios::ErrorWithAppendedUnderlyingError(error, net_error);
}
}
return translated_error;
}
-}
+} // namespace web
« no previous file with comments | « ios/web/web_state/error_translation_util.h ('k') | ios/web/web_state/ui/crw_ui_web_view_web_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698