From ad72b58b5f00e7c4615871492aa546020b6cb056 Mon Sep 17 00:00:00 2001 From: Steve Golton Date: Thu, 23 Nov 2023 15:48:55 +0000 Subject: [PATCH] [ui] Remove trackRegistry & move SliceRect to public. 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 --- ui/src/common/basic_async_track.ts | 3 +-- ui/src/common/track_adapter.ts | 3 ++- ui/src/frontend/base_slice_track.ts | 4 ++-- ui/src/frontend/flow_events_renderer.ts | 2 +- ui/src/frontend/slice_track_base.ts | 2 +- ui/src/frontend/track.ts | 23 +---------------------- ui/src/frontend/track_panel.ts | 3 +-- ui/src/frontend/track_registry.ts | 21 --------------------- ui/src/public/index.ts | 9 ++++++++- 9 files changed, 17 insertions(+), 53 deletions(-) delete mode 100644 ui/src/frontend/track_registry.ts diff --git a/ui/src/common/basic_async_track.ts b/ui/src/common/basic_async_track.ts index 41dfe3d670..d5e0dda763 100644 --- a/ui/src/common/basic_async_track.ts +++ b/ui/src/common/basic_async_track.ts @@ -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'; diff --git a/ui/src/common/track_adapter.ts b/ui/src/common/track_adapter.ts index 8dbb089378..7514c5f5f1 100644 --- a/ui/src/common/track_adapter.ts +++ b/ui/src/common/track_adapter.ts @@ -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'; diff --git a/ui/src/frontend/base_slice_track.ts b/ui/src/frontend/base_slice_track.ts index e8a0cbf413..e5da30cd94 100644 --- a/ui/src/frontend/base_slice_track.ts +++ b/ui/src/frontend/base_slice_track.ts @@ -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'; @@ -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. diff --git a/ui/src/frontend/flow_events_renderer.ts b/ui/src/frontend/flow_events_renderer.ts index ed47282b3d..876c73d9d3 100644 --- a/ui/src/frontend/flow_events_renderer.ts +++ b/ui/src/frontend/flow_events_renderer.ts @@ -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'; diff --git a/ui/src/frontend/slice_track_base.ts b/ui/src/frontend/slice_track_base.ts index 37c2ec8e1d..ec2196da69 100644 --- a/ui/src/frontend/slice_track_base.ts +++ b/ui/src/frontend/slice_track_base.ts @@ -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; diff --git a/ui/src/frontend/track.ts b/ui/src/frontend/track.ts index f83c03f658..88565f215d 100644 --- a/ui/src/frontend/track.ts +++ b/ui/src/frontend/track.ts @@ -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'; @@ -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; diff --git a/ui/src/frontend/track_panel.ts b/ui/src/frontend/track_panel.ts index 90a593ad26..c877ad1709 100644 --- a/ui/src/frontend/track_panel.ts +++ b/ui/src/frontend/track_panel.ts @@ -22,7 +22,7 @@ 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'; @@ -30,7 +30,6 @@ 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'; diff --git a/ui/src/frontend/track_registry.ts b/ui/src/frontend/track_registry.ts deleted file mode 100644 index 92007d780f..0000000000 --- a/ui/src/frontend/track_registry.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2018 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import {Registry} from '../common/registry'; -import {TrackCreator} from './track'; - -/** - * Global registry that maps types to TrackCreator. - */ -export const trackRegistry = Registry.kindRegistry(); diff --git a/ui/src/public/index.ts b/ui/src/public/index.ts index 63750ee2bf..5671a3ad93 100644 --- a/ui/src/public/index.ts +++ b/ui/src/public/index.ts @@ -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'; @@ -164,6 +163,14 @@ export interface TrackContext { mountStore(migrate: Migrate): Store; } +export interface SliceRect { + left: number; + width: number; + top: number; + height: number; + visible: boolean; +} + export interface Track { onCreate(ctx: TrackContext): void; render(ctx: CanvasRenderingContext2D): void;