@samitouri / QOS-React-2 / commits / 13455d26d1

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};