#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "components/page_load_metrics/common/page_load_metrics.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 "components/page_load_metrics/common/page_load_metrics.mojom-params-data.h"
#include "components/page_load_metrics/common/page_load_metrics.mojom-shared-message-ids.h"
#include "components/page_load_metrics/common/page_load_metrics.mojom-import-headers.h"
#include "components/page_load_metrics/common/page_load_metrics.mojom-test-utils.h"
namespace page_load_metrics::mojom {
DocumentTiming::DocumentTiming()
: … { … }
DocumentTiming::DocumentTiming(
std::optional<::base::TimeDelta> dom_content_loaded_event_start_in,
std::optional<::base::TimeDelta> load_event_start_in)
: … { … }
DocumentTiming::~DocumentTiming() = default;
void DocumentTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DocumentTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
LcpResourceLoadTimings::LcpResourceLoadTimings()
: … { … }
LcpResourceLoadTimings::LcpResourceLoadTimings(
std::optional<::base::TimeDelta> discovery_time_in,
std::optional<::base::TimeDelta> load_start_in,
std::optional<::base::TimeDelta> load_end_in)
: … { … }
LcpResourceLoadTimings::~LcpResourceLoadTimings() = default;
void LcpResourceLoadTimings::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool LcpResourceLoadTimings::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
LargestContentfulPaintTiming::LargestContentfulPaintTiming()
: … { … }
LargestContentfulPaintTiming::LargestContentfulPaintTiming(
std::optional<::base::TimeDelta> largest_image_paint_in,
uint64_t largest_image_paint_size_in,
std::optional<::base::TimeDelta> largest_text_paint_in,
uint64_t largest_text_paint_size_in,
LcpResourceLoadTimingsPtr resource_load_timings_in,
uint64_t type_in,
double image_bpp_in,
bool image_request_priority_valid_in,
::net::RequestPriority image_request_priority_value_in)
: … { … }
LargestContentfulPaintTiming::~LargestContentfulPaintTiming() = default;
void LargestContentfulPaintTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool LargestContentfulPaintTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
PaintTiming::PaintTiming()
: … { … }
PaintTiming::PaintTiming(
std::optional<::base::TimeDelta> first_paint_in,
std::optional<::base::TimeDelta> first_image_paint_in,
std::optional<::base::TimeDelta> first_contentful_paint_in,
std::optional<::base::TimeDelta> first_meaningful_paint_in,
LargestContentfulPaintTimingPtr largest_contentful_paint_in,
LargestContentfulPaintTimingPtr experimental_largest_contentful_paint_in,
std::optional<::base::TimeDelta> first_eligible_to_paint_in,
std::optional<::base::TimeDelta> first_input_or_scroll_notified_timestamp_in)
: … { … }
PaintTiming::~PaintTiming() = default;
void PaintTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool PaintTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
ParseTiming::ParseTiming()
: … { … }
ParseTiming::ParseTiming(
std::optional<::base::TimeDelta> parse_start_in,
std::optional<::base::TimeDelta> parse_stop_in,
std::optional<::base::TimeDelta> parse_blocked_on_script_load_duration_in,
std::optional<::base::TimeDelta> parse_blocked_on_script_load_from_document_write_duration_in,
std::optional<::base::TimeDelta> parse_blocked_on_script_execution_duration_in,
std::optional<::base::TimeDelta> parse_blocked_on_script_execution_from_document_write_duration_in)
: … { … }
ParseTiming::~ParseTiming() = default;
void ParseTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool ParseTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
InteractiveTiming::InteractiveTiming()
: … { … }
InteractiveTiming::InteractiveTiming(
std::optional<::base::TimeDelta> first_input_delay_in,
std::optional<::base::TimeDelta> first_input_timestamp_in,
std::optional<::base::TimeDelta> first_scroll_delay_in,
std::optional<::base::TimeDelta> first_scroll_timestamp_in)
: … { … }
InteractiveTiming::~InteractiveTiming() = default;
void InteractiveTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool InteractiveTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CustomUserTimingMark::CustomUserTimingMark()
: … { … }
CustomUserTimingMark::CustomUserTimingMark(
const std::string& mark_name_in,
::base::TimeDelta start_time_in)
: … { … }
CustomUserTimingMark::~CustomUserTimingMark() = default;
void CustomUserTimingMark::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CustomUserTimingMark::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
DomainLookupTiming::DomainLookupTiming()
: … { … }
DomainLookupTiming::DomainLookupTiming(
std::optional<::base::TimeDelta> domain_lookup_start_in,
std::optional<::base::TimeDelta> domain_lookup_end_in)
: … { … }
DomainLookupTiming::~DomainLookupTiming() = default;
void DomainLookupTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DomainLookupTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
PageLoadTiming::PageLoadTiming()
: … { … }
PageLoadTiming::PageLoadTiming(
::base::Time navigation_start_in,
std::optional<::base::TimeDelta> connect_start_in,
std::optional<::base::TimeDelta> response_start_in,
DocumentTimingPtr document_timing_in,
InteractiveTimingPtr interactive_timing_in,
PaintTimingPtr paint_timing_in,
ParseTimingPtr parse_timing_in,
DomainLookupTimingPtr domain_lookup_timing_in,
std::vector<BackForwardCacheTimingPtr> back_forward_cache_timings_in,
std::optional<::base::TimeDelta> activation_start_in,
std::optional<::base::TimeDelta> input_to_navigation_start_in,
std::optional<::base::TimeDelta> user_timing_mark_fully_loaded_in,
std::optional<::base::TimeDelta> user_timing_mark_fully_visible_in,
std::optional<::base::TimeDelta> user_timing_mark_interactive_in)
: … { … }
PageLoadTiming::~PageLoadTiming() = default;
void PageLoadTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool PageLoadTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
FrameMetadata::FrameMetadata()
: … { … }
FrameMetadata::FrameMetadata(
int32_t behavior_flags_in,
const std::optional<::gfx::Rect>& main_frame_intersection_rect_in,
const std::optional<::gfx::Rect>& main_frame_viewport_rect_in,
const base::flat_map<int32_t, ::gfx::Rect>& main_frame_image_ad_rects_in,
const ::blink::JavaScriptFrameworkDetectionResult& framework_detection_result_in)
: … { … }
FrameMetadata::~FrameMetadata() = default;
void FrameMetadata::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool FrameMetadata::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SubresourceLoadMetrics::SubresourceLoadMetrics()
: … { … }
SubresourceLoadMetrics::SubresourceLoadMetrics(
uint32_t number_of_subresources_loaded_in,
uint32_t number_of_subresource_loads_handled_by_service_worker_in,
const std::optional<::blink::ServiceWorkerSubresourceLoadMetrics>& service_worker_subresource_load_metrics_in)
: … { … }
SubresourceLoadMetrics::~SubresourceLoadMetrics() = default;
void SubresourceLoadMetrics::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SubresourceLoadMetrics::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
ServiceWorkerSubresourceLoadMetrics::ServiceWorkerSubresourceLoadMetrics()
: … { … }
ServiceWorkerSubresourceLoadMetrics::ServiceWorkerSubresourceLoadMetrics(
bool image_handled_in,
bool image_fallback_in,
bool css_handled_in,
bool css_fallback_in,
bool script_handled_in,
bool script_fallback_in,
bool font_handled_in,
bool font_fallback_in,
bool raw_handled_in,
bool raw_fallback_in,
bool svg_handled_in,
bool svg_fallback_in,
bool xsl_handled_in,
bool xsl_fallback_in,
bool link_prefetch_handled_in,
bool link_prefetch_fallback_in,
bool text_track_handled_in,
bool text_track_fallback_in,
bool audio_handled_in,
bool audio_fallback_in,
bool video_handled_in,
bool video_fallback_in,
bool manifest_handled_in,
bool manifest_fallback_in,
bool speculation_rules_handled_in,
bool speculation_rules_fallback_in,
bool mock_handled_in,
bool mock_fallback_in,
bool dictionary_handled_in,
bool dictionary_fallback_in,
uint32_t matched_cache_router_source_count_in,
uint32_t matched_fetch_event_router_source_count_in,
uint32_t matched_network_router_source_count_in,
uint32_t matched_race_network_and_fetch_router_source_count_in,
::base::TimeDelta total_router_evaluation_time_for_subresources_in)
: … { … }
ServiceWorkerSubresourceLoadMetrics::~ServiceWorkerSubresourceLoadMetrics() = default;
void ServiceWorkerSubresourceLoadMetrics::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool ServiceWorkerSubresourceLoadMetrics::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
ResourceDataUpdate::ResourceDataUpdate()
: … { … }
ResourceDataUpdate::ResourceDataUpdate(
int32_t request_id_in,
int64_t delta_bytes_in,
int64_t received_data_length_in,
int64_t encoded_body_length_in,
int64_t decoded_body_length_in,
bool is_complete_in,
bool reported_as_ad_resource_in,
bool is_main_frame_resource_in,
CacheType cache_type_in,
bool is_primary_frame_resource_in,
const std::string& mime_type_in,
bool is_secure_scheme_in,
bool proxy_used_in)
: … { … }
ResourceDataUpdate::~ResourceDataUpdate() = default;
size_t ResourceDataUpdate::Hash(size_t seed) const { … }
void ResourceDataUpdate::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool ResourceDataUpdate::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
LayoutShift::LayoutShift()
: … { … }
LayoutShift::LayoutShift(
::base::TimeTicks layout_shift_time_in,
double layout_shift_score_in)
: … { … }
LayoutShift::~LayoutShift() = default;
void LayoutShift::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool LayoutShift::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
FrameRenderDataUpdate::FrameRenderDataUpdate()
: … { … }
FrameRenderDataUpdate::FrameRenderDataUpdate(
float layout_shift_delta_in,
float layout_shift_delta_before_input_or_scroll_in,
std::vector<LayoutShiftPtr> new_layout_shifts_in)
: … { … }
FrameRenderDataUpdate::~FrameRenderDataUpdate() = default;
void FrameRenderDataUpdate::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool FrameRenderDataUpdate::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CpuTiming::CpuTiming()
: … { … }
CpuTiming::CpuTiming(
::base::TimeDelta task_time_in)
: … { … }
CpuTiming::~CpuTiming() = default;
void CpuTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CpuTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
InputTiming::InputTiming()
: … { … }
InputTiming::InputTiming(
uint64_t num_interactions_in,
UserInteractionLatenciesPtr max_event_durations_in)
: … { … }
InputTiming::~InputTiming() = default;
void InputTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool InputTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
UserInteractionLatency::UserInteractionLatency()
: … { … }
UserInteractionLatency::UserInteractionLatency(
::base::TimeDelta interaction_latency_in,
UserInteractionType interaction_type_in,
uint64_t interaction_offset_in,
::base::TimeTicks interaction_time_in)
: … { … }
UserInteractionLatency::~UserInteractionLatency() = default;
void UserInteractionLatency::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool UserInteractionLatency::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
BackForwardCacheTiming::BackForwardCacheTiming()
: … { … }
BackForwardCacheTiming::BackForwardCacheTiming(
::base::TimeDelta first_paint_after_back_forward_cache_restore_in,
std::vector<::base::TimeDelta> request_animation_frames_after_back_forward_cache_restore_in,
std::optional<::base::TimeDelta> first_input_delay_after_back_forward_cache_restore_in)
: … { … }
BackForwardCacheTiming::~BackForwardCacheTiming() = default;
void BackForwardCacheTiming::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool BackForwardCacheTiming::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
SoftNavigationMetrics::SoftNavigationMetrics()
: … { … }
SoftNavigationMetrics::SoftNavigationMetrics(
uint64_t count_in,
::base::TimeDelta start_time_in,
const std::string& navigation_id_in,
LargestContentfulPaintTimingPtr largest_contentful_paint_in)
: … { … }
SoftNavigationMetrics::~SoftNavigationMetrics() = default;
void SoftNavigationMetrics::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool SoftNavigationMetrics::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
UserInteractionLatencies::UserInteractionLatencies() : … { … }
UserInteractionLatencies::~UserInteractionLatencies() { … }
void UserInteractionLatencies::set_user_interaction_latencies(
std::vector<UserInteractionLatencyPtr> user_interaction_latencies) { … }
void UserInteractionLatencies::set_worst_interaction_latency(
::base::TimeDelta worst_interaction_latency) { … }
void UserInteractionLatencies::DestroyActive() { … }
bool UserInteractionLatencies::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char PageLoadMetrics::Name_[] = …;
PageLoadMetrics::IPCStableHashFunction PageLoadMetrics::MessageToMethodInfo_(mojo::Message& message) { … }
const char* PageLoadMetrics::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t PageLoadMetrics::UpdateTiming_Sym::IPCStableHash() { … }
uint32_t PageLoadMetrics::SetUpSharedMemoryForSmoothness_Sym::IPCStableHash() { … }
uint32_t PageLoadMetrics::AddCustomUserTiming_Sym::IPCStableHash() { … }
# endif
PageLoadMetricsProxy::PageLoadMetricsProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void PageLoadMetricsProxy::UpdateTiming(
PageLoadTimingPtr in_page_load_timing, FrameMetadataPtr in_frame_metadata, const std::vector<::blink::UseCounterFeature>& in_new_features, std::vector<ResourceDataUpdatePtr> in_resources, FrameRenderDataUpdatePtr in_render_data, CpuTimingPtr in_cpu_load_timing, InputTimingPtr in_input_timing_delta, const std::optional<::blink::SubresourceLoadMetrics>& in_subresource_load_metrics, SoftNavigationMetricsPtr in_soft_navigation_metrics) { … }
void PageLoadMetricsProxy::SetUpSharedMemoryForSmoothness(
::base::ReadOnlySharedMemoryRegion in_shared_memory) { … }
void PageLoadMetricsProxy::AddCustomUserTiming(
CustomUserTimingMarkPtr in_custom_user_timing) { … }
bool PageLoadMetricsStubDispatch::Accept(
PageLoadMetrics* impl,
mojo::Message* message) { … }
bool PageLoadMetricsStubDispatch::AcceptWithResponder(
PageLoadMetrics* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kPageLoadMetricsValidationInfo[] = …;
bool PageLoadMetricsRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::page_load_metrics::mojom::DocumentTiming::DataView, ::page_load_metrics::mojom::DocumentTimingPtr>::Read(
::page_load_metrics::mojom::DocumentTiming::DataView input,
::page_load_metrics::mojom::DocumentTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::LcpResourceLoadTimings::DataView, ::page_load_metrics::mojom::LcpResourceLoadTimingsPtr>::Read(
::page_load_metrics::mojom::LcpResourceLoadTimings::DataView input,
::page_load_metrics::mojom::LcpResourceLoadTimingsPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::LargestContentfulPaintTiming::DataView, ::page_load_metrics::mojom::LargestContentfulPaintTimingPtr>::Read(
::page_load_metrics::mojom::LargestContentfulPaintTiming::DataView input,
::page_load_metrics::mojom::LargestContentfulPaintTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::PaintTiming::DataView, ::page_load_metrics::mojom::PaintTimingPtr>::Read(
::page_load_metrics::mojom::PaintTiming::DataView input,
::page_load_metrics::mojom::PaintTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::ParseTiming::DataView, ::page_load_metrics::mojom::ParseTimingPtr>::Read(
::page_load_metrics::mojom::ParseTiming::DataView input,
::page_load_metrics::mojom::ParseTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::InteractiveTiming::DataView, ::page_load_metrics::mojom::InteractiveTimingPtr>::Read(
::page_load_metrics::mojom::InteractiveTiming::DataView input,
::page_load_metrics::mojom::InteractiveTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::CustomUserTimingMark::DataView, ::page_load_metrics::mojom::CustomUserTimingMarkPtr>::Read(
::page_load_metrics::mojom::CustomUserTimingMark::DataView input,
::page_load_metrics::mojom::CustomUserTimingMarkPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::DomainLookupTiming::DataView, ::page_load_metrics::mojom::DomainLookupTimingPtr>::Read(
::page_load_metrics::mojom::DomainLookupTiming::DataView input,
::page_load_metrics::mojom::DomainLookupTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::PageLoadTiming::DataView, ::page_load_metrics::mojom::PageLoadTimingPtr>::Read(
::page_load_metrics::mojom::PageLoadTiming::DataView input,
::page_load_metrics::mojom::PageLoadTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::FrameMetadata::DataView, ::page_load_metrics::mojom::FrameMetadataPtr>::Read(
::page_load_metrics::mojom::FrameMetadata::DataView input,
::page_load_metrics::mojom::FrameMetadataPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::SubresourceLoadMetrics::DataView, ::page_load_metrics::mojom::SubresourceLoadMetricsPtr>::Read(
::page_load_metrics::mojom::SubresourceLoadMetrics::DataView input,
::page_load_metrics::mojom::SubresourceLoadMetricsPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::ServiceWorkerSubresourceLoadMetrics::DataView, ::page_load_metrics::mojom::ServiceWorkerSubresourceLoadMetricsPtr>::Read(
::page_load_metrics::mojom::ServiceWorkerSubresourceLoadMetrics::DataView input,
::page_load_metrics::mojom::ServiceWorkerSubresourceLoadMetricsPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::ResourceDataUpdate::DataView, ::page_load_metrics::mojom::ResourceDataUpdatePtr>::Read(
::page_load_metrics::mojom::ResourceDataUpdate::DataView input,
::page_load_metrics::mojom::ResourceDataUpdatePtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::LayoutShift::DataView, ::page_load_metrics::mojom::LayoutShiftPtr>::Read(
::page_load_metrics::mojom::LayoutShift::DataView input,
::page_load_metrics::mojom::LayoutShiftPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::FrameRenderDataUpdate::DataView, ::page_load_metrics::mojom::FrameRenderDataUpdatePtr>::Read(
::page_load_metrics::mojom::FrameRenderDataUpdate::DataView input,
::page_load_metrics::mojom::FrameRenderDataUpdatePtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::CpuTiming::DataView, ::page_load_metrics::mojom::CpuTimingPtr>::Read(
::page_load_metrics::mojom::CpuTiming::DataView input,
::page_load_metrics::mojom::CpuTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::InputTiming::DataView, ::page_load_metrics::mojom::InputTimingPtr>::Read(
::page_load_metrics::mojom::InputTiming::DataView input,
::page_load_metrics::mojom::InputTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::UserInteractionLatency::DataView, ::page_load_metrics::mojom::UserInteractionLatencyPtr>::Read(
::page_load_metrics::mojom::UserInteractionLatency::DataView input,
::page_load_metrics::mojom::UserInteractionLatencyPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::BackForwardCacheTiming::DataView, ::page_load_metrics::mojom::BackForwardCacheTimingPtr>::Read(
::page_load_metrics::mojom::BackForwardCacheTiming::DataView input,
::page_load_metrics::mojom::BackForwardCacheTimingPtr* output) { … }
bool StructTraits<::page_load_metrics::mojom::SoftNavigationMetrics::DataView, ::page_load_metrics::mojom::SoftNavigationMetricsPtr>::Read(
::page_load_metrics::mojom::SoftNavigationMetrics::DataView input,
::page_load_metrics::mojom::SoftNavigationMetricsPtr* output) { … }
bool UnionTraits<::page_load_metrics::mojom::UserInteractionLatencies::DataView, ::page_load_metrics::mojom::UserInteractionLatenciesPtr>::Read(
::page_load_metrics::mojom::UserInteractionLatencies::DataView input,
::page_load_metrics::mojom::UserInteractionLatenciesPtr* output) { … }
}
namespace page_load_metrics::mojom {
void PageLoadMetricsInterceptorForTesting::UpdateTiming(PageLoadTimingPtr page_load_timing, FrameMetadataPtr frame_metadata, const std::vector<::blink::UseCounterFeature>& new_features, std::vector<ResourceDataUpdatePtr> resources, FrameRenderDataUpdatePtr render_data, CpuTimingPtr cpu_load_timing, InputTimingPtr input_timing_delta, const std::optional<::blink::SubresourceLoadMetrics>& subresource_load_metrics, SoftNavigationMetricsPtr soft_navigation_metrics) { … }
void PageLoadMetricsInterceptorForTesting::SetUpSharedMemoryForSmoothness(::base::ReadOnlySharedMemoryRegion shared_memory) { … }
void PageLoadMetricsInterceptorForTesting::AddCustomUserTiming(CustomUserTimingMarkPtr custom_user_timing) { … }
PageLoadMetricsAsyncWaiter::PageLoadMetricsAsyncWaiter(
PageLoadMetrics* proxy) : … { … }
PageLoadMetricsAsyncWaiter::~PageLoadMetricsAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif