Index: ios/chrome/browser/signin/signin_util.mm |
diff --git a/ios/chrome/browser/signin/signin_util.mm b/ios/chrome/browser/signin/signin_util.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..73b489e233934d002803d0a5ace4364c9db96104 |
--- /dev/null |
+++ b/ios/chrome/browser/signin/signin_util.mm |
@@ -0,0 +1,35 @@ |
+// 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 "ios/chrome/browser/signin/signin_util.h" |
+ |
+#include "base/strings/sys_string_conversions.h" |
+#include "google_apis/gaia/gaia_auth_util.h" |
+#import "ios/public/provider/chrome/browser/signin/chrome_identity.h" |
+#include "ios/public/provider/chrome/browser/signin/signin_error_provider.h" |
+ |
+NSArray* GetScopeArray(const std::set<std::string>& scopes) { |
+ NSMutableArray* scopes_array = [[[NSMutableArray alloc] init] autorelease]; |
+ for (std::set<std::string>::iterator it = scopes.begin(); it != scopes.end(); |
sdefresne
2015/08/04 08:46:17
nit: use c++11 for loop
for (const auto& scope :
|
+ ++it) { |
+ [scopes_array addObject:base::SysUTF8ToNSString(*it)]; |
+ } |
+ return scopes_array; |
+} |
+ |
+std::string GetCanonicalizedEmailForIdentity(ChromeIdentity* identity) { |
+ NSString* nsEmail = [identity userEmail]; |
+ if (!nsEmail) |
+ return ""; |
sdefresne
2015/08/04 08:46:17
return std::string();
|
+ std::string email = base::SysNSStringToUTF8(nsEmail); |
+ return gaia::CanonicalizeEmail(gaia::SanitizeEmail(email)); |
+} |
+ |
+bool ShouldHandleSigninError(NSError* error) { |
+ ios::SigninErrorProvider* provider = ios::GetSigninErrorProvider(); |
+ return ![provider->GetSigninErrorDomain() isEqualToString:error.domain] || |
+ (error.code != provider->GetCode(ios::SigninError::CANCELED) && |
+ error.code != |
+ provider->GetCode(ios::SigninError::HANDLED_INTERNALLY)); |
+} |