Skip to content

Commit 738c060

Browse files
committed
refactor: renderer config to provide async stack tagging api implementation
1 parent 71b3a03 commit 738c060

File tree

9 files changed

+29
-5
lines changed

9 files changed

+29
-5
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ module.exports = {
462462
globals: {
463463
nativeFabricUIManager: 'readonly',
464464
RN$enableMicrotasksInReact: 'readonly',
465+
RN$unstable_createTask: 'readonly',
465466
},
466467
},
467468
{

packages/react-art/src/ReactFiberConfigART.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,11 @@ export function resolveEventTimeStamp(): number {
402402
return -1.1;
403403
}
404404

405+
// Async Stack Tagging API.
406+
// Chromium-only: https://developer.chrome.com/docs/devtools/console/api#createtask
407+
// eslint-disable-next-line react-internal/no-production-logging
408+
export const createTask = console.createTask;
409+
405410
export function shouldAttemptEagerTransition() {
406411
return false;
407412
}

packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,11 @@ export function resolveEventTimeStamp(): number {
741741
return event && event !== schedulerEvent ? event.timeStamp : -1.1;
742742
}
743743

744+
// Async Stack Tagging API.
745+
// Chromium-only: https://developer.chrome.com/docs/devtools/console/api#createtask
746+
// eslint-disable-next-line react-internal/no-production-logging
747+
export const createTask = console.createTask;
748+
744749
export const isPrimaryRenderer = true;
745750
export const warnsIfNotActing = true;
746751
// This initialization code may run even on server environments

packages/react-native-renderer/src/ReactFiberConfigFabric.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,10 @@ export function resolveEventTimeStamp(): number {
424424
return -1.1;
425425
}
426426

427+
// This matches Chrome's console.createTask in terms of signature.
428+
// This doesn't match Chrome's console.createTask in terms of behavior and implementation.
429+
export const createTask = RN$unstable_createTask;
430+
427431
export function shouldAttemptEagerTransition(): boolean {
428432
return false;
429433
}

packages/react-native-renderer/src/ReactFiberConfigNative.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@ export function resolveEventTimeStamp(): number {
366366
return -1.1;
367367
}
368368

369+
export const createTask = undefined;
370+
369371
export function shouldAttemptEagerTransition(): boolean {
370372
return false;
371373
}

packages/react-reconciler/src/ReactProfilerTimer.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
NoLanes,
2525
} from './ReactFiberLane';
2626

27-
import {resolveEventType, resolveEventTimeStamp} from './ReactFiberConfig';
27+
import {resolveEventType, resolveEventTimeStamp, createTask as createTaskFromFiberConfig} from './ReactFiberConfig';
2828

2929
import {
3030
enableProfilerCommitHooks,
@@ -43,10 +43,8 @@ import * as Scheduler from 'scheduler';
4343
const {unstable_now: now} = Scheduler;
4444

4545
const createTask =
46-
// eslint-disable-next-line react-internal/no-production-logging
47-
__DEV__ && console.createTask
48-
? // eslint-disable-next-line react-internal/no-production-logging
49-
console.createTask
46+
__DEV__ && createTaskFromFiberConfig
47+
? createTaskFromFiberConfig
5048
: (name: string) => null;
5149

5250
export const REGULAR_UPDATE: UpdateType = 0;

packages/react-reconciler/src/forks/ReactFiberConfig.custom.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export const resolveUpdatePriority = $$$config.resolveUpdatePriority;
8585
export const trackSchedulerEvent = $$$config.trackSchedulerEvent;
8686
export const resolveEventType = $$$config.resolveEventType;
8787
export const resolveEventTimeStamp = $$$config.resolveEventTimeStamp;
88+
export const createTask = $$$config.createTask;
8889
export const shouldAttemptEagerTransition =
8990
$$$config.shouldAttemptEagerTransition;
9091
export const detachDeletedInstance = $$$config.detachDeletedInstance;

packages/react-test-renderer/src/ReactFiberConfigTestHost.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ export function resolveEventType(): null | string {
259259
export function resolveEventTimeStamp(): number {
260260
return -1.1;
261261
}
262+
// Async Stack Tagging API.
263+
// Chromium-only: https://developer.chrome.com/docs/devtools/console/api#createtask
264+
// eslint-disable-next-line react-internal/no-production-logging
265+
export const createTask = console.createTask;
266+
262267
export function shouldAttemptEagerTransition(): boolean {
263268
return false;
264269
}

scripts/flow/react-native-host-hooks.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,3 +303,6 @@ declare const nativeFabricUIManager: {
303303
unstable_getCurrentEventPriority: () => number,
304304
...
305305
};
306+
307+
// eslint-disable-next-line no-unused-vars
308+
declare const RN$unstable_createTask: typeof console.createTask;

0 commit comments

Comments
 (0)