#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-params-data.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-shared-message-ids.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-import-headers.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-test-utils.h"
namespace blink::mojom {
MediaDeviceInfo::MediaDeviceInfo()
: … { … }
MediaDeviceInfo::MediaDeviceInfo(
const std::string& device_id_in,
const std::string& label_in,
const std::string& group_id_in,
const ::media::VideoCaptureControlSupport& control_support_in,
FacingMode facing_mode_in,
std::optional<::media::mojom::CameraAvailability> availability_in)
: … { … }
MediaDeviceInfo::~MediaDeviceInfo() = default;
void MediaDeviceInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool MediaDeviceInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
VideoInputDeviceCapabilities::VideoInputDeviceCapabilities()
: … { … }
VideoInputDeviceCapabilities::VideoInputDeviceCapabilities(
const std::string& device_id_in,
const std::string& group_id_in,
const ::media::VideoCaptureControlSupport& control_support_in,
std::vector<::media::VideoCaptureFormat> formats_in,
FacingMode facing_mode_in,
std::optional<::media::mojom::CameraAvailability> availability_in)
: … { … }
VideoInputDeviceCapabilities::~VideoInputDeviceCapabilities() = default;
void VideoInputDeviceCapabilities::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool VideoInputDeviceCapabilities::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
AudioInputDeviceCapabilities::AudioInputDeviceCapabilities()
: … { … }
AudioInputDeviceCapabilities::AudioInputDeviceCapabilities(
const std::string& device_id_in,
const std::string& group_id_in,
const ::media::AudioParameters& parameters_in,
bool is_valid_in,
int32_t channels_in,
int32_t sample_rate_in,
::base::TimeDelta latency_in)
: … { … }
AudioInputDeviceCapabilities::~AudioInputDeviceCapabilities() = default;
void AudioInputDeviceCapabilities::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool AudioInputDeviceCapabilities::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char MediaDevicesDispatcherHost::Name_[] = …;
MediaDevicesDispatcherHost::IPCStableHashFunction MediaDevicesDispatcherHost::MessageToMethodInfo_(mojo::Message& message) { … }
const char* MediaDevicesDispatcherHost::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t MediaDevicesDispatcherHost::EnumerateDevices_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::GetVideoInputCapabilities_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::GetAllVideoInputDeviceFormats_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::GetAvailableVideoInputDeviceFormats_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::GetAudioInputCapabilities_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::AddMediaDevicesListener_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::SetCaptureHandleConfig_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::CloseFocusWindowOfOpportunity_Sym::IPCStableHash() { … }
uint32_t MediaDevicesDispatcherHost::ProduceSubCaptureTargetId_Sym::IPCStableHash() { … }
# endif
class MediaDevicesDispatcherHost_EnumerateDevices_ForwardToCallback
: public mojo::MessageReceiver { … };
class MediaDevicesDispatcherHost_GetVideoInputCapabilities_ForwardToCallback
: public mojo::MessageReceiver { … };
class MediaDevicesDispatcherHost_GetAllVideoInputDeviceFormats_ForwardToCallback
: public mojo::MessageReceiver { … };
class MediaDevicesDispatcherHost_GetAvailableVideoInputDeviceFormats_ForwardToCallback
: public mojo::MessageReceiver { … };
class MediaDevicesDispatcherHost_GetAudioInputCapabilities_ForwardToCallback
: public mojo::MessageReceiver { … };
class MediaDevicesDispatcherHost_ProduceSubCaptureTargetId_ForwardToCallback
: public mojo::MessageReceiver { … };
MediaDevicesDispatcherHostProxy::MediaDevicesDispatcherHostProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void MediaDevicesDispatcherHostProxy::EnumerateDevices(
bool in_request_audio_input, bool in_request_video_input, bool in_request_audio_output, bool in_request_video_input_capabilities, bool in_request_audio_input_capabilities, EnumerateDevicesCallback callback) { … }
void MediaDevicesDispatcherHostProxy::GetVideoInputCapabilities(
GetVideoInputCapabilitiesCallback callback) { … }
void MediaDevicesDispatcherHostProxy::GetAllVideoInputDeviceFormats(
const std::string& in_device_id, GetAllVideoInputDeviceFormatsCallback callback) { … }
void MediaDevicesDispatcherHostProxy::GetAvailableVideoInputDeviceFormats(
const std::string& in_device_id, GetAvailableVideoInputDeviceFormatsCallback callback) { … }
void MediaDevicesDispatcherHostProxy::GetAudioInputCapabilities(
GetAudioInputCapabilitiesCallback callback) { … }
void MediaDevicesDispatcherHostProxy::AddMediaDevicesListener(
bool in_subscribe_audio_input, bool in_subscribe_video_input, bool in_subscribe_audio_output, ::mojo::PendingRemote<MediaDevicesListener> in_listener) { … }
void MediaDevicesDispatcherHostProxy::SetCaptureHandleConfig(
::blink::mojom::CaptureHandleConfigPtr in_config) { … }
void MediaDevicesDispatcherHostProxy::CloseFocusWindowOfOpportunity(
const std::string& in_label) { … }
void MediaDevicesDispatcherHostProxy::ProduceSubCaptureTargetId(
::media::mojom::SubCaptureTargetType in_type, ProduceSubCaptureTargetIdCallback callback) { … }
class MediaDevicesDispatcherHost_EnumerateDevices_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_EnumerateDevices_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_EnumerateDevices_ProxyToResponder::Run(
const std::vector<std::vector<::blink::WebMediaDeviceInfo>>& in_enumeration, std::vector<VideoInputDeviceCapabilitiesPtr> in_video_input_device_capabilities, std::vector<AudioInputDeviceCapabilitiesPtr> in_audio_input_device_capabilities) { … }
class MediaDevicesDispatcherHost_GetVideoInputCapabilities_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_GetVideoInputCapabilities_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_GetVideoInputCapabilities_ProxyToResponder::Run(
std::vector<VideoInputDeviceCapabilitiesPtr> in_video_input_device_capabilities) { … }
class MediaDevicesDispatcherHost_GetAllVideoInputDeviceFormats_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_GetAllVideoInputDeviceFormats_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_GetAllVideoInputDeviceFormats_ProxyToResponder::Run(
const std::vector<::media::VideoCaptureFormat>& in_formats) { … }
class MediaDevicesDispatcherHost_GetAvailableVideoInputDeviceFormats_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_GetAvailableVideoInputDeviceFormats_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_GetAvailableVideoInputDeviceFormats_ProxyToResponder::Run(
const std::vector<::media::VideoCaptureFormat>& in_formats) { … }
class MediaDevicesDispatcherHost_GetAudioInputCapabilities_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_GetAudioInputCapabilities_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_GetAudioInputCapabilities_ProxyToResponder::Run(
std::vector<AudioInputDeviceCapabilitiesPtr> in_audio_input_device_capabilities) { … }
class MediaDevicesDispatcherHost_ProduceSubCaptureTargetId_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool MediaDevicesDispatcherHost_ProduceSubCaptureTargetId_ForwardToCallback::Accept(
mojo::Message* message) { … }
void MediaDevicesDispatcherHost_ProduceSubCaptureTargetId_ProxyToResponder::Run(
const std::string& in_id) { … }
bool MediaDevicesDispatcherHostStubDispatch::Accept(
MediaDevicesDispatcherHost* impl,
mojo::Message* message) { … }
bool MediaDevicesDispatcherHostStubDispatch::AcceptWithResponder(
MediaDevicesDispatcherHost* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kMediaDevicesDispatcherHostValidationInfo[] = …;
bool MediaDevicesDispatcherHostRequestValidator::Accept(mojo::Message* message) { … }
bool MediaDevicesDispatcherHostResponseValidator::Accept(mojo::Message* message) { … }
const char MediaDevicesListener::Name_[] = …;
MediaDevicesListener::IPCStableHashFunction MediaDevicesListener::MessageToMethodInfo_(mojo::Message& message) { … }
const char* MediaDevicesListener::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t MediaDevicesListener::OnDevicesChanged_Sym::IPCStableHash() { … }
# endif
MediaDevicesListenerProxy::MediaDevicesListenerProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void MediaDevicesListenerProxy::OnDevicesChanged(
MediaDeviceType in_type, const std::vector<::blink::WebMediaDeviceInfo>& in_device_infos) { … }
bool MediaDevicesListenerStubDispatch::Accept(
MediaDevicesListener* impl,
mojo::Message* message) { … }
bool MediaDevicesListenerStubDispatch::AcceptWithResponder(
MediaDevicesListener* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kMediaDevicesListenerValidationInfo[] = …;
bool MediaDevicesListenerRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::blink::mojom::MediaDeviceInfo::DataView, ::blink::mojom::MediaDeviceInfoPtr>::Read(
::blink::mojom::MediaDeviceInfo::DataView input,
::blink::mojom::MediaDeviceInfoPtr* output) { … }
bool StructTraits<::blink::mojom::VideoInputDeviceCapabilities::DataView, ::blink::mojom::VideoInputDeviceCapabilitiesPtr>::Read(
::blink::mojom::VideoInputDeviceCapabilities::DataView input,
::blink::mojom::VideoInputDeviceCapabilitiesPtr* output) { … }
bool StructTraits<::blink::mojom::AudioInputDeviceCapabilities::DataView, ::blink::mojom::AudioInputDeviceCapabilitiesPtr>::Read(
::blink::mojom::AudioInputDeviceCapabilities::DataView input,
::blink::mojom::AudioInputDeviceCapabilitiesPtr* output) { … }
}
namespace blink::mojom {
void MediaDevicesDispatcherHostInterceptorForTesting::EnumerateDevices(bool request_audio_input, bool request_video_input, bool request_audio_output, bool request_video_input_capabilities, bool request_audio_input_capabilities, EnumerateDevicesCallback callback) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::GetVideoInputCapabilities(GetVideoInputCapabilitiesCallback callback) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::GetAllVideoInputDeviceFormats(const std::string& device_id, GetAllVideoInputDeviceFormatsCallback callback) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::GetAvailableVideoInputDeviceFormats(const std::string& device_id, GetAvailableVideoInputDeviceFormatsCallback callback) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::GetAudioInputCapabilities(GetAudioInputCapabilitiesCallback callback) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::AddMediaDevicesListener(bool subscribe_audio_input, bool subscribe_video_input, bool subscribe_audio_output, ::mojo::PendingRemote<MediaDevicesListener> listener) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::SetCaptureHandleConfig(::blink::mojom::CaptureHandleConfigPtr config) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::CloseFocusWindowOfOpportunity(const std::string& label) { … }
void MediaDevicesDispatcherHostInterceptorForTesting::ProduceSubCaptureTargetId(::media::mojom::SubCaptureTargetType type, ProduceSubCaptureTargetIdCallback callback) { … }
MediaDevicesDispatcherHostAsyncWaiter::MediaDevicesDispatcherHostAsyncWaiter(
MediaDevicesDispatcherHost* proxy) : … { … }
MediaDevicesDispatcherHostAsyncWaiter::~MediaDevicesDispatcherHostAsyncWaiter() = default;
void MediaDevicesDispatcherHostAsyncWaiter::EnumerateDevices(
bool request_audio_input, bool request_video_input, bool request_audio_output, bool request_video_input_capabilities, bool request_audio_input_capabilities, std::vector<std::vector<::blink::WebMediaDeviceInfo>>* out_enumeration, std::vector<VideoInputDeviceCapabilitiesPtr>* out_video_input_device_capabilities, std::vector<AudioInputDeviceCapabilitiesPtr>* out_audio_input_device_capabilities) { … }
void MediaDevicesDispatcherHostAsyncWaiter::GetVideoInputCapabilities(
std::vector<VideoInputDeviceCapabilitiesPtr>* out_video_input_device_capabilities) { … }
std::vector<VideoInputDeviceCapabilitiesPtr> MediaDevicesDispatcherHostAsyncWaiter::GetVideoInputCapabilities(
) { … }
void MediaDevicesDispatcherHostAsyncWaiter::GetAllVideoInputDeviceFormats(
const std::string& device_id, std::vector<::media::VideoCaptureFormat>* out_formats) { … }
std::vector<::media::VideoCaptureFormat> MediaDevicesDispatcherHostAsyncWaiter::GetAllVideoInputDeviceFormats(
const std::string& device_id) { … }
void MediaDevicesDispatcherHostAsyncWaiter::GetAvailableVideoInputDeviceFormats(
const std::string& device_id, std::vector<::media::VideoCaptureFormat>* out_formats) { … }
std::vector<::media::VideoCaptureFormat> MediaDevicesDispatcherHostAsyncWaiter::GetAvailableVideoInputDeviceFormats(
const std::string& device_id) { … }
void MediaDevicesDispatcherHostAsyncWaiter::GetAudioInputCapabilities(
std::vector<AudioInputDeviceCapabilitiesPtr>* out_audio_input_device_capabilities) { … }
std::vector<AudioInputDeviceCapabilitiesPtr> MediaDevicesDispatcherHostAsyncWaiter::GetAudioInputCapabilities(
) { … }
void MediaDevicesDispatcherHostAsyncWaiter::ProduceSubCaptureTargetId(
::media::mojom::SubCaptureTargetType type, std::string* out_id) { … }
std::string MediaDevicesDispatcherHostAsyncWaiter::ProduceSubCaptureTargetId(
::media::mojom::SubCaptureTargetType type) { … }
void MediaDevicesListenerInterceptorForTesting::OnDevicesChanged(MediaDeviceType type, const std::vector<::blink::WebMediaDeviceInfo>& device_infos) { … }
MediaDevicesListenerAsyncWaiter::MediaDevicesListenerAsyncWaiter(
MediaDevicesListener* proxy) : … { … }
MediaDevicesListenerAsyncWaiter::~MediaDevicesListenerAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif