@@ -98,15 +98,15 @@ const UIStrings = {
9898 /**
9999 * @description Title of disable capture jsprofile setting in timeline panel of the performance panel
100100 */
101- // disableJavascriptSamples: 'Disable JavaScript samples',
101+ disableJavascriptSamples : 'Disable JavaScript samples' ,
102102 /**
103103 *@description Title of capture layers and pictures setting in timeline panel of the performance panel
104104 */
105- // enableAdvancedPaint: 'Enable advanced paint instrumentation (slow)',
105+ enableAdvancedPaint : 'Enable advanced paint instrumentation (slow)' ,
106106 /**
107107 * @description Title of CSS selector stats setting in timeline panel of the performance panel
108108 */
109- // enableSelectorStats: 'Enable CSS selector stats (slow)',
109+ enableSelectorStats : 'Enable CSS selector stats (slow)' ,
110110 /**
111111 * @description Title of show screenshots setting in timeline panel of the performance panel
112112 */
@@ -118,19 +118,19 @@ const UIStrings = {
118118 /**
119119 * @description Text to clear content
120120 */
121- // clear: 'Clear',
121+ clear : 'Clear' ,
122122 /**
123123 * @description A label for a button that fixes something.
124124 */
125- // fixMe: 'Fix me',
125+ fixMe : 'Fix me' ,
126126 /**
127127 * @description Tooltip text that appears when hovering over the largeicon load button
128128 */
129129 loadTrace : 'Load trace…' ,
130130 /**
131131 * @description Text to take screenshots
132132 */
133- // saveProfile : 'Save profile… ',
133+ captureScreenshots : 'Capture screenshots ' ,
134134 /**
135135 * @description Text in Timeline Panel of the Performance panel
136136 */
@@ -198,11 +198,11 @@ const UIStrings = {
198198 /**
199199 * @description Text to close something
200200 */
201- // downloadAfterError : 'Download trace ',
201+ close : 'Close ' ,
202202 /**
203203 * @description Status text to indicate the recording has failed in the Performance panel
204204 */
205- // recordingFailed: 'Recording failed',
205+ recordingFailed : 'Recording failed' ,
206206 /**
207207 * @description Status text to indicate that exporting the trace has failed
208208 */
@@ -605,33 +605,40 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
605605 this . #setActiveOverlays( ( ( ) => {
606606 // We should have the current active trace index on the model loaded
607607 const traceInsightsData = this . #traceEngineModel. traceInsights ( this . #activeTraceIndex( ) || 0 ) ;
608- const insight = Trace . Insights . Common . getInsight ( 'ThirdParties' , traceInsightsData , navigationId ) ;
608+ if ( ! traceInsightsData ) {
609+ return [ ] ;
610+ }
611+ const traceInsightSets = traceInsightsData . get ( navigationId ) ;
612+ if ( ! traceInsightSets ) {
613+ return [ ] ;
614+ }
615+ const insight = Trace . Insights . Common . getInsight ( 'ThirdParties' , traceInsightSets ) ;
609616 if ( ! insight ) {
610617 return [ ] ;
611618 }
612619
613- const overlays : Overlays . Overlays . TimelineOverlay [ ] = [ ] ;
614- for ( const [ entity , events ] of insight . eventsByEntity ) {
615- if ( entity === insight . firstPartyEntity || ( filterByThirdParty && entity . name !== filterByThirdParty ) ) {
616- continue ;
617- }
620+ const relatedEventsIsValidEvent = ( relatedEvents ?: Trace . Insights . Types . RelatedEventsMap | Trace . Types . Events . Event [ ] ) : relatedEvents is Trace . Types . Events . Event [ ] => {
621+ return relatedEvents instanceof Array ;
622+ }
618623
619- for ( const event of events ) {
620- if ( filterByTimestamp && event . ts > filterByTimestamp ) {
621- continue ;
622- }
623-
624- // The overlay entry can be used to highlight any trace entry, including network track entries.
625- // This function is extracted from the ThirdParties overlay component, since it is not accessible
626- // from outside the component.
627- overlays . push ( {
628- type : 'ENTRY_OUTLINE' ,
629- entry : event ,
630- outlineReason : 'INFO' ,
631- } ) ;
624+ const overlays : Trace . Types . Overlays . EntryOutline [ ] = [ ] ;
625+ if ( relatedEventsIsValidEvent ( insight . relatedEvents ) ) {
626+ for ( const event of insight . relatedEvents ) {
627+ if ( filterByTimestamp && event . ts > filterByTimestamp ) {
628+ continue ;
629+ }
630+
631+ // The overlay entry can be used to highlight any trace entry, including network track entries.
632+ // This function is extracted from the ThirdParties overlay component, since it is not accessible
633+ // from outside the component.
634+ overlays . push ( {
635+ type : 'ENTRY_OUTLINE' ,
636+ entry : event ,
637+ outlineReason : 'INFO' ,
638+ } ) ;
632639 }
633- }
634640
641+ }
635642 return overlays ;
636643 } ) ( ) ) ;
637644 } ) ;
@@ -641,7 +648,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
641648 const { entries} = event . detail ;
642649 this . #setActiveOverlays( ( ( ) => {
643650
644- const overlays : Overlays . Overlays . TimelineOverlay [ ] = [ ] ;
651+ const overlays : Trace . Types . Overlays . EntryOutline [ ] = [ ] ;
645652 for ( const entry of entries ) {
646653
647654 // The overlay entry can be used to highlight any trace entry, including network track entries.
@@ -652,7 +659,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
652659 entry : entry . entry ,
653660 outlineReason : 'INFO' ,
654661 } ) ;
655- ModificationsManager . activeManager ( ) ?. createAnnotation ( entry ) ;
662+ ModificationsManager . activeManager ( ) ?. createAnnotation ( entry , { loadedFromFile : false , muteAriaNotifications : false } ) ;
656663 }
657664
658665 return overlays ;
@@ -663,9 +670,8 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
663670 document . getElementById ( '-blink-dev-tools' ) ?. addEventListener ( HighlightLCPImageWithDelayEvent . eventName , ( event : HighlightLCPImageWithDelayEvent ) => {
664671 const { entry} = event . detail ;
665672 this . #setActiveOverlays( ( ( ) => {
666-
667673 // Creates an overlay scheme similar to the LCP resource breakdown.
668- const overlays : Overlays . Overlays . TimelineOverlay [ ] = [
674+ const overlays : Trace . Types . Overlays . Overlay [ ] = [
669675 {
670676 type : 'ENTRY_OUTLINE' ,
671677 entry : entry . entry ,
@@ -790,7 +796,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
790796 }
791797 }
792798
793- #setActiveOverlays( overlays : Overlays . Overlays . TimelineOverlay [ ] ) : void {
799+ #setActiveOverlays( overlays : Trace . Types . Overlays . Overlay [ ] ) : void {
794800 this . flameChart . setOverlays ( overlays , { updateTraceWindow : true } ) ;
795801 }
796802
@@ -1184,12 +1190,12 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
11841190 private populateToolbar ( ) : void {
11851191 const canRecord = this . canRecord ( ) ;
11861192
1187- if ( canRecord || isNode ) {
1193+ // if (canRecord || isNode) {
11881194 // this.panelToolbar.appendToolbarItem(UI.Toolbar.Toolbar.createActionButton(this.toggleRecordAction));
1189- }
1190- if ( canRecord ) {
1195+ // }
1196+ // if (canRecord) {
11911197 // this.panelToolbar.appendToolbarItem(UI.Toolbar.Toolbar.createActionButton(this.recordReloadAction));
1192- }
1198+ // }
11931199
11941200 // this.clearButton = new UI.Toolbar.ToolbarButton(i18nString(UIStrings.clear), 'clear', undefined, 'timeline.clear');
11951201 // this.clearButton.addEventListener(UI.Toolbar.ToolbarButton.Events.CLICK, () => this.onClearButton());
@@ -1215,7 +1221,7 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
12151221 // event.preventDefault();
12161222 // event.stopPropagation();
12171223
1218- if ( canRecord ) {
1224+ // if (canRecord) {
12191225 // const contextMenu = new UI.ContextMenu.ContextMenu(event);
12201226 // contextMenu.saveSection().appendItem(i18nString(UIStrings.exportNormalTraces), () => {
12211227 // void this.saveToFile();
@@ -1224,16 +1230,16 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
12241230 // void this.saveToFile(/* isEnhancedTraces */ true);
12251231 // this.panelToolbar.appendSeparator();
12261232
1227- if ( ! isNode ) {
1228- this . homeButton = new UI . Toolbar . ToolbarButton (
1229- i18nString ( UIStrings . backToLiveMetrics ) , 'home' , undefined , 'timeline.back-to-live-metrics' ) ;
1230- this . homeButton . addEventListener ( UI . Toolbar . ToolbarButton . Events . CLICK , ( ) => {
1231- this . #changeView( { mode : 'LANDING_PAGE' } ) ;
1232- this . #historyManager. navigateToLandingPage ( ) ;
1233- } ) ;
1234- this . panelToolbar . appendToolbarItem ( this . homeButton ) ;
1235- this . panelToolbar . appendSeparator ( ) ;
1236- }
1233+ // if (!isNode) {
1234+ // this.homeButton = new UI.Toolbar.ToolbarButton(
1235+ // i18nString(UIStrings.backToLiveMetrics), 'home', undefined, 'timeline.back-to-live-metrics');
1236+ // this.homeButton.addEventListener(UI.Toolbar.ToolbarButton.Events.CLICK, () => {
1237+ // this.#changeView({mode: 'LANDING_PAGE'});
1238+ // this.#historyManager.navigateToLandingPage();
1239+ // });
1240+ // this.panelToolbar.appendToolbarItem(this.homeButton);
1241+ // this.panelToolbar.appendSeparator();
1242+ // }
12371243 // }
12381244
12391245 // TODO(crbug.com/337909145): need to hide "Live metrics" option if !canRecord.
@@ -1534,23 +1540,8 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
15341540
15351541 try {
15361542 let traceAsString ;
1537- if ( metadata ?. dataOrigin === Trace . Types . File . DataOrigin . CPU_PROFILE ) {
1538- const profileEvent = traceEvents . find ( e => e . name === 'CpuProfile' ) ;
1539- if ( ! profileEvent || ! profileEvent . args ?. data ) {
1540- return ;
1541- }
1542-
1543- await this . yieldToMain ( ) ;
1544-
1545- const profileEventData = profileEvent . args ?. data ;
1546- if ( profileEventData . hasOwnProperty ( 'cpuProfile' ) ) {
1547- const profile = ( profileEventData as { cpuProfile : Protocol . Profiler . Profile } ) . cpuProfile ;
1548- traceAsString = cpuprofileJsonGenerator ( profile as Protocol . Profiler . Profile ) ;
1549- }
1550- } else {
1551- const formattedTraceIter = traceJsonGenerator ( traceEvents , metadata ) ;
1543+ const formattedTraceIter = traceJsonGenerator ( traceEvents , metadata ) ;
15521544 traceAsString = Array . from ( formattedTraceIter ) . join ( '' ) ;
1553- }
15541545
15551546 await this . yieldToMain ( ) ;
15561547
@@ -1587,7 +1578,11 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
15871578 }
15881579
15891580 async exportTrace ( ) : Promise < void > {
1590- void this . saveToFile ( ) ;
1581+ void this . saveToFile ( {
1582+ includeScriptContent : false ,
1583+ includeSourceMaps : false ,
1584+ addModifications : false ,
1585+ } ) ;
15911586 }
15921587
15931588 /**
@@ -1967,12 +1962,12 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
19671962 // this.showSettingsPaneButton.element.style.setProperty('--dot-toggle-top', '16px');
19681963 // this.showSettingsPaneButton.element.style.setProperty('--dot-toggle-left', '15px');
19691964
1970- if ( messages . length ) {
1971- const tooltipElement = document . createElement ( 'div' ) ;
1972- messages . forEach ( message => {
1973- tooltipElement . createChild ( 'div' ) . textContent = message ;
1974- } ) ;
1975- this . showSettingsPaneButton . setTitle ( tooltipElement . textContent || '' ) ;
1965+ // if (messages.length) {
1966+ // const tooltipElement = document.createElement('div');
1967+ // messages.forEach(message => {
1968+ // tooltipElement.createChild('div').textContent = message;
1969+ // });
1970+ // this.showSettingsPaneButton.setTitle(tooltipElement.textContent || '');
19761971 // } else {
19771972 // this.showSettingsPaneButton.setTitle(i18nString(UIStrings.captureSettings));
19781973 // }
@@ -2216,12 +2211,12 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
22162211 this . #addSidebarIconToToolbar( ) ;
22172212 }
22182213
2219- const exportTraceOptionsElement =
2220- this . saveButton . element as TimelineComponents . ExportTraceOptions . ExportTraceOptions ;
2221- exportTraceOptionsElement . data = {
2222- onExport : this . saveToFile . bind ( this ) ,
2223- buttonEnabled : this . state === State . IDLE && this . #hasActiveTrace( ) ,
2224- } ;
2214+ // const exportTraceOptionsElement =
2215+ // this.saveButton.element as TimelineComponents.ExportTraceOptions.ExportTraceOptions;
2216+ // exportTraceOptionsElement.data = {
2217+ // onExport: this.saveToFile.bind(this),
2218+ // buttonEnabled: this.state === State.IDLE && this.#hasActiveTrace(),
2219+ // };
22252220
22262221 this . #historyManager. setEnabled ( this . state === State . IDLE ) ;
22272222 // this.clearButton.setEnabled(this.state === State.IDLE);
@@ -2360,8 +2355,8 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
23602355
23612356 const exclusiveFilter = this . #exclusiveFilterPerTrace. get ( traceIndex ) ?? null ;
23622357 this . #applyActiveFilters( parsedTrace . Meta . traceIsGeneric , exclusiveFilter ) ;
2363- ( this . saveButton . element as TimelineComponents . ExportTraceOptions . ExportTraceOptions )
2364- . updateContentVisibility ( currentManager ? currentManager . getAnnotations ( ) ?. length > 0 : false ) ;
2358+ // (this.saveButton.element as TimelineComponents.ExportTraceOptions.ExportTraceOptions)
2359+ // .updateContentVisibility(currentManager ? currentManager.getAnnotations()?.length > 0 : false);
23652360
23662361 // Add ModificationsManager listeners for annotations change to update the
23672362 // Annotation Overlays.
@@ -2494,8 +2489,8 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
24942489 const annotations = currentManager ?. getAnnotations ( ) ?? [ ] ;
24952490 const annotationEntryToColorMap = this . buildColorsAnnotationsMap ( annotations ) ;
24962491 this . #sideBar. setAnnotations ( annotations , annotationEntryToColorMap ) ;
2497- ( this . saveButton . element as TimelineComponents . ExportTraceOptions . ExportTraceOptions )
2498- . updateContentVisibility ( currentManager ? currentManager . getAnnotations ( ) ?. length > 0 : false ) ;
2492+ // (this.saveButton.element as TimelineComponents.ExportTraceOptions.ExportTraceOptions)
2493+ // .updateContentVisibility(currentManager ? currentManager.getAnnotations()?.length > 0 : false);
24992494 }
25002495
25012496 /**
@@ -3340,7 +3335,7 @@ ${responseTextForPassedInsights}`;
33403335 }
33413336 panelInstance . addEventListener ( Events . RECORDING_COMPLETED , listener ) ;
33423337
3343- panelInstance . recordReload ( ) ;
3338+ // panelInstance.recordReload();
33443339 } ) ;
33453340 }
33463341
@@ -3425,12 +3420,12 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
34253420 return false ;
34263421 }
34273422 switch ( actionId ) {
3428- case 'timeline.toggle-recording' :
3429- void panel . toggleRecording ( ) ;
3430- return true ;
3431- case 'timeline.record-reload' :
3432- panel . recordReload ( ) ;
3433- return true ;
3423+ // case 'timeline.toggle-recording':
3424+ // void panel.toggleRecording();
3425+ // return true;
3426+ // case 'timeline.record-reload':
3427+ // panel.recordReload();
3428+ // return true;
34343429 case 'timeline.save-to-file' :
34353430 void panel . saveToFile ( { includeScriptContent : false , includeSourceMaps : false , addModifications : false } ) ;
34363431 return true ;
@@ -3469,13 +3464,6 @@ export class SelectedInsight {
34693464export const enum Events {
34703465 IS_VIEWING_TRACE = 'IsViewingTrace' ,
34713466 RECORDING_COMPLETED = 'RecordingCompleted' ,
3472- }
3473- export interface EventTypes {
3474- [ Events . IS_VIEWING_TRACE ] : boolean ;
3475- [ Events . RECORDING_COMPLETED ] : { traceIndex : number } | { errorText : string } ;
3476- }
3477-
3478- export const enum Events {
34793467 OpenTraceFile = 'opentracefile' ,
34803468 LoadRawTraceData = 'loadrawtracedata' ,
34813469 RawTraceDataLoaded = 'rawtracedataloaded' ,
@@ -3487,8 +3475,9 @@ export const enum Events {
34873475 ShowThirdParties = 'showthirdparties' ,
34883476 ClearActiveOverlays = 'clearactiveoverlays' ,
34893477}
3490-
34913478export interface EventTypes {
3479+ [ Events . IS_VIEWING_TRACE ] : boolean ;
3480+ [ Events . RECORDING_COMPLETED ] : { traceIndex : number } | { errorText : string } ;
34923481 [ Events . RawTraceDataLoaded ] : {
34933482 rawTraceData : Blob | string | null ,
34943483 } ;
0 commit comments