chromium/components/custom_handlers/simple_protocol_handler_registry_factory.h

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

#ifndef COMPONENTS_CUSTOM_HANDLERS_SIMPLE_PROTOCOL_HANDLER_REGISTRY_FACTORY_H_
#define COMPONENTS_CUSTOM_HANDLERS_SIMPLE_PROTOCOL_HANDLER_REGISTRY_FACTORY_H_

#include "base/no_destructor.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"

namespace custom_handlers {

class ProtocolHandlerRegistry;

// Simgleton that owns all the ProtocolHandlerRegistrys and associates them with
// BrowserContext instances.
//
// It creates the Registry instances without access to the PrefService storage.
// This is useful for testing purposes, since we can't be sure the UserPref
// storage has been set (eg, Web Platform Tests).
//
// It uses the TestProtocolHandlerRegistryDelegate, hence it doesn't provide any
// OS integration during the registration process.
//
// It does not override the GetBrowserContextToUse method from
// BrowserContextKeyedServiceFactory, which means that no service is returned in
// Incognito.
class SimpleProtocolHandlerRegistryFactory
    : public BrowserContextKeyedServiceFactory {};

}  // namespace custom_handlers

#endif  // COMPONENTS_CUSTOM_HANDLERS_SIMPLE_PROTOCOL_HANDLER_REGISTRY_FACTORY_H_