#ifndef CHROME_BROWSER_EXTENSIONS_API_DEVELOPER_PRIVATE_DEVELOPER_PRIVATE_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_DEVELOPER_PRIVATE_DEVELOPER_PRIVATE_API_H_
#include <map>
#include <optional>
#include <set>
#include "base/files/file.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/scoped_observation.h"
#include "chrome/browser/extensions/commands/command_service.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_allowlist.h"
#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
#include "chrome/browser/extensions/load_error_reporter.h"
#include "chrome/browser/extensions/pack_extension_job.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
#include "chrome/common/extensions/api/developer_private.h"
#include "chrome/common/extensions/webstore_install_result.h"
#include "components/prefs/pref_change_registrar.h"
#include "extensions/browser/api/file_system/file_system_api.h"
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/browser_context_keyed_api_factory.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_function.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_prefs_observer.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_observer.h"
#include "extensions/browser/permissions_manager.h"
#include "extensions/browser/process_manager.h"
#include "extensions/browser/process_manager_observer.h"
#include "extensions/browser/warning_service.h"
#include "extensions/common/extension_id.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation.h"
#include "ui/shell_dialogs/select_file_dialog.h"
#include "ui/shell_dialogs/selected_file_info.h"
class Profile;
namespace extensions {
class EventRouter;
class ExtensionError;
class ExtensionInfoGenerator;
inline constexpr PrefMap kPrefAcknowledgeSafetyCheckWarningReason = …;
namespace api {
namespace developer_private {
struct ProfileInfo;
}
}
class DeveloperPrivateEventRouter : public ExtensionRegistryObserver,
public ErrorConsole::Observer,
public ProcessManagerObserver,
public AppWindowRegistry::Observer,
public CommandService::Observer,
public ExtensionPrefsObserver,
public ExtensionAllowlist::Observer,
public ExtensionManagement::Observer,
public WarningService::Observer,
public PermissionsManager::Observer,
public ToolbarActionsModel::Observer { … };
class DeveloperPrivateAPI : public BrowserContextKeyedAPI,
public EventRouter::Observer { … };
template <>
void BrowserContextKeyedAPIFactory<
DeveloperPrivateAPI>::DeclareFactoryDependencies();
namespace api {
class DeveloperPrivateAPIFunction : public ExtensionFunction { … };
class DeveloperPrivateAutoUpdateFunction : public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetExtensionsInfoFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetExtensionInfoFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetExtensionSizeFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetProfileConfigurationFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateUpdateProfileConfigurationFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateUpdateExtensionConfigurationFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateReloadFunction : public DeveloperPrivateAPIFunction,
public ExtensionRegistryObserver,
public LoadErrorReporter::Observer { … };
class DeveloperPrivateLoadUnpackedFunction
: public DeveloperPrivateAPIFunction,
public ui::SelectFileDialog::Listener { … };
class DeveloperPrivateInstallDroppedFileFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateNotifyDragInstallInProgressFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateChoosePathFunction
: public DeveloperPrivateAPIFunction,
public ui::SelectFileDialog::Listener { … };
class DeveloperPrivatePackDirectoryFunction
: public DeveloperPrivateAPIFunction,
public PackExtensionJob::Client { … };
class DeveloperPrivateIsProfileManagedFunction : public ExtensionFunction { … };
class DeveloperPrivateLoadDirectoryFunction : public ExtensionFunction { … };
class DeveloperPrivateRequestFileSourceFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateOpenDevToolsFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateDeleteExtensionErrorsFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateRepairExtensionFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateShowOptionsFunction : public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateShowPathFunction : public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateSetShortcutHandlingSuspendedFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateUpdateExtensionCommandFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateAddHostPermissionFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateRemoveHostPermissionFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetUserSiteSettingsFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateAddUserSpecifiedSitesFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateRemoveUserSpecifiedSitesFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetUserAndExtensionSitesByEtldFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateGetMatchingExtensionsForSiteFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateUpdateSiteAccessFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateRemoveMultipleExtensionsFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction
: public DeveloperPrivateAPIFunction { … };
class DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction
: public DeveloperPrivateAPIFunction { … };
}
}
#endif