diff options
author | Hector Dearman <hjd@google.com> | 2023-07-04 09:25:02 +0100 |
---|---|---|
committer | Hector Dearman <hjd@google.com> | 2023-07-04 14:51:56 +0000 |
commit | f2b9f8869c63ede7ad40bc69f81f02aceedf1f36 (patch) | |
tree | fdb930c4e51d5d7d1549facb662d0488adc34bb4 | |
parent | ba396db0bbe857326832e35d5c91fb5e520f5d28 (diff) | |
download | perfetto-f2b9f8869c63ede7ad40bc69f81f02aceedf1f36.tar.gz |
ui: Move plugins_api.ts to a new public/ directory
We want to enforce that plugins use a narrow API,
this makes it:
- easier to write plugins (everything you need is in one place)
- easier to maintain plugins (since the API to support is narrow)
- possible to deal with plugins which crash etc.
As a start for this move plugins_api.ts to a new public/
directory where the plugins API will live.
In concrete terms we want to get to a point where:
- core/ does not depend on plugins/
- plugins/ does not depend *directly* on core/
but may depend indirectly on core/ via public/
See also go/perfetto-ui-roadmap > 'Code layout'.
Change-Id: I5937dbf875327a874c590dcaf16cda9070edb3d5
27 files changed, 46 insertions, 53 deletions
diff --git a/python/tools/check_imports.py b/python/tools/check_imports.py index 5c921f91b..b4a1a32ee 100755 --- a/python/tools/check_imports.py +++ b/python/tools/check_imports.py @@ -117,12 +117,12 @@ RULES = [ NoDirectDep( r'/plugins/.*', r'/core/.*', - 'instead plugins should depend on the API exposed at ui/src/api.', + 'instead plugins should depend on the API exposed at ui/src/public.', ), #NoDirectDep( # r'/tracks/.*', # r'/core/.*', - # 'instead tracks should depend on the API exposed at ui/src/api.', + # 'instead tracks should depend on the API exposed at ui/src/public.', #), NoDep( r'/core/.*', diff --git a/ui/src/common/plugins.ts b/ui/src/common/plugins.ts index 5a362c792..ba45aac92 100644 --- a/ui/src/common/plugins.ts +++ b/ui/src/common/plugins.ts @@ -21,15 +21,15 @@ import { import {Store} from '../frontend/store'; import {TrackCreator} from '../frontend/track'; import {trackRegistry} from '../frontend/track_registry'; - -import {Engine} from './engine'; import { EngineProxy, PluginContext, PluginInfo, TrackInfo, TrackProvider, -} from './plugin_api'; +} from '../public'; + +import {Engine} from './engine'; import {Registry} from './registry'; import {State} from './state'; diff --git a/ui/src/common/plugins_unittest.ts b/ui/src/common/plugins_unittest.ts index 1922bb7ad..03aca4f8d 100644 --- a/ui/src/common/plugins_unittest.ts +++ b/ui/src/common/plugins_unittest.ts @@ -12,7 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {PluginContext} from './plugin_api'; +import {PluginContext} from '../public'; + import {PluginManager, PluginRegistry} from './plugins'; test('can activate plugin', () => { diff --git a/ui/src/plugins/dev.perfetto.ExamplePlugin/index.ts b/ui/src/plugins/dev.perfetto.ExamplePlugin/index.ts index 3305a90f6..09400e504 100644 --- a/ui/src/plugins/dev.perfetto.ExamplePlugin/index.ts +++ b/ui/src/plugins/dev.perfetto.ExamplePlugin/index.ts @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {EngineProxy, PluginContext} from '../../common/plugin_api'; import {TracePlugin} from '../../common/plugins'; import {Store} from '../../frontend/store'; +import {EngineProxy, PluginContext} from '../../public'; interface ExampleState { counter: number; diff --git a/ui/src/common/plugin_api.ts b/ui/src/public/index.ts index 53e09a2e1..fc1040571 100644 --- a/ui/src/common/plugin_api.ts +++ b/ui/src/public/index.ts @@ -13,11 +13,10 @@ // limitations under the License. import {EngineProxy} from '../common/engine'; +import {TracePluginFactory} from '../common/plugins'; import {TrackControllerFactory} from '../controller/track_controller'; import {TrackCreator} from '../frontend/track'; -import {TracePluginFactory} from './plugins'; - export {EngineProxy} from '../common/engine'; export { LONG, diff --git a/ui/src/tracks/actual_frames/index.ts b/ui/src/tracks/actual_frames/index.ts index d01abc1fc..dc1d84d45 100644 --- a/ui/src/tracks/actual_frames/index.ts +++ b/ui/src/tracks/actual_frames/index.ts @@ -13,12 +13,12 @@ // limitations under the License. import {BigintMath as BIMath} from '../../base/bigint_math'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, LONG_NULL, NUM, STR} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; import {TrackController} from '../../controller/track_controller'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; import {ChromeSliceTrack} from '../chrome_slices'; export const ACTUAL_FRAMES_SLICE_TRACK_KIND = 'ActualFramesSliceTrack'; diff --git a/ui/src/tracks/android_log/index.ts b/ui/src/tracks/android_log/index.ts index 30d69136d..83c7befe1 100644 --- a/ui/src/tracks/android_log/index.ts +++ b/ui/src/tracks/android_log/index.ts @@ -12,17 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {PluginContext} from '../../common/plugin_api'; import {LONG, NUM} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; -import {TrackData} from '../../common/track_data'; -import {LIMIT} from '../../common/track_data'; +import {LIMIT, TrackData} from '../../common/track_data'; import { TrackController, } from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const ANDROID_LOGS_TRACK_KIND = 'AndroidLogTrack'; diff --git a/ui/src/tracks/async_slices/index.ts b/ui/src/tracks/async_slices/index.ts index c84e2b929..bd98980cf 100644 --- a/ui/src/tracks/async_slices/index.ts +++ b/ui/src/tracks/async_slices/index.ts @@ -13,7 +13,6 @@ // limitations under the License. import {BigintMath as BIMath} from '../../base/bigint_math'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, LONG_NULL, NUM, STR} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; @@ -21,6 +20,7 @@ import { TrackController, } from '../../controller/track_controller'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; import {ChromeSliceTrack} from '../chrome_slices'; export const ASYNC_SLICE_TRACK_KIND = 'AsyncSliceTrack'; diff --git a/ui/src/tracks/chrome_scroll_jank/index.ts b/ui/src/tracks/chrome_scroll_jank/index.ts index 9147972ce..b6c816d82 100644 --- a/ui/src/tracks/chrome_scroll_jank/index.ts +++ b/ui/src/tracks/chrome_scroll_jank/index.ts @@ -17,8 +17,9 @@ import {Engine} from '../../common/engine'; import {featureFlags} from '../../common/feature_flags'; import { PluginContext, -} from '../../common/plugin_api'; +} from '../../public'; +import {ChromeTasksScrollJankTrack} from './chrome_tasks_scroll_jank_track'; import {addLatencyTracks, EventLatencyTrack} from './event_latency_track'; import {TopLevelScrollTrack} from './scroll_track'; import {addTopLevelJankTrack, TopLevelJankTrack} from './top_level_jank_track'; @@ -26,7 +27,6 @@ import { addJankyLatenciesTrack, TopLevelEventLatencyTrack, } from './top_level_janky_event_latencies_track'; -import {ChromeTasksScrollJankTrack} from './chrome_tasks_scroll_jank_track'; export {Data} from '../chrome_slices'; diff --git a/ui/src/tracks/chrome_slices/index.ts b/ui/src/tracks/chrome_slices/index.ts index d09a5526b..a9f068e00 100644 --- a/ui/src/tracks/chrome_slices/index.ts +++ b/ui/src/tracks/chrome_slices/index.ts @@ -17,7 +17,6 @@ import {Actions} from '../../common/actions'; import {cropText, drawIncompleteSlice} from '../../common/canvas_utils'; import {colorForThreadIdleSlice, hslForSlice} from '../../common/colorizer'; import {HighPrecisionTime} from '../../common/high_precision_time'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, LONG_NULL, NUM, STR} from '../../common/query_result'; import {Span, TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; @@ -27,6 +26,7 @@ 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 {PluginContext} from '../../public'; export const SLICE_TRACK_KIND = 'ChromeSliceTrack'; const SLICE_HEIGHT = 18; diff --git a/ui/src/tracks/counter/index.ts b/ui/src/tracks/counter/index.ts index 966404cf9..d51075d12 100644 --- a/ui/src/tracks/counter/index.ts +++ b/ui/src/tracks/counter/index.ts @@ -17,15 +17,6 @@ import m from 'mithril'; import {searchSegment} from '../../base/binary_search'; import {assertTrue} from '../../base/logging'; import {Actions} from '../../common/actions'; -import { - EngineProxy, - LONG, - LONG_NULL, - NUM, - PluginContext, - STR, - TrackInfo, -} from '../../common/plugin_api'; import {TPDuration, TPTime, tpTimeToSeconds} from '../../common/time'; import {TrackData} from '../../common/track_data'; import {TrackController} from '../../controller/track_controller'; @@ -34,6 +25,15 @@ import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; import {Button} from '../../frontend/widgets/button'; import {MenuItem, PopupMenu2} from '../../frontend/widgets/menu'; +import { + EngineProxy, + LONG, + LONG_NULL, + NUM, + PluginContext, + STR, + TrackInfo, +} from '../../public'; export const COUNTER_TRACK_KIND = 'CounterTrack'; diff --git a/ui/src/tracks/cpu_freq/index.ts b/ui/src/tracks/cpu_freq/index.ts index eec39e41c..e097acacd 100644 --- a/ui/src/tracks/cpu_freq/index.ts +++ b/ui/src/tracks/cpu_freq/index.ts @@ -16,7 +16,6 @@ import {BigintMath as BIMath} from '../../base/bigint_math'; import {searchSegment} from '../../base/binary_search'; import {assertTrue} from '../../base/logging'; import {hueForCpu} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import { LONG, LONG_NULL, @@ -30,6 +29,7 @@ import {TrackController} from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const CPU_FREQ_TRACK_KIND = 'CpuFreqTrack'; diff --git a/ui/src/tracks/cpu_profile/index.ts b/ui/src/tracks/cpu_profile/index.ts index abf2536e8..ec6472495 100644 --- a/ui/src/tracks/cpu_profile/index.ts +++ b/ui/src/tracks/cpu_profile/index.ts @@ -16,7 +16,6 @@ import {searchSegment} from '../../base/binary_search'; import {Actions} from '../../common/actions'; import {hslForSlice} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, NUM} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; @@ -27,6 +26,7 @@ import {globals} from '../../frontend/globals'; import {cachedHsluvToHex} from '../../frontend/hsluv_cache'; import {TimeScale} from '../../frontend/time_scale'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; const BAR_HEIGHT = 3; const MARGIN_TOP = 4.5; diff --git a/ui/src/tracks/cpu_slices/index.ts b/ui/src/tracks/cpu_slices/index.ts index f91da51c5..199f65848 100644 --- a/ui/src/tracks/cpu_slices/index.ts +++ b/ui/src/tracks/cpu_slices/index.ts @@ -22,7 +22,6 @@ import { drawIncompleteSlice, } from '../../common/canvas_utils'; import {colorForThread} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, NUM} from '../../common/query_result'; import {formatDurationShort, TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; @@ -32,6 +31,7 @@ import { import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const CPU_SLICE_TRACK_KIND = 'CpuSliceTrack'; diff --git a/ui/src/tracks/custom_sql_table_slices/index.ts b/ui/src/tracks/custom_sql_table_slices/index.ts index 60516b121..81d078d49 100644 --- a/ui/src/tracks/custom_sql_table_slices/index.ts +++ b/ui/src/tracks/custom_sql_table_slices/index.ts @@ -16,7 +16,6 @@ import {Actions} from '../../common/actions'; import { generateSqlWithInternalLayout, } from '../../common/internal_layout_utils'; -import {PluginContext} from '../../common/plugin_api'; import {Selection} from '../../common/state'; import {OnSliceClickArgs} from '../../frontend/base_slice_track'; import { @@ -28,6 +27,7 @@ import { NamedSliceTrackTypes, } from '../../frontend/named_slice_track'; import {NewTrackArgs} from '../../frontend/track'; +import {PluginContext} from '../../public'; export interface CustomSqlTableDefConfig { // Table name diff --git a/ui/src/tracks/debug/index.ts b/ui/src/tracks/debug/index.ts index e68b45124..0ac08eea3 100644 --- a/ui/src/tracks/debug/index.ts +++ b/ui/src/tracks/debug/index.ts @@ -12,7 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {PluginContext} from '../../common/plugin_api'; +import {PluginContext} from '../../public'; + import {DebugTrackV2} from './slice_track'; function activate(ctx: PluginContext) { diff --git a/ui/src/tracks/expected_frames/index.ts b/ui/src/tracks/expected_frames/index.ts index 3b7d7e2d6..8f36802d9 100644 --- a/ui/src/tracks/expected_frames/index.ts +++ b/ui/src/tracks/expected_frames/index.ts @@ -24,7 +24,7 @@ import {TPDuration, TPTime} from '../../common/time'; import { TrackController, } from '../../controller/track_controller'; -import {PluginContext} from '../../common/plugin_api'; +import {PluginContext} from '../../public'; import {BigintMath as BIMath} from '../../base/bigint_math'; export interface Config { diff --git a/ui/src/tracks/ftrace/index.ts b/ui/src/tracks/ftrace/index.ts index fc0b9e88e..4b6e60771 100644 --- a/ui/src/tracks/ftrace/index.ts +++ b/ui/src/tracks/ftrace/index.ts @@ -15,18 +15,16 @@ import {Vnode} from 'mithril'; import {colorForString} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, STR} from '../../common/query_result'; -import {TPDuration} from '../../common/time'; -import {TPTime} from '../../common/time'; -import {TrackData} from '../../common/track_data'; -import {LIMIT} from '../../common/track_data'; +import {TPDuration, TPTime} from '../../common/time'; +import {LIMIT, TrackData} from '../../common/track_data'; import { TrackController, } from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export interface Data extends TrackData { diff --git a/ui/src/tracks/generic_slice_track/index.ts b/ui/src/tracks/generic_slice_track/index.ts index e9a112045..8b8b46dee 100644 --- a/ui/src/tracks/generic_slice_track/index.ts +++ b/ui/src/tracks/generic_slice_track/index.ts @@ -12,12 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {PluginContext} from '../../common/plugin_api'; import { NamedSliceTrack, NamedSliceTrackTypes, } from '../../frontend/named_slice_track'; import {NewTrackArgs} from '../../frontend/track'; +import {PluginContext} from '../../public'; export interface GenericSliceTrackConfig { sqlTrackId: number; diff --git a/ui/src/tracks/heap_profile/index.ts b/ui/src/tracks/heap_profile/index.ts index 84285eb04..a5dba84ec 100644 --- a/ui/src/tracks/heap_profile/index.ts +++ b/ui/src/tracks/heap_profile/index.ts @@ -14,7 +14,6 @@ import {searchSegment} from '../../base/binary_search'; import {Actions} from '../../common/actions'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, STR} from '../../common/query_result'; import {ProfileType} from '../../common/state'; import {TPDuration, TPTime} from '../../common/time'; @@ -25,6 +24,7 @@ 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 {PluginContext} from '../../public'; export const HEAP_PROFILE_TRACK_KIND = 'HeapProfileTrack'; diff --git a/ui/src/tracks/null_track/index.ts b/ui/src/tracks/null_track/index.ts index 4a001fb9e..ed37a6450 100644 --- a/ui/src/tracks/null_track/index.ts +++ b/ui/src/tracks/null_track/index.ts @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {PluginContext} from '../../common/plugin_api'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const NULL_TRACK_KIND = 'NullTrack'; diff --git a/ui/src/tracks/perf_samples_profile/index.ts b/ui/src/tracks/perf_samples_profile/index.ts index 21b13ebb2..bfe8e8a25 100644 --- a/ui/src/tracks/perf_samples_profile/index.ts +++ b/ui/src/tracks/perf_samples_profile/index.ts @@ -14,7 +14,6 @@ import {searchSegment} from '../../base/binary_search'; import {Actions} from '../../common/actions'; -import {PluginContext} from '../../common/plugin_api'; import {LONG} from '../../common/query_result'; import {ProfileType} from '../../common/state'; import {TPDuration, TPTime} from '../../common/time'; @@ -24,6 +23,7 @@ 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 {PluginContext} from '../../public'; export const PERF_SAMPLES_PROFILE_TRACK_KIND = 'PerfSamplesProfileTrack'; diff --git a/ui/src/tracks/process_scheduling/index.ts b/ui/src/tracks/process_scheduling/index.ts index 270157c62..ee90fd7ac 100644 --- a/ui/src/tracks/process_scheduling/index.ts +++ b/ui/src/tracks/process_scheduling/index.ts @@ -14,11 +14,9 @@ import {BigintMath as BIMath} from '../../base/bigint_math'; import {searchEq, searchRange, searchSegment} from '../../base/binary_search'; - import {assertTrue} from '../../base/logging'; import {Actions} from '../../common/actions'; import {colorForThread} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, NUM, QueryResult} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; import {TrackData} from '../../common/track_data'; @@ -26,6 +24,7 @@ import {TrackController} from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const PROCESS_SCHEDULING_TRACK_KIND = 'ProcessSchedulingTrack'; diff --git a/ui/src/tracks/process_summary/index.ts b/ui/src/tracks/process_summary/index.ts index 0697ce17f..96fb4313e 100644 --- a/ui/src/tracks/process_summary/index.ts +++ b/ui/src/tracks/process_summary/index.ts @@ -15,15 +15,14 @@ import {BigintMath} from '../../base/bigint_math'; import {assertFalse} from '../../base/logging'; import {colorForTid} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {NUM} from '../../common/query_result'; import {TPDuration, TPTime} from '../../common/time'; -import {TrackData} from '../../common/track_data'; -import {LIMIT} from '../../common/track_data'; +import {LIMIT, TrackData} from '../../common/track_data'; import {TrackController} from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const PROCESS_SUMMARY_TRACK = 'ProcessSummaryTrack'; diff --git a/ui/src/tracks/thread_state/index.ts b/ui/src/tracks/thread_state/index.ts index 840b8a5c3..95efdd163 100644 --- a/ui/src/tracks/thread_state/index.ts +++ b/ui/src/tracks/thread_state/index.ts @@ -18,7 +18,6 @@ import {assertFalse} from '../../base/logging'; import {Actions} from '../../common/actions'; import {cropText} from '../../common/canvas_utils'; import {colorForState} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; import {LONG, NUM, NUM_NULL, STR_NULL} from '../../common/query_result'; import {translateState} from '../../common/thread_state'; import {TPDuration, TPTime} from '../../common/time'; @@ -27,6 +26,7 @@ import {TrackController} from '../../controller/track_controller'; import {checkerboardExcept} from '../../frontend/checkerboard'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const THREAD_STATE_TRACK_KIND = 'ThreadStateTrack'; diff --git a/ui/src/tracks/thread_state_v2/index.ts b/ui/src/tracks/thread_state_v2/index.ts index b19869373..cca64c569 100644 --- a/ui/src/tracks/thread_state_v2/index.ts +++ b/ui/src/tracks/thread_state_v2/index.ts @@ -13,11 +13,7 @@ // limitations under the License. import {Actions} from '../../common/actions'; -import {colorForState} from '../../common/colorizer'; -import { - Color, -} from '../../common/colorizer'; -import {PluginContext} from '../../common/plugin_api'; +import {Color, colorForState} from '../../common/colorizer'; import {NUM_NULL, STR} from '../../common/query_result'; import {Selection} from '../../common/state'; import {translateState} from '../../common/thread_state'; @@ -33,6 +29,7 @@ import { SliceLayout, } from '../../frontend/slice_layout'; import {NewTrackArgs} from '../../frontend/track'; +import {PluginContext} from '../../public'; export const THREAD_STATE_ROW = { ...BASE_SLICE_ROW, diff --git a/ui/src/tracks/visualised_args/index.ts b/ui/src/tracks/visualised_args/index.ts index 32baabd62..60dc45454 100644 --- a/ui/src/tracks/visualised_args/index.ts +++ b/ui/src/tracks/visualised_args/index.ts @@ -15,10 +15,10 @@ import m from 'mithril'; import {Actions} from '../../common/actions'; -import {PluginContext} from '../../common/plugin_api'; import {globals} from '../../frontend/globals'; import {NewTrackArgs, Track} from '../../frontend/track'; import {TrackButton, TrackButtonAttrs} from '../../frontend/track_panel'; +import {PluginContext} from '../../public'; import { ChromeSliceTrack, ChromeSliceTrackController, |