#include "third_party/blink/renderer/core/inspector/inspector_performance_timeline_agent.h"
#include <utility>
#include "build/build_config.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/geometry/dom_rect_read_only.h"
#include "third_party/blink/renderer/core/inspector/identifiers_factory.h"
#include "third_party/blink/renderer/core/inspector/inspected_frames.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/timing/dom_window_performance.h"
#include "third_party/blink/renderer/core/timing/largest_contentful_paint.h"
#include "third_party/blink/renderer/core/timing/layout_shift.h"
#include "third_party/blink/renderer/core/timing/layout_shift_attribution.h"
#include "third_party/blink/renderer/core/timing/worker_global_scope_performance.h"
namespace blink {
namespace {
constexpr PerformanceEntryType kSupportedTypes = …;
double ToProtocolTime(DOMHighResTimeStamp timeOrigin,
DOMHighResTimeStamp time) { … }
std::unique_ptr<protocol::PerformanceTimeline::LargestContentfulPaint>
BuildEventDetails(const LargestContentfulPaint& lcp,
DOMHighResTimeStamp timeOrigin) { … }
std::unique_ptr<protocol::DOM::Rect> BuildRect(DOMRectReadOnly* rect) { … }
std::unique_ptr<
protocol::Array<protocol::PerformanceTimeline::LayoutShiftAttribution>>
BuildLayoutShiftAttributions(const LayoutShift::AttributionList& attributions) { … }
std::unique_ptr<protocol::PerformanceTimeline::LayoutShift> BuildEventDetails(
const LayoutShift& ls,
DOMHighResTimeStamp timeOrigin) { … }
std::unique_ptr<protocol::PerformanceTimeline::TimelineEvent>
BuildProtocolEvent(String frame_id,
DOMHighResTimeStamp timeOrigin,
PerformanceEntry* entry) { … }
}
InspectorPerformanceTimelineAgent::InspectorPerformanceTimelineAgent(
InspectedFrames* inspected_frames)
: … { … }
InspectorPerformanceTimelineAgent::~InspectorPerformanceTimelineAgent() =
default;
void InspectorPerformanceTimelineAgent::Trace(Visitor* visitor) const { … }
void InspectorPerformanceTimelineAgent::Restore() { … }
void InspectorPerformanceTimelineAgent::InnerEnable() { … }
void InspectorPerformanceTimelineAgent::PerformanceEntryAdded(
ExecutionContext* context,
PerformanceEntry* entry) { … }
protocol::Response InspectorPerformanceTimelineAgent::enable(
std::unique_ptr<protocol::Array<String>> entry_types) { … }
protocol::Response InspectorPerformanceTimelineAgent::disable() { … }
bool InspectorPerformanceTimelineAgent::IsEnabled() const { … }
void InspectorPerformanceTimelineAgent::CollectEntries(AtomicString type,
EventsVector* events) { … }
}