[ui] Rename various things.
PluginTrackInfo -> TrackDescriptor
Track -> TrackBase
TrackLike -> Track
TracePluginContext -> PluginContextTrace (like Vnode vs VnodeDOM)
TrackInfo -> TrackInstanceDescriptor
registerTrack() -> LEGACY_registerTrack()
registerTrackController() -> LEGACY_registerTrackController()
PluginInfo -> PluginDescriptor
TrackDescriptor.trackFactory -> TrackDescriptor.track
Change-Id: Ib267ca2a445eac010e2e87e8252aa9991dbaba90
diff --git a/ui/src/common/basic_async_track.ts b/ui/src/common/basic_async_track.ts
index 24e3f28..2faf829 100644
--- a/ui/src/common/basic_async_track.ts
+++ b/ui/src/common/basic_async_track.ts
@@ -20,7 +20,7 @@
import {PxSpan, TimeScale} from '../frontend/time_scale';
import {SliceRect} from '../frontend/track';
import {TrackButtonAttrs} from '../frontend/track_panel';
-import {TrackLike} from '../public';
+import {Track} from '../public';
import {TrackData} from './track_data';
@@ -40,7 +40,7 @@
// This provides the logic to perform data reloads at appropriate times as the
// window is panned and zoomed about.
// The extending class need only define renderCanvas() and onBoundsChange().
-export abstract class BasicAsyncTrack<Data> implements TrackLike {
+export abstract class BasicAsyncTrack<Data> implements Track {
private requestingData = false;
private queuedRequest = false;
private currentState?: TrackData;
diff --git a/ui/src/common/plugins.ts b/ui/src/common/plugins.ts
index 7278e06..13a4e10 100644
--- a/ui/src/common/plugins.ts
+++ b/ui/src/common/plugins.ts
@@ -30,14 +30,14 @@
Plugin,
PluginClass,
PluginContext,
- PluginInfo,
- PluginTrackInfo,
+ PluginContextTrace,
+ PluginDescriptor,
StatefulPlugin,
Store,
- TracePluginContext,
+ Track,
TrackContext,
- TrackInfo,
- TrackLike,
+ TrackDescriptor,
+ TrackInstanceDescriptor,
Viewer,
} from '../public';
@@ -73,13 +73,13 @@
});
}
- registerTrackController(track: TrackControllerFactory): void {
+ LEGACY_registerTrackController(track: TrackControllerFactory): void {
if (!this.alive) return;
const unregister = trackControllerRegistry.register(track);
this.trash.add(unregister);
}
- registerTrack(track: TrackCreator): void {
+ LEGACY_registerTrack(track: TrackCreator): void {
if (!this.alive) return;
const unregister = trackRegistry.register(track);
this.trash.add(unregister);
@@ -95,30 +95,30 @@
// related resources, such as the engine and the store.
// The TracePluginContext exists for the whole duration a plugin is active AND a
// trace is loaded.
-class TracePluginContextImpl<T> implements TracePluginContext<T>, Disposable {
+class TracePluginContextImpl<T> implements PluginContextTrace<T>, Disposable {
private trash = new Trash();
private alive = true;
constructor(
private ctx: PluginContext, readonly store: Store<T>,
readonly engine: EngineProxy,
- readonly trackRegistry: Map<string, PluginTrackInfo>,
- private suggestedTracks: Set<TrackInfo>,
+ readonly trackRegistry: Map<string, TrackDescriptor>,
+ private suggestedTracks: Set<TrackInstanceDescriptor>,
private commandRegistry: Map<string, Command>) {
this.trash.add(engine);
this.trash.add(store);
}
- registerTrackController(track: TrackControllerFactory): void {
+ LEGACY_registerTrackController(track: TrackControllerFactory): void {
// Silently ignore if context is dead.
if (!this.alive) return;
- this.ctx.registerTrackController(track);
+ this.ctx.LEGACY_registerTrackController(track);
}
- registerTrack(track: TrackCreator): void {
+ LEGACY_registerTrack(track: TrackCreator): void {
// Silently ignore if context is dead.
if (!this.alive) return;
- this.ctx.registerTrack(track);
+ this.ctx.LEGACY_registerTrack(track);
}
addCommand(cmd: Command): void {
@@ -143,7 +143,7 @@
// Register a new track in this context.
// All tracks registered through this method are removed when this context is
// destroyed, i.e. when the trace is unloaded.
- addTrack(trackDetails: PluginTrackInfo): void {
+ addTrack(trackDetails: TrackDescriptor): void {
// Silently ignore if context is dead.
if (!this.alive) return;
const {uri} = trackDetails;
@@ -156,7 +156,7 @@
// This is a direct replacement for findPotentialTracks().
// Note: This interface is likely to be deprecated soon, but is required while
// both plugin and original type tracks coexist.
- suggestTrack(trackInfo: TrackInfo): void {
+ suggestTrack(trackInfo: TrackInstanceDescriptor): void {
this.suggestedTracks.add(trackInfo);
this.trash.addCallback(() => this.suggestedTracks.delete(trackInfo));
}
@@ -168,7 +168,7 @@
}
// 'Static' registry of all known plugins.
-export class PluginRegistry extends Registry<PluginInfo<unknown>> {
+export class PluginRegistry extends Registry<PluginDescriptor<unknown>> {
constructor() {
super((info) => info.pluginId);
}
@@ -184,19 +184,17 @@
return typeof v === 'function' && !!(v.prototype.onActivate);
}
-function makePlugin<T>(info: PluginInfo<T>): Plugin<T> {
- const {plugin: pluginFactory} = info;
+function makePlugin<T>(info: PluginDescriptor<T>): Plugin<T> {
+ const {plugin} = info;
- if (typeof pluginFactory === 'function') {
- if (isPluginClass(pluginFactory)) {
- const PluginClass = pluginFactory;
+ if (typeof plugin === 'function') {
+ if (isPluginClass(plugin)) {
+ const PluginClass = plugin;
return new PluginClass();
} else {
- return pluginFactory();
+ return plugin();
}
} else {
- // pluginFactory is the plugin!
- const plugin = pluginFactory;
return plugin;
}
}
@@ -205,9 +203,9 @@
private registry: PluginRegistry;
private plugins: Map<string, PluginDetails<unknown>>;
private engine?: Engine;
- readonly trackRegistry = new Map<string, PluginTrackInfo>();
+ readonly trackRegistry = new Map<string, TrackDescriptor>();
readonly commandRegistry = new Map<string, Command>();
- readonly suggestedTracks = new Set<TrackInfo>();
+ readonly suggestedTracks = new Set<TrackInstanceDescriptor>();
constructor(registry: PluginRegistry) {
this.registry = registry;
@@ -265,7 +263,7 @@
return this.plugins.get(pluginId);
}
- findPotentialTracks(): TrackInfo[] {
+ findPotentialTracks(): TrackInstanceDescriptor[] {
return Array.from(this.suggestedTracks);
}
@@ -300,15 +298,15 @@
// Look up track into for a given track's URI.
// Returns |undefined| if no track can be found.
- resolveTrackInfo(uri: string): PluginTrackInfo|undefined {
+ resolveTrackInfo(uri: string): TrackDescriptor|undefined {
return this.trackRegistry.get(uri);
}
// Create a new plugin track object from its URI.
// Returns undefined if no such track is registered.
- createTrack(uri: string, trackCtx: TrackContext): TrackLike|undefined {
+ createTrack(uri: string, trackCtx: TrackContext): Track|undefined {
const trackInfo = pluginManager.trackRegistry.get(uri);
- return trackInfo && trackInfo.trackFactory(trackCtx);
+ return trackInfo && trackInfo.track(trackCtx);
}
private doPluginTraceLoad<T>(
diff --git a/ui/src/frontend/base_slice_track.ts b/ui/src/frontend/base_slice_track.ts
index f16057b..e95fb20 100644
--- a/ui/src/frontend/base_slice_track.ts
+++ b/ui/src/frontend/base_slice_track.ts
@@ -40,7 +40,7 @@
import {DEFAULT_SLICE_LAYOUT, SliceLayout} from './slice_layout';
import {constraintsToQuerySuffix} from './sql_utils';
import {PxSpan, TimeScale} from './time_scale';
-import {NewTrackArgs, SliceRect, Track} from './track';
+import {NewTrackArgs, SliceRect, TrackBase} from './track';
import {BUCKETS_PER_PIXEL, CacheKey, TrackCache} from './track_cache';
// The common class that underpins all tracks drawing slices.
@@ -179,7 +179,7 @@
export abstract class BaseSliceTrack<T extends BaseSliceTrackTypes =
BaseSliceTrackTypes> extends
- Track<T['config']> {
+ TrackBase<T['config']> {
protected sliceLayout: SliceLayout = {...DEFAULT_SLICE_LAYOUT};
// This is the over-skirted cached bounds:
diff --git a/ui/src/frontend/track.ts b/ui/src/frontend/track.ts
index 31e9c79..6ddbc51 100644
--- a/ui/src/frontend/track.ts
+++ b/ui/src/frontend/track.ts
@@ -19,7 +19,7 @@
import {EngineProxy} from '../common/engine';
import {TrackState} from '../common/state';
import {TrackData} from '../common/track_data';
-import {TrackLike} from '../public';
+import {Track} from '../public';
import {checkerboard} from './checkerboard';
import {globals} from './globals';
@@ -42,7 +42,7 @@
// 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): Track;
+ create(args: NewTrackArgs): TrackBase;
}
export interface SliceRect {
@@ -54,8 +54,8 @@
}
// The abstract class that needs to be implemented by all tracks.
-export abstract class Track<Config = {}, Data extends TrackData = TrackData>
- implements TrackLike {
+export abstract class TrackBase<Config = {}, Data extends TrackData = TrackData>
+ implements Track {
// The UI-generated track ID (not to be confused with the SQL track.id).
protected readonly trackId: string;
protected readonly engine: EngineProxy;
diff --git a/ui/src/frontend/track_group_panel.ts b/ui/src/frontend/track_group_panel.ts
index b5cc4ee..b378189 100644
--- a/ui/src/frontend/track_group_panel.ts
+++ b/ui/src/frontend/track_group_panel.ts
@@ -25,7 +25,7 @@
TrackGroupState,
TrackState,
} from '../common/state';
-import {Migrate, TrackContext, TrackLike} from '../public';
+import {Migrate, Track, TrackContext} from '../public';
import {globals} from './globals';
import {drawGridLines} from './gridline_helper';
@@ -45,7 +45,7 @@
private readonly trackGroupId: string;
private shellWidth = 0;
private backgroundColor = '#ffffff'; // Updated from CSS later.
- private summaryTrack?: TrackLike;
+ private summaryTrack?: Track;
constructor({attrs}: m.CVnode<Attrs>) {
super();
@@ -305,8 +305,7 @@
return path.split('/').slice(-1)[0];
}
-function loadTrack(trackState: TrackState, trackId: string): TrackLike|
- undefined {
+function loadTrack(trackState: TrackState, trackId: string): Track|undefined {
const engine = globals.engines.get(trackState.engineId);
if (engine === undefined) {
return undefined;
diff --git a/ui/src/frontend/track_panel.ts b/ui/src/frontend/track_panel.ts
index 202aa51..c280ced 100644
--- a/ui/src/frontend/track_panel.ts
+++ b/ui/src/frontend/track_panel.ts
@@ -24,7 +24,7 @@
import {RegistryError} from '../common/registry';
import {TrackState} from '../common/state';
import {raf} from '../core/raf_scheduler';
-import {Migrate, TrackContext, TrackLike} from '../public';
+import {Migrate, Track, TrackContext} from '../public';
import {SELECTION_FILL_COLOR, TRACK_SHELL_WIDTH} from './css_constants';
import {globals} from './globals';
@@ -101,7 +101,7 @@
}
interface TrackShellAttrs {
- track: TrackLike;
+ track: Track;
trackState: TrackState;
}
@@ -233,7 +233,7 @@
}
export interface TrackContentAttrs {
- track: TrackLike;
+ track: Track;
}
export class TrackContent implements m.ClassComponent<TrackContentAttrs> {
private mouseDownX?: number;
@@ -292,7 +292,7 @@
interface TrackComponentAttrs {
trackState: TrackState;
- track: TrackLike;
+ track: Track;
}
class TrackComponent implements m.ClassComponent<TrackComponentAttrs> {
view({attrs}: m.CVnode<TrackComponentAttrs>) {
@@ -356,7 +356,7 @@
// TODO(hjd): It would be nicer if these could not be undefined here.
// We should implement a NullTrack which can be used if the trackState
// has disappeared.
- private track: TrackLike|undefined;
+ private track: Track|undefined;
private trackState: TrackState|undefined;
private tryLoadTrack(vnode: m.CVnode<TrackPanelAttrs>) {
@@ -520,8 +520,7 @@
}
}
-function loadTrack(trackState: TrackState, trackId: string): TrackLike|
- undefined {
+function loadTrack(trackState: TrackState, trackId: string): Track|undefined {
const engine = globals.engines.get(trackState.engineId);
if (engine === undefined) {
return undefined;
diff --git a/ui/src/plugins/com.example.Skeleton/index.ts b/ui/src/plugins/com.example.Skeleton/index.ts
index 0881b5f..354cb7f 100644
--- a/ui/src/plugins/com.example.Skeleton/index.ts
+++ b/ui/src/plugins/com.example.Skeleton/index.ts
@@ -16,9 +16,9 @@
MetricVisualisation,
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
- TrackInfo,
+ PluginContextTrace,
+ PluginDescriptor,
+ TrackInstanceDescriptor,
} from '../../public';
interface State {
@@ -35,11 +35,11 @@
return {foo: 'bar'};
}
- async onTraceLoad(_: TracePluginContext<State>): Promise<void> {
+ async onTraceLoad(_: PluginContextTrace<State>): Promise<void> {
//
}
- async onTraceUnload(_: TracePluginContext<State>): Promise<void> {
+ async onTraceUnload(_: PluginContextTrace<State>): Promise<void> {
//
}
@@ -47,17 +47,17 @@
//
}
- async findPotentialTracks(_: TracePluginContext<State>):
- Promise<TrackInfo[]> {
+ async findPotentialTracks(_: PluginContextTrace<State>):
+ Promise<TrackInstanceDescriptor[]> {
return [];
}
- metricVisualisations(_: TracePluginContext<State>): MetricVisualisation[] {
+ metricVisualisations(_: PluginContextTrace<State>): MetricVisualisation[] {
return [];
}
}
-export const plugin: PluginInfo<State> = {
+export const plugin: PluginDescriptor<State> = {
// SKELETON: Update pluginId to match the directory of the plugin.
pluginId: 'com.example.Skeleton',
plugin: Skeleton,
diff --git a/ui/src/plugins/dev.perfetto.AndroidBinderViz/index.ts b/ui/src/plugins/dev.perfetto.AndroidBinderViz/index.ts
index c7e0c8c..a77b14e 100644
--- a/ui/src/plugins/dev.perfetto.AndroidBinderViz/index.ts
+++ b/ui/src/plugins/dev.perfetto.AndroidBinderViz/index.ts
@@ -16,7 +16,7 @@
MetricVisualisation,
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
const SPEC = `
@@ -50,7 +50,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.AndroidBinderVizPlugin',
plugin: AndroidBinderVizPlugin,
};
diff --git a/ui/src/plugins/dev.perfetto.AndroidCujs/index.ts b/ui/src/plugins/dev.perfetto.AndroidCujs/index.ts
index 3870cfe..8947364 100644
--- a/ui/src/plugins/dev.perfetto.AndroidCujs/index.ts
+++ b/ui/src/plugins/dev.perfetto.AndroidCujs/index.ts
@@ -15,7 +15,7 @@
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
class AndroidCujs implements Plugin {
@@ -130,7 +130,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.AndroidCujs',
plugin: AndroidCujs,
};
diff --git a/ui/src/plugins/dev.perfetto.AndroidPerf/index.ts b/ui/src/plugins/dev.perfetto.AndroidPerf/index.ts
index 17aa796..feb7080 100644
--- a/ui/src/plugins/dev.perfetto.AndroidPerf/index.ts
+++ b/ui/src/plugins/dev.perfetto.AndroidPerf/index.ts
@@ -15,7 +15,7 @@
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
class AndroidPerf implements Plugin {
@@ -60,7 +60,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.AndroidPerf',
plugin: AndroidPerf,
};
diff --git a/ui/src/plugins/dev.perfetto.CoreCommands/index.ts b/ui/src/plugins/dev.perfetto.CoreCommands/index.ts
index fedc300..5b94d08 100644
--- a/ui/src/plugins/dev.perfetto.CoreCommands/index.ts
+++ b/ui/src/plugins/dev.perfetto.CoreCommands/index.ts
@@ -15,7 +15,7 @@
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
const SQL_STATS = `
@@ -174,7 +174,7 @@
},
};
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.CoreCommands',
plugin: coreCommands,
};
diff --git a/ui/src/plugins/dev.perfetto.ExampleSimpleCommand/index.ts b/ui/src/plugins/dev.perfetto.ExampleSimpleCommand/index.ts
index 1051784..4bb6e12 100644
--- a/ui/src/plugins/dev.perfetto.ExampleSimpleCommand/index.ts
+++ b/ui/src/plugins/dev.perfetto.ExampleSimpleCommand/index.ts
@@ -15,7 +15,7 @@
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
// This is just an example plugin, used to prove that the plugin system works.
@@ -29,7 +29,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.ExampleSimpleCommand',
plugin: ExampleSimpleCommand,
};
diff --git a/ui/src/plugins/dev.perfetto.ExampleState/index.ts b/ui/src/plugins/dev.perfetto.ExampleState/index.ts
index a124f71..a18cfe2 100644
--- a/ui/src/plugins/dev.perfetto.ExampleState/index.ts
+++ b/ui/src/plugins/dev.perfetto.ExampleState/index.ts
@@ -15,8 +15,8 @@
import {
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
interface State {
@@ -39,7 +39,7 @@
//
}
- async onTraceLoad(ctx: TracePluginContext<State>): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace<State>): Promise<void> {
const {viewer, store} = ctx;
ctx.addCommand({
id: 'dev.perfetto.ExampleState#ShowCounter',
@@ -54,7 +54,7 @@
}
}
-export const plugin: PluginInfo<State> = {
+export const plugin: PluginDescriptor<State> = {
pluginId: 'dev.perfetto.ExampleState',
plugin: ExampleState,
};
diff --git a/ui/src/plugins/dev.perfetto.LargeScreensPerf/index.ts b/ui/src/plugins/dev.perfetto.LargeScreensPerf/index.ts
index 07881da..07872ed 100644
--- a/ui/src/plugins/dev.perfetto.LargeScreensPerf/index.ts
+++ b/ui/src/plugins/dev.perfetto.LargeScreensPerf/index.ts
@@ -15,7 +15,7 @@
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
} from '../../public';
class LargeScreensPerf implements Plugin {
@@ -36,7 +36,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'dev.perfetto.LargeScreensPerf',
plugin: LargeScreensPerf,
};
diff --git a/ui/src/public/index.ts b/ui/src/public/index.ts
index 8c90493..60ab2b8 100644
--- a/ui/src/public/index.ts
+++ b/ui/src/public/index.ts
@@ -154,7 +154,7 @@
// 'TrackController' and a 'Track'. In more recent versions of the UI
// the functionality of |TrackController| has been merged into Track so
// |TrackController|s are not necessary in new code.
- registerTrackController(track: TrackControllerFactory): void;
+ LEGACY_registerTrackController(track: TrackControllerFactory): void;
// Register a track factory. The core UI invokes |TrackCreator| to
// construct tracks discovered by invoking |TrackProvider|s.
@@ -164,7 +164,7 @@
// which returns GPU counter tracks. The counter track factory itself
// could be registered in dev.perfetto.CounterTrack - a whole
// different plugin.
- registerTrack(track: TrackCreator): void;
+ LEGACY_registerTrack(track: TrackCreator): void;
// Add a command.
addCommand(command: Command): void;
@@ -187,9 +187,7 @@
mountStore<State>(migrate: Migrate<State>): Store<State>;
}
-// TODO(stevegolton): Rename `Track` to `BaseTrack` (or similar) and rename this
-// interface to `Track`.
-export interface TrackLike {
+export interface Track {
onCreate(): void;
render(ctx: CanvasRenderingContext2D): void;
onFullRedraw(): void;
@@ -206,7 +204,7 @@
onDestroy(): void;
}
-export interface PluginTrackInfo {
+export interface TrackDescriptor {
// A unique identifier for the track. This must be unique within all tracks.
uri: string;
@@ -215,7 +213,7 @@
displayName: string;
// A factory function returning the track object.
- trackFactory: (ctx: TrackContext) => TrackLike;
+ track: (ctx: TrackContext) => Track;
// The track "kind" Uued by various subsystems e.g. aggregation controllers.
// This is where "XXX_TRACK_KIND" values should be placed.
@@ -269,25 +267,25 @@
// Similar to PluginContext but with additional properties to operate on the
// currently loaded trace. Passed to trace-relevant hooks instead of
// PluginContext.
-export interface TracePluginContext<T = undefined> extends PluginContext {
+export interface PluginContextTrace<T = undefined> extends PluginContext {
readonly engine: EngineProxy;
readonly store: Store<T>;
// Add a new track from this plugin. The track is just made available here,
// it's not automatically shown until it's added to a workspace.
- addTrack(trackDetails: PluginTrackInfo): void;
+ addTrack(trackDetails: TrackDescriptor): void;
// Suggest a track be added to the workspace on a fresh trace load.
// Supersedes `findPotentialTracks()` which has been removed.
// Note: this API will be deprecated soon.
- suggestTrack(trackInfo: TrackInfo): void;
+ suggestTrack(trackInfo: TrackInstanceDescriptor): void;
}
export interface BasePlugin<State> {
// Lifecycle methods.
onActivate(ctx: PluginContext): void;
- onTraceLoad?(ctx: TracePluginContext<State>): Promise<void>;
- onTraceUnload?(ctx: TracePluginContext<State>): Promise<void>;
+ onTraceLoad?(ctx: PluginContextTrace<State>): Promise<void>;
+ onTraceUnload?(ctx: PluginContextTrace<State>): Promise<void>;
onDeactivate?(ctx: PluginContext): void;
// Extension points.
@@ -320,7 +318,7 @@
new(): Plugin<T>;
}
-export interface TrackInfo {
+export interface TrackInstanceDescriptor {
// A human readable name for this specific track. It will normally be
// displayed on the left-hand-side of the track.
name: string;
@@ -361,7 +359,7 @@
// implementations.
export type PluginFactory<T> = PluginClass<T>|Plugin<T>|(() => Plugin<T>);
-export interface PluginInfo<T = undefined> {
+export interface PluginDescriptor<T = undefined> {
// A unique string for your plugin. To ensure the name is unique you
// may wish to use a URL with reversed components in the manner of
// Java package names.
diff --git a/ui/src/tracks/actual_frames/index.ts b/ui/src/tracks/actual_frames/index.ts
index 5e1d631..90de29a 100644
--- a/ui/src/tracks/actual_frames/index.ts
+++ b/ui/src/tracks/actual_frames/index.ts
@@ -17,8 +17,8 @@
import {LONG, LONG_NULL, NUM, STR} from '../../common/query_result';
import {TrackData} from '../../common/track_data';
import {TrackController} from '../../controller/track_controller';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {ChromeSliceTrack} from '../chrome_slices';
export const ACTUAL_FRAMES_SLICE_TRACK_KIND = 'ActualFramesSliceTrack';
@@ -156,19 +156,19 @@
export class ActualFramesSliceTrack extends ChromeSliceTrack {
static readonly kind = ACTUAL_FRAMES_SLICE_TRACK_KIND;
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ActualFramesSliceTrack(args);
}
}
class ActualFrames implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(ActualFramesSliceTrackController);
- ctx.registerTrack(ActualFramesSliceTrack);
+ ctx.LEGACY_registerTrackController(ActualFramesSliceTrackController);
+ ctx.LEGACY_registerTrack(ActualFramesSliceTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ActualFrames',
plugin: ActualFrames,
};
diff --git a/ui/src/tracks/android_log/index.ts b/ui/src/tracks/android_log/index.ts
index 597d334..743d665 100644
--- a/ui/src/tracks/android_log/index.ts
+++ b/ui/src/tracks/android_log/index.ts
@@ -26,8 +26,8 @@
import {
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
export const ANDROID_LOGS_TRACK_KIND = 'AndroidLogTrack';
@@ -149,7 +149,7 @@
class AndroidLog implements Plugin {
onActivate(_ctx: PluginContext): void {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
const result =
await ctx.engine.query(`select count(1) as cnt from android_logs`);
const count = result.firstRow({cnt: NUM}).cnt;
@@ -158,7 +158,7 @@
uri: 'perfetto.AndroidLog',
displayName: 'Android logs',
kind: ANDROID_LOGS_TRACK_KIND,
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<Config, Data>(
ctx.engine,
trackInstanceId,
@@ -171,7 +171,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.AndroidLog',
plugin: AndroidLog,
};
diff --git a/ui/src/tracks/annotation/index.ts b/ui/src/tracks/annotation/index.ts
index e2baabb..2c8649a 100644
--- a/ui/src/tracks/annotation/index.ts
+++ b/ui/src/tracks/annotation/index.ts
@@ -20,8 +20,8 @@
import {
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
import {
Config as CounterTrackConfig,
@@ -32,11 +32,11 @@
class AnnotationPlugin implements Plugin {
onActivate(_ctx: PluginContext): void {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
await this.addAnnotationCounterTracks(ctx);
}
- private async addAnnotationCounterTracks(ctx: TracePluginContext) {
+ private async addAnnotationCounterTracks(ctx: PluginContextTrace) {
const {engine} = ctx;
const counterResult = await engine.query(`
SELECT
@@ -76,7 +76,7 @@
tags: {
metric: true,
},
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
@@ -84,7 +84,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.Annotation',
plugin: AnnotationPlugin,
};
diff --git a/ui/src/tracks/async_slices/index.ts b/ui/src/tracks/async_slices/index.ts
index d25717f..09d0dda 100644
--- a/ui/src/tracks/async_slices/index.ts
+++ b/ui/src/tracks/async_slices/index.ts
@@ -19,8 +19,8 @@
import {
TrackController,
} from '../../controller/track_controller';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {ChromeSliceTrack} from '../chrome_slices';
export const ASYNC_SLICE_TRACK_KIND = 'AsyncSliceTrack';
@@ -134,19 +134,19 @@
export class AsyncSliceTrack extends ChromeSliceTrack {
static readonly kind = ASYNC_SLICE_TRACK_KIND;
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new AsyncSliceTrack(args);
}
}
class AsyncSlicePlugin implements Plugin {
onActivate(ctx: PluginContext) {
- ctx.registerTrackController(AsyncSliceTrackController);
- ctx.registerTrack(AsyncSliceTrack);
+ ctx.LEGACY_registerTrackController(AsyncSliceTrackController);
+ ctx.LEGACY_registerTrack(AsyncSliceTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.AsyncSlices',
plugin: AsyncSlicePlugin,
};
diff --git a/ui/src/tracks/chrome_scroll_jank/chrome_tasks_scroll_jank_track.ts b/ui/src/tracks/chrome_scroll_jank/chrome_tasks_scroll_jank_track.ts
index 60db8a0..1026328 100644
--- a/ui/src/tracks/chrome_scroll_jank/chrome_tasks_scroll_jank_track.ts
+++ b/ui/src/tracks/chrome_scroll_jank/chrome_tasks_scroll_jank_track.ts
@@ -22,10 +22,12 @@
NamedSliceTrackTypes,
} from '../../frontend/named_slice_track';
import {runQueryInNewTab} from '../../frontend/query_result_tab';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
-import {ScrollJankTracks as DecideTracksResult} from './index';
-import {ENABLE_CHROME_SCROLL_JANK_PLUGIN} from './index';
+import {
+ ENABLE_CHROME_SCROLL_JANK_PLUGIN,
+ ScrollJankTracks as DecideTracksResult,
+} from './index';
interface ChromeTasksScrollJankTrackConfig {}
@@ -36,7 +38,7 @@
export class ChromeTasksScrollJankTrack extends
NamedSliceTrack<ChromeTasksScrollJankTrackTypes> {
static readonly kind = 'org.chromium.ScrollJank.BrowserUIThreadLongTasks';
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ChromeTasksScrollJankTrack(args);
}
diff --git a/ui/src/tracks/chrome_scroll_jank/event_latency_track.ts b/ui/src/tracks/chrome_scroll_jank/event_latency_track.ts
index dd8d725..cfcaada 100644
--- a/ui/src/tracks/chrome_scroll_jank/event_latency_track.ts
+++ b/ui/src/tracks/chrome_scroll_jank/event_latency_track.ts
@@ -26,7 +26,7 @@
import {
NamedSliceTrackTypes,
} from '../../frontend/named_slice_track';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {PrimaryTrackSortKey} from '../../public';
import {
CustomSqlDetailsPanelConfig,
@@ -51,7 +51,7 @@
CustomSqlTableSliceTrack<EventLatencyTrackTypes> {
static readonly kind = 'org.chromium.ScrollJank.event_latencies';
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new EventLatencyTrack(args);
}
diff --git a/ui/src/tracks/chrome_scroll_jank/index.ts b/ui/src/tracks/chrome_scroll_jank/index.ts
index 963a2b1..592d9a5 100644
--- a/ui/src/tracks/chrome_scroll_jank/index.ts
+++ b/ui/src/tracks/chrome_scroll_jank/index.ts
@@ -16,7 +16,7 @@
import {Engine} from '../../common/engine';
import {featureFlags} from '../../common/feature_flags';
import {ObjectById} from '../../common/state';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {CustomSqlDetailsPanelConfig} from '../custom_sql_table_slices';
import {ChromeTasksScrollJankTrack} from './chrome_tasks_scroll_jank_track';
@@ -129,14 +129,14 @@
class ChromeScrollJankPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(ChromeTasksScrollJankTrack);
- ctx.registerTrack(EventLatencyTrack);
- ctx.registerTrack(ScrollJankV3Track);
- ctx.registerTrack(TopLevelScrollTrack);
+ ctx.LEGACY_registerTrack(ChromeTasksScrollJankTrack);
+ ctx.LEGACY_registerTrack(EventLatencyTrack);
+ ctx.LEGACY_registerTrack(ScrollJankV3Track);
+ ctx.LEGACY_registerTrack(TopLevelScrollTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ChromeScrollJank',
plugin: ChromeScrollJankPlugin,
};
diff --git a/ui/src/tracks/chrome_scroll_jank/scroll_jank_v3_track.ts b/ui/src/tracks/chrome_scroll_jank/scroll_jank_v3_track.ts
index 8ef8fac..f1db56e 100644
--- a/ui/src/tracks/chrome_scroll_jank/scroll_jank_v3_track.ts
+++ b/ui/src/tracks/chrome_scroll_jank/scroll_jank_v3_track.ts
@@ -23,7 +23,7 @@
} from '../../common/state';
import {globals} from '../../frontend/globals';
import {NamedSliceTrackTypes} from '../../frontend/named_slice_track';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {PrimaryTrackSortKey} from '../../public';
import {
CustomSqlDetailsPanelConfig,
@@ -48,7 +48,7 @@
CustomSqlTableSliceTrack<NamedSliceTrackTypes> {
static readonly kind = 'org.chromium.ScrollJank.scroll_jank_v3_track';
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ScrollJankV3Track(args);
}
diff --git a/ui/src/tracks/chrome_scroll_jank/scroll_track.ts b/ui/src/tracks/chrome_scroll_jank/scroll_track.ts
index b02a82a..97ccc4a 100644
--- a/ui/src/tracks/chrome_scroll_jank/scroll_track.ts
+++ b/ui/src/tracks/chrome_scroll_jank/scroll_track.ts
@@ -17,7 +17,7 @@
import {Engine} from '../../common/engine';
import {SCROLLING_TRACK_GROUP} from '../../common/state';
import {NamedSliceTrackTypes} from '../../frontend/named_slice_track';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {PrimaryTrackSortKey} from '../../public';
import {
CustomSqlDetailsPanelConfig,
@@ -37,7 +37,7 @@
CustomSqlTableSliceTrack<NamedSliceTrackTypes> {
static readonly kind = 'org.chromium.TopLevelScrolls.scrolls';
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new TopLevelScrollTrack(args);
}
diff --git a/ui/src/tracks/chrome_slices/index.ts b/ui/src/tracks/chrome_slices/index.ts
index 875a7bf..28efb24 100644
--- a/ui/src/tracks/chrome_slices/index.ts
+++ b/ui/src/tracks/chrome_slices/index.ts
@@ -28,8 +28,8 @@
import {globals} from '../../frontend/globals';
import {cachedHsluvToHex} from '../../frontend/hsluv_cache';
import {PxSpan, TimeScale} from '../../frontend/time_scale';
-import {NewTrackArgs, SliceRect, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, SliceRect, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const SLICE_TRACK_KIND = 'ChromeSliceTrack';
const SLICE_HEIGHT = 18;
@@ -159,9 +159,9 @@
}
}
-export class ChromeSliceTrack extends Track<Config, Data> {
+export class ChromeSliceTrack extends TrackBase<Config, Data> {
static readonly kind: string = SLICE_TRACK_KIND;
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ChromeSliceTrack(args);
}
@@ -439,12 +439,12 @@
class ChromeSlicesPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(ChromeSliceTrackController);
- ctx.registerTrack(ChromeSliceTrack);
+ ctx.LEGACY_registerTrackController(ChromeSliceTrackController);
+ ctx.LEGACY_registerTrack(ChromeSliceTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ChromeSlices',
plugin: ChromeSlicesPlugin,
};
diff --git a/ui/src/tracks/counter/index.ts b/ui/src/tracks/counter/index.ts
index 69122ad..1fbc53f 100644
--- a/ui/src/tracks/counter/index.ts
+++ b/ui/src/tracks/counter/index.ts
@@ -35,11 +35,11 @@
NUM,
Plugin,
PluginContext,
- PluginInfo,
+ PluginContextTrace,
+ PluginDescriptor,
PrimaryTrackSortKey,
Store,
STR,
- TracePluginContext,
TrackContext,
} from '../../public';
import {getTrackName} from '../../public/utils';
@@ -618,7 +618,7 @@
class CounterPlugin implements Plugin {
onActivate(_ctx: PluginContext): void {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
await this.addCounterTracks(ctx);
await this.addGpuFrequencyTracks(ctx);
await this.addCpuFreqLimitCounterTracks(ctx);
@@ -627,7 +627,7 @@
await this.addProcessCounterTracks(ctx);
}
- private async addCounterTracks(ctx: TracePluginContext) {
+ private async addCounterTracks(ctx: PluginContextTrace) {
const counters = await this.getCounterNames(ctx.engine);
for (const {trackId, name} of counters) {
const config:
@@ -638,7 +638,7 @@
displayName: name,
kind: COUNTER_TRACK_KIND,
trackIds: [trackId],
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
@@ -681,7 +681,7 @@
return tracks;
}
- private async addGpuFrequencyTracks(ctx: TracePluginContext) {
+ private async addGpuFrequencyTracks(ctx: PluginContextTrace) {
const engine = ctx.engine;
const numGpus = await engine.getNumberOfGpus();
const maxGpuFreqResult = await engine.query(`
@@ -717,7 +717,7 @@
displayName: name,
kind: COUNTER_TRACK_KIND,
trackIds: [trackId],
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
@@ -725,7 +725,7 @@
}
}
- async addCpuFreqLimitCounterTracks(ctx: TracePluginContext): Promise<void> {
+ async addCpuFreqLimitCounterTracks(ctx: PluginContextTrace): Promise<void> {
const cpuFreqLimitCounterTracksSql = `
select name, id
from cpu_counter_track
@@ -736,7 +736,7 @@
this.addCpuCounterTracks(ctx, cpuFreqLimitCounterTracksSql);
}
- async addCpuPerfCounterTracks(ctx: TracePluginContext): Promise<void> {
+ async addCpuPerfCounterTracks(ctx: PluginContextTrace): Promise<void> {
// Perf counter tracks are bound to CPUs, follow the scheduling and
// frequency track naming convention ("Cpu N ...").
// Note: we might not have a track for a given cpu if no data was seen from
@@ -751,7 +751,7 @@
this.addCpuCounterTracks(ctx, addCpuPerfCounterTracksSql);
}
- async addCpuCounterTracks(ctx: TracePluginContext, sql: string):
+ async addCpuCounterTracks(ctx: PluginContextTrace, sql: string):
Promise<void> {
const result = await ctx.engine.query(sql);
@@ -773,14 +773,14 @@
displayName: name,
kind: COUNTER_TRACK_KIND,
trackIds: [trackId],
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
}
}
- async addThreadCounterTracks(ctx: TracePluginContext): Promise<void> {
+ async addThreadCounterTracks(ctx: PluginContextTrace): Promise<void> {
const result = await ctx.engine.query(`
select
thread_counter_track.name as trackName,
@@ -836,14 +836,14 @@
displayName: name,
kind,
trackIds: [trackId],
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
}
}
- async addProcessCounterTracks(ctx: TracePluginContext): Promise<void> {
+ async addProcessCounterTracks(ctx: PluginContextTrace): Promise<void> {
const result = await ctx.engine.query(`
select
process_counter_track.id as trackId,
@@ -893,7 +893,7 @@
displayName: name,
kind: COUNTER_TRACK_KIND,
trackIds: [trackId],
- trackFactory: (trackCtx) => {
+ track: (trackCtx) => {
return new CounterTrack(trackCtx, config, ctx.engine);
},
});
@@ -901,7 +901,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.Counter',
plugin: CounterPlugin,
};
diff --git a/ui/src/tracks/cpu_freq/index.ts b/ui/src/tracks/cpu_freq/index.ts
index 5b182be..35faefc 100644
--- a/ui/src/tracks/cpu_freq/index.ts
+++ b/ui/src/tracks/cpu_freq/index.ts
@@ -38,8 +38,8 @@
import {
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
@@ -492,7 +492,7 @@
class CpuFreq implements Plugin {
onActivate(_ctx: PluginContext): void {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
const {engine} = ctx;
const cpus = await engine.getCpus();
@@ -538,7 +538,7 @@
displayName: `Cpu ${cpu} Frequency`,
kind: CPU_FREQ_TRACK_KIND,
cpu,
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<Config, Data>(
engine,
trackInstanceId,
@@ -557,7 +557,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.CpuFreq',
plugin: CpuFreq,
};
diff --git a/ui/src/tracks/cpu_profile/index.ts b/ui/src/tracks/cpu_profile/index.ts
index 7045ac0..616e9a2 100644
--- a/ui/src/tracks/cpu_profile/index.ts
+++ b/ui/src/tracks/cpu_profile/index.ts
@@ -25,8 +25,8 @@
import {globals} from '../../frontend/globals';
import {cachedHsluvToHex} from '../../frontend/hsluv_cache';
import {TimeScale} from '../../frontend/time_scale';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
const BAR_HEIGHT = 3;
const MARGIN_TOP = 4.5;
@@ -85,7 +85,7 @@
return cachedHsluvToHex(hue, saturation, lightness);
}
-class CpuProfileTrack extends Track<Config, Data> {
+class CpuProfileTrack extends TrackBase<Config, Data> {
static readonly kind = CPU_PROFILE_TRACK_KIND;
static create(args: NewTrackArgs): CpuProfileTrack {
return new CpuProfileTrack(args);
@@ -246,12 +246,12 @@
class CpuProfile implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(CpuProfileTrackController);
- ctx.registerTrack(CpuProfileTrack);
+ ctx.LEGACY_registerTrackController(CpuProfileTrackController);
+ ctx.LEGACY_registerTrack(CpuProfileTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.CpuProfile',
plugin: CpuProfile,
};
diff --git a/ui/src/tracks/cpu_slices/index.ts b/ui/src/tracks/cpu_slices/index.ts
index 1d8693c..c2de3f6 100644
--- a/ui/src/tracks/cpu_slices/index.ts
+++ b/ui/src/tracks/cpu_slices/index.ts
@@ -39,8 +39,8 @@
EngineProxy,
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
export const CPU_SLICE_TRACK_KIND = 'CpuSliceTrack';
@@ -472,7 +472,7 @@
// No-op
}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
const cpus = await ctx.engine.getCpus();
const cpuToSize = await this.guessCpuSizes(ctx.engine);
@@ -486,7 +486,7 @@
displayName: name,
kind: CPU_SLICE_TRACK_KIND,
cpu,
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<Config, Data>(
ctx.engine,
trackInstanceId,
@@ -523,7 +523,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.CpuSlices',
plugin: CpuSlices,
};
diff --git a/ui/src/tracks/custom_sql_table_slices/index.ts b/ui/src/tracks/custom_sql_table_slices/index.ts
index e371bff..8ffe388 100644
--- a/ui/src/tracks/custom_sql_table_slices/index.ts
+++ b/ui/src/tracks/custom_sql_table_slices/index.ts
@@ -27,7 +27,7 @@
NamedSliceTrackTypes,
} from '../../frontend/named_slice_track';
import {NewTrackArgs} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export interface CustomSqlTableDefConfig {
// Table name
@@ -109,7 +109,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.CustomSqlTrack',
plugin: CustomSqlTrackPlugin,
};
diff --git a/ui/src/tracks/debug/index.ts b/ui/src/tracks/debug/index.ts
index b3195e1..78c12e7 100644
--- a/ui/src/tracks/debug/index.ts
+++ b/ui/src/tracks/debug/index.ts
@@ -12,17 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {DebugTrackV2} from './slice_track';
class DebugTrackPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(DebugTrackV2);
+ ctx.LEGACY_registerTrack(DebugTrackV2);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.DebugSlices',
plugin: DebugTrackPlugin,
};
diff --git a/ui/src/tracks/expected_frames/index.ts b/ui/src/tracks/expected_frames/index.ts
index dce354c..b30d31e 100644
--- a/ui/src/tracks/expected_frames/index.ts
+++ b/ui/src/tracks/expected_frames/index.ts
@@ -16,7 +16,7 @@
export const EXPECTED_FRAMES_SLICE_TRACK_KIND = 'ExpectedFramesSliceTrack';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {ChromeSliceTrack} from '../chrome_slices';
import {LONG, LONG_NULL, NUM, STR} from '../../common/query_result';
@@ -24,7 +24,7 @@
import {
TrackController,
} from '../../controller/track_controller';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {BigintMath as BIMath} from '../../base/bigint_math';
export interface Config {
@@ -142,19 +142,19 @@
export class ExpectedFramesSliceTrack extends ChromeSliceTrack {
static readonly kind = EXPECTED_FRAMES_SLICE_TRACK_KIND;
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ExpectedFramesSliceTrack(args);
}
}
class ExpectedFramesPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(ExpectedFramesSliceTrackController);
- ctx.registerTrack(ExpectedFramesSliceTrack);
+ ctx.LEGACY_registerTrackController(ExpectedFramesSliceTrackController);
+ ctx.LEGACY_registerTrack(ExpectedFramesSliceTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ExpectedFrames',
plugin: ExpectedFramesPlugin,
};
diff --git a/ui/src/tracks/ftrace/index.ts b/ui/src/tracks/ftrace/index.ts
index 54cc44f..f2ad696 100644
--- a/ui/src/tracks/ftrace/index.ts
+++ b/ui/src/tracks/ftrace/index.ts
@@ -23,8 +23,8 @@
EngineProxy,
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
export const FTRACE_RAW_TRACK_KIND = 'FtraceRawTrack';
@@ -139,7 +139,7 @@
class FtraceRawPlugin implements Plugin {
onActivate(_: PluginContext) {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
const cpus = await this.lookupCpuCores(ctx.engine);
for (const cpuNum of cpus) {
const uri = `perfetto.FtraceRaw#cpu${cpuNum}`;
@@ -149,7 +149,7 @@
displayName: `Ftrace Track for CPU ${cpuNum}`,
kind: FTRACE_RAW_TRACK_KIND,
cpu: cpuNum,
- trackFactory: () => {
+ track: () => {
return new FtraceRawTrack(ctx.engine, cpuNum);
},
});
@@ -172,7 +172,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.FtraceRaw',
plugin: FtraceRawPlugin,
};
diff --git a/ui/src/tracks/generic_slice_track/index.ts b/ui/src/tracks/generic_slice_track/index.ts
index c467254..6053621 100644
--- a/ui/src/tracks/generic_slice_track/index.ts
+++ b/ui/src/tracks/generic_slice_track/index.ts
@@ -17,7 +17,7 @@
NamedSliceTrackTypes,
} from '../../frontend/named_slice_track';
import {NewTrackArgs} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export interface GenericSliceTrackConfig {
sqlTrackId: number;
@@ -47,11 +47,11 @@
class GenericSliceTrackPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(GenericSliceTrack);
+ ctx.LEGACY_registerTrack(GenericSliceTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.GenericSliceTrack',
plugin: GenericSliceTrackPlugin,
};
diff --git a/ui/src/tracks/heap_profile/index.ts b/ui/src/tracks/heap_profile/index.ts
index 08018ce..38b19e7 100644
--- a/ui/src/tracks/heap_profile/index.ts
+++ b/ui/src/tracks/heap_profile/index.ts
@@ -23,8 +23,8 @@
import {FLAMEGRAPH_HOVERED_COLOR} from '../../frontend/flamegraph';
import {globals} from '../../frontend/globals';
import {TimeScale} from '../../frontend/time_scale';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const HEAP_PROFILE_TRACK_KIND = 'HeapProfileTrack';
@@ -88,7 +88,7 @@
const MARGIN_TOP = 4.5;
const RECT_HEIGHT = 30.5;
-class HeapProfileTrack extends Track<Config, Data> {
+class HeapProfileTrack extends TrackBase<Config, Data> {
static readonly kind = HEAP_PROFILE_TRACK_KIND;
static create(args: NewTrackArgs): HeapProfileTrack {
return new HeapProfileTrack(args);
@@ -217,12 +217,12 @@
class HeapProfilePlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(HeapProfileTrackController);
- ctx.registerTrack(HeapProfileTrack);
+ ctx.LEGACY_registerTrackController(HeapProfileTrackController);
+ ctx.LEGACY_registerTrack(HeapProfileTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.HeapProfile',
plugin: HeapProfilePlugin,
};
diff --git a/ui/src/tracks/null_track/index.ts b/ui/src/tracks/null_track/index.ts
index 1ff53a4..a007185 100644
--- a/ui/src/tracks/null_track/index.ts
+++ b/ui/src/tracks/null_track/index.ts
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const NULL_TRACK_KIND = 'NullTrack';
-export class NullTrack extends Track {
+export class NullTrack extends TrackBase {
static readonly kind = NULL_TRACK_KIND;
constructor(args: NewTrackArgs) {
super(args);
@@ -37,11 +37,11 @@
class NullTrackPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(NullTrack);
+ ctx.LEGACY_registerTrack(NullTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.NullTrack',
plugin: NullTrackPlugin,
};
diff --git a/ui/src/tracks/perf_samples_profile/index.ts b/ui/src/tracks/perf_samples_profile/index.ts
index ff836ad..b6e624a 100644
--- a/ui/src/tracks/perf_samples_profile/index.ts
+++ b/ui/src/tracks/perf_samples_profile/index.ts
@@ -22,8 +22,8 @@
import {FLAMEGRAPH_HOVERED_COLOR} from '../../frontend/flamegraph';
import {globals} from '../../frontend/globals';
import {TimeScale} from '../../frontend/time_scale';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const PERF_SAMPLES_PROFILE_TRACK_KIND = 'PerfSamplesProfileTrack';
@@ -77,7 +77,7 @@
const MARGIN_TOP = 4.5;
const RECT_HEIGHT = 30.5;
-class PerfSamplesProfileTrack extends Track<Config, Data> {
+class PerfSamplesProfileTrack extends TrackBase<Config, Data> {
static readonly kind = PERF_SAMPLES_PROFILE_TRACK_KIND;
static create(args: NewTrackArgs): PerfSamplesProfileTrack {
return new PerfSamplesProfileTrack(args);
@@ -210,12 +210,12 @@
class PerfSamplesProfilePlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(PerfSamplesProfileTrackController);
- ctx.registerTrack(PerfSamplesProfileTrack);
+ ctx.LEGACY_registerTrackController(PerfSamplesProfileTrackController);
+ ctx.LEGACY_registerTrack(PerfSamplesProfileTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.PerfSamplesProfile',
plugin: PerfSamplesProfilePlugin,
};
diff --git a/ui/src/tracks/process_summary/index.ts b/ui/src/tracks/process_summary/index.ts
index 154ead0..24cae70 100644
--- a/ui/src/tracks/process_summary/index.ts
+++ b/ui/src/tracks/process_summary/index.ts
@@ -24,8 +24,8 @@
import {
Plugin,
PluginContext,
- PluginInfo,
- TracePluginContext,
+ PluginContextTrace,
+ PluginDescriptor,
} from '../../public';
import {
@@ -50,12 +50,12 @@
onActivate(_ctx: PluginContext): void {}
- async onTraceLoad(ctx: TracePluginContext): Promise<void> {
+ async onTraceLoad(ctx: PluginContextTrace): Promise<void> {
await this.addProcessTrackGroups(ctx);
await this.addKernelThreadSummary(ctx);
}
- private async addProcessTrackGroups(ctx: TracePluginContext): Promise<void> {
+ private async addProcessTrackGroups(ctx: PluginContextTrace): Promise<void> {
this.upidToUuid.clear();
this.utidToUuid.clear();
@@ -224,7 +224,7 @@
tags: {
isDebuggable,
},
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<
ProcessSchedulingTrackConfig,
ProcessSchedulingTrackData>(
@@ -249,7 +249,7 @@
tags: {
isDebuggable,
},
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<
ProcessSummaryTrackConfig,
ProcessSummaryTrackData>(
@@ -265,7 +265,7 @@
}
}
- private async addKernelThreadSummary(ctx: TracePluginContext): Promise<void> {
+ private async addKernelThreadSummary(ctx: PluginContextTrace): Promise<void> {
const {engine} = ctx;
// Identify kernel threads if this is a linux system trace, and sufficient
@@ -314,7 +314,7 @@
uri: 'perfetto.ProcessSummary#kernel',
displayName: `Kernel thread summary`,
kind: PROCESS_SUMMARY_TRACK,
- trackFactory: ({trackInstanceId}) => {
+ track: ({trackInstanceId}) => {
return new TrackWithControllerAdapter<
ProcessSummaryTrackConfig,
ProcessSummaryTrackData>(
@@ -346,7 +346,7 @@
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ProcessSummary',
plugin: ProcessSummaryPlugin,
};
diff --git a/ui/src/tracks/screenshots/index.ts b/ui/src/tracks/screenshots/index.ts
index eaf2998..cc85c16 100644
--- a/ui/src/tracks/screenshots/index.ts
+++ b/ui/src/tracks/screenshots/index.ts
@@ -19,11 +19,11 @@
import {
NamedSliceTrackTypes,
} from '../../frontend/named_slice_track';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {
Plugin,
PluginContext,
- PluginInfo,
+ PluginDescriptor,
PrimaryTrackSortKey,
} from '../../public';
import {
@@ -40,7 +40,7 @@
class ScreenshotsTrack extends CustomSqlTableSliceTrack<NamedSliceTrackTypes> {
static readonly kind = 'dev.perfetto.ScreenshotsTrack';
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new ScreenshotsTrack(args);
}
@@ -88,11 +88,11 @@
class ScreenshotsPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(ScreenshotsTrack);
+ ctx.LEGACY_registerTrack(ScreenshotsTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.Screenshots',
plugin: ScreenshotsPlugin,
};
diff --git a/ui/src/tracks/thread_state/index.ts b/ui/src/tracks/thread_state/index.ts
index b684e6c..807f8f9 100644
--- a/ui/src/tracks/thread_state/index.ts
+++ b/ui/src/tracks/thread_state/index.ts
@@ -25,8 +25,8 @@
import {TrackController} from '../../controller/track_controller';
import {checkerboardExcept} from '../../frontend/checkerboard';
import {globals} from '../../frontend/globals';
-import {NewTrackArgs, Track} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const THREAD_STATE_TRACK_KIND = 'ThreadStateTrack';
@@ -162,7 +162,7 @@
const RECT_HEIGHT = 12;
const EXCESS_WIDTH = 10;
-class ThreadStateTrack extends Track<Config, Data> {
+class ThreadStateTrack extends TrackBase<Config, Data> {
static readonly kind = THREAD_STATE_TRACK_KIND;
static create(args: NewTrackArgs): ThreadStateTrack {
return new ThreadStateTrack(args);
@@ -285,12 +285,12 @@
class ThreadState implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(ThreadStateTrack);
- ctx.registerTrackController(ThreadStateTrackController);
+ ctx.LEGACY_registerTrack(ThreadStateTrack);
+ ctx.LEGACY_registerTrackController(ThreadStateTrackController);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ThreadState',
plugin: ThreadState,
};
diff --git a/ui/src/tracks/thread_state_v2/index.ts b/ui/src/tracks/thread_state_v2/index.ts
index ce78b78..9c465b6 100644
--- a/ui/src/tracks/thread_state_v2/index.ts
+++ b/ui/src/tracks/thread_state_v2/index.ts
@@ -29,7 +29,7 @@
SliceLayout,
} from '../../frontend/slice_layout';
import {NewTrackArgs} from '../../frontend/track';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
export const THREAD_STATE_ROW = {
...BASE_SLICE_ROW,
@@ -126,11 +126,11 @@
class ThreadStateTrackV2 implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrack(ThreadStateTrack);
+ ctx.LEGACY_registerTrack(ThreadStateTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.ThreadStateTrackV2',
plugin: ThreadStateTrackV2,
};
diff --git a/ui/src/tracks/visualised_args/index.ts b/ui/src/tracks/visualised_args/index.ts
index abee625..3385bf9 100644
--- a/ui/src/tracks/visualised_args/index.ts
+++ b/ui/src/tracks/visualised_args/index.ts
@@ -16,9 +16,9 @@
import {Actions} from '../../common/actions';
import {globals} from '../../frontend/globals';
-import {NewTrackArgs, Track} from '../../frontend/track';
+import {NewTrackArgs, TrackBase} from '../../frontend/track';
import {TrackButton, TrackButtonAttrs} from '../../frontend/track_panel';
-import {Plugin, PluginContext, PluginInfo} from '../../public';
+import {Plugin, PluginContext, PluginDescriptor} from '../../public';
import {
ChromeSliceTrack,
ChromeSliceTrackController,
@@ -41,7 +41,7 @@
export class VisualisedArgsTrack extends ChromeSliceTrack {
static readonly kind = VISUALISED_ARGS_SLICE_TRACK_KIND;
- static create(args: NewTrackArgs): Track {
+ static create(args: NewTrackArgs): TrackBase {
return new VisualisedArgsTrack(args);
}
@@ -67,12 +67,12 @@
class VisualisedArgsPlugin implements Plugin {
onActivate(ctx: PluginContext): void {
- ctx.registerTrackController(VisualisedArgsTrackController);
- ctx.registerTrack(VisualisedArgsTrack);
+ ctx.LEGACY_registerTrackController(VisualisedArgsTrackController);
+ ctx.LEGACY_registerTrack(VisualisedArgsTrack);
}
}
-export const plugin: PluginInfo = {
+export const plugin: PluginDescriptor = {
pluginId: 'perfetto.VisualisedArgs',
plugin: VisualisedArgsPlugin,
};