Cleaned up remaining "scheduling profiler" references in DevTools (#22696)
Brian Vaughn committed
Nov 4, 2021 at 11:40 UTC
13455d26d1904519c53686d6f295d4eb50b6c2fc
10 files changed
+56
-72
packages/react-devtools-extensions/src/main.js
+1
-1
@@ -153,7 +153,7 @@ function createPanelIfReactLoaded() {
153
supportsReloadAndProfile: isChrome || isEdge,
154
supportsProfiling,
155
// At this time, the timeline can only parse Chrome performance profiles.
156
- supportsSchedulingProfiler: isChrome,
156
+ supportsTimeline: isChrome,
157
supportsTraceUpdates: true,
158
});
159
store.profilerStore.profilingData = profilingData;
packages/react-devtools-inline/src/frontend.js
+1
-1
@@ -29,7 +29,7 @@ export function createStore(bridge: FrontendBridge, config?: Config): Store {
29
return new Store(bridge, {
30
checkBridgeProtocolCompatibility: true,
31
supportsTraceUpdates: true,
32
- supportsSchedulingProfiler: true,
32
+ supportsTimeline: true,
33
supportsNativeInspection: config?.supportsNativeInspection !== false,
34
});
35
}
packages/react-devtools-shared/src/devtools/store.js
+8
-8
@@ -63,9 +63,9 @@ type Config = {|
63
checkBridgeProtocolCompatibility?: boolean,
64
isProfiling?: boolean,
65
supportsNativeInspection?: boolean,
66
- supportsReloadAndProfile?: boolean,
67
- supportsSchedulingProfiler?: boolean,
66
supportsProfiling?: boolean,
67
+ supportsReloadAndProfile?: boolean,
68
+ supportsTimeline?: boolean,
69
supportsTraceUpdates?: boolean,
70
|};
71
@@ -162,7 +162,7 @@ export default class Store extends EventEmitter<{|
162
_supportsNativeInspection: boolean = true;
163
_supportsProfiling: boolean = false;
164
_supportsReloadAndProfile: boolean = false;
165
- _supportsSchedulingProfiler: boolean = false;
165
+ _supportsTimeline: boolean = false;
166
_supportsTraceUpdates: boolean = false;
167
168
_unsupportedBridgeProtocol: BridgeProtocol | null = null;
@@ -197,7 +197,7 @@ export default class Store extends EventEmitter<{|
197
supportsNativeInspection,
198
supportsProfiling,
199
supportsReloadAndProfile,
200
- supportsSchedulingProfiler,
200
+ supportsTimeline,
201
supportsTraceUpdates,
202
} = config;
203
this._supportsNativeInspection = supportsNativeInspection !== false;
@@ -207,8 +207,8 @@ export default class Store extends EventEmitter<{|
207
if (supportsReloadAndProfile) {
208
this._supportsReloadAndProfile = true;
209
}
210
- if (supportsSchedulingProfiler) {
211
- this._supportsSchedulingProfiler = true;
210
+ if (supportsTimeline) {
211
+ this._supportsTimeline = true;
212
}
213
if (supportsTraceUpdates) {
214
this._supportsTraceUpdates = true;
@@ -422,8 +422,8 @@ export default class Store extends EventEmitter<{|
422
);
423
}
424
425
- get supportsSchedulingProfiler(): boolean {
426
- return this._supportsSchedulingProfiler;
425
+ get supportsTimeline(): boolean {
426
+ return this._supportsTimeline;
427
}
428
429
get supportsTraceUpdates(): boolean {
packages/react-devtools-shared/src/devtools/views/DevTools.js
+3
-3
@@ -30,7 +30,7 @@ import ViewElementSourceContext from './Components/ViewElementSourceContext';
30
import FetchFileWithCachingContext from './Components/FetchFileWithCachingContext';
31
import HookNamesModuleLoaderContext from 'react-devtools-shared/src/devtools/views/Components/HookNamesModuleLoaderContext';
32
import {ProfilerContextController} from './Profiler/ProfilerContext';
33
-import {SchedulingProfilerContextController} from 'react-devtools-timeline/src/SchedulingProfilerContext';
33
+import {TimelineContextController} from 'react-devtools-timeline/src/TimelineContext';
34
import {ModalDialogContextController} from './ModalDialog';
35
import ReactLogo from './ReactLogo';
36
import UnsupportedBridgeProtocolDialog from './UnsupportedBridgeProtocolDialog';
@@ -273,7 +273,7 @@ export default function DevTools({
273
value={fetchFileWithCaching || null}>
274
<TreeContextController>
275
<ProfilerContextController>
276
- <SchedulingProfilerContextController>
276
+ <TimelineContextController>
277
<ThemeProvider>
278
<div
279
className={styles.DevTools}
@@ -311,7 +311,7 @@ export default function DevTools({
311
</div>
312
</div>
313
</ThemeProvider>
314
- </SchedulingProfilerContextController>
314
+ </TimelineContextController>
315
</ProfilerContextController>
316
</TreeContextController>
317
</FetchFileWithCachingContext.Provider>
packages/react-devtools-shared/src/devtools/views/Profiler/ClearProfilingDataButton.js
+4
-6
@@ -13,28 +13,26 @@ import {ProfilerContext} from './ProfilerContext';
13
import Button from '../Button';
14
import ButtonIcon from '../ButtonIcon';
15
import {StoreContext} from '../context';
16
-import {SchedulingProfilerContext} from 'react-devtools-timeline/src/SchedulingProfilerContext';
16
+import {TimelineContext} from 'react-devtools-timeline/src/TimelineContext';
17
18
export default function ClearProfilingDataButton() {
19
const store = useContext(StoreContext);
20
const {didRecordCommits, isProfiling, selectedTabID} = useContext(
21
ProfilerContext,
22
);
23
- const {clearSchedulingProfilerData, schedulingProfilerData} = useContext(
24
- SchedulingProfilerContext,
25
- );
23
+ const {clearTimelineData, timelineData} = useContext(TimelineContext);
24
const {profilerStore} = store;
25
26
let doesHaveData = false;
27
if (selectedTabID === 'timeline') {
30
- doesHaveData = schedulingProfilerData !== null;
28
+ doesHaveData = timelineData !== null;
29
} else {
30
doesHaveData = didRecordCommits;
31
}
32
33
const clear = () => {
34
if (selectedTabID === 'timeline') {
37
- clearSchedulingProfilerData();
35
+ clearTimelineData();
36
} else {
37
profilerStore.clear();
38
}
packages/react-devtools-shared/src/devtools/views/Profiler/Profiler.js
+5
-7
@@ -16,7 +16,7 @@ import ClearProfilingDataButton from './ClearProfilingDataButton';
16
import CommitFlamegraph from './CommitFlamegraph';
17
import CommitRanked from './CommitRanked';
18
import RootSelector from './RootSelector';
19
-import {SchedulingProfiler} from 'react-devtools-timeline/src/SchedulingProfiler';
19
+import {Timeline} from 'react-devtools-timeline/src/Timeline';
20
import RecordToggle from './RecordToggle';
21
import ReloadAndProfileButton from './ReloadAndProfileButton';
22
import ProfilingImportExportButtons from './ProfilingImportExportButtons';
@@ -43,7 +43,7 @@ function Profiler(_: {||}) {
43
supportsProfiling,
44
} = useContext(ProfilerContext);
45
46
- const {supportsSchedulingProfiler} = useContext(StoreContext);
46
+ const {supportsTimeline} = useContext(StoreContext);
47
48
let isLegacyProfilerSelected = false;
49
@@ -59,7 +59,7 @@ function Profiler(_: {||}) {
59
view = <CommitRanked />;
60
break;
61
case 'timeline':
62
- view = <SchedulingProfiler />;
62
+ view = <Timeline />;
63
break;
64
default:
65
break;
@@ -116,9 +116,7 @@ function Profiler(_: {||}) {
116
currentTab={selectedTabID}
117
id="Profiler"
118
selectTab={selectTab}
119
- tabs={
120
- supportsSchedulingProfiler ? tabsWithSchedulingProfiler : tabs
121
- }
119
+ tabs={supportsTimeline ? tabsWithTimeline : tabs}
120
type="profiler"
121
/>
122
<RootSelector />
@@ -160,7 +158,7 @@ const tabs = [
158
},
159
];
160
163
-const tabsWithSchedulingProfiler = [
161
+const tabsWithTimeline = [
162
...tabs,
163
null, // Divider/separator
164
{
packages/react-devtools-shared/src/devtools/views/Profiler/ProfilingImportExportButtons.js
+5
-5
@@ -19,7 +19,7 @@ import {
19
prepareProfilingDataFrontendFromExport,
20
} from './utils';
21
import {downloadFile} from '../utils';
22
-import {SchedulingProfilerContext} from 'react-devtools-timeline/src/SchedulingProfilerContext';
22
+import {TimelineContext} from 'react-devtools-timeline/src/TimelineContext';
23
24
import styles from './ProfilingImportExportButtons.css';
25
@@ -29,7 +29,7 @@ export default function ProfilingImportExportButtons() {
29
const {isProfiling, profilingData, rootID, selectedTabID} = useContext(
30
ProfilerContext,
31
);
32
- const {importSchedulingProfilerData} = useContext(SchedulingProfilerContext);
32
+ const {importTimelineData} = useContext(TimelineContext);
33
const store = useContext(StoreContext);
34
const {profilerStore} = store;
35
@@ -108,10 +108,10 @@ export default function ProfilingImportExportButtons() {
108
}
109
}, [modalDialogDispatch, profilerStore]);
110
111
- const importSchedulingProfilerDataWrapper = event => {
111
+ const importTimelineDataWrapper = event => {
112
const input = inputRef.current;
113
if (input !== null && input.files.length > 0) {
114
- importSchedulingProfilerData(input.files[0]);
114
+ importTimelineData(input.files[0]);
115
}
116
};
117
@@ -124,7 +124,7 @@ export default function ProfilingImportExportButtons() {
124
type="file"
125
onChange={
126
selectedTabID === 'timeline'
127
- ? importSchedulingProfilerDataWrapper
127
+ ? importTimelineDataWrapper
128
: importProfilerData
129
}
130
tabIndex={-1}
packages/react-devtools-timeline/src/Timeline.css
renamed
packages/react-devtools-timeline/src/Timeline.js
renamed
+10
-12
@@ -21,18 +21,16 @@ import {
21
} from 'react';
22
import {SettingsContext} from 'react-devtools-shared/src/devtools/views/Settings/SettingsContext';
23
import {updateColorsToMatchTheme} from './content-views/constants';
24
-import {SchedulingProfilerContext} from './SchedulingProfilerContext';
24
+import {TimelineContext} from './TimelineContext';
25
import ImportButton from './ImportButton';
26
import CanvasPage from './CanvasPage';
27
28
-import styles from './SchedulingProfiler.css';
28
+import styles from './Timeline.css';
29
30
-export function SchedulingProfiler(_: {||}) {
31
- const {
32
- importSchedulingProfilerData,
33
- schedulingProfilerData,
34
- viewState,
35
- } = useContext(SchedulingProfilerContext);
30
+export function Timeline(_: {||}) {
31
+ const {importTimelineData, timelineData, viewState} = useContext(
32
+ TimelineContext,
33
+ );
34
35
const ref = useRef(null);
36
@@ -63,17 +61,17 @@ export function SchedulingProfiler(_: {||}) {
61
62
return (
63
<div className={styles.Content} ref={ref}>
66
- {schedulingProfilerData ? (
64
+ {timelineData ? (
65
<Suspense fallback={<ProcessingData />}>
66
<DataResourceComponent
69
- dataResource={schedulingProfilerData}
67
+ dataResource={timelineData}
68
key={key}
71
- onFileSelect={importSchedulingProfilerData}
69
+ onFileSelect={importTimelineData}
70
viewState={viewState}
71
/>
72
</Suspense>
73
) : (
76
- <Welcome onFileSelect={importSchedulingProfilerData} />
74
+ <Welcome onFileSelect={importTimelineData} />
75
)}
76
</div>
77
);
packages/react-devtools-timeline/src/TimelineContext.js
renamed
+19
-29
@@ -15,33 +15,28 @@ import type {HorizontalScrollStateChangeCallback, ViewState} from './types';
15
import type {DataResource} from './createDataResourceFromImportedFile';
16
17
export type Context = {|
18
- clearSchedulingProfilerData: () => void,
19
- importSchedulingProfilerData: (file: File) => void,
20
- schedulingProfilerData: DataResource | null,
18
+ clearTimelineData: () => void,
19
+ importTimelineData: (file: File) => void,
20
+ timelineData: DataResource | null,
21
viewState: ViewState,
22
|};
23
24
-const SchedulingProfilerContext = createContext<Context>(
25
- ((null: any): Context),
26
-);
27
-SchedulingProfilerContext.displayName = 'SchedulingProfilerContext';
24
+const TimelineContext = createContext<Context>(((null: any): Context));
25
+TimelineContext.displayName = 'TimelineContext';
26
27
type Props = {|
28
children: React$Node,
29
|};
30
33
-function SchedulingProfilerContextController({children}: Props) {
34
- const [
35
- schedulingProfilerData,
36
- setSchedulingProfilerData,
37
- ] = useState<DataResource | null>(null);
31
+function TimelineContextController({children}: Props) {
32
+ const [timelineData, setTimelineData] = useState<DataResource | null>(null);
33
39
- const clearSchedulingProfilerData = useCallback(() => {
40
- setSchedulingProfilerData(null);
34
+ const clearTimelineData = useCallback(() => {
35
+ setTimelineData(null);
36
}, []);
37
43
- const importSchedulingProfilerData = useCallback((file: File) => {
44
- setSchedulingProfilerData(createDataResourceFromImportedFile(file));
38
+ const importTimelineData = useCallback((file: File) => {
39
+ setTimelineData(createDataResourceFromImportedFile(file));
40
}, []);
41
42
// Recreate view state any time new profiling data is imported.
@@ -75,28 +70,23 @@ function SchedulingProfilerContextController({children}: Props) {
70
},
71
viewToMutableViewStateMap: new Map(),
72
};
78
- }, [schedulingProfilerData]);
73
+ }, [timelineData]);
74
75
const value = useMemo(
76
() => ({
82
- clearSchedulingProfilerData,
83
- importSchedulingProfilerData,
84
- schedulingProfilerData,
77
+ clearTimelineData,
78
+ importTimelineData,
79
+ timelineData,
80
viewState,
81
}),
87
- [
88
- clearSchedulingProfilerData,
89
- importSchedulingProfilerData,
90
- schedulingProfilerData,
91
- viewState,
92
- ],
82
+ [clearTimelineData, importTimelineData, timelineData, viewState],
83
);
84
85
return (
96
- <SchedulingProfilerContext.Provider value={value}>
86
+ <TimelineContext.Provider value={value}>
87
{children}
98
- </SchedulingProfilerContext.Provider>
88
+ </TimelineContext.Provider>
89
);
90
}
91
102
-export {SchedulingProfilerContext, SchedulingProfilerContextController};
92
+export {TimelineContext, TimelineContextController};