#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "content/browser/xr/webxr_internals/mojom/webxr_internals.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 "content/browser/xr/webxr_internals/mojom/webxr_internals.mojom-params-data.h"
#include "content/browser/xr/webxr_internals/mojom/webxr_internals.mojom-shared-message-ids.h"
#include "content/browser/xr/webxr_internals/mojom/webxr_internals.mojom-import-headers.h"
#include "content/browser/xr/webxr_internals/mojom/webxr_internals.mojom-test-utils.h"
namespace webxr::mojom {
DeviceInfo::DeviceInfo()
: … { … }
DeviceInfo::DeviceInfo(
const std::string& operating_system_name_in,
const std::string& operating_system_version_in,
const std::string& gpu_gl_vendor_in,
const std::string& gpu_gl_renderer_in)
: … { … }
DeviceInfo::~DeviceInfo() = default;
size_t DeviceInfo::Hash(size_t seed) const { … }
void DeviceInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DeviceInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SessionRequestedRecord::SessionRequestedRecord()
: … { … }
SessionRequestedRecord::SessionRequestedRecord(
::device::mojom::XRSessionOptionsPtr options_in,
::base::Time requested_time_in)
: … { … }
SessionRequestedRecord::~SessionRequestedRecord() = default;
void SessionRequestedRecord::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SessionRequestedRecord::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SessionRejectedRecord::SessionRejectedRecord()
: … { … }
SessionRejectedRecord::SessionRejectedRecord(
uint64_t trace_id_in,
::device::mojom::RequestSessionError failure_reason_in,
::base::Time rejected_time_in,
const std::string& failure_reason_description_in,
std::vector<::device::mojom::XRSessionFeature> rejected_features_in)
: … { … }
SessionRejectedRecord::~SessionRejectedRecord() = default;
void SessionRejectedRecord::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SessionRejectedRecord::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SessionStartedRecord::SessionStartedRecord()
: … { … }
SessionStartedRecord::SessionStartedRecord(
uint64_t trace_id_in,
::device::mojom::XRDeviceId device_id_in,
::base::Time started_time_in)
: … { … }
SessionStartedRecord::~SessionStartedRecord() = default;
void SessionStartedRecord::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SessionStartedRecord::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SessionStoppedRecord::SessionStoppedRecord()
: … { … }
SessionStoppedRecord::SessionStoppedRecord(
uint64_t trace_id_in,
::base::Time stopped_time_in)
: … { … }
SessionStoppedRecord::~SessionStoppedRecord() = default;
void SessionStoppedRecord::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SessionStoppedRecord::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
RuntimeInfo::RuntimeInfo()
: … { … }
RuntimeInfo::RuntimeInfo(
::device::mojom::XRDeviceId device_id_in,
std::vector<::device::mojom::XRSessionFeature> supported_features_in,
bool is_ar_blend_mode_supported_in)
: … { … }
RuntimeInfo::~RuntimeInfo() = default;
void RuntimeInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool RuntimeInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char WebXrInternalsHandler::Name_[] = …;
WebXrInternalsHandler::IPCStableHashFunction WebXrInternalsHandler::MessageToMethodInfo_(mojo::Message& message) { … }
const char* WebXrInternalsHandler::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t WebXrInternalsHandler::GetDeviceInfo_Sym::IPCStableHash() { … }
uint32_t WebXrInternalsHandler::GetActiveRuntimes_Sym::IPCStableHash() { … }
uint32_t WebXrInternalsHandler::SubscribeToEvents_Sym::IPCStableHash() { … }
# endif
class WebXrInternalsHandler_GetDeviceInfo_ForwardToCallback
: public mojo::MessageReceiver { … };
class WebXrInternalsHandler_GetActiveRuntimes_ForwardToCallback
: public mojo::MessageReceiver { … };
WebXrInternalsHandlerProxy::WebXrInternalsHandlerProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void WebXrInternalsHandlerProxy::GetDeviceInfo(
GetDeviceInfoCallback callback) { … }
void WebXrInternalsHandlerProxy::GetActiveRuntimes(
GetActiveRuntimesCallback callback) { … }
void WebXrInternalsHandlerProxy::SubscribeToEvents(
::mojo::PendingRemote<XRInternalsSessionListener> in_listener) { … }
class WebXrInternalsHandler_GetDeviceInfo_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool WebXrInternalsHandler_GetDeviceInfo_ForwardToCallback::Accept(
mojo::Message* message) { … }
void WebXrInternalsHandler_GetDeviceInfo_ProxyToResponder::Run(
DeviceInfoPtr in_device_info) { … }
class WebXrInternalsHandler_GetActiveRuntimes_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool WebXrInternalsHandler_GetActiveRuntimes_ForwardToCallback::Accept(
mojo::Message* message) { … }
void WebXrInternalsHandler_GetActiveRuntimes_ProxyToResponder::Run(
std::vector<RuntimeInfoPtr> in_active_runtimes) { … }
bool WebXrInternalsHandlerStubDispatch::Accept(
WebXrInternalsHandler* impl,
mojo::Message* message) { … }
bool WebXrInternalsHandlerStubDispatch::AcceptWithResponder(
WebXrInternalsHandler* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kWebXrInternalsHandlerValidationInfo[] = …;
bool WebXrInternalsHandlerRequestValidator::Accept(mojo::Message* message) { … }
bool WebXrInternalsHandlerResponseValidator::Accept(mojo::Message* message) { … }
const char XRInternalsSessionListener::Name_[] = …;
XRInternalsSessionListener::IPCStableHashFunction XRInternalsSessionListener::MessageToMethodInfo_(mojo::Message& message) { … }
const char* XRInternalsSessionListener::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t XRInternalsSessionListener::LogXrSessionRequested_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogXrSessionRejected_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogXrSessionStarted_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogXrSessionStopped_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogXrRuntimeAdded_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogXrRuntimeRemoved_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogFrameData_Sym::IPCStableHash() { … }
uint32_t XRInternalsSessionListener::LogConsoleMessages_Sym::IPCStableHash() { … }
# endif
XRInternalsSessionListenerProxy::XRInternalsSessionListenerProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void XRInternalsSessionListenerProxy::LogXrSessionRequested(
SessionRequestedRecordPtr in_session_requested_record) { … }
void XRInternalsSessionListenerProxy::LogXrSessionRejected(
SessionRejectedRecordPtr in_session_rejected_record) { … }
void XRInternalsSessionListenerProxy::LogXrSessionStarted(
SessionStartedRecordPtr in_session_started_record) { … }
void XRInternalsSessionListenerProxy::LogXrSessionStopped(
SessionStoppedRecordPtr in_session_stopped_record) { … }
void XRInternalsSessionListenerProxy::LogXrRuntimeAdded(
RuntimeInfoPtr in_runtime_added_record) { … }
void XRInternalsSessionListenerProxy::LogXrRuntimeRemoved(
::device::mojom::XRDeviceId in_device_id) { … }
void XRInternalsSessionListenerProxy::LogFrameData(
::device::mojom::XrFrameStatisticsPtr in_xrframe_statistics) { … }
void XRInternalsSessionListenerProxy::LogConsoleMessages(
::device::mojom::XrLogMessagePtr in_xrlogging_statistics) { … }
bool XRInternalsSessionListenerStubDispatch::Accept(
XRInternalsSessionListener* impl,
mojo::Message* message) { … }
bool XRInternalsSessionListenerStubDispatch::AcceptWithResponder(
XRInternalsSessionListener* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kXRInternalsSessionListenerValidationInfo[] = …;
bool XRInternalsSessionListenerRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::webxr::mojom::DeviceInfo::DataView, ::webxr::mojom::DeviceInfoPtr>::Read(
::webxr::mojom::DeviceInfo::DataView input,
::webxr::mojom::DeviceInfoPtr* output) { … }
bool StructTraits<::webxr::mojom::SessionRequestedRecord::DataView, ::webxr::mojom::SessionRequestedRecordPtr>::Read(
::webxr::mojom::SessionRequestedRecord::DataView input,
::webxr::mojom::SessionRequestedRecordPtr* output) { … }
bool StructTraits<::webxr::mojom::SessionRejectedRecord::DataView, ::webxr::mojom::SessionRejectedRecordPtr>::Read(
::webxr::mojom::SessionRejectedRecord::DataView input,
::webxr::mojom::SessionRejectedRecordPtr* output) { … }
bool StructTraits<::webxr::mojom::SessionStartedRecord::DataView, ::webxr::mojom::SessionStartedRecordPtr>::Read(
::webxr::mojom::SessionStartedRecord::DataView input,
::webxr::mojom::SessionStartedRecordPtr* output) { … }
bool StructTraits<::webxr::mojom::SessionStoppedRecord::DataView, ::webxr::mojom::SessionStoppedRecordPtr>::Read(
::webxr::mojom::SessionStoppedRecord::DataView input,
::webxr::mojom::SessionStoppedRecordPtr* output) { … }
bool StructTraits<::webxr::mojom::RuntimeInfo::DataView, ::webxr::mojom::RuntimeInfoPtr>::Read(
::webxr::mojom::RuntimeInfo::DataView input,
::webxr::mojom::RuntimeInfoPtr* output) { … }
}
namespace webxr::mojom {
void WebXrInternalsHandlerInterceptorForTesting::GetDeviceInfo(GetDeviceInfoCallback callback) { … }
void WebXrInternalsHandlerInterceptorForTesting::GetActiveRuntimes(GetActiveRuntimesCallback callback) { … }
void WebXrInternalsHandlerInterceptorForTesting::SubscribeToEvents(::mojo::PendingRemote<XRInternalsSessionListener> listener) { … }
WebXrInternalsHandlerAsyncWaiter::WebXrInternalsHandlerAsyncWaiter(
WebXrInternalsHandler* proxy) : … { … }
WebXrInternalsHandlerAsyncWaiter::~WebXrInternalsHandlerAsyncWaiter() = default;
void WebXrInternalsHandlerAsyncWaiter::GetDeviceInfo(
DeviceInfoPtr* out_device_info) { … }
DeviceInfoPtr WebXrInternalsHandlerAsyncWaiter::GetDeviceInfo(
) { … }
void WebXrInternalsHandlerAsyncWaiter::GetActiveRuntimes(
std::vector<RuntimeInfoPtr>* out_active_runtimes) { … }
std::vector<RuntimeInfoPtr> WebXrInternalsHandlerAsyncWaiter::GetActiveRuntimes(
) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrSessionRequested(SessionRequestedRecordPtr session_requested_record) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrSessionRejected(SessionRejectedRecordPtr session_rejected_record) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrSessionStarted(SessionStartedRecordPtr session_started_record) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrSessionStopped(SessionStoppedRecordPtr session_stopped_record) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrRuntimeAdded(RuntimeInfoPtr runtime_added_record) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogXrRuntimeRemoved(::device::mojom::XRDeviceId device_id) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogFrameData(::device::mojom::XrFrameStatisticsPtr xrframe_statistics) { … }
void XRInternalsSessionListenerInterceptorForTesting::LogConsoleMessages(::device::mojom::XrLogMessagePtr xrlogging_statistics) { … }
XRInternalsSessionListenerAsyncWaiter::XRInternalsSessionListenerAsyncWaiter(
XRInternalsSessionListener* proxy) : … { … }
XRInternalsSessionListenerAsyncWaiter::~XRInternalsSessionListenerAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif