blob: 75bb3bb82b6c36e8df8d553af27547570955e183 [file] [log] [blame]
// Copyright 2014 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 "components/password_manager/core/common/credential_manager_types.h"
#include <memory>
#include "base/strings/string_number_conversions.h"
namespace password_manager {
std::string CredentialTypeToString(CredentialType value) {
switch (value) {
case CredentialType::CREDENTIAL_TYPE_EMPTY:
return "CredentialType::CREDENTIAL_TYPE_EMPTY";
case CredentialType::CREDENTIAL_TYPE_PASSWORD:
return "CredentialType::CREDENTIAL_TYPE_PASSWORD";
case CredentialType::CREDENTIAL_TYPE_FEDERATED:
return "CredentialType::CREDENTIAL_TYPE_FEDERATED";
}
return "Unknown CredentialType value: " +
base::NumberToString(static_cast<int>(value));
}
std::ostream& operator<<(std::ostream& os, CredentialType value) {
return os << CredentialTypeToString(value);
}
CredentialInfo::CredentialInfo() = default;
CredentialInfo::CredentialInfo(CredentialType type,
base::Optional<base::string16> id,
base::Optional<base::string16> name,
GURL icon,
base::Optional<base::string16> password,
url::Origin federation)
: type(type),
id(std::move(id)),
name(std::move(name)),
icon(std::move(icon)),
password(std::move(password)),
federation(std::move(federation)) {
switch (type) {
case CredentialType::CREDENTIAL_TYPE_EMPTY:
password = base::string16();
federation = url::Origin();
break;
case CredentialType::CREDENTIAL_TYPE_PASSWORD:
federation = url::Origin();
break;
case CredentialType::CREDENTIAL_TYPE_FEDERATED:
password = base::string16();
break;
}
}
CredentialInfo::CredentialInfo(const CredentialInfo& other) = default;
CredentialInfo::~CredentialInfo() = default;
bool CredentialInfo::operator==(const CredentialInfo& rhs) const {
return (type == rhs.type && id == rhs.id && name == rhs.name &&
icon == rhs.icon && password == rhs.password &&
federation.Serialize() == rhs.federation.Serialize());
}
} // namespace password_manager