Skip to content

Commit

Permalink
[ui] Remove trackRegistry & move SliceRect to public.
Browse files Browse the repository at this point in the history
This patch tidies up track.ts a little.

`TrackRegistry` wasn't being used anymore and SliceRect is used in the
`Track` interface which is defined in public and which plugins make use
of, so it makes sense to move it into public as well.

Change-Id: I6a19d60e4867822a99e1731a624cc93af2bc18f8
  • Loading branch information
stevegolton committed Nov 25, 2023
1 parent f389d82 commit ad72b58
Show file tree
Hide file tree
Showing 9 changed files with 17 additions and 53 deletions.
3 changes: 1 addition & 2 deletions ui/src/common/basic_async_track.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ import {duration, Span, Time, time} from '../base/time';
import {raf} from '../core/raf_scheduler';
import {globals} from '../frontend/globals';
import {PxSpan, TimeScale} from '../frontend/time_scale';
import {SliceRect} from '../frontend/track';
import {Track, TrackContext} from '../public';
import {SliceRect, Track, TrackContext} from '../public';

import {TrackData} from './track_data';

Expand Down
3 changes: 2 additions & 1 deletion ui/src/common/track_adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import {v4 as uuidv4} from 'uuid';
import {assertExists} from '../base/logging';
import {duration, Span, time} from '../base/time';
import {PxSpan, TimeScale} from '../frontend/time_scale';
import {NewTrackArgs, SliceRect} from '../frontend/track';
import {NewTrackArgs} from '../frontend/track';
import {SliceRect} from '../public';
import {EngineProxy} from '../trace_processor/engine';

import {BasicAsyncTrack} from './basic_async_track';
Expand Down
4 changes: 2 additions & 2 deletions ui/src/frontend/base_slice_track.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import {
} from '../common/colorizer';
import {Selection, SelectionKind} from '../common/state';
import {raf} from '../core/raf_scheduler';
import {Slice} from '../public';
import {Slice, SliceRect} from '../public';
import {LONG, NUM} from '../trace_processor/query_result';

import {checkerboardExcept} from './checkerboard';
Expand All @@ -47,7 +47,7 @@ import {cachedHsluvToHex} from './hsluv_cache';
import {DEFAULT_SLICE_LAYOUT, SliceLayout} from './slice_layout';
import {constraintsToQuerySuffix} from './sql_utils';
import {PxSpan, TimeScale} from './time_scale';
import {NewTrackArgs, SliceRect, TrackBase} from './track';
import {NewTrackArgs, TrackBase} from './track';
import {BUCKETS_PER_PIXEL, CacheKey, TrackCache} from './track_cache';

// The common class that underpins all tracks drawing slices.
Expand Down
2 changes: 1 addition & 1 deletion ui/src/frontend/flow_events_renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
import {time} from '../base/time';
import {pluginManager} from '../common/plugins';
import {TrackState} from '../common/state';
import {SliceRect} from '../public';

import {TRACK_SHELL_WIDTH} from './css_constants';
import {ALL_CATEGORIES, getFlowCategories} from './flow_events_panel';
import {Flow, FlowPoint, globals} from './globals';
import {PanelVNode} from './panel';
import {SliceRect} from './track';
import {TrackGroupPanel} from './track_group_panel';
import {TrackPanel} from './track_panel';

Expand Down
2 changes: 1 addition & 1 deletion ui/src/frontend/slice_track_base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ import {
} from '../common/colorizer';
import {HighPrecisionTime} from '../common/high_precision_time';
import {TrackData} from '../common/track_data';
import {SliceRect} from '../public';

import {checkerboardExcept} from './checkerboard';
import {globals} from './globals';
import {cachedHsluvToHex} from './hsluv_cache';
import {PxSpan, TimeScale} from './time_scale';
import {SliceRect} from './track';

export const SLICE_TRACK_KIND = 'ChromeSliceTrack';
const SLICE_HEIGHT = 18;
Expand Down
23 changes: 1 addition & 22 deletions ui/src/frontend/track.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import m from 'mithril';

import {duration, Span, time} from '../base/time';
import {Track, TrackContext} from '../public';
import {SliceRect, Track, TrackContext} from '../public';
import {EngineProxy} from '../trace_processor/engine';

import {PxSpan, TimeScale} from './time_scale';
Expand All @@ -26,27 +26,6 @@ export interface NewTrackArgs {
engine: EngineProxy;
}

// This interface forces track implementations to have some static properties.
// Typescript does not have abstract static members, which is why this needs to
// be in a separate interface.
export interface TrackCreator {
// Store the kind explicitly as a string as opposed to using class.kind in
// case we ever minify our code.
readonly kind: string;

// We need the |create| method because the stored value in the registry can be
// an abstract class, and we cannot call 'new' on an abstract class.
create(args: NewTrackArgs): TrackBase;
}

export interface SliceRect {
left: number;
width: number;
top: number;
height: number;
visible: boolean;
}

// The abstract class that needs to be implemented by all tracks.
export abstract class TrackBase implements Track {
protected readonly trackKey: string;
Expand Down
3 changes: 1 addition & 2 deletions ui/src/frontend/track_panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,14 @@ import {Actions} from '../common/actions';
import {pluginManager} from '../common/plugins';
import {TrackState} from '../common/state';
import {raf} from '../core/raf_scheduler';
import {Migrate, Track, TrackContext} from '../public';
import {Migrate, SliceRect, Track, TrackContext} from '../public';

import {SELECTION_FILL_COLOR, TRACK_SHELL_WIDTH} from './css_constants';
import {globals} from './globals';
import {drawGridLines} from './gridline_helper';
import {Panel, PanelSize} from './panel';
import {verticalScrollToTrack} from './scroll_helper';
import {PxSpan, TimeScale} from './time_scale';
import {SliceRect} from './track';
import {
drawVerticalLineAtTime,
} from './vertical_line_helper';
Expand Down
21 changes: 0 additions & 21 deletions ui/src/frontend/track_registry.ts

This file was deleted.

9 changes: 8 additions & 1 deletion ui/src/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import {duration, Span, time} from '../base/time';
import {Color} from '../common/colorizer';
import {Store} from '../frontend/store';
import {PxSpan, TimeScale} from '../frontend/time_scale';
import {SliceRect} from '../frontend/track';
import {EngineProxy} from '../trace_processor/engine';

export {createStore, Store} from '../frontend/store';
Expand Down Expand Up @@ -164,6 +163,14 @@ export interface TrackContext {
mountStore<State>(migrate: Migrate<State>): Store<State>;
}

export interface SliceRect {
left: number;
width: number;
top: number;
height: number;
visible: boolean;
}

export interface Track {
onCreate(ctx: TrackContext): void;
render(ctx: CanvasRenderingContext2D): void;
Expand Down

0 comments on commit ad72b58

Please sign in to comment.