[go: nahoru, domu]

blob: b0b9ee6fc24ad3c58f81f3fd991b237ae4d09feb [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/network/trust_tokens/suitable_trust_token_origin.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h"
#include "url/url_constants.h"
namespace network {
SuitableTrustTokenOrigin::~SuitableTrustTokenOrigin() = default;
SuitableTrustTokenOrigin::SuitableTrustTokenOrigin(
const SuitableTrustTokenOrigin& rhs) = default;
SuitableTrustTokenOrigin& SuitableTrustTokenOrigin::operator=(
const SuitableTrustTokenOrigin& rhs) = default;
SuitableTrustTokenOrigin::SuitableTrustTokenOrigin(
SuitableTrustTokenOrigin&& rhs) = default;
SuitableTrustTokenOrigin& SuitableTrustTokenOrigin::operator=(
SuitableTrustTokenOrigin&& rhs) = default;
absl::optional<SuitableTrustTokenOrigin> SuitableTrustTokenOrigin::Create(
url::Origin origin) {
if (origin.scheme() != url::kHttpsScheme &&
origin.scheme() != url::kHttpScheme)
return absl::nullopt;
if (!IsOriginPotentiallyTrustworthy(origin))
return absl::nullopt;
return absl::optional<SuitableTrustTokenOrigin>(
absl::in_place, base::PassKey<SuitableTrustTokenOrigin>(),
std::move(origin));
}
absl::optional<SuitableTrustTokenOrigin> SuitableTrustTokenOrigin::Create(
const GURL& url) {
return Create(url::Origin::Create(url));
}
std::string SuitableTrustTokenOrigin::Serialize() const {
return origin_.Serialize();
}
SuitableTrustTokenOrigin::SuitableTrustTokenOrigin(
base::PassKey<SuitableTrustTokenOrigin>,
url::Origin&& origin)
: origin_(std::move(origin)) {}
} // namespace network