blob: 33b3b66483dce0916203b926a131540930d2fed9 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ASH_CROSAPI_CROSAPI_ASH_H_
#define CHROME_BROWSER_ASH_CROSAPI_CROSAPI_ASH_H_
#include <map>
#include <memory>
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/ash/crosapi/crosapi_id.h"
#include "chromeos/crosapi/mojom/cros_display_config.mojom.h"
#include "chromeos/crosapi/mojom/crosapi.mojom.h"
#include "chromeos/crosapi/mojom/emoji_picker.mojom-forward.h"
#include "chromeos/crosapi/mojom/firewall_hole.mojom.h"
#include "chromeos/crosapi/mojom/magic_boost.mojom-forward.h"
#include "chromeos/crosapi/mojom/mahi.mojom-forward.h"
#include "chromeos/crosapi/mojom/print_preview_cros.mojom-forward.h"
#include "chromeos/crosapi/mojom/telemetry_diagnostic_routine_service.mojom.h"
#include "media/gpu/buildflags.h"
#include "mojo/public/cpp/bindings/generic_pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "printing/buildflags/buildflags.h"
namespace apps {
class DigitalGoodsFactoryAsh;
}
namespace ash {
class DiagnosticsServiceAsh;
class ProbeServiceAsh;
class TelemetryDiagnosticsRoutineServiceAsh;
class TelemetryEventServiceAsh;
class TelemetryManagementServiceAsh;
class VideoConferenceManagerAsh;
namespace auth {
class InSessionAuth;
} // namespace auth
namespace printing {
class PrintPreviewWebcontentsAdapterAsh;
} // namespace printing
} // namespace ash
namespace crosapi {
class ArcAsh;
class AudioServiceAsh;
class AutomationAsh;
class CecPrivateAsh;
class CertDatabaseAsh;
class CertProvisioningAsh;
class ChapsServiceAsh;
class ChromeAppKioskServiceAsh;
class ClipboardHistoryAsh;
class ContentProtectionAsh;
class DebugInterfaceRegistererAsh;
class DeskAsh;
class DeskProfilesAsh;
class DeskTemplateAsh;
class DeviceAttributesAsh;
class DeviceLocalAccountExtensionServiceAsh;
class DeviceOAuth2TokenServiceAsh;
class DocumentScanAsh;
class DownloadControllerAsh;
class DriveIntegrationServiceAsh;
class EchoPrivateAsh;
class EmbeddedAccessibilityHelperClientAsh;
class EmojiPickerAsh;
class ExtensionInfoPrivateAsh;
class FileChangeServiceBridgeAsh;
class FileSystemAccessCloudIdentifierProviderAsh;
class FileSystemProviderServiceAsh;
class ForceInstalledTrackerAsh;
class FullRestoreAsh;
class FullscreenControllerAsh;
class GeolocationServiceAsh;
class IdentityManagerAsh;
class IdleServiceAsh;
class ImageWriterAsh;
class InputMethodsAsh;
class KerberosInBrowserAsh;
class KeystoreServiceAsh;
class KioskSessionServiceAsh;
class LocalPrinterAsh;
class LoginAsh;
class LoginScreenStorageAsh;
class LoginStateAsh;
class MediaUIAsh;
class MultiCaptureServiceAsh;
class NativeThemeServiceAsh;
class NetworkingAttributesAsh;
class NetworkingPrivateAsh;
class OneDriveNotificationServiceAsh;
class OneDriveIntegrationServiceAsh;
class PasskeyAuthenticator;
class ParentAccessAsh;
class PaymentAppInstanceAsh;
class PolicyServiceAsh;
class PowerAsh;
class NonclosableAppToastServiceAsh;
#if BUILDFLAG(USE_CUPS)
class PrintingMetricsAsh;
#endif // BUILDFLAG(USE_CUPS)
class RemotingAsh;
class ResourceManagerAsh;
class ScreenAIDownloaderAsh;
class SearchProviderAsh;
class StructuredMetricsServiceAsh;
class SuggestionServiceAsh;
class TimeZoneServiceAsh;
class VpnServiceAsh;
class WebAppServiceAsh;
class WebKioskServiceAsh;
class VirtualKeyboardAsh;
class VolumeManagerAsh;
// Implementation of Crosapi in Ash. It provides a set of APIs that
// crosapi clients, such as lacros-chrome, can call into.
class CrosapiAsh : public mojom::Crosapi {
public:
CrosapiAsh();
~CrosapiAsh() override;
// Binds the given receiver to this instance.
// |disconnected_handler| is called on the connection lost.
void BindReceiver(mojo::PendingReceiver<mojom::Crosapi> pending_receiver,
CrosapiId crosapi_id,
base::OnceClosure disconnect_handler);
// crosapi::mojom::Crosapi:
void BindAccountManager(
mojo::PendingReceiver<mojom::AccountManager> receiver) override;
void BindAppServiceProxy(
mojo::PendingReceiver<mojom::AppServiceProxy> receiver) override;
void BindArc(mojo::PendingReceiver<mojom::Arc> receiver) override;
void BindAudioService(
mojo::PendingReceiver<mojom::AudioService> receiver) override;
void BindAutomationDeprecated(
mojo::PendingReceiver<mojom::Automation> receiver) override;
void BindAutomationFactory(
mojo::PendingReceiver<mojom::AutomationFactory> receiver) override;
void BindBrowserCdmFactory(mojo::GenericPendingReceiver receiver) override;
void BindCecPrivate(
mojo::PendingReceiver<mojom::CecPrivate> receiver) override;
void BindCertDatabase(
mojo::PendingReceiver<mojom::CertDatabase> receiver) override;
void BindCertProvisioning(
mojo::PendingReceiver<mojom::CertProvisioning> receiver) override;
void BindCfmServiceContext(
mojo::PendingReceiver<chromeos::cfm::mojom::CfmServiceContext> receiver)
override;
void BindChapsService(
mojo::PendingReceiver<mojom::ChapsService> receiver) override;
void BindChromeAppKioskService(
mojo::PendingReceiver<mojom::ChromeAppKioskService> receiver) override;
void BindClipboardHistory(
mojo::PendingReceiver<mojom::ClipboardHistory> receiver) override;
void BindContentProtection(
mojo::PendingReceiver<mojom::ContentProtection> receiver) override;
void BindCrosDisplayConfigController(
mojo::PendingReceiver<mojom::CrosDisplayConfigController> receiver)
override;
void BindDebugInterfaceRegisterer(
mojo::PendingReceiver<mojom::DebugInterfaceRegisterer> receiver) override;
void BindDesk(mojo::PendingReceiver<mojom::Desk> receiver) override;
void BindDeskProfileObserver(
mojo::PendingReceiver<mojom::DeskProfileObserver> receiver) override;
void BindDeskTemplate(
mojo::PendingReceiver<mojom::DeskTemplate> receiver) override;
void BindDeviceAttributes(
mojo::PendingReceiver<mojom::DeviceAttributes> receiver) override;
void BindDeviceLocalAccountExtensionService(
mojo::PendingReceiver<mojom::DeviceLocalAccountExtensionService> receiver)
override;
void BindDeviceOAuth2TokenService(
mojo::PendingReceiver<mojom::DeviceOAuth2TokenService> receiver) override;
void BindDiagnosticsService(
mojo::PendingReceiver<mojom::DiagnosticsService> receiver) override;
void BindDigitalGoodsFactory(
mojo::PendingReceiver<mojom::DigitalGoodsFactory> receiver) override;
void BindDocumentScan(
mojo::PendingReceiver<mojom::DocumentScan> receiver) override;
void BindDownloadController(
mojo::PendingReceiver<mojom::DownloadController> receiver) override;
void BindDriveIntegrationService(
mojo::PendingReceiver<mojom::DriveIntegrationService> receiver) override;
void BindEchoPrivate(
mojo::PendingReceiver<mojom::EchoPrivate> receiver) override;
void BindEmbeddedAccessibilityHelperClientFactory(
mojo::PendingReceiver<
::crosapi::mojom::EmbeddedAccessibilityHelperClientFactory> receiver)
override;
void BindEmojiPicker(
mojo::PendingReceiver<mojom::EmojiPicker> receiver) override;
void BindExtensionInfoPrivate(
mojo::PendingReceiver<mojom::ExtensionInfoPrivate> receiver) override;
void BindFileChangeServiceBridge(
mojo::PendingReceiver<mojom::FileChangeServiceBridge> receiver) override;
void BindFileSystemAccessCloudIdentifierProvider(
mojo::PendingReceiver<mojom::FileSystemAccessCloudIdentifierProvider>
receiver) override;
void BindFileSystemProviderService(
mojo::PendingReceiver<mojom::FileSystemProviderService> receiver)
override;
void BindForceInstalledTracker(
mojo::PendingReceiver<mojom::ForceInstalledTracker> receiver) override;
void BindFullRestore(
mojo::PendingReceiver<mojom::FullRestore> receiver) override;
void BindFullscreenController(
mojo::PendingReceiver<mojom::FullscreenController> receiver) override;
void BindGeolocationService(
mojo::PendingReceiver<mojom::GeolocationService> receiver) override;
void BindHidManager(
mojo::PendingReceiver<device::mojom::HidManager> receiver) override;
void BindIdentityManager(
mojo::PendingReceiver<mojom::IdentityManager> receiver) override;
void BindIdleService(
mojo::PendingReceiver<mojom::IdleService> receiver) override;
void BindImageWriter(
mojo::PendingReceiver<mojom::ImageWriter> receiver) override;
void BindInputMethods(
mojo::PendingReceiver<mojom::InputMethods> receiver) override;
void BindInSessionAuth(
mojo::PendingReceiver<chromeos::auth::mojom::InSessionAuth> receiver)
override;
void BindKerberosInBrowser(
mojo::PendingReceiver<mojom::KerberosInBrowser> receiver) override;
void BindKeystoreService(
mojo::PendingReceiver<mojom::KeystoreService> receiver) override;
void BindKioskSessionService(
mojo::PendingReceiver<mojom::KioskSessionService> receiver) override;
void BindLocalPrinter(
mojo::PendingReceiver<mojom::LocalPrinter> receiver) override;
void BindLogin(mojo::PendingReceiver<mojom::Login> receiver) override;
void BindLoginScreenStorage(
mojo::PendingReceiver<mojom::LoginScreenStorage> receiver) override;
void BindLoginState(
mojo::PendingReceiver<mojom::LoginState> receiver) override;
void BindMachineLearningService(
mojo::PendingReceiver<
chromeos::machine_learning::mojom::MachineLearningService> receiver)
override;
void BindMahiBrowserDelegate(
mojo::PendingReceiver<mojom::MahiBrowserDelegate> receiver) override;
void BindMediaUI(mojo::PendingReceiver<mojom::MediaUI> receiver) override;
void BindMediaSessionAudioFocus(
mojo::PendingReceiver<media_session::mojom::AudioFocusManager> receiver)
override;
void BindMediaSessionAudioFocusDebug(
mojo::PendingReceiver<media_session::mojom::AudioFocusManagerDebug>
receiver) override;
void BindMediaSessionController(
mojo::PendingReceiver<media_session::mojom::MediaControllerManager>
receiver) override;
void BindMultiCaptureService(
mojo::PendingReceiver<mojom::MultiCaptureService> receiver) override;
void BindNativeThemeService(
mojo::PendingReceiver<mojom::NativeThemeService> receiver) override;
void BindNetworkChange(
mojo::PendingReceiver<mojom::NetworkChange> receiver) override;
void BindNetworkingAttributes(
mojo::PendingReceiver<mojom::NetworkingAttributes> receiver) override;
void BindNetworkingPrivate(
mojo::PendingReceiver<mojom::NetworkingPrivate> receiver) override;
void BindOneDriveNotificationService(
mojo::PendingReceiver<mojom::OneDriveNotificationService> receiver)
override;
void BindOneDriveIntegrationService(
mojo::PendingReceiver<mojom::OneDriveIntegrationService> receiver)
override;
void BindPasskeyAuthenticatorDeprecated(
mojo::PendingReceiver<mojom::PasskeyAuthenticator> receiver) override;
void BindParentAccess(
mojo::PendingReceiver<mojom::ParentAccess> receiver) override;
void BindPaymentAppInstance(
mojo::PendingReceiver<chromeos::payments::mojom::PaymentAppInstance>
receiver) override;
void BindPolicyService(
mojo::PendingReceiver<mojom::PolicyService> receiver) override;
void BindPower(mojo::PendingReceiver<mojom::Power> receiver) override;
void BindPrintPreviewCrosDelegate(
mojo::PendingReceiver<mojom::PrintPreviewCrosDelegate> receiver) override;
void BindNonclosableAppToastService(
mojo::PendingReceiver<mojom::NonclosableAppToastService> receiver)
override;
void BindPrintingMetrics(
mojo::PendingReceiver<mojom::PrintingMetrics> receiver) override;
void BindRemoteAppsLacrosBridge(
mojo::PendingReceiver<
chromeos::remote_apps::mojom::RemoteAppsLacrosBridge> receiver)
override;
void BindRemoting(mojo::PendingReceiver<mojom::Remoting> receiver) override;
void BindResourceManager(
mojo::PendingReceiver<mojom::ResourceManager> receiver) override;
void BindScreenAIDownloader(
mojo::PendingReceiver<mojom::ScreenAIDownloader> receiver) override;
void BindSearchControllerFactory(
mojo::PendingRemote<mojom::SearchControllerFactory> remote) override;
void BindSearchControllerRegistry(
mojo::PendingReceiver<mojom::SearchControllerRegistry> receiver) override;
void BindSensorHalClient(
mojo::PendingRemote<chromeos::sensors::mojom::SensorHalClient> remote)
override;
void BindStableVideoDecoderFactory(
mojo::GenericPendingReceiver receiver) override;
void BindStructuredMetricsService(
::mojo::PendingReceiver<::crosapi::mojom::StructuredMetricsService>
receiver) override;
void BindSuggestionService(
mojo::PendingReceiver<mojom::SuggestionService> receiver) override;
void BindSyncService(
mojo::PendingReceiver<mojom::SyncService> receiver) override;
void BindTelemetryDiagnosticRoutinesService(
mojo::PendingReceiver<mojom::TelemetryDiagnosticRoutinesService> receiver)
override;
void BindTelemetryEventService(
mojo::PendingReceiver<mojom::TelemetryEventService> receiver) override;
void BindTelemetryManagementService(
mojo::PendingReceiver<mojom::TelemetryManagementService> receiver)
override;
void BindTelemetryProbeService(
mojo::PendingReceiver<mojom::TelemetryProbeService> receiver) override;
void BindTimeZoneService(
mojo::PendingReceiver<mojom::TimeZoneService> receiver) override;
void BindTrustedVaultBackend(
mojo::PendingReceiver<mojom::TrustedVaultBackend> receiver) override;
void BindTrustedVaultBackendService(
mojo::PendingReceiver<mojom::TrustedVaultBackendService> receiver)
override;
void BindUrlHandler(
mojo::PendingReceiver<mojom::UrlHandler> receiver) override;
void BindVideoCaptureDeviceFactory(
mojo::PendingReceiver<mojom::VideoCaptureDeviceFactory> receiver)
override;
void BindVirtualKeyboard(
mojo::PendingReceiver<mojom::VirtualKeyboard> receiver) override;
void BindVolumeManager(
mojo::PendingReceiver<mojom::VolumeManager> receiver) override;
void BindVpnExtensionObserver(
mojo::PendingReceiver<crosapi::mojom::VpnExtensionObserver> receiver)
override;
void BindVpnService(
mojo::PendingReceiver<mojom::VpnService> receiver) override;
void BindWebAppService(
mojo::PendingReceiver<mojom::WebAppService> receiver) override;
void BindWebKioskService(
mojo::PendingReceiver<mojom::WebKioskService> receiver) override;
void BindGuestOsSkForwarderFactory(
mojo::PendingReceiver<mojom::GuestOsSkForwarderFactory> receiver)
override;
void REMOVED_29(
mojo::PendingReceiver<mojom::SystemDisplayDeprecated> receiver) override;
void REMOVED_105(mojo::PendingReceiver<mojom::FirewallHoleServiceDeprecated>
receiver) override;
void REMOVED_62(
mojo::PendingReceiver<mojom::AuthenticationDeprecated> receiver) override;
AutomationAsh* automation_ash() { return automation_ash_.get(); }
CecPrivateAsh* cec_private_ash() { return cec_private_ash_.get(); }
CertDatabaseAsh* cert_database_ash() { return cert_database_ash_.get(); }
CertProvisioningAsh* cert_provisioning_ash() {
return cert_provisioning_ash_.get();
}
ChapsServiceAsh* chaps_service_ash() { return chaps_service_ash_.get(); }
ChromeAppKioskServiceAsh* chrome_app_kiosk_service() {
return chrome_app_kiosk_service_ash_.get();
}
DebugInterfaceRegistererAsh* debug_interface_registerer_ash() {
return debug_interface_registerer_ash_.get();
}
DeskAsh* desk_ash() { return desk_ash_.get(); }
DeskProfilesAsh* desk_profiles_ash() { return desk_profiles_ash_.get(); }
DeskTemplateAsh* desk_template_ash() { return desk_template_ash_.get(); }
DeviceAttributesAsh* device_attributes_ash() {
return device_attributes_ash_.get();
}
DeviceLocalAccountExtensionServiceAsh*
device_local_account_extension_service() {
return device_local_account_extension_service_ash_.get();
}
DocumentScanAsh* document_scan_ash() { return document_scan_ash_.get(); }
DownloadControllerAsh* download_controller_ash() {
return download_controller_ash_.get();
}
EchoPrivateAsh* echo_private_ash() { return echo_private_ash_.get(); }
EmbeddedAccessibilityHelperClientAsh*
embedded_accessibility_helper_client_ash() {
return embedded_accessibility_helper_client_ash_.get();
}
EmojiPickerAsh* emoji_picker_ash() { return emoji_picker_ash_.get(); }
ExtensionInfoPrivateAsh* extension_info_private_ash() {
return extension_info_private_ash_.get();
}
FileSystemAccessCloudIdentifierProviderAsh*
file_system_access_cloud_identifier_provider_ash() {
return file_system_access_cloud_identifier_provider_ash_.get();
}
FileSystemProviderServiceAsh* file_system_provider_service_ash() {
return file_system_provider_service_ash_.get();
}
ForceInstalledTrackerAsh* force_installed_tracker_ash() {
return force_installed_tracker_ash_.get();
}
FullRestoreAsh* full_restore_ash() { return full_restore_ash_.get(); }
FullscreenControllerAsh* fullscreen_controller_ash() {
return fullscreen_controller_ash_.get();
}
ImageWriterAsh* image_writer_ash() { return image_writer_ash_.get(); }
InputMethodsAsh* input_methods_ash() { return input_methods_ash_.get(); }
KeystoreServiceAsh* keystore_service_ash() {
return keystore_service_ash_.get();
}
KioskSessionServiceAsh* kiosk_session_service() {
return kiosk_session_service_ash_.get();
}
LocalPrinterAsh* local_printer_ash() { return local_printer_ash_.get(); }
LoginAsh* login_ash() { return login_ash_.get(); }
LoginScreenStorageAsh* login_screen_storage_ash() {
return login_screen_storage_ash_.get();
}
LoginStateAsh* login_state_ash() { return login_state_ash_.get(); }
MediaUIAsh* media_ui_ash() { return media_ui_ash_.get(); }
MultiCaptureServiceAsh* multi_capture_service_ash() {
return multi_capture_service_ash_.get();
}
NetworkingAttributesAsh* networking_attributes_ash() {
return networking_attributes_ash_.get();
}
NetworkingPrivateAsh* networking_private_ash() {
return networking_private_ash_.get();
}
ParentAccessAsh* parent_access_ash() { return parent_access_ash_.get(); }
PaymentAppInstanceAsh* payment_app_instance_ash() {
return payment_app_instance_ash_.get();
}
ash::printing::PrintPreviewWebcontentsAdapterAsh*
print_preview_webcontents_adapter_ash() {
return print_preview_webcontents_adapter_ash_.get();
}
#if BUILDFLAG(USE_CUPS)
PrintingMetricsAsh* printing_metrics_ash() {
return printing_metrics_ash_.get();
}
#endif // BUILDFLAG(USE_CUPS)
ash::ProbeServiceAsh* probe_service_ash() { return probe_service_ash_.get(); }
ScreenAIDownloaderAsh* screen_ai_downloader_ash() {
return screen_ai_downloader_ash_.get();
}
SearchProviderAsh* search_provider_ash() {
return search_provider_ash_.get();
}
StructuredMetricsServiceAsh* structured_metrics_service_ash() {
return structured_metrics_service_ash_.get();
}
SuggestionServiceAsh* suggestion_service_ash() {
return suggestion_service_ash_.get();
}
WebAppServiceAsh* web_app_service_ash() { return web_app_service_ash_.get(); }
WebKioskServiceAsh* web_kiosk_service_ash() {
return web_kiosk_service_ash_.get();
}
ash::VideoConferenceManagerAsh* video_conference_manager_ash() {
return video_conference_manager_ash_.get();
}
VirtualKeyboardAsh* virtual_keyboard_ash() {
return virtual_keyboard_ash_.get();
}
VpnServiceAsh* vpn_service_ash() { return vpn_service_ash_.get(); }
private:
// Called when a connection is lost.
void OnDisconnected();
std::unique_ptr<ArcAsh> arc_ash_;
std::unique_ptr<AudioServiceAsh> audio_service_ash_;
std::unique_ptr<AutomationAsh> automation_ash_;
std::unique_ptr<CecPrivateAsh> cec_private_ash_;
std::unique_ptr<CertDatabaseAsh> cert_database_ash_;
std::unique_ptr<CertProvisioningAsh> cert_provisioning_ash_;
std::unique_ptr<ChapsServiceAsh> chaps_service_ash_;
std::unique_ptr<ChromeAppKioskServiceAsh> chrome_app_kiosk_service_ash_;
std::unique_ptr<ClipboardHistoryAsh> clipboard_history_ash_;
std::unique_ptr<ContentProtectionAsh> content_protection_ash_;
std::unique_ptr<DebugInterfaceRegistererAsh> debug_interface_registerer_ash_;
std::unique_ptr<DeskAsh> desk_ash_;
std::unique_ptr<DeskProfilesAsh> desk_profiles_ash_;
std::unique_ptr<DeskTemplateAsh> desk_template_ash_;
std::unique_ptr<DeviceAttributesAsh> device_attributes_ash_;
std::unique_ptr<DeviceLocalAccountExtensionServiceAsh>
device_local_account_extension_service_ash_;
std::unique_ptr<DeviceOAuth2TokenServiceAsh> device_oauth2_token_service_ash_;
std::unique_ptr<ash::DiagnosticsServiceAsh> diagnostics_service_ash_;
std::unique_ptr<apps::DigitalGoodsFactoryAsh> digital_goods_factory_ash_;
std::unique_ptr<DocumentScanAsh> document_scan_ash_;
std::unique_ptr<DownloadControllerAsh> download_controller_ash_;
std::unique_ptr<DriveIntegrationServiceAsh> drive_integration_service_ash_;
std::unique_ptr<EchoPrivateAsh> echo_private_ash_;
std::unique_ptr<EmbeddedAccessibilityHelperClientAsh>
embedded_accessibility_helper_client_ash_;
std::unique_ptr<EmojiPickerAsh> emoji_picker_ash_;
std::unique_ptr<ExtensionInfoPrivateAsh> extension_info_private_ash_;
std::unique_ptr<FileChangeServiceBridgeAsh> file_change_service_bridge_ash_;
std::unique_ptr<FileSystemAccessCloudIdentifierProviderAsh>
file_system_access_cloud_identifier_provider_ash_;
std::unique_ptr<FileSystemProviderServiceAsh>
file_system_provider_service_ash_;
std::unique_ptr<ForceInstalledTrackerAsh> force_installed_tracker_ash_;
std::unique_ptr<FullRestoreAsh> full_restore_ash_;
std::unique_ptr<FullscreenControllerAsh> fullscreen_controller_ash_;
std::unique_ptr<GeolocationServiceAsh> geolocation_service_ash_;
std::unique_ptr<IdentityManagerAsh> identity_manager_ash_;
std::unique_ptr<IdleServiceAsh> idle_service_ash_;
std::unique_ptr<InputMethodsAsh> input_methods_ash_;
std::unique_ptr<ImageWriterAsh> image_writer_ash_;
std::unique_ptr<KerberosInBrowserAsh> kerberos_in_browser_ash_;
std::unique_ptr<KeystoreServiceAsh> keystore_service_ash_;
std::unique_ptr<KioskSessionServiceAsh> kiosk_session_service_ash_;
std::unique_ptr<LocalPrinterAsh> local_printer_ash_;
std::unique_ptr<LoginAsh> login_ash_;
std::unique_ptr<LoginScreenStorageAsh> login_screen_storage_ash_;
std::unique_ptr<LoginStateAsh> login_state_ash_;
std::unique_ptr<MediaUIAsh> media_ui_ash_;
std::unique_ptr<MultiCaptureServiceAsh> multi_capture_service_ash_;
std::unique_ptr<NativeThemeServiceAsh> native_theme_service_ash_;
std::unique_ptr<NetworkingAttributesAsh> networking_attributes_ash_;
std::unique_ptr<NetworkingPrivateAsh> networking_private_ash_;
std::unique_ptr<OneDriveNotificationServiceAsh>
one_drive_notification_service_ash_;
std::unique_ptr<OneDriveIntegrationServiceAsh>
one_drive_integration_service_ash_;
std::unique_ptr<ParentAccessAsh> parent_access_ash_;
std::unique_ptr<PaymentAppInstanceAsh> payment_app_instance_ash_;
std::unique_ptr<PolicyServiceAsh> policy_service_ash_;
std::unique_ptr<PowerAsh> power_ash_;
std::unique_ptr<NonclosableAppToastServiceAsh>
nonclosable_app_toast_service_ash_;
#if BUILDFLAG(USE_CUPS)
std::unique_ptr<PrintingMetricsAsh> printing_metrics_ash_;
#endif // BUILDFLAG(USE_CUPS)
std::unique_ptr<ash::TelemetryDiagnosticsRoutineServiceAsh>
telemetry_diagnostic_routine_service_ash_;
std::unique_ptr<ash::TelemetryEventServiceAsh> telemetry_event_service_ash_;
std::unique_ptr<ash::TelemetryManagementServiceAsh>
telemetry_management_service_ash_;
std::unique_ptr<ash::ProbeServiceAsh> probe_service_ash_;
std::unique_ptr<RemotingAsh> remoting_ash_;
std::unique_ptr<ResourceManagerAsh> resource_manager_ash_;
std::unique_ptr<ash::printing::PrintPreviewWebcontentsAdapterAsh>
print_preview_webcontents_adapter_ash_;
std::unique_ptr<ScreenAIDownloaderAsh> screen_ai_downloader_ash_;
std::unique_ptr<SearchProviderAsh> search_provider_ash_;
std::unique_ptr<StructuredMetricsServiceAsh> structured_metrics_service_ash_;
std::unique_ptr<SuggestionServiceAsh> suggestion_service_ash_;
std::unique_ptr<TimeZoneServiceAsh> time_zone_service_ash_;
std::unique_ptr<ash::VideoConferenceManagerAsh> video_conference_manager_ash_;
std::unique_ptr<VirtualKeyboardAsh> virtual_keyboard_ash_;
std::unique_ptr<VolumeManagerAsh> volume_manager_ash_;
std::unique_ptr<VpnServiceAsh> vpn_service_ash_;
std::unique_ptr<WebAppServiceAsh> web_app_service_ash_;
std::unique_ptr<WebKioskServiceAsh> web_kiosk_service_ash_;
mojo::ReceiverSet<mojom::Crosapi, CrosapiId> receiver_set_;
std::map<mojo::ReceiverId, base::OnceClosure> disconnect_handler_map_;
base::WeakPtrFactory<CrosapiAsh> weak_factory_{this};
};
} // namespace crosapi
#endif // CHROME_BROWSER_ASH_CROSAPI_CROSAPI_ASH_H_