#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "content/browser/tracing/trace_report/trace_report.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/tracing/trace_report/trace_report.mojom-params-data.h"
#include "content/browser/tracing/trace_report/trace_report.mojom-shared-message-ids.h"
#include "content/browser/tracing/trace_report/trace_report.mojom-import-headers.h"
#include "content/browser/tracing/trace_report/trace_report.mojom-test-utils.h"
namespace trace_report::mojom {
ClientTraceReport::ClientTraceReport()
: … { … }
ClientTraceReport::ClientTraceReport(
const ::base::Token& uuid_in,
::base::Time creation_time_in,
const std::string& scenario_name_in,
const std::string& upload_rule_name_in,
int64_t total_size_in,
::content::ReportUploadState upload_state_in,
::base::Time upload_time_in,
::content::SkipUploadReason skip_reason_in,
bool has_trace_content_in)
: … { … }
ClientTraceReport::~ClientTraceReport() = default;
void ClientTraceReport::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool ClientTraceReport::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
Scenario::Scenario()
: … { … }
Scenario::Scenario(
const std::string& hash_in,
const std::string& scenario_name_in)
: … { … }
Scenario::~Scenario() = default;
size_t Scenario::Hash(size_t seed) const { … }
void Scenario::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool Scenario::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char TraceReportHandlerFactory::Name_[] = …;
TraceReportHandlerFactory::IPCStableHashFunction TraceReportHandlerFactory::MessageToMethodInfo_(mojo::Message& message) { … }
const char* TraceReportHandlerFactory::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t TraceReportHandlerFactory::CreatePageHandler_Sym::IPCStableHash() { … }
# endif
TraceReportHandlerFactoryProxy::TraceReportHandlerFactoryProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void TraceReportHandlerFactoryProxy::CreatePageHandler(
::mojo::PendingRemote<Page> in_page, ::mojo::PendingReceiver<PageHandler> in_handler) { … }
bool TraceReportHandlerFactoryStubDispatch::Accept(
TraceReportHandlerFactory* impl,
mojo::Message* message) { … }
bool TraceReportHandlerFactoryStubDispatch::AcceptWithResponder(
TraceReportHandlerFactory* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kTraceReportHandlerFactoryValidationInfo[] = …;
bool TraceReportHandlerFactoryRequestValidator::Accept(mojo::Message* message) { … }
const char PageHandler::Name_[] = …;
PageHandler::IPCStableHashFunction PageHandler::MessageToMethodInfo_(mojo::Message& message) { … }
const char* PageHandler::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t PageHandler::GetAllTraceReports_Sym::IPCStableHash() { … }
uint32_t PageHandler::DeleteSingleTrace_Sym::IPCStableHash() { … }
uint32_t PageHandler::DeleteAllTraces_Sym::IPCStableHash() { … }
uint32_t PageHandler::UserUploadSingleTrace_Sym::IPCStableHash() { … }
uint32_t PageHandler::DownloadTrace_Sym::IPCStableHash() { … }
uint32_t PageHandler::GetAllPresetScenarios_Sym::IPCStableHash() { … }
uint32_t PageHandler::GetAllFieldScenarios_Sym::IPCStableHash() { … }
uint32_t PageHandler::GetEnabledScenarios_Sym::IPCStableHash() { … }
uint32_t PageHandler::SetEnabledScenarios_Sym::IPCStableHash() { … }
# endif
class PageHandler_GetAllTraceReports_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_DeleteSingleTrace_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_DeleteAllTraces_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_UserUploadSingleTrace_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_DownloadTrace_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_GetAllPresetScenarios_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_GetAllFieldScenarios_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_GetEnabledScenarios_ForwardToCallback
: public mojo::MessageReceiver { … };
class PageHandler_SetEnabledScenarios_ForwardToCallback
: public mojo::MessageReceiver { … };
PageHandlerProxy::PageHandlerProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void PageHandlerProxy::GetAllTraceReports(
GetAllTraceReportsCallback callback) { … }
void PageHandlerProxy::DeleteSingleTrace(
const ::base::Token& in_uuid, DeleteSingleTraceCallback callback) { … }
void PageHandlerProxy::DeleteAllTraces(
DeleteAllTracesCallback callback) { … }
void PageHandlerProxy::UserUploadSingleTrace(
const ::base::Token& in_uuid, UserUploadSingleTraceCallback callback) { … }
void PageHandlerProxy::DownloadTrace(
const ::base::Token& in_uuid, DownloadTraceCallback callback) { … }
void PageHandlerProxy::GetAllPresetScenarios(
GetAllPresetScenariosCallback callback) { … }
void PageHandlerProxy::GetAllFieldScenarios(
GetAllFieldScenariosCallback callback) { … }
void PageHandlerProxy::GetEnabledScenarios(
GetEnabledScenariosCallback callback) { … }
void PageHandlerProxy::SetEnabledScenarios(
const std::vector<std::string>& in_new_config, SetEnabledScenariosCallback callback) { … }
class PageHandler_GetAllTraceReports_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_GetAllTraceReports_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_GetAllTraceReports_ProxyToResponder::Run(
std::vector<ClientTraceReportPtr> in_reports) { … }
class PageHandler_DeleteSingleTrace_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_DeleteSingleTrace_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_DeleteSingleTrace_ProxyToResponder::Run(
bool in_success) { … }
class PageHandler_DeleteAllTraces_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_DeleteAllTraces_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_DeleteAllTraces_ProxyToResponder::Run(
bool in_success) { … }
class PageHandler_UserUploadSingleTrace_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_UserUploadSingleTrace_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_UserUploadSingleTrace_ProxyToResponder::Run(
bool in_success) { … }
class PageHandler_DownloadTrace_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_DownloadTrace_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_DownloadTrace_ProxyToResponder::Run(
std::optional<::mojo_base::BigBuffer> in_trace) { … }
class PageHandler_GetAllPresetScenarios_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_GetAllPresetScenarios_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_GetAllPresetScenarios_ProxyToResponder::Run(
std::vector<ScenarioPtr> in_config) { … }
class PageHandler_GetAllFieldScenarios_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_GetAllFieldScenarios_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_GetAllFieldScenarios_ProxyToResponder::Run(
std::vector<ScenarioPtr> in_config) { … }
class PageHandler_GetEnabledScenarios_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_GetEnabledScenarios_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_GetEnabledScenarios_ProxyToResponder::Run(
const std::vector<std::string>& in_config) { … }
class PageHandler_SetEnabledScenarios_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool PageHandler_SetEnabledScenarios_ForwardToCallback::Accept(
mojo::Message* message) { … }
void PageHandler_SetEnabledScenarios_ProxyToResponder::Run(
bool in_success) { … }
bool PageHandlerStubDispatch::Accept(
PageHandler* impl,
mojo::Message* message) { … }
bool PageHandlerStubDispatch::AcceptWithResponder(
PageHandler* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kPageHandlerValidationInfo[] = …;
bool PageHandlerRequestValidator::Accept(mojo::Message* message) { … }
bool PageHandlerResponseValidator::Accept(mojo::Message* message) { … }
const char Page::Name_[] = …;
Page::IPCStableHashFunction Page::MessageToMethodInfo_(mojo::Message& message) { … }
const char* Page::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
# endif
PageProxy::PageProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
bool PageStubDispatch::Accept(
Page* impl,
mojo::Message* message) { … }
bool PageStubDispatch::AcceptWithResponder(
Page* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
bool PageRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::trace_report::mojom::ClientTraceReport::DataView, ::trace_report::mojom::ClientTraceReportPtr>::Read(
::trace_report::mojom::ClientTraceReport::DataView input,
::trace_report::mojom::ClientTraceReportPtr* output) { … }
bool StructTraits<::trace_report::mojom::Scenario::DataView, ::trace_report::mojom::ScenarioPtr>::Read(
::trace_report::mojom::Scenario::DataView input,
::trace_report::mojom::ScenarioPtr* output) { … }
}
namespace trace_report::mojom {
void TraceReportHandlerFactoryInterceptorForTesting::CreatePageHandler(::mojo::PendingRemote<Page> page, ::mojo::PendingReceiver<PageHandler> handler) { … }
TraceReportHandlerFactoryAsyncWaiter::TraceReportHandlerFactoryAsyncWaiter(
TraceReportHandlerFactory* proxy) : … { … }
TraceReportHandlerFactoryAsyncWaiter::~TraceReportHandlerFactoryAsyncWaiter() = default;
void PageHandlerInterceptorForTesting::GetAllTraceReports(GetAllTraceReportsCallback callback) { … }
void PageHandlerInterceptorForTesting::DeleteSingleTrace(const ::base::Token& uuid, DeleteSingleTraceCallback callback) { … }
void PageHandlerInterceptorForTesting::DeleteAllTraces(DeleteAllTracesCallback callback) { … }
void PageHandlerInterceptorForTesting::UserUploadSingleTrace(const ::base::Token& uuid, UserUploadSingleTraceCallback callback) { … }
void PageHandlerInterceptorForTesting::DownloadTrace(const ::base::Token& uuid, DownloadTraceCallback callback) { … }
void PageHandlerInterceptorForTesting::GetAllPresetScenarios(GetAllPresetScenariosCallback callback) { … }
void PageHandlerInterceptorForTesting::GetAllFieldScenarios(GetAllFieldScenariosCallback callback) { … }
void PageHandlerInterceptorForTesting::GetEnabledScenarios(GetEnabledScenariosCallback callback) { … }
void PageHandlerInterceptorForTesting::SetEnabledScenarios(const std::vector<std::string>& new_config, SetEnabledScenariosCallback callback) { … }
PageHandlerAsyncWaiter::PageHandlerAsyncWaiter(
PageHandler* proxy) : … { … }
PageHandlerAsyncWaiter::~PageHandlerAsyncWaiter() = default;
void PageHandlerAsyncWaiter::GetAllTraceReports(
std::vector<ClientTraceReportPtr>* out_reports) { … }
std::vector<ClientTraceReportPtr> PageHandlerAsyncWaiter::GetAllTraceReports(
) { … }
void PageHandlerAsyncWaiter::DeleteSingleTrace(
const ::base::Token& uuid, bool* out_success) { … }
bool PageHandlerAsyncWaiter::DeleteSingleTrace(
const ::base::Token& uuid) { … }
void PageHandlerAsyncWaiter::DeleteAllTraces(
bool* out_success) { … }
bool PageHandlerAsyncWaiter::DeleteAllTraces(
) { … }
void PageHandlerAsyncWaiter::UserUploadSingleTrace(
const ::base::Token& uuid, bool* out_success) { … }
bool PageHandlerAsyncWaiter::UserUploadSingleTrace(
const ::base::Token& uuid) { … }
void PageHandlerAsyncWaiter::DownloadTrace(
const ::base::Token& uuid, std::optional<::mojo_base::BigBuffer>* out_trace) { … }
std::optional<::mojo_base::BigBuffer> PageHandlerAsyncWaiter::DownloadTrace(
const ::base::Token& uuid) { … }
void PageHandlerAsyncWaiter::GetAllPresetScenarios(
std::vector<ScenarioPtr>* out_config) { … }
std::vector<ScenarioPtr> PageHandlerAsyncWaiter::GetAllPresetScenarios(
) { … }
void PageHandlerAsyncWaiter::GetAllFieldScenarios(
std::vector<ScenarioPtr>* out_config) { … }
std::vector<ScenarioPtr> PageHandlerAsyncWaiter::GetAllFieldScenarios(
) { … }
void PageHandlerAsyncWaiter::GetEnabledScenarios(
std::vector<std::string>* out_config) { … }
std::vector<std::string> PageHandlerAsyncWaiter::GetEnabledScenarios(
) { … }
void PageHandlerAsyncWaiter::SetEnabledScenarios(
const std::vector<std::string>& new_config, bool* out_success) { … }
bool PageHandlerAsyncWaiter::SetEnabledScenarios(
const std::vector<std::string>& new_config) { … }
PageAsyncWaiter::PageAsyncWaiter(
Page* proxy) : … { … }
PageAsyncWaiter::~PageAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif