chromium/components/payments/core/url_util.cc

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/payments/core/url_util.h"

#include "net/base/url_util.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h"
#include "url/gurl.h"
#include "url/origin.h"

namespace payments {
namespace {

// The flag for whether file:// URLs are valid.
enum class File {};

// The flag for whether username and password are valid in the URL.
enum class UsernamePassword {};

// The flag for whether only https:// scheme is allowed or other non-https
// cryptographic schemes are allowed as well.
enum class CryptographicSchemes {};

// The flag for whether about:blank is allowed.
enum class AboutBlank {};

// The flag for whether path, query, and ref are allowed.
enum class PathQueryRef {};

// Returns whether |url| is valid for Web Payment APIs. This method
// intentionally omits default parameters so the call sites list out use case
// specific rules explicitly for easy verification against specs, for example.
bool IsValidUrlForPayments(const GURL& url,
                           File file,
                           UsernamePassword username_password,
                           CryptographicSchemes cryptographic_schemes,
                           AboutBlank about_blank,
                           PathQueryRef path_query_ref) {}

}  // namespace

// static
bool UrlUtil::IsValidUrlBasedPaymentMethodIdentifier(const GURL& url) {}

// static
bool UrlUtil::IsValidSupportedOrigin(const GURL& url) {}

// static
bool UrlUtil::IsValidManifestUrl(const GURL& url) {}

// static
bool UrlUtil::IsOriginAllowedToUseWebPaymentApis(const GURL& url) {}

// static
bool UrlUtil::IsValidUrlInPaymentHandlerWindow(const GURL& url) {}

// static
bool UrlUtil::IsLocalDevelopmentUrl(const GURL& url) {}

}  // namespace payments