#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "services/viz/privileged/mojom/compositing/frame_sinks_metrics_recorder.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 "services/viz/privileged/mojom/compositing/frame_sinks_metrics_recorder.mojom-params-data.h"
#include "services/viz/privileged/mojom/compositing/frame_sinks_metrics_recorder.mojom-shared-message-ids.h"
#include "services/viz/privileged/mojom/compositing/frame_sinks_metrics_recorder.mojom-import-headers.h"
#include "services/viz/privileged/mojom/compositing/frame_sinks_metrics_recorder.mojom-test-utils.h"
namespace viz::mojom {
FrameCountingPerSinkData::FrameCountingPerSinkData()
: … { … }
FrameCountingPerSinkData::FrameCountingPerSinkData(
::viz::mojom::CompositorFrameSinkType type_in,
bool is_root_in,
const std::string& debug_label_in,
uint16_t start_bucket_in,
std::vector<uint16_t> presented_frames_in)
: … { … }
FrameCountingPerSinkData::~FrameCountingPerSinkData() = default;
void FrameCountingPerSinkData::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool FrameCountingPerSinkData::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
FrameCountingData::FrameCountingData()
: … { … }
FrameCountingData::FrameCountingData(
std::vector<FrameCountingPerSinkDataPtr> per_sink_data_in)
: … { … }
FrameCountingData::~FrameCountingData() = default;
void FrameCountingData::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool FrameCountingData::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
OverdrawData::OverdrawData()
: … { … }
OverdrawData::OverdrawData(
std::vector<float> average_overdraws_in)
: … { … }
OverdrawData::~OverdrawData() = default;
void OverdrawData::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool OverdrawData::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char FrameSinksMetricsRecorder::Name_[] = …;
FrameSinksMetricsRecorder::IPCStableHashFunction FrameSinksMetricsRecorder::MessageToMethodInfo_(mojo::Message& message) { … }
const char* FrameSinksMetricsRecorder::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t FrameSinksMetricsRecorder::StartFrameCounting_Sym::IPCStableHash() { … }
uint32_t FrameSinksMetricsRecorder::StopFrameCounting_Sym::IPCStableHash() { … }
uint32_t FrameSinksMetricsRecorder::StartOverdrawTracking_Sym::IPCStableHash() { … }
uint32_t FrameSinksMetricsRecorder::StopOverdrawTracking_Sym::IPCStableHash() { … }
# endif
class FrameSinksMetricsRecorder_StopFrameCounting_ForwardToCallback
: public mojo::MessageReceiver { … };
class FrameSinksMetricsRecorder_StopOverdrawTracking_ForwardToCallback
: public mojo::MessageReceiver { … };
FrameSinksMetricsRecorderProxy::FrameSinksMetricsRecorderProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void FrameSinksMetricsRecorderProxy::StartFrameCounting(
::base::TimeTicks in_start_time, ::base::TimeDelta in_bucket_size) { … }
void FrameSinksMetricsRecorderProxy::StopFrameCounting(
StopFrameCountingCallback callback) { … }
void FrameSinksMetricsRecorderProxy::StartOverdrawTracking(
const ::viz::FrameSinkId& in_root_frame_sink_id, ::base::TimeDelta in_bucket_size) { … }
void FrameSinksMetricsRecorderProxy::StopOverdrawTracking(
const ::viz::FrameSinkId& in_root_frame_sink_id, StopOverdrawTrackingCallback callback) { … }
class FrameSinksMetricsRecorder_StopFrameCounting_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool FrameSinksMetricsRecorder_StopFrameCounting_ForwardToCallback::Accept(
mojo::Message* message) { … }
void FrameSinksMetricsRecorder_StopFrameCounting_ProxyToResponder::Run(
FrameCountingDataPtr in_data) { … }
class FrameSinksMetricsRecorder_StopOverdrawTracking_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool FrameSinksMetricsRecorder_StopOverdrawTracking_ForwardToCallback::Accept(
mojo::Message* message) { … }
void FrameSinksMetricsRecorder_StopOverdrawTracking_ProxyToResponder::Run(
OverdrawDataPtr in_data) { … }
bool FrameSinksMetricsRecorderStubDispatch::Accept(
FrameSinksMetricsRecorder* impl,
mojo::Message* message) { … }
bool FrameSinksMetricsRecorderStubDispatch::AcceptWithResponder(
FrameSinksMetricsRecorder* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kFrameSinksMetricsRecorderValidationInfo[] = …;
bool FrameSinksMetricsRecorderRequestValidator::Accept(mojo::Message* message) { … }
bool FrameSinksMetricsRecorderResponseValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::viz::mojom::FrameCountingPerSinkData::DataView, ::viz::mojom::FrameCountingPerSinkDataPtr>::Read(
::viz::mojom::FrameCountingPerSinkData::DataView input,
::viz::mojom::FrameCountingPerSinkDataPtr* output) { … }
bool StructTraits<::viz::mojom::FrameCountingData::DataView, ::viz::mojom::FrameCountingDataPtr>::Read(
::viz::mojom::FrameCountingData::DataView input,
::viz::mojom::FrameCountingDataPtr* output) { … }
bool StructTraits<::viz::mojom::OverdrawData::DataView, ::viz::mojom::OverdrawDataPtr>::Read(
::viz::mojom::OverdrawData::DataView input,
::viz::mojom::OverdrawDataPtr* output) { … }
}
namespace viz::mojom {
void FrameSinksMetricsRecorderInterceptorForTesting::StartFrameCounting(::base::TimeTicks start_time, ::base::TimeDelta bucket_size) { … }
void FrameSinksMetricsRecorderInterceptorForTesting::StopFrameCounting(StopFrameCountingCallback callback) { … }
void FrameSinksMetricsRecorderInterceptorForTesting::StartOverdrawTracking(const ::viz::FrameSinkId& root_frame_sink_id, ::base::TimeDelta bucket_size) { … }
void FrameSinksMetricsRecorderInterceptorForTesting::StopOverdrawTracking(const ::viz::FrameSinkId& root_frame_sink_id, StopOverdrawTrackingCallback callback) { … }
FrameSinksMetricsRecorderAsyncWaiter::FrameSinksMetricsRecorderAsyncWaiter(
FrameSinksMetricsRecorder* proxy) : … { … }
FrameSinksMetricsRecorderAsyncWaiter::~FrameSinksMetricsRecorderAsyncWaiter() = default;
void FrameSinksMetricsRecorderAsyncWaiter::StopFrameCounting(
FrameCountingDataPtr* out_data) { … }
FrameCountingDataPtr FrameSinksMetricsRecorderAsyncWaiter::StopFrameCounting(
) { … }
void FrameSinksMetricsRecorderAsyncWaiter::StopOverdrawTracking(
const ::viz::FrameSinkId& root_frame_sink_id, OverdrawDataPtr* out_data) { … }
OverdrawDataPtr FrameSinksMetricsRecorderAsyncWaiter::StopOverdrawTracking(
const ::viz::FrameSinkId& root_frame_sink_id) { … }
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif