@@ -9,6 +9,7 @@ import classNames from 'classnames';
99import { SourceView } from '../shared/SourceView' ;
1010import { AssemblyView } from '../shared/AssemblyView' ;
1111import { AssemblyViewToggleButton } from './AssemblyViewToggleButton' ;
12+ import { IonGraphView } from '../shared/IonGraphView' ;
1213import { CodeLoadingOverlay } from './CodeLoadingOverlay' ;
1314import { CodeErrorOverlay } from './CodeErrorOverlay' ;
1415import {
@@ -28,7 +29,7 @@ import {
2829 getSourceViewCode ,
2930 getAssemblyViewCode ,
3031} from 'firefox-profiler/selectors/code' ;
31- import { getPreviewSelection } from 'firefox-profiler/selectors/profile' ;
32+ import { getPreviewSelectionIsBeingModified } from 'firefox-profiler/selectors/profile' ;
3233import explicitConnect from 'firefox-profiler/utils/connect' ;
3334
3435import type { ConnectedProps } from 'firefox-profiler/utils/connect' ;
@@ -177,6 +178,9 @@ class BottomBoxImpl extends React.PureComponent<Props> {
177178 assemblyViewCode && assemblyViewCode . type === 'AVAILABLE'
178179 ? assemblyViewCode . instructions
179180 : [ ] ;
181+ const sourceIsIonGraph = path !== null && path . endsWith ( 'iongraph.json' ) ;
182+ const displaySourceView = sourceViewFile !== null && ! sourceIsIonGraph ;
183+ const displayIonGraph = sourceViewFile !== null && sourceIsIonGraph ;
180184
181185 // The bottom box has one or more side-by-side panes.
182186 // At the moment it always has either one or two panes:
@@ -211,7 +215,14 @@ class BottomBoxImpl extends React.PureComponent<Props> {
211215 { assemblyViewIsOpen ? null : trailingHeaderButtons }
212216 </ div >
213217 < div className = "bottom-sourceview-wrapper" >
214- { sourceViewFile !== null ? (
218+ { displayIonGraph ? (
219+ < IonGraphView
220+ timings = { globalLineTimings }
221+ hotSpotTimings = { selectedCallNodeLineTimings }
222+ sourceCode = { sourceCode }
223+ />
224+ ) : null }
225+ { displaySourceView ? (
215226 < SourceView
216227 disableOverscan = { disableOverscan }
217228 timings = { globalLineTimings }
@@ -295,7 +306,7 @@ export const BottomBox = explicitConnect<{}, StateProps, DispatchProps>({
295306 selectedNodeSelectors . getAssemblyViewAddressTimings ( state ) ,
296307 assemblyViewScrollGeneration : getAssemblyViewScrollGeneration ( state ) ,
297308 assemblyViewIsOpen : getAssemblyViewIsOpen ( state ) ,
298- disableOverscan : getPreviewSelection ( state ) . isModifying ,
309+ disableOverscan : getPreviewSelectionIsBeingModified ( state ) ,
299310 } ) ,
300311 mapDispatchToProps : {
301312 closeBottomBox,
0 commit comments