chromium/extensions/browser/user_script_world_configuration_manager.h

// Copyright 2024 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_USER_SCRIPT_WORLD_CONFIGURATION_MANAGER_H_
#define EXTENSIONS_BROWSER_USER_SCRIPT_WORLD_CONFIGURATION_MANAGER_H_

#include <optional>
#include <string>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "components/keyed_service/core/keyed_service.h"
#include "extensions/browser/extension_registry_observer.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension_id.h"
#include "extensions/common/mojom/renderer.mojom.h"

class BrowserContextKeyedServiceFactory;

namespace content {
class BrowserContext;
}  // content

namespace extensions {
class Extension;
class ExtensionPrefs;
class RendererStartupHelper;

// A class to manage the configurations for extensions' isolated worlds. The
// configurations themselves are stored in the associated ExtensionPrefs.
// Note: Like the ExtensionPrefs themselves, this class is shared between
// on- and off-the-record contexts.
class UserScriptWorldConfigurationManager
    : public KeyedService,
      public ExtensionRegistryObserver {};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_USER_SCRIPT_WORLD_CONFIGURATION_MANAGER_H_