blob: dfe39e2d8cf53af3027d7e8b3e9ba3a2acf9d34b [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/credentialmanagement/credential.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/text/strcat.h"
namespace blink {
namespace {
constexpr char kDigitalCredentialType[] = "digital";
constexpr char kFederatedCredentialType[] = "federated";
constexpr char kIdentityCredentialType[] = "identity";
constexpr char kOtpCredentialType[] = "otp";
} // namespace
Credential::~Credential() = default;
Credential::Credential(const String& id, const String& type)
: id_(id), type_(type) {
DCHECK(!id_.empty() || type == kDigitalCredentialType ||
type == kFederatedCredentialType || type == kIdentityCredentialType ||
type == kOtpCredentialType);
DCHECK(!type_.empty());
}
KURL Credential::ParseStringAsURLOrThrow(const String& url,
ExceptionState& exception_state) {
if (url.empty())
return KURL();
KURL parsed_url = KURL(NullURL(), url);
if (!parsed_url.IsValid()) {
exception_state.ThrowDOMException(
DOMExceptionCode::kSyntaxError,
StrCat({"'", url, "' is not a valid URL."}));
}
return parsed_url;
}
void Credential::Trace(Visitor* visitor) const {
ScriptWrappable::Trace(visitor);
}
} // namespace blink