#include "google_apis/gaia/gaia_auth_util.h"
#include <stddef.h>
#include <memory>
#include <string_view>
#include "base/base64url.h"
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/json/json_reader.h"
#include "base/logging.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/supports_user_data.h"
#include "base/values.h"
#include "google_apis/gaia/bound_oauth_token.pb.h"
#include "google_apis/gaia/gaia_urls.h"
#include "google_apis/gaia/oauth2_mint_token_consent_result.pb.h"
#include "url/gurl.h"
#include "url/origin.h"
#include "url/scheme_host_port.h"
namespace gaia {
namespace {
const char kGmailDomain[] = …;
const char kGoogleDomain[] = …;
const char kGooglemailDomain[] = …;
std::string CanonicalizeEmailImpl(std::string_view email_address,
bool change_googlemail_to_gmail) { … }
}
ListedAccount::ListedAccount() { … }
ListedAccount::ListedAccount(const ListedAccount& other) = default;
ListedAccount::~ListedAccount() { … }
std::string CanonicalizeEmail(std::string_view email_address) { … }
std::string CanonicalizeDomain(std::string_view domain) { … }
std::string SanitizeEmail(std::string_view email_address) { … }
bool AreEmailsSame(std::string_view email1, std::string_view email2) { … }
std::string ExtractDomainName(std::string_view email_address) { … }
bool IsGoogleInternalAccountEmail(std::string_view email) { … }
bool IsGoogleRobotAccountEmail(std::string_view email) { … }
bool HasGaiaSchemeHostPort(const GURL& url) { … }
bool ParseListAccountsData(std::string_view data,
std::vector<ListedAccount>* accounts,
std::vector<ListedAccount>* signed_out_accounts) { … }
bool ParseOAuth2MintTokenConsentResult(std::string_view consent_result,
bool* approved,
std::string* gaia_id) { … }
std::string CreateBoundOAuthToken(const std::string& gaia_id,
const std::string& refresh_token,
const std::string& binding_key_assertion) { … }
}