1// Copyright (c) 2010 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 "chrome/browser/chromeos/login/authenticator.h" 6 7#include <string> 8#include <vector> 9 10#include "base/logging.h" 11#include "base/string_split.h" 12#include "base/string_util.h" 13 14namespace chromeos { 15class LoginStatusConsumer; 16 17// static 18const char Authenticator::kSpecialCaseDomain[] = "gmail.com"; 19 20Authenticator::Authenticator(LoginStatusConsumer* consumer) 21 : consumer_(consumer) { 22} 23 24Authenticator::~Authenticator() {} 25 26// static 27std::string Authenticator::Canonicalize(const std::string& email_address) { 28 std::vector<std::string> parts; 29 char at = '@'; 30 base::SplitString(email_address, at, &parts); 31 DCHECK_EQ(parts.size(), 2U) << "email_address should have only one @"; 32 if (parts[1] == kSpecialCaseDomain) // only strip '.' for gmail accounts. 33 RemoveChars(parts[0], ".", &parts[0]); 34 std::string new_email = StringToLowerASCII(JoinString(parts, at)); 35 VLOG(1) << "Canonicalized " << email_address << " to " << new_email; 36 return new_email; 37} 38 39} // namespace chromeos 40