blob: 79c8f3c40d07c6a51ca3d54cf263496bba76cc5c [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 "public/platform/WebCredential.h"
#include "platform/credentialmanager/PlatformCredential.h"
#include "public/platform/WebFederatedCredential.h"
#include "public/platform/WebPasswordCredential.h"
#include "wtf/PtrUtil.h"
namespace blink {
std::unique_ptr<WebCredential> WebCredential::create(PlatformCredential* credential)
{
if (credential->isPassword()) {
return wrapUnique(new WebPasswordCredential(credential));
}
if (credential->isFederated()) {
return wrapUnique(new WebFederatedCredential(credential));
}
ASSERT_NOT_REACHED();
return nullptr;
}
WebCredential::WebCredential(const WebString& id, const WebString& name, const WebURL& iconURL)
: m_platformCredential(PlatformCredential::create(id, name, iconURL))
{
}
WebCredential::WebCredential(const WebCredential& other)
{
assign(other);
}
void WebCredential::assign(const WebCredential& other)
{
m_platformCredential = other.m_platformCredential;
}
WebCredential::WebCredential(PlatformCredential* credential)
: m_platformCredential(credential)
{
}
WebCredential& WebCredential::operator=(PlatformCredential* credential)
{
m_platformCredential = credential;
return *this;
}
void WebCredential::reset()
{
m_platformCredential.reset();
}
WebString WebCredential::id() const
{
return m_platformCredential->id();
}
WebString WebCredential::name() const
{
return m_platformCredential->name();
}
WebURL WebCredential::iconURL() const
{
return m_platformCredential->iconURL();
}
WebString WebCredential::type() const
{
return m_platformCredential->type();
}
bool WebCredential::isPasswordCredential() const
{
return m_platformCredential->isPassword();
}
bool WebCredential::isFederatedCredential() const
{
return m_platformCredential->isFederated();
}
} // namespace blink