chromium/third_party/blink/public/common/scheme_registry.h

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_SCHEME_REGISTRY_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_SCHEME_REGISTRY_H_

#include <string>

#include "third_party/blink/public/common/common_export.h"

namespace blink {

// Scheme registry interface that can be used both in the browser and renderer
// processes. See blink::SchemeRegistry for the methods that are only needed
// in renderers. Use url::SchemeRegistry for more generic and lower-layer
// interfaces that can live in //url layer.
//
// "This registry is not thread-safe, registering or removing schemes need to be
// done before multi-thread access to the registry start to happen, or entire
// access to this registry must be done on the single thread. Typically, it is
// expected that Register* methods are called by RegisterContentSchemes during
// the process initialization, and Remove* methods are only called by tests."
//
// TODO (jfernandez): Add DCHECKs to ensure mutable access is done before the
// threads are created.
class BLINK_COMMON_EXPORT CommonSchemeRegistry {};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_COMMON_SCHEME_REGISTRY_H_