#include "chrome/browser/extensions/api/developer_private/developer_private_api.h"
#include <stddef.h>
#include <memory>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include "base/barrier_closure.h"
#include "base/check_is_test.h"
#include "base/containers/contains.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/lazy_instance.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "base/ranges/algorithm.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/thread_pool.h"
#include "base/uuid.h"
#include "chrome/browser/apps/app_service/app_launch_params.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/extensions/api/developer_private/extension_info_generator.h"
#include "chrome/browser/extensions/chrome_zipfile_installer.h"
#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/devtools_util.h"
#include "chrome/browser/extensions/error_console/error_console_factory.h"
#include "chrome/browser/extensions/extension_commands_global_registry.h"
#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/install_verifier.h"
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
#include "chrome/browser/extensions/mv2_experiment_stage.h"
#include "chrome/browser/extensions/permissions/permissions_updater.h"
#include "chrome/browser/extensions/permissions/scripting_permissions_modifier.h"
#include "chrome/browser/extensions/permissions/site_permissions_helper.h"
#include "chrome/browser/extensions/shared_module_service.h"
#include "chrome/browser/extensions/unpacked_installer.h"
#include "chrome/browser/extensions/updater/extension_updater.h"
#include "chrome/browser/extensions/webstore_reinstaller.h"
#include "chrome/browser/platform_util.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/supervised_user/supervised_user_browser_utils.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/chrome_select_file_policy.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/extensions/extensions_dialogs.h"
#include "chrome/browser/ui/safety_hub/menu_notification_service_factory.h"
#include "chrome/browser/ui/safety_hub/safety_hub_constants.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_model_factory.h"
#include "chrome/browser/web_applications/extension_status_utils.h"
#include "chrome/common/extensions/api/developer_private.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "components/policy/core/common/policy_pref_names.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/drop_data.h"
#include "extensions/browser/api/file_handlers/app_file_handler_util.h"
#include "extensions/browser/app_window/app_window.h"
#include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/disable_reason.h"
#include "extensions/browser/error_map.h"
#include "extensions/browser/event_router_factory.h"
#include "extensions/browser/extension_error.h"
#include "extensions/browser/extension_file_task_runner.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_prefs_factory.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_factory.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/extension_util.h"
#include "extensions/browser/file_highlighter.h"
#include "extensions/browser/management_policy.h"
#include "extensions/browser/path_util.h"
#include "extensions/browser/permissions_manager.h"
#include "extensions/browser/process_manager_factory.h"
#include "extensions/browser/ui_util.h"
#include "extensions/browser/updater/extension_downloader_types.h"
#include "extensions/browser/warning_service.h"
#include "extensions/browser/warning_service_factory.h"
#include "extensions/browser/zipfile_installer.h"
#include "extensions/common/extension_features.h"
#include "extensions/common/extension_id.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/feature_switch.h"
#include "extensions/common/install_warning.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/background_info.h"
#include "extensions/common/manifest_handlers/options_page_info.h"
#include "extensions/common/manifest_url_handlers.h"
#include "extensions/common/mojom/context_type.mojom.h"
#include "extensions/common/permissions/permissions_data.h"
#include "extensions/common/url_pattern.h"
#include "extensions/common/url_pattern_set.h"
#include "net/base/filename_util.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "storage/browser/blob/shareable_file_reference.h"
#include "storage/browser/file_system/external_mount_points.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation.h"
#include "storage/browser/file_system/file_system_operation_runner.h"
#include "storage/browser/file_system/isolated_context.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
#include "third_party/re2/src/re2/re2.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/shell_dialogs/selected_file_info.h"
#include "url/gurl.h"
#include "url/origin.h"
namespace extensions {
developer;
namespace {
const char kCannotUpdateChildAccountProfileSettingsError[] = …;
const char kNoSuchExtensionError[] = …;
const char kRequiresUserGestureError[] = …;
const char kCouldNotShowSelectFileDialogError[] = …;
const char kFileSelectionCanceled[] = …;
const char kNoSuchRendererError[] = …;
const char kInvalidPathError[] = …;
const char kManifestKeyIsRequiredError[] = …;
const char kCouldNotFindWebContentsError[] = …;
const char kNoOptionsPageForExtensionError[] = …;
const char kCannotRepairHealthyExtension[] = …;
const char kCannotRepairPolicyExtension[] = …;
const char kCannotChangeHostPermissions[] = …;
const char kCannotSetPinnedWithoutAction[] = …;
const char kInvalidHost[] = …;
const char kInvalidLazyBackgroundPageParameter[] = …;
const char kInvalidRenderProcessId[] = …;
const char kFailToUninstallEnterpriseOrComponentExtensions[] = …;
const char kFailToUninstallNoneExistentExtensions[] = …;
const char kUserCancelledError[] = …;
const char kNoExtensionError[] = …;
const char kExtensionNotAffectedByMV2Deprecation[] = …;
const char kCannotRepairNonWebstoreExtension[] = …;
const char kUnpackedAppsFolder[] = …;
const char kManifestFile[] = …;
base::FilePath* g_drop_path_for_testing = …;
ExtensionService* GetExtensionService(content::BrowserContext* context) { … }
GURL ConvertHostToUrl(const std::string& host) { … }
std::string ReadFileToString(const base::FilePath& path) { … }
GetManifestErrorCallback;
void GetManifestError(const std::string& error,
const base::FilePath& extension_path,
GetManifestErrorCallback callback) { … }
void PerformVerificationCheck(content::BrowserContext* context) { … }
developer::LoadError CreateLoadError(
const base::FilePath& file_path,
const std::string& error,
size_t line_number,
const std::string& manifest,
const DeveloperPrivateAPI::UnpackedRetryId& retry_guid) { … }
std::optional<URLPattern> ParseRuntimePermissionsPattern(
const std::string& pattern_str) { … }
developer::UserSiteSettings ConvertToUserSiteSettings(
const PermissionsManager::UserPermissionsSettings& settings) { … }
std::string GetETldPlusOne(const GURL& site) { … }
developer::SiteInfo CreateSiteInfo(const std::string& site,
developer::SiteSet site_set,
size_t num_extensions = 0u) { … }
void AddSiteToSiteGroups(
std::map<std::string, developer::SiteGroup>* site_groups,
const std::string& site,
const std::string& etld_plus_one,
developer::SiteSet site_set) { … }
void ProcessSitesForRuntimeHostPermissions(
std::map<std::string, developer::SiteGroup>* site_groups,
const std::vector<URLPattern>& distinct_hosts) { … }
void UpdateSiteGroupCountsForExtensionHosts(
std::map<std::string, developer::SiteGroup>* site_groups,
std::map<std::string, size_t>* match_subdomains_count,
const URLPatternSet& granted_hosts) { … }
}
ChoosePath;
PackDirectory;
Reload;
static base::LazyInstance<BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>>::
DestructorAtExit g_developer_private_api_factory = …;
class DeveloperPrivateAPI::WebContentsTracker
: public content::WebContentsObserver { … };
DeveloperPrivateAPI::WebContentsData::WebContentsData() = default;
DeveloperPrivateAPI::WebContentsData::~WebContentsData() = default;
DeveloperPrivateAPI::WebContentsData::WebContentsData(WebContentsData&& other) =
default;
BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>*
DeveloperPrivateAPI::GetFactoryInstance() { … }
std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
Profile* profile) { … }
template <>
void BrowserContextKeyedAPIFactory<
DeveloperPrivateAPI>::DeclareFactoryDependencies() { … }
DeveloperPrivateAPI* DeveloperPrivateAPI::Get(
content::BrowserContext* context) { … }
DeveloperPrivateAPI::DeveloperPrivateAPI(content::BrowserContext* context)
: … { … }
DeveloperPrivateEventRouter::DeveloperPrivateEventRouter(Profile* profile)
: … { … }
DeveloperPrivateEventRouter::~DeveloperPrivateEventRouter() { … }
void DeveloperPrivateEventRouter::AddExtensionId(
const ExtensionId& extension_id) { … }
void DeveloperPrivateEventRouter::RemoveExtensionId(
const ExtensionId& extension_id) { … }
void DeveloperPrivateEventRouter::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) { … }
void DeveloperPrivateEventRouter::OnExtensionUnloaded(
content::BrowserContext* browser_context,
const Extension* extension,
UnloadedExtensionReason reason) { … }
void DeveloperPrivateEventRouter::OnExtensionInstalled(
content::BrowserContext* browser_context,
const Extension* extension,
bool is_update) { … }
void DeveloperPrivateEventRouter::OnExtensionUninstalled(
content::BrowserContext* browser_context,
const Extension* extension,
extensions::UninstallReason reason) { … }
void DeveloperPrivateEventRouter::OnErrorAdded(const ExtensionError* error) { … }
void DeveloperPrivateEventRouter::OnExtensionConfigurationChanged(
const ExtensionId& extension_id) { … }
void DeveloperPrivateEventRouter::OnErrorsRemoved(
const std::set<ExtensionId>& removed_ids) { … }
void DeveloperPrivateEventRouter::OnExtensionFrameRegistered(
const ExtensionId& extension_id,
content::RenderFrameHost* render_frame_host) { … }
void DeveloperPrivateEventRouter::OnExtensionFrameUnregistered(
const ExtensionId& extension_id,
content::RenderFrameHost* render_frame_host) { … }
void DeveloperPrivateEventRouter::OnStartedTrackingServiceWorkerInstance(
const WorkerId& worker_id) { … }
void DeveloperPrivateEventRouter::OnStoppedTrackingServiceWorkerInstance(
const WorkerId& worker_id) { … }
void DeveloperPrivateEventRouter::OnAppWindowAdded(AppWindow* window) { … }
void DeveloperPrivateEventRouter::OnAppWindowRemoved(AppWindow* window) { … }
void DeveloperPrivateEventRouter::OnExtensionCommandAdded(
const ExtensionId& extension_id,
const Command& added_command) { … }
void DeveloperPrivateEventRouter::OnExtensionCommandRemoved(
const ExtensionId& extension_id,
const Command& removed_command) { … }
void DeveloperPrivateEventRouter::OnExtensionDisableReasonsChanged(
const ExtensionId& extension_id,
int disable_reasons) { … }
void DeveloperPrivateEventRouter::OnExtensionRuntimePermissionsChanged(
const ExtensionId& extension_id) { … }
void DeveloperPrivateEventRouter::OnExtensionAllowlistWarningStateChanged(
const ExtensionId& extension_id,
bool show_warning) { … }
void DeveloperPrivateEventRouter::OnExtensionManagementSettingsChanged() { … }
void DeveloperPrivateEventRouter::ExtensionWarningsChanged(
const ExtensionIdSet& affected_extensions) { … }
void DeveloperPrivateEventRouter::OnUserPermissionsSettingsChanged(
const PermissionsManager::UserPermissionsSettings& settings) { … }
void DeveloperPrivateEventRouter::OnExtensionPermissionsUpdated(
const Extension& extension,
const PermissionSet& permissions,
PermissionsManager::UpdateReason reason) { … }
void DeveloperPrivateEventRouter::OnToolbarPinnedActionsChanged() { … }
void DeveloperPrivateEventRouter::OnProfilePrefChanged() { … }
void DeveloperPrivateEventRouter::BroadcastItemStateChanged(
developer::EventType event_type,
const ExtensionId& extension_id) { … }
void DeveloperPrivateEventRouter::BroadcastItemStateChangedHelper(
developer::EventType event_type,
const ExtensionId& extension_id,
std::unique_ptr<ExtensionInfoGenerator> info_generator,
ExtensionInfoGenerator::ExtensionInfoList infos) { … }
DeveloperPrivateAPI::UnpackedRetryId DeveloperPrivateAPI::AddUnpackedPath(
content::WebContents* web_contents,
const base::FilePath& path) { … }
base::FilePath DeveloperPrivateAPI::GetUnpackedPath(
content::WebContents* web_contents,
const UnpackedRetryId& id) const { … }
void DeveloperPrivateAPI::SetDraggedPath(content::WebContents* web_contents,
const base::FilePath& dragged_path) { … }
base::FilePath DeveloperPrivateAPI::GetDraggedPath(
content::WebContents* web_contents) const { … }
void DeveloperPrivateAPI::RegisterNotifications() { … }
const DeveloperPrivateAPI::WebContentsData*
DeveloperPrivateAPI::GetWebContentsData(
content::WebContents* web_contents) const { … }
DeveloperPrivateAPI::WebContentsData*
DeveloperPrivateAPI::GetOrCreateWebContentsData(
content::WebContents* web_contents) { … }
DeveloperPrivateAPI::~DeveloperPrivateAPI() { … }
void DeveloperPrivateAPI::Shutdown() { … }
void DeveloperPrivateAPI::OnListenerAdded(
const EventListenerInfo& details) { … }
void DeveloperPrivateAPI::OnListenerRemoved(
const EventListenerInfo& details) { … }
namespace api {
DeveloperPrivateAPIFunction::~DeveloperPrivateAPIFunction() { … }
const Extension* DeveloperPrivateAPIFunction::GetExtensionById(
const ExtensionId& id) { … }
const Extension* DeveloperPrivateAPIFunction::GetEnabledExtensionById(
const ExtensionId& id) { … }
DeveloperPrivateAutoUpdateFunction::~DeveloperPrivateAutoUpdateFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { … }
void DeveloperPrivateAutoUpdateFunction::OnComplete() { … }
DeveloperPrivateGetExtensionsInfoFunction::
DeveloperPrivateGetExtensionsInfoFunction() { … }
DeveloperPrivateGetExtensionsInfoFunction::
~DeveloperPrivateGetExtensionsInfoFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateGetExtensionsInfoFunction::Run() { … }
void DeveloperPrivateGetExtensionsInfoFunction::OnInfosGenerated(
ExtensionInfoGenerator::ExtensionInfoList list) { … }
DeveloperPrivateGetExtensionInfoFunction::
DeveloperPrivateGetExtensionInfoFunction() { … }
DeveloperPrivateGetExtensionInfoFunction::
~DeveloperPrivateGetExtensionInfoFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateGetExtensionInfoFunction::Run() { … }
void DeveloperPrivateGetExtensionInfoFunction::OnInfosGenerated(
ExtensionInfoGenerator::ExtensionInfoList list) { … }
DeveloperPrivateGetExtensionSizeFunction::
DeveloperPrivateGetExtensionSizeFunction() { … }
DeveloperPrivateGetExtensionSizeFunction::
~DeveloperPrivateGetExtensionSizeFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateGetExtensionSizeFunction::Run() { … }
void DeveloperPrivateGetExtensionSizeFunction::OnSizeCalculated(
const std::u16string& size) { … }
DeveloperPrivateGetProfileConfigurationFunction::
~DeveloperPrivateGetProfileConfigurationFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateGetProfileConfigurationFunction::Run() { … }
DeveloperPrivateUpdateProfileConfigurationFunction::
~DeveloperPrivateUpdateProfileConfigurationFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateUpdateProfileConfigurationFunction::Run() { … }
DeveloperPrivateUpdateExtensionConfigurationFunction::
~DeveloperPrivateUpdateExtensionConfigurationFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateUpdateExtensionConfigurationFunction::Run() { … }
DeveloperPrivateReloadFunction::DeveloperPrivateReloadFunction() = default;
DeveloperPrivateReloadFunction::~DeveloperPrivateReloadFunction() = default;
ExtensionFunction::ResponseAction DeveloperPrivateReloadFunction::Run() { … }
void DeveloperPrivateReloadFunction::OnExtensionLoaded(
content::BrowserContext* browser_context,
const Extension* extension) { … }
void DeveloperPrivateReloadFunction::OnShutdown(ExtensionRegistry* registry) { … }
void DeveloperPrivateReloadFunction::OnLoadFailure(
content::BrowserContext* browser_context,
const base::FilePath& file_path,
const std::string& error) { … }
void DeveloperPrivateReloadFunction::OnGotManifestError(
const base::FilePath& file_path,
const std::string& error,
size_t line_number,
const std::string& manifest) { … }
void DeveloperPrivateReloadFunction::ClearObservers() { … }
DeveloperPrivateLoadUnpackedFunction::DeveloperPrivateLoadUnpackedFunction() { … }
DeveloperPrivateLoadUnpackedFunction::~DeveloperPrivateLoadUnpackedFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateLoadUnpackedFunction::Run() { … }
void DeveloperPrivateLoadUnpackedFunction::ShowSelectFileDialog() { … }
void DeveloperPrivateLoadUnpackedFunction::FileSelected(
const ui::SelectedFileInfo& file,
int index) { … }
void DeveloperPrivateLoadUnpackedFunction::FileSelectionCanceled() { … }
void DeveloperPrivateLoadUnpackedFunction::StartFileLoad(
const base::FilePath file_path) { … }
void DeveloperPrivateLoadUnpackedFunction::OnLoadComplete(
const Extension* extension,
const base::FilePath& file_path,
const std::string& error) { … }
void DeveloperPrivateLoadUnpackedFunction::OnGotManifestError(
const base::FilePath& file_path,
const std::string& error,
size_t line_number,
const std::string& manifest) { … }
void DeveloperPrivateLoadUnpackedFunction::Finish(
ResponseValue response_value) { … }
DeveloperPrivateInstallDroppedFileFunction::
DeveloperPrivateInstallDroppedFileFunction() = default;
DeveloperPrivateInstallDroppedFileFunction::
~DeveloperPrivateInstallDroppedFileFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateInstallDroppedFileFunction::Run() { … }
DeveloperPrivateNotifyDragInstallInProgressFunction::
DeveloperPrivateNotifyDragInstallInProgressFunction() = default;
DeveloperPrivateNotifyDragInstallInProgressFunction::
~DeveloperPrivateNotifyDragInstallInProgressFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateNotifyDragInstallInProgressFunction::Run() { … }
void DeveloperPrivateNotifyDragInstallInProgressFunction::SetDropPathForTesting(
base::FilePath* file_path) { … }
void DeveloperPrivatePackDirectoryFunction::OnPackSuccess(
const base::FilePath& crx_file,
const base::FilePath& pem_file) { … }
void DeveloperPrivatePackDirectoryFunction::OnPackFailure(
const std::string& error,
ExtensionCreator::ErrorType error_type) { … }
ExtensionFunction::ResponseAction DeveloperPrivatePackDirectoryFunction::Run() { … }
DeveloperPrivatePackDirectoryFunction::DeveloperPrivatePackDirectoryFunction() { … }
DeveloperPrivatePackDirectoryFunction::
~DeveloperPrivatePackDirectoryFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateLoadDirectoryFunction::Run() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateLoadDirectoryFunction::LoadByFileSystemAPI(
const storage::FileSystemURL& directory_url) { … }
void DeveloperPrivateLoadDirectoryFunction::Load() { … }
void DeveloperPrivateLoadDirectoryFunction::ClearExistingDirectoryContent(
const base::FilePath& project_path) { … }
void DeveloperPrivateLoadDirectoryFunction::ReadDirectoryByFileSystemAPI(
const base::FilePath& project_path,
const base::FilePath& destination_path) { … }
void DeveloperPrivateLoadDirectoryFunction::ReadDirectoryByFileSystemAPICb(
const base::FilePath& project_path,
const base::FilePath& destination_path,
base::File::Error status,
storage::FileSystemOperation::FileEntryList file_list,
bool has_more) { … }
void DeveloperPrivateLoadDirectoryFunction::SnapshotFileCallback(
const base::FilePath& target_path,
base::File::Error result,
const base::File::Info& file_info,
const base::FilePath& src_path,
scoped_refptr<storage::ShareableFileReference> file_ref) { … }
void DeveloperPrivateLoadDirectoryFunction::CopyFile(
const base::FilePath& src_path,
const base::FilePath& target_path) { … }
DeveloperPrivateLoadDirectoryFunction::DeveloperPrivateLoadDirectoryFunction()
: … { … }
DeveloperPrivateLoadDirectoryFunction::~DeveloperPrivateLoadDirectoryFunction()
{ … }
DeveloperPrivateChoosePathFunction::DeveloperPrivateChoosePathFunction() { … }
DeveloperPrivateChoosePathFunction::~DeveloperPrivateChoosePathFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateChoosePathFunction::Run() { … }
void DeveloperPrivateChoosePathFunction::FileSelected(
const ui::SelectedFileInfo& file,
int index) { … }
void DeveloperPrivateChoosePathFunction::FileSelectionCanceled() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateIsProfileManagedFunction::Run() { … }
DeveloperPrivateIsProfileManagedFunction::
~DeveloperPrivateIsProfileManagedFunction() { … }
DeveloperPrivateRequestFileSourceFunction::
DeveloperPrivateRequestFileSourceFunction() { … }
DeveloperPrivateRequestFileSourceFunction::
~DeveloperPrivateRequestFileSourceFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateRequestFileSourceFunction::Run() { … }
void DeveloperPrivateRequestFileSourceFunction::Finish(
const std::string& file_contents) { … }
DeveloperPrivateOpenDevToolsFunction::DeveloperPrivateOpenDevToolsFunction() { … }
DeveloperPrivateOpenDevToolsFunction::~DeveloperPrivateOpenDevToolsFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateOpenDevToolsFunction::Run() { … }
DeveloperPrivateDeleteExtensionErrorsFunction::
~DeveloperPrivateDeleteExtensionErrorsFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateDeleteExtensionErrorsFunction::Run() { … }
DeveloperPrivateRepairExtensionFunction::
~DeveloperPrivateRepairExtensionFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateRepairExtensionFunction::Run() { … }
void DeveloperPrivateRepairExtensionFunction::OnReinstallComplete(
bool success,
const std::string& error,
webstore_install::Result result) { … }
DeveloperPrivateShowOptionsFunction::~DeveloperPrivateShowOptionsFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateShowOptionsFunction::Run() { … }
DeveloperPrivateShowPathFunction::~DeveloperPrivateShowPathFunction() { … }
ExtensionFunction::ResponseAction DeveloperPrivateShowPathFunction::Run() { … }
DeveloperPrivateSetShortcutHandlingSuspendedFunction::
~DeveloperPrivateSetShortcutHandlingSuspendedFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateSetShortcutHandlingSuspendedFunction::Run() { … }
DeveloperPrivateUpdateExtensionCommandFunction::
~DeveloperPrivateUpdateExtensionCommandFunction() { … }
ExtensionFunction::ResponseAction
DeveloperPrivateUpdateExtensionCommandFunction::Run() { … }
DeveloperPrivateAddHostPermissionFunction::
DeveloperPrivateAddHostPermissionFunction() = default;
DeveloperPrivateAddHostPermissionFunction::
~DeveloperPrivateAddHostPermissionFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateAddHostPermissionFunction::Run() { … }
void DeveloperPrivateAddHostPermissionFunction::OnRuntimePermissionsGranted() { … }
DeveloperPrivateRemoveHostPermissionFunction::
DeveloperPrivateRemoveHostPermissionFunction() = default;
DeveloperPrivateRemoveHostPermissionFunction::
~DeveloperPrivateRemoveHostPermissionFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateRemoveHostPermissionFunction::Run() { … }
void DeveloperPrivateRemoveHostPermissionFunction::
OnRuntimePermissionsRevoked() { … }
DeveloperPrivateGetUserSiteSettingsFunction::
DeveloperPrivateGetUserSiteSettingsFunction() = default;
DeveloperPrivateGetUserSiteSettingsFunction::
~DeveloperPrivateGetUserSiteSettingsFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateGetUserSiteSettingsFunction::Run() { … }
DeveloperPrivateAddUserSpecifiedSitesFunction::
DeveloperPrivateAddUserSpecifiedSitesFunction() = default;
DeveloperPrivateAddUserSpecifiedSitesFunction::
~DeveloperPrivateAddUserSpecifiedSitesFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateAddUserSpecifiedSitesFunction::Run() { … }
DeveloperPrivateRemoveUserSpecifiedSitesFunction::
DeveloperPrivateRemoveUserSpecifiedSitesFunction() = default;
DeveloperPrivateRemoveUserSpecifiedSitesFunction::
~DeveloperPrivateRemoveUserSpecifiedSitesFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateRemoveUserSpecifiedSitesFunction::Run() { … }
DeveloperPrivateGetUserAndExtensionSitesByEtldFunction::
DeveloperPrivateGetUserAndExtensionSitesByEtldFunction() = default;
DeveloperPrivateGetUserAndExtensionSitesByEtldFunction::
~DeveloperPrivateGetUserAndExtensionSitesByEtldFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateGetUserAndExtensionSitesByEtldFunction::Run() { … }
DeveloperPrivateGetMatchingExtensionsForSiteFunction::
DeveloperPrivateGetMatchingExtensionsForSiteFunction() = default;
DeveloperPrivateGetMatchingExtensionsForSiteFunction::
~DeveloperPrivateGetMatchingExtensionsForSiteFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateGetMatchingExtensionsForSiteFunction::Run() { … }
DeveloperPrivateUpdateSiteAccessFunction::
DeveloperPrivateUpdateSiteAccessFunction() = default;
DeveloperPrivateUpdateSiteAccessFunction::
~DeveloperPrivateUpdateSiteAccessFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateUpdateSiteAccessFunction::Run() { … }
void DeveloperPrivateUpdateSiteAccessFunction::OnSiteSettingsUpdated() { … }
DeveloperPrivateRemoveMultipleExtensionsFunction::
DeveloperPrivateRemoveMultipleExtensionsFunction() = default;
DeveloperPrivateRemoveMultipleExtensionsFunction::
~DeveloperPrivateRemoveMultipleExtensionsFunction() = default;
ExtensionFunction::ResponseAction
DeveloperPrivateRemoveMultipleExtensionsFunction::Run() { … }
void DeveloperPrivateRemoveMultipleExtensionsFunction::OnDialogCancelled() { … }
void DeveloperPrivateRemoveMultipleExtensionsFunction::OnDialogAccepted() { … }
DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::
DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction() =
default;
DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::
~DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction() =
default;
ExtensionFunction::ResponseAction
DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::Run() { … }
DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::
DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction() = default;
DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::
~DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction() =
default;
ExtensionFunction::ResponseAction
DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::Run() { … }
void DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::
DismissExtensionNotice() { … }
void DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::
OnDialogAccepted() { … }
void DeveloperPrivateDismissMv2DeprecationNoticeForExtensionFunction::
OnDialogCancelled() { … }
}
}