Skip to content

Commit e9fd982

Browse files
Dawid Małeckimeta-codesync[bot]
authored andcommitted
Make select jsinspector tracing implementation headers private
Summary: Mark the following tracing headers as private instead of for-frameworks. All of them are implementation details of React Native's tracing infrastructure, and no for-frameworks header includes them: - `EventLoopReporter` is an RAII helper the runtime scheduler uses to report event loop task and microtask phases to the performance tracer. It is only used by `EventLoopReporter.cpp` and `RuntimeScheduler_Modern.cpp`. - `RuntimeSamplingProfileTraceEventSerializer` turns a runtime sampling profile into trace events. It is only used by tracing sources, `TracingAgent.cpp` and its own unit test. - `TraceEventSerializer` serializes trace events to `folly::dynamic`. It is only used by tracing sources and `TracingAgent.cpp`. - `TraceEventGenerator` builds trace events for the performance tracer and the host profile serializer. It is only used by tracing sources and was already not exported in Buck. - `ProfileTreeNode` is an auxiliary tree used to build the profile and deduplicate identical frames. It is only used by `RuntimeSamplingProfileTraceEventSerializer.cpp` and its own unit test. - `Timing.h` defines the tracing clock origin and the conversions from `HighResTimeStamp` and `HighResDuration` to trace event microseconds. It is only used by tracing sources and a tracing unit test. `TracingAgent.h` included `Timing.h` without using it; that include is removed. React Native's own targets define `RN_BUILDING`, so the private guard does not affect them. Changelog: [Internal] Differential Revision: D122780825
1 parent 4bc3d9b commit e9fd982

10 files changed

Lines changed: 6 additions & 190 deletions

File tree

‎packages/react-native/ReactCommon/jsinspector-modern/TracingAgent.h‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include <React/Timing.h>
1616
#include <jsinspector-modern/cdp/CdpJson.h>
1717
#include <jsinspector-modern/tracing/HostTracingProfile.h>
18-
#include <jsinspector-modern/tracing/Timing.h>
1918

2019
namespace facebook::react::jsinspector_modern {
2120

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/EventLoopReporter.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#if defined(REACT_NATIVE_DEBUGGER_ENABLED)
1313
#include <React/Timing.h>

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/ProfileTreeNode.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include <utility>
1313

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include "RuntimeSamplingProfile.h"
1313

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/Timing.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include <cassert>
1313

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include "TraceEvent.h"
1313

‎packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include "TraceEvent.h"
1313
#include "TraceEventProfile.h"

‎scripts/cxx-api/api-snapshots/ReactAndroidFrameworksCxx.api‎

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9569,7 +9569,6 @@ class facebook::react::jsinspector_modern::WeakList {
95699569
}
95709570

95719571

9572-
constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::TRACING_TIME_ORIGIN;
95739572
constexpr facebook::react::HighResTimeStamp facebook::react::jsinspector_modern::tracing::kCurrentBufferStartTimeUninitialized;
95749573
using facebook::react::jsinspector_modern::tracing::Categories = folly::small_vector<facebook::react::jsinspector_modern::tracing::Category, 1>;
95759574
using facebook::react::jsinspector_modern::tracing::ConsoleTimeStampEntry = std::variant<facebook::react::HighResTimeStamp, std::string>;
@@ -9578,7 +9577,6 @@ using facebook::react::jsinspector_modern::tracing::Headers = std::map<std::stri
95789577
using facebook::react::jsinspector_modern::tracing::ProcessId = uint64_t;
95799578
using facebook::react::jsinspector_modern::tracing::RuntimeProfileId = uint16_t;
95809579
using facebook::react::jsinspector_modern::tracing::ThreadId = uint64_t;
9581-
int64_t facebook::react::jsinspector_modern::tracing::highResDurationToTracingClockDuration(facebook::react::HighResDuration duration);
95829580
std::optional<facebook::react::jsinspector_modern::tracing::Category> facebook::react::jsinspector_modern::tracing::getTracingCategoryFromString(const std::string& str);
95839581
std::optional<facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor> facebook::react::jsinspector_modern::tracing::getConsoleTimeStampColorFromString(const std::string& str);
95849582
std::optional<folly::dynamic> facebook::react::jsinspector_modern::tracing::getConsoleTimeStampDetailFromObject(facebook::jsi::Runtime& runtime, const facebook::jsi::Value& detailValue);
@@ -9587,7 +9585,6 @@ std::string facebook::react::jsinspector_modern::tracing::consoleTimeStampColorT
95879585
std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const facebook::react::jsinspector_modern::tracing::Categories& categories);
95889586
std::string facebook::react::jsinspector_modern::tracing::serializeTracingCategories(const std::set<facebook::react::jsinspector_modern::tracing::Category>& categories);
95899587
std::string facebook::react::jsinspector_modern::tracing::tracingCategoryToString(const facebook::react::jsinspector_modern::tracing::Category& category);
9590-
uint64_t facebook::react::jsinspector_modern::tracing::highResTimeStampToTracingClockTimeStamp(facebook::react::HighResTimeStamp timestamp);
95919588

