chromium/extensions/browser/extension_registry.h

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

#ifndef EXTENSIONS_BROWSER_EXTENSION_REGISTRY_H_
#define EXTENSIONS_BROWSER_EXTENSION_REGISTRY_H_

#include <string>

#include "base/compiler_specific.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/observer_list.h"
#include "base/version.h"
#include "components/keyed_service/core/keyed_service.h"
#include "extensions/browser/uninstall_reason.h"
#include "extensions/buildflags/buildflags.h"
#include "extensions/common/extension_id.h"
#include "extensions/common/extension_set.h"

#if !BUILDFLAG(ENABLE_EXTENSIONS) && \
    !BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
#error "Extensions must be enabled"
#endif

namespace content {
class BrowserContext;
}

namespace extensions {

class Extension;
class ExtensionRegistryObserver;
enum class UnloadedExtensionReason;

// ExtensionRegistry holds sets of the installed extensions for a given
// BrowserContext. An incognito browser context and its original browser context
// share a single registry.
class ExtensionRegistry : public KeyedService {};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_EXTENSION_REGISTRY_H_