@samitouri / QOS-React-2 / commits / 9175f4d15e

Scheduling Profiler: Show Suspense resource .displayName (#22451)

Brian Vaughn committed Sep 28, 2021 at 11:29 UTC 9175f4d15edfa091aa34b79dea21c3686f4fd8ed
12 files changed +406 -329
packages/react-devtools-scheduling-profiler/src/EventTooltip.css
+1 -1
@@ -46,7 +46,7 @@
46 white-space: nowrap;
47 }
48
49 -.DetailsGridURL {
49 +.DetailsGridLongValue {
50 word-break: break-all;
51 max-height: 50vh;
52 overflow: hidden;
packages/react-devtools-scheduling-profiler/src/EventTooltip.js
+7
@@ -335,6 +335,7 @@ const TooltipSuspenseEvent = ({
335 componentName,
336 duration,
337 phase,
338 + promiseName,
339 resolution,
340 timestamp,
341 warning,
@@ -356,6 +357,12 @@ const TooltipSuspenseEvent = ({
357 {label}
358 <div className={styles.Divider} />
359 <div className={styles.DetailsGrid}>
360 + {promiseName !== null && (
361 + <>
362 + <div className={styles.DetailsGridLabel}>Resource:</div>
363 + <div className={styles.DetailsGridLongValue}>{promiseName}</div>
364 + </>
365 + )}
366 <div className={styles.DetailsGridLabel}>Status:</div>
367 <div>{resolution}</div>
368 <div className={styles.DetailsGridLabel}>Timestamp:</div>
packages/react-devtools-scheduling-profiler/src/content-views/SuspenseEventsView.js
+5 -1
@@ -80,6 +80,7 @@ export class SuspenseEventsView extends View {
80 this._intrinsicSize = {
81 width: duration,
82 height: (this._maxDepth + 1) * ROW_WITH_BORDER_HEIGHT,
83 + hideScrollBarIfLessThanHeight: ROW_WITH_BORDER_HEIGHT,
84 maxInitialHeight: ROW_WITH_BORDER_HEIGHT * MAX_ROWS_TO_SHOW_INITIALLY,
85 };
86 }
@@ -113,6 +114,7 @@ export class SuspenseEventsView extends View {
114 depth,
115 duration,
116 phase,
117 + promiseName,
118 resolution,
119 timestamp,
120 warning,
@@ -208,7 +210,9 @@ export class SuspenseEventsView extends View {
210 );
211
212 let label = 'suspended';
211 - if (componentName != null) {
213 + if (promiseName != null) {
214 + label = promiseName;
215 + } else if (componentName != null) {
216 label = `${componentName} ${label}`;
217 }
218 if (phase !== null) {
packages/react-devtools-scheduling-profiler/src/import-worker/__tests__/preprocessData-test.internal.js
+40
@@ -1195,6 +1195,46 @@ describe('preprocessData', () => {
1195 `);
1196 });
1197
1198 + it('should include a suspended resource "displayName" if one is set', async () => {
1199 + let promise = null;
1200 + let resolvedValue = null;
1201 + function readValue(value) {
1202 + if (resolvedValue !== null) {
1203 + return resolvedValue;
1204 + } else if (promise === null) {
1205 + promise = Promise.resolve(true).then(() => {
1206 + resolvedValue = value;
1207 + });
1208 + promise.displayName = 'Testing displayName';
1209 + }
1210 + throw promise;
1211 + }
1212 +
1213 + function Component() {
1214 + const value = readValue(123);
1215 + return value;
1216 + }
1217 +
1218 + if (gate(flags => flags.enableSchedulingProfiler)) {
1219 + const testMarks = [creactCpuProfilerSample()];
1220 +
1221 + const root = ReactDOM.createRoot(document.createElement('div'));
1222 + act(() =>
1223 + root.render(
1224 + <React.Suspense fallback="Loading...">
1225 + <Component />
1226 + </React.Suspense>,
1227 + ),
1228 + );
1229 +
1230 + testMarks.push(...createUserTimingData(clearedMarks));
1231 +
1232 + const data = await preprocessData(testMarks);
1233 + expect(data.suspenseEvents).toHaveLength(1);
1234 + expect(data.suspenseEvents[0].promiseName).toBe('Testing displayName');
1235 + }
1236 + });
1237 +
1238 describe('warnings', () => {
1239 describe('long event handlers', () => {
1240 it('should not warn when React scedules a (sync) update inside of a short event handler', async () => {
packages/react-devtools-scheduling-profiler/src/import-worker/preprocessData.js
+8 -3
@@ -564,9 +564,13 @@ function processTimelineEvent(
564
565 // React Events - suspense
566 else if (name.startsWith('--suspense-suspend-')) {
567 - const [id, componentName, phase, laneBitmaskString] = name
568 - .substr(19)
569 - .split('-');
567 + const [
568 + id,
569 + componentName,
570 + phase,
571 + laneBitmaskString,
572 + promiseName,
573 + ] = name.substr(19).split('-');
574 const lanes = getLanesFromTransportDecimalBitmask(laneBitmaskString);
575
576 const availableDepths = new Array(
@@ -595,6 +599,7 @@ function processTimelineEvent(
599 duration: null,
600 id,
601 phase: ((phase: any): Phase),
602 + promiseName: promiseName || null,
603 resolution: 'unresolved',
604 resuspendTimestamps: null,
605 timestamp: startTime,
packages/react-devtools-scheduling-profiler/src/types.js
+1
@@ -60,6 +60,7 @@ export type SuspenseEvent = {|
60 duration: number | null,
61 +id: string,
62 +phase: Phase | null,
63 + promiseName: string | null,
64 resolution: 'rejected' | 'resolved' | 'unresolved',
65 resuspendTimestamps: Array<number> | null,
66 +type: 'suspense',
packages/react-devtools-shared/src/devtools/views/ErrorBoundary/cache.js
+3
@@ -70,6 +70,9 @@ export function findGitHubIssue(errorMessage: string): GitHubIssue | null {
70 then(callback) {
71 callbacks.add(callback);
72 },
73 +
74 + // Optional property used by Scheduling Profiler:
75 + displayName: `Searching GitHub issues for error "${errorMessage}"`,
76 };
77 const wake = () => {
78 // This assumes they won't throw.
packages/react-devtools-shared/src/dynamicImportCache.js
+3
@@ -73,6 +73,9 @@ export function loadModule(moduleLoaderFunction: ModuleLoaderFunction): Module {
73 then(callback) {
74 callbacks.add(callback);
75 },
76 +
77 + // Optional property used by Scheduling Profiler:
78 + displayName: `Loading module "${moduleLoaderFunction.name}"`,
79 };
80
81 const wake = () => {
packages/react-devtools-shared/src/hookNamesCache.js
+3
@@ -92,6 +92,9 @@ export function loadHookNames(
92 then(callback) {
93 callbacks.add(callback);
94 },
95 +
96 + // Optional property used by Scheduling Profiler:
97 + displayName: `Loading hook names for ${element.displayName || 'Unknown'}`,
98 };
99
100 let timeoutID;
packages/react-devtools-shared/src/inspectedElementCache.js
+4
@@ -94,7 +94,11 @@ export function inspectElement(
94 then(callback) {
95 callbacks.add(callback);
96 },
97 +
98 + // Optional property used by Scheduling Profiler:
99 + displayName: `Inspecting ${element.displayName || 'Unknown'}`,
100 };
101 +
102 const wake = () => {
103 // This assumes they won't throw.
104 callbacks.forEach(callback => callback());
packages/react-reconciler/src/SchedulingProfiler.js
+8 -1
@@ -194,9 +194,16 @@ export function markComponentSuspended(
194 const id = getWakeableID(wakeable);
195 const componentName = getComponentNameFromFiber(fiber) || 'Unknown';
196 const phase = fiber.alternate === null ? 'mount' : 'update';
197 +
198 + // Following the non-standard fn.displayName convention,
199 + // frameworks like Relay may also annotate Promises with a displayName,
200 + // describing what operation/data the thrown Promise is related to.
201 + // When this is available we should pass it along to the Scheduling Profiler.
202 + const displayName = (wakeable: any).displayName || '';
203 +
204 // TODO (scheduling profiler) Add component stack id
205 markAndClear(
199 - `--suspense-${eventType}-${id}-${componentName}-${phase}-${lanes}`,
206 + `--suspense-${eventType}-${id}-${componentName}-${phase}-${lanes}-${displayName}`,
207 );
208 wakeable.then(
209 () => markAndClear(`--suspense-resolved-${id}-${componentName}`),
packages/react-reconciler/src/__tests__/SchedulingProfiler-test.internal.js
+323 -323
@@ -90,19 +90,19 @@ describe('SchedulingProfiler', () => {
90
91 if (gate(flags => flags.enableSchedulingProfiler)) {
92 expect(getMarks()).toMatchInlineSnapshot(`
93 - Array [
94 - "--schedule-render-1",
95 - "--render-start-1",
96 - "--render-stop",
97 - "--commit-start-1",
98 - "--react-version-17.0.3",
99 - "--profiler-version-1",
100 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
101 - "--layout-effects-start-1",
102 - "--layout-effects-stop",
103 - "--commit-stop",
104 - ]
105 - `);
93 + Array [
94 + "--schedule-render-1",
95 + "--render-start-1",
96 + "--render-stop",
97 + "--commit-start-1",
98 + "--react-version-17.0.3",
99 + "--profiler-version-1",
100 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
101 + "--layout-effects-start-1",
102 + "--layout-effects-stop",
103 + "--commit-stop",
104 + ]
105 + `);
106 }
107 });
108
@@ -111,10 +111,10 @@ describe('SchedulingProfiler', () => {
111
112 if (gate(flags => flags.enableSchedulingProfiler)) {
113 expect(getMarks()).toMatchInlineSnapshot(`
114 - Array [
115 - "--schedule-render-16",
116 - ]
117 - `);
114 + Array [
115 + "--schedule-render-16",
116 + ]
117 + `);
118 }
119
120 clearPendingMarks();
@@ -123,18 +123,18 @@ describe('SchedulingProfiler', () => {
123
124 if (gate(flags => flags.enableSchedulingProfiler)) {
125 expect(getMarks()).toMatchInlineSnapshot(`
126 - Array [
127 - "--render-start-16",
128 - "--render-stop",
129 - "--commit-start-16",
130 - "--react-version-17.0.3",
131 - "--profiler-version-1",
132 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
133 - "--layout-effects-start-16",
134 - "--layout-effects-stop",
135 - "--commit-stop",
136 - ]
137 - `);
126 + Array [
127 + "--render-start-16",
128 + "--render-stop",
129 + "--commit-start-16",
130 + "--react-version-17.0.3",
131 + "--profiler-version-1",
132 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
133 + "--layout-effects-start-16",
134 + "--layout-effects-stop",
135 + "--commit-stop",
136 + ]
137 + `);
138 }
139 });
140
@@ -159,14 +159,14 @@ describe('SchedulingProfiler', () => {
159
160 if (gate(flags => flags.enableSchedulingProfiler)) {
161 expect(getMarks()).toMatchInlineSnapshot(`
162 - Array [
163 - "--schedule-render-64",
164 - "--render-start-64",
165 - "--component-render-start-Foo",
166 - "--component-render-stop",
167 - "--render-yield",
168 - ]
169 - `);
162 + Array [
163 + "--schedule-render-64",
164 + "--render-start-64",
165 + "--component-render-start-Foo",
166 + "--component-render-stop",
167 + "--render-yield",
168 + ]
169 + `);
170 }
171 } else {
172 ReactNoop.render(<Foo />);
@@ -176,8 +176,8 @@ describe('SchedulingProfiler', () => {
176
177 if (gate(flags => flags.enableSchedulingProfiler)) {
178 expect(getMarks()).toMatchInlineSnapshot(`
179 - Array []
180 - `);
179 + Array []
180 + `);
181 }
182 }
183 });
@@ -196,22 +196,22 @@ describe('SchedulingProfiler', () => {
196
197 if (gate(flags => flags.enableSchedulingProfiler)) {
198 expect(getMarks()).toMatchInlineSnapshot(`
199 - Array [
200 - "--schedule-render-1",
201 - "--render-start-1",
202 - "--component-render-start-Example",
203 - "--component-render-stop",
204 - "--suspense-suspend-0-Example-mount-1",
205 - "--render-stop",
206 - "--commit-start-1",
207 - "--react-version-17.0.3",
208 - "--profiler-version-1",
209 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
210 - "--layout-effects-start-1",
211 - "--layout-effects-stop",
212 - "--commit-stop",
213 - ]
214 - `);
199 + Array [
200 + "--schedule-render-1",
201 + "--render-start-1",
202 + "--component-render-start-Example",
203 + "--component-render-stop",
204 + "--suspense-suspend-0-Example-mount-1-",
205 + "--render-stop",
206 + "--commit-start-1",
207 + "--react-version-17.0.3",
208 + "--profiler-version-1",
209 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
210 + "--layout-effects-start-1",
211 + "--layout-effects-stop",
212 + "--commit-stop",
213 + ]
214 + `);
215 }
216
217 clearPendingMarks();
@@ -219,10 +219,10 @@ describe('SchedulingProfiler', () => {
219 await fakeSuspensePromise;
220 if (gate(flags => flags.enableSchedulingProfiler)) {
221 expect(getMarks()).toMatchInlineSnapshot(`
222 - Array [
223 - "--suspense-resolved-0-Example",
224 - ]
225 - `);
222 + Array [
223 + "--suspense-resolved-0-Example",
224 + ]
225 + `);
226 }
227 });
228
@@ -240,22 +240,22 @@ describe('SchedulingProfiler', () => {
240
241 if (gate(flags => flags.enableSchedulingProfiler)) {
242 expect(getMarks()).toMatchInlineSnapshot(`
243 - Array [
244 - "--schedule-render-1",
245 - "--render-start-1",
246 - "--component-render-start-Example",
247 - "--component-render-stop",
248 - "--suspense-suspend-0-Example-mount-1",
249 - "--render-stop",
250 - "--commit-start-1",
251 - "--react-version-17.0.3",
252 - "--profiler-version-1",
253 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
254 - "--layout-effects-start-1",
255 - "--layout-effects-stop",
256 - "--commit-stop",
257 - ]
258 - `);
243 + Array [
244 + "--schedule-render-1",
245 + "--render-start-1",
246 + "--component-render-start-Example",
247 + "--component-render-stop",
248 + "--suspense-suspend-0-Example-mount-1-",
249 + "--render-stop",
250 + "--commit-start-1",
251 + "--react-version-17.0.3",
252 + "--profiler-version-1",
253 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
254 + "--layout-effects-start-1",
255 + "--layout-effects-stop",
256 + "--commit-stop",
257 + ]
258 + `);
259 }
260
261 clearPendingMarks();
@@ -263,10 +263,10 @@ describe('SchedulingProfiler', () => {
263 await expect(fakeSuspensePromise).rejects.toThrow();
264 if (gate(flags => flags.enableSchedulingProfiler)) {
265 expect(getMarks()).toMatchInlineSnapshot(`
266 - Array [
267 - "--suspense-rejected-0-Example",
268 - ]
269 - `);
266 + Array [
267 + "--suspense-rejected-0-Example",
268 + ]
269 + `);
270 }
271 });
272
@@ -285,10 +285,10 @@ describe('SchedulingProfiler', () => {
285
286 if (gate(flags => flags.enableSchedulingProfiler)) {
287 expect(getMarks()).toMatchInlineSnapshot(`
288 - Array [
289 - "--schedule-render-16",
290 - ]
291 - `);
288 + Array [
289 + "--schedule-render-16",
290 + ]
291 + `);
292 }
293
294 clearPendingMarks();
@@ -297,21 +297,21 @@ describe('SchedulingProfiler', () => {
297
298 if (gate(flags => flags.enableSchedulingProfiler)) {
299 expect(getMarks()).toMatchInlineSnapshot(`
300 - Array [
301 - "--render-start-16",
302 - "--component-render-start-Example",
303 - "--component-render-stop",
304 - "--suspense-suspend-0-Example-mount-16",
305 - "--render-stop",
306 - "--commit-start-16",
307 - "--react-version-17.0.3",
308 - "--profiler-version-1",
309 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
310 - "--layout-effects-start-16",
311 - "--layout-effects-stop",
312 - "--commit-stop",
313 - ]
314 - `);
300 + Array [
301 + "--render-start-16",
302 + "--component-render-start-Example",
303 + "--component-render-stop",
304 + "--suspense-suspend-0-Example-mount-16-",
305 + "--render-stop",
306 + "--commit-start-16",
307 + "--react-version-17.0.3",
308 + "--profiler-version-1",
309 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
310 + "--layout-effects-start-16",
311 + "--layout-effects-stop",
312 + "--commit-stop",
313 + ]
314 + `);
315 }
316
317 clearPendingMarks();
@@ -319,10 +319,10 @@ describe('SchedulingProfiler', () => {
319 await fakeSuspensePromise;
320 if (gate(flags => flags.enableSchedulingProfiler)) {
321 expect(getMarks()).toMatchInlineSnapshot(`
322 - Array [
323 - "--suspense-resolved-0-Example",
324 - ]
325 - `);
322 + Array [
323 + "--suspense-resolved-0-Example",
324 + ]
325 + `);
326 }
327 });
328
@@ -341,10 +341,10 @@ describe('SchedulingProfiler', () => {
341
342 if (gate(flags => flags.enableSchedulingProfiler)) {
343 expect(getMarks()).toMatchInlineSnapshot(`
344 - Array [
345 - "--schedule-render-16",
346 - ]
347 - `);
344 + Array [
345 + "--schedule-render-16",
346 + ]
347 + `);
348 }
349
350 clearPendingMarks();
@@ -353,21 +353,21 @@ describe('SchedulingProfiler', () => {
353
354 if (gate(flags => flags.enableSchedulingProfiler)) {
355 expect(getMarks()).toMatchInlineSnapshot(`
356 - Array [
357 - "--render-start-16",
358 - "--component-render-start-Example",
359 - "--component-render-stop",
360 - "--suspense-suspend-0-Example-mount-16",
361 - "--render-stop",
362 - "--commit-start-16",
363 - "--react-version-17.0.3",
364 - "--profiler-version-1",
365 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
366 - "--layout-effects-start-16",
367 - "--layout-effects-stop",
368 - "--commit-stop",
369 - ]
370 - `);
356 + Array [
357 + "--render-start-16",
358 + "--component-render-start-Example",
359 + "--component-render-stop",
360 + "--suspense-suspend-0-Example-mount-16-",
361 + "--render-stop",
362 + "--commit-start-16",
363 + "--react-version-17.0.3",
364 + "--profiler-version-1",
365 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
366 + "--layout-effects-start-16",
367 + "--layout-effects-stop",
368 + "--commit-stop",
369 + ]
370 + `);
371 }
372
373 clearPendingMarks();
@@ -375,10 +375,10 @@ describe('SchedulingProfiler', () => {
375 await expect(fakeSuspensePromise).rejects.toThrow();
376 if (gate(flags => flags.enableSchedulingProfiler)) {
377 expect(getMarks()).toMatchInlineSnapshot(`
378 - Array [
379 - "--suspense-rejected-0-Example",
380 - ]
381 - `);
378 + Array [
379 + "--suspense-rejected-0-Example",
380 + ]
381 + `);
382 }
383 });
384
@@ -397,10 +397,10 @@ describe('SchedulingProfiler', () => {
397
398 if (gate(flags => flags.enableSchedulingProfiler)) {
399 expect(getMarks()).toMatchInlineSnapshot(`
400 - Array [
401 - "--schedule-render-16",
402 - ]
403 - `);
400 + Array [
401 + "--schedule-render-16",
402 + ]
403 + `);
404 }
405
406 clearPendingMarks();
@@ -409,30 +409,30 @@ describe('SchedulingProfiler', () => {
409
410 if (gate(flags => flags.enableSchedulingProfiler)) {
411 expect(getMarks()).toMatchInlineSnapshot(`
412 - Array [
413 - "--render-start-16",
414 - "--component-render-start-Example",
415 - "--component-render-stop",
416 - "--render-stop",
417 - "--commit-start-16",
418 - "--react-version-17.0.3",
419 - "--profiler-version-1",
420 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
421 - "--layout-effects-start-16",
422 - "--schedule-state-update-1-Example",
423 - "--layout-effects-stop",
424 - "--render-start-1",
425 - "--component-render-start-Example",
426 - "--component-render-stop",
427 - "--render-stop",
428 - "--commit-start-1",
429 - "--react-version-17.0.3",
430 - "--profiler-version-1",
431 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
432 - "--commit-stop",
433 - "--commit-stop",
434 - ]
435 - `);
412 + Array [
413 + "--render-start-16",
414 + "--component-render-start-Example",
415 + "--component-render-stop",
416 + "--render-stop",
417 + "--commit-start-16",
418 + "--react-version-17.0.3",
419 + "--profiler-version-1",
420 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
421 + "--layout-effects-start-16",
422 + "--schedule-state-update-1-Example",
423 + "--layout-effects-stop",
424 + "--render-start-1",
425 + "--component-render-start-Example",
426 + "--component-render-stop",
427 + "--render-stop",
428 + "--commit-start-1",
429 + "--react-version-17.0.3",
430 + "--profiler-version-1",
431 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
432 + "--commit-stop",
433 + "--commit-stop",
434 + ]
435 + `);
436 }
437 });
438
@@ -450,10 +450,10 @@ describe('SchedulingProfiler', () => {
450
451 if (gate(flags => flags.enableSchedulingProfiler)) {
452 expect(getMarks()).toMatchInlineSnapshot(`
453 - Array [
454 - "--schedule-render-16",
455 - ]
456 - `);
453 + Array [
454 + "--schedule-render-16",
455 + ]
456 + `);
457 }
458
459 clearPendingMarks();
@@ -462,30 +462,30 @@ describe('SchedulingProfiler', () => {
462
463 if (gate(flags => flags.enableSchedulingProfiler)) {
464 expect(getMarks()).toMatchInlineSnapshot(`
465 - Array [
466 - "--render-start-16",
467 - "--component-render-start-Example",
468 - "--component-render-stop",
469 - "--render-stop",
470 - "--commit-start-16",
471 - "--react-version-17.0.3",
472 - "--profiler-version-1",
473 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
474 - "--layout-effects-start-16",
475 - "--schedule-forced-update-1-Example",
476 - "--layout-effects-stop",
477 - "--render-start-1",
478 - "--component-render-start-Example",
479 - "--component-render-stop",
480 - "--render-stop",
481 - "--commit-start-1",
482 - "--react-version-17.0.3",
483 - "--profiler-version-1",
484 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
485 - "--commit-stop",
486 - "--commit-stop",
487 - ]
488 - `);
465 + Array [
466 + "--render-start-16",
467 + "--component-render-start-Example",
468 + "--component-render-stop",
469 + "--render-stop",
470 + "--commit-start-16",
471 + "--react-version-17.0.3",
472 + "--profiler-version-1",
473 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
474 + "--layout-effects-start-16",
475 + "--schedule-forced-update-1-Example",
476 + "--layout-effects-stop",
477 + "--render-start-1",
478 + "--component-render-start-Example",
479 + "--component-render-stop",
480 + "--render-stop",
481 + "--commit-start-1",
482 + "--react-version-17.0.3",
483 + "--profiler-version-1",
484 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
485 + "--commit-stop",
486 + "--commit-stop",
487 + ]
488 + `);
489 }
490 });
491
@@ -504,10 +504,10 @@ describe('SchedulingProfiler', () => {
504
505 if (gate(flags => flags.enableSchedulingProfiler)) {
506 expect(getMarks()).toMatchInlineSnapshot(`
507 - Array [
508 - "--schedule-render-16",
509 - ]
510 - `);
507 + Array [
508 + "--schedule-render-16",
509 + ]
510 + `);
511 }
512
513 clearPendingMarks();
@@ -518,21 +518,21 @@ describe('SchedulingProfiler', () => {
518
519 if (gate(flags => flags.enableSchedulingProfiler)) {
520 expect(getMarks()).toMatchInlineSnapshot(`
521 - Array [
522 - "--render-start-16",
523 - "--component-render-start-Example",
524 - "--schedule-state-update-16-Example",
525 - "--component-render-stop",
526 - "--render-stop",
527 - "--commit-start-16",
528 - "--react-version-17.0.3",
529 - "--profiler-version-1",
530 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
531 - "--layout-effects-start-16",
532 - "--layout-effects-stop",
533 - "--commit-stop",
534 - ]
535 - `);
521 + Array [
522 + "--render-start-16",
523 + "--component-render-start-Example",
524 + "--schedule-state-update-16-Example",
525 + "--component-render-stop",
526 + "--render-stop",
527 + "--commit-start-16",
528 + "--react-version-17.0.3",
529 + "--profiler-version-1",
530 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
531 + "--layout-effects-start-16",
532 + "--layout-effects-stop",
533 + "--commit-stop",
534 + ]
535 + `);
536 }
537 });
538
@@ -551,10 +551,10 @@ describe('SchedulingProfiler', () => {
551
552 if (gate(flags => flags.enableSchedulingProfiler)) {
553 expect(getMarks()).toMatchInlineSnapshot(`
554 - Array [
555 - "--schedule-render-16",
556 - ]
557 - `);
554 + Array [
555 + "--schedule-render-16",
556 + ]
557 + `);
558 }
559
560 clearPendingMarks();
@@ -565,21 +565,21 @@ describe('SchedulingProfiler', () => {
565
566 if (gate(flags => flags.enableSchedulingProfiler)) {
567 expect(getMarks()).toMatchInlineSnapshot(`
568 - Array [
569 - "--render-start-16",
570 - "--component-render-start-Example",
571 - "--schedule-forced-update-16-Example",
572 - "--component-render-stop",
573 - "--render-stop",
574 - "--commit-start-16",
575 - "--react-version-17.0.3",
576 - "--profiler-version-1",
577 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
578 - "--layout-effects-start-16",
579 - "--layout-effects-stop",
580 - "--commit-stop",
581 - ]
582 - `);
568 + Array [
569 + "--render-start-16",
570 + "--component-render-start-Example",
571 + "--schedule-forced-update-16-Example",
572 + "--component-render-stop",
573 + "--render-stop",
574 + "--commit-start-16",
575 + "--react-version-17.0.3",
576 + "--profiler-version-1",
577 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
578 + "--layout-effects-start-16",
579 + "--layout-effects-stop",
580 + "--commit-stop",
581 + ]
582 + `);
583 }
584 });
585
@@ -596,10 +596,10 @@ describe('SchedulingProfiler', () => {
596
597 if (gate(flags => flags.enableSchedulingProfiler)) {
598 expect(getMarks()).toMatchInlineSnapshot(`
599 - Array [
600 - "--schedule-render-16",
601 - ]
602 - `);
599 + Array [
600 + "--schedule-render-16",
601 + ]
602 + `);
603 }
604
605 clearPendingMarks();
@@ -608,30 +608,30 @@ describe('SchedulingProfiler', () => {
608
609 if (gate(flags => flags.enableSchedulingProfiler)) {
610 expect(getMarks()).toMatchInlineSnapshot(`
611 - Array [
612 - "--render-start-16",
613 - "--component-render-start-Example",
614 - "--component-render-stop",
615 - "--render-stop",
616 - "--commit-start-16",
617 - "--react-version-17.0.3",
618 - "--profiler-version-1",
619 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
620 - "--layout-effects-start-16",
621 - "--schedule-state-update-1-Example",
622 - "--layout-effects-stop",
623 - "--render-start-1",
624 - "--component-render-start-Example",
625 - "--component-render-stop",
626 - "--render-stop",
627 - "--commit-start-1",
628 - "--react-version-17.0.3",
629 - "--profiler-version-1",
630 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
631 - "--commit-stop",
632 - "--commit-stop",
633 - ]
634 - `);
611 + Array [
612 + "--render-start-16",
613 + "--component-render-start-Example",
614 + "--component-render-stop",
615 + "--render-stop",
616 + "--commit-start-16",
617 + "--react-version-17.0.3",
618 + "--profiler-version-1",
619 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
620 + "--layout-effects-start-16",
621 + "--schedule-state-update-1-Example",
622 + "--layout-effects-stop",
623 + "--render-start-1",
624 + "--component-render-start-Example",
625 + "--component-render-stop",
626 + "--render-stop",
627 + "--commit-start-1",
628 + "--react-version-17.0.3",
629 + "--profiler-version-1",
630 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
631 + "--commit-stop",
632 + "--commit-stop",
633 + ]
634 + `);
635 }
636 });
637
@@ -652,33 +652,33 @@ describe('SchedulingProfiler', () => {
652
653 if (gate(flags => flags.enableSchedulingProfiler)) {
654 expect(getMarks()).toMatchInlineSnapshot(`
655 - Array [
656 - "--schedule-render-16",
657 - "--render-start-16",
658 - "--component-render-start-Example",
659 - "--component-render-stop",
660 - "--render-stop",
661 - "--commit-start-16",
662 - "--react-version-17.0.3",
663 - "--profiler-version-1",
664 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
665 - "--layout-effects-start-16",
666 - "--layout-effects-stop",
667 - "--commit-stop",
668 - "--passive-effects-start-16",
669 - "--schedule-state-update-16-Example",
670 - "--passive-effects-stop",
671 - "--render-start-16",
672 - "--component-render-start-Example",
673 - "--component-render-stop",
674 - "--render-stop",
675 - "--commit-start-16",
676 - "--react-version-17.0.3",
677 - "--profiler-version-1",
678 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
679 - "--commit-stop",
680 - ]
681 - `);
655 + Array [
656 + "--schedule-render-16",
657 + "--render-start-16",
658 + "--component-render-start-Example",
659 + "--component-render-stop",
660 + "--render-stop",
661 + "--commit-start-16",
662 + "--react-version-17.0.3",
663 + "--profiler-version-1",
664 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
665 + "--layout-effects-start-16",
666 + "--layout-effects-stop",
667 + "--commit-stop",
668 + "--passive-effects-start-16",
669 + "--schedule-state-update-16-Example",
670 + "--passive-effects-stop",
671 + "--render-start-16",
672 + "--component-render-start-Example",
673 + "--component-render-stop",
674 + "--render-stop",
675 + "--commit-start-16",
676 + "--react-version-17.0.3",
677 + "--profiler-version-1",
678 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
679 + "--commit-stop",
680 + ]
681 + `);
682 }
683 });
684
@@ -697,22 +697,22 @@ describe('SchedulingProfiler', () => {
697
698 if (gate(flags => flags.enableSchedulingProfiler)) {
699 expect(getMarks()).toMatchInlineSnapshot(`
700 - Array [
701 - "--schedule-render-16",
702 - "--render-start-16",
703 - "--component-render-start-Example",
704 - "--schedule-state-update-16-Example",
705 - "--component-render-stop",
706 - "--render-stop",
707 - "--commit-start-16",
708 - "--react-version-17.0.3",
709 - "--profiler-version-1",
710 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
711 - "--layout-effects-start-16",
712 - "--layout-effects-stop",
713 - "--commit-stop",
714 - ]
715 - `);
700 + Array [
701 + "--schedule-render-16",
702 + "--render-start-16",
703 + "--component-render-start-Example",
704 + "--schedule-state-update-16-Example",
705 + "--component-render-stop",
706 + "--render-stop",
707 + "--commit-start-16",
708 + "--react-version-17.0.3",
709 + "--profiler-version-1",
710 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
711 + "--layout-effects-start-16",
712 + "--layout-effects-stop",
713 + "--commit-stop",
714 + ]
715 + `);
716 }
717 });
718
@@ -742,35 +742,35 @@ describe('SchedulingProfiler', () => {
742
743 if (gate(flags => flags.enableSchedulingProfiler)) {
744 expect(getMarks()).toMatchInlineSnapshot(`
745 - Array [
746 - "--schedule-render-1",
747 - "--render-start-1",
748 - "--component-render-start-ErrorBoundary",
749 - "--component-render-stop",
750 - "--component-render-start-ExampleThatThrows",
751 - "--component-render-start-ExampleThatThrows",
752 - "--component-render-stop",
753 - "--error-ExampleThatThrows-mount-Expected error",
754 - "--render-stop",
755 - "--commit-start-1",
756 - "--react-version-17.0.3",
757 - "--profiler-version-1",
758 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
759 - "--layout-effects-start-1",
760 - "--schedule-state-update-1-ErrorBoundary",
761 - "--layout-effects-stop",
762 - "--commit-stop",
763 - "--render-start-1",
764 - "--component-render-start-ErrorBoundary",
765 - "--component-render-stop",
766 - "--render-stop",
767 - "--commit-start-1",
768 - "--react-version-17.0.3",
769 - "--profiler-version-1",
770 - "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
771 - "--commit-stop",
772 - ]
773 - `);
745 + Array [
746 + "--schedule-render-1",
747 + "--render-start-1",
748 + "--component-render-start-ErrorBoundary",
749 + "--component-render-stop",
750 + "--component-render-start-ExampleThatThrows",
751 + "--component-render-start-ExampleThatThrows",
752 + "--component-render-stop",
753 + "--error-ExampleThatThrows-mount-Expected error",
754 + "--render-stop",
755 + "--commit-start-1",
756 + "--react-version-17.0.3",
757 + "--profiler-version-1",
758 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
759 + "--layout-effects-start-1",
760 + "--schedule-state-update-1-ErrorBoundary",
761 + "--layout-effects-stop",
762 + "--commit-stop",
763 + "--render-start-1",
764 + "--component-render-start-ErrorBoundary",
765 + "--component-render-stop",
766 + "--render-stop",
767 + "--commit-start-1",
768 + "--react-version-17.0.3",
769 + "--profiler-version-1",
770 + "--react-lane-labels-Sync,InputContinuousHydration,InputContinuous,DefaultHydration,Default,TransitionHydration,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Transition,Retry,Retry,Retry,Retry,Retry,SelectiveHydration,IdleHydration,Idle,Offscreen",
771 + "--commit-stop",
772 + ]
773 + `);
774 }
775 });
776
@@ -804,10 +804,10 @@ describe('SchedulingProfiler', () => {
804
805 if (gate(flags => flags.enableSchedulingProfiler)) {
806 expect(getMarks()).toMatchInlineSnapshot(`
807 - Array [
808 - "--schedule-render-16",
809 - ]
810 - `);
807 + Array [
808 + "--schedule-render-16",
809 + ]
810 + `);
811 }
812
813 clearPendingMarks();