95929589
class facebook::react::jsinspector_modern::tracing::HostTracingProfileSerializer {
95939590
public static void emitAsDataCollectedChunks(facebook::react::jsinspector_modern::tracing::HostTracingProfile&& hostTracingProfile, const std::function<void(folly::dynamic&& chunk)>& chunkCallback, size_t maxChunkBytes, uint16_t profileTraceEventsChunkSize);
@@ -9618,56 +9615,16 @@ class facebook::react::jsinspector_modern::tracing::PerformanceTracer {
96189615
public void unsubscribeFromTracingStateChanges(uint32_t subscriptionId);
96199616
}
96209617

9621-
class facebook::react::jsinspector_modern::tracing::ProfileTreeNode {
9622-
public ProfileTreeNode(uint32_t id, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType codeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame callFrame, uint32_t parentId = facebook::react::jsinspector_modern::tracing::ProfileTreeNode::NO_PARENT);
9623-
public bool hasParent() const;
9624-
public const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& getCallFrame() const;
9625-
public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* addChild(uint32_t childId, facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame childCallFrame);
9626-
public facebook::react::jsinspector_modern::tracing::ProfileTreeNode* getIfAlreadyExists(facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType childCodeType, const facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile::SampleCallStackFrame& childCallFrame);
9627-
public facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType getCodeType() const;
9628-
public static constexpr uint32_t NO_PARENT;
9629-
public uint32_t getId() const;
9630-
public uint32_t getParentId() const;
9631-
}
9632-
9633-
enum facebook::react::jsinspector_modern::tracing::ProfileTreeNode::CodeType {
9634-
JavaScript,
9635-
Other,
9636-
}
9637-
96389618
class facebook::react::jsinspector_modern::tracing::RawRuntimeProfile {
96399619
public virtual ~RawRuntimeProfile() = default;
96409620
}
96419621

9642-
class facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfileTraceEventSerializer {
9643-
public static void serializeAndDispatch(facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile&& profile, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function<void(folly::dynamic&& traceEventsChunk)>& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK);
9644-
public static void serializeAndDispatch(std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile>&& profiles, facebook::react::jsinspector_modern::tracing::IdGenerator& profileIdGenerator, facebook::react::HighResTimeStamp tracingStartTime, const std::function<void(folly::dynamic&& traceEventsChunk)>& dispatchCallback, uint16_t traceEventChunkSize, uint16_t profileChunkSize = PROFILE_CHUNK_SIZE, uint16_t maxUniqueNodesPerChunk = MAX_UNIQUE_NODES_PER_CHUNK);
9645-
}
9646-
96479622
class facebook::react::jsinspector_modern::tracing::TargetTracingAgent {
96489623
protected facebook::react::jsinspector_modern::tracing::TraceRecordingState& state_;
96499624
public TargetTracingAgent(facebook::react::jsinspector_modern::tracing::TraceRecordingState& state);
96509625
public bool isRunningInBackgroundMode();
96519626
}
96529627

9653-
class facebook::react::jsinspector_modern::tracing::TraceEventGenerator {
9654-
public static facebook::react::jsinspector_modern::tracing::TraceEvent createIdleBeginFrameEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId);
9655-
public static facebook::react::jsinspector_modern::tracing::TraceEvent createNeedsBeginFrameChangedEvent(int layerTreeId, facebook::react::HighResTimeStamp timestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId);
9656-
public static facebook::react::jsinspector_modern::tracing::TraceEvent createScreenshotEvent(facebook::react::jsinspector_modern::tracing::FrameSequenceId frameSequenceId, int sourceId, std::vector<uint8_t>&& snapshot, facebook::react::HighResTimeStamp expectedDisplayTime, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId);
9657-
public static facebook::react::jsinspector_modern::tracing::TraceEvent createSetLayerTreeIdEvent(std::string frame, int layerTreeId, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp timestamp);
9658-
public static std::pair<facebook::react::jsinspector_modern::tracing::TraceEvent, facebook::react::jsinspector_modern::tracing::TraceEvent> createFrameTimingsEvents(facebook::react::jsinspector_modern::tracing::FrameSequenceId sequenceId, int layerTreeId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, facebook::react::jsinspector_modern::tracing::ProcessId processId, facebook::react::jsinspector_modern::tracing::ThreadId threadId);
9659-
}
9660-
9661-
class facebook::react::jsinspector_modern::tracing::TraceEventSerializer {
9662-
public static folly::dynamic serialize(facebook::react::jsinspector_modern::tracing::TraceEvent&& event);
9663-
public static folly::dynamic serializeProfileChunk(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk&& profileChunk);
9664-
public static folly::dynamic serializeProfileChunkCPUProfile(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile&& cpuProfile);
9665-
public static folly::dynamic serializeProfileChunkCPUProfileNode(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node&& node);
9666-
public static folly::dynamic serializeProfileChunkCPUProfileNodeCallFrame(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPUProfile::Node::CallFrame&& callFrame);
9667-
public static folly::dynamic serializeProfileChunkTimeDeltas(facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::TimeDeltas&& deltas);
9668-
public static size_t estimateJsonSize(const folly::dynamic& value);
9669-
}
9670-
96719628
enum facebook::react::jsinspector_modern::tracing::Category {
96729629
Frame,
96739630
HiddenTimeline,
@@ -9692,25 +9649,11 @@ enum facebook::react::jsinspector_modern::tracing::ConsoleTimeStampColor {
96929649
Warning,
96939650
}
96949651

9695-
enum facebook::react::jsinspector_modern::tracing::EventLoopPhase {
9696-
Microtasks,
9697-
Task,
9698-
}
9699-
97009652
enum facebook::react::jsinspector_modern::tracing::Mode {
97019653
Background,
97029654
CDP,
97039655
}
97049656

9705-
struct facebook::react::jsinspector_modern::tracing::EventLoopReporter {
9706-
public EventLoopReporter(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete;
9707-
public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopPhase phase);
9708-
public EventLoopReporter(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete;
9709-
public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(const facebook::react::jsinspector_modern::tracing::EventLoopReporter&) = delete;
9710-
public facebook::react::jsinspector_modern::tracing::EventLoopReporter& operator=(facebook::react::jsinspector_modern::tracing::EventLoopReporter&&) = delete;
9711-
public ~EventLoopReporter();
9712-
}
9713-
97149657
struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
97159658
public FrameTimingSequence() = delete;
97169659
public FrameTimingSequence(facebook::react::jsinspector_modern::tracing::FrameSequenceId id, facebook::react::jsinspector_modern::tracing::ThreadId threadId, facebook::react::HighResTimeStamp beginTimestamp, facebook::react::HighResTimeStamp endTimestamp, std::optional<std::vector<uint8_t>> screenshot = std::nullopt, facebook::react::HighResDuration vsyncInterval = facebook::react::HighResDuration::zero());
@@ -9736,10 +9679,6 @@ struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
97369679
public ~HostTracingProfile() = default;
97379680
}
97389681

9739-
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
9740-
public uint32_t getNext();
9741-
}
9742-
97439682
struct facebook::react::jsinspector_modern::tracing::InstanceTracingProfile {
97449683
public std::vector<facebook::react::jsinspector_modern::tracing::TraceEvent> performanceTraceEvents;
97459684
}

0 commit comments

Comments
 (0)