1*6dbdd20aSAndroid Build Coastguard Worker// Copyright (C) 2024 The Android Open Source Project 2*6dbdd20aSAndroid Build Coastguard Worker// 3*6dbdd20aSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*6dbdd20aSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*6dbdd20aSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*6dbdd20aSAndroid Build Coastguard Worker// 7*6dbdd20aSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*6dbdd20aSAndroid Build Coastguard Worker// 9*6dbdd20aSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*6dbdd20aSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*6dbdd20aSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*6dbdd20aSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*6dbdd20aSAndroid Build Coastguard Worker// limitations under the License. 14*6dbdd20aSAndroid Build Coastguard Worker 15*6dbdd20aSAndroid Build Coastguard Workerimport {RouteArgs} from './route_schema'; 16*6dbdd20aSAndroid Build Coastguard Workerimport {CommandManager} from './command'; 17*6dbdd20aSAndroid Build Coastguard Workerimport {OmniboxManager} from './omnibox'; 18*6dbdd20aSAndroid Build Coastguard Workerimport {SidebarManager} from './sidebar'; 19*6dbdd20aSAndroid Build Coastguard Workerimport {Analytics} from './analytics'; 20*6dbdd20aSAndroid Build Coastguard Workerimport {PluginManager} from './plugin'; 21*6dbdd20aSAndroid Build Coastguard Workerimport {Trace} from './trace'; 22*6dbdd20aSAndroid Build Coastguard Workerimport {PageManager} from './page'; 23*6dbdd20aSAndroid Build Coastguard Workerimport {FeatureFlagManager} from './feature_flag'; 24*6dbdd20aSAndroid Build Coastguard Worker 25*6dbdd20aSAndroid Build Coastguard Worker/** 26*6dbdd20aSAndroid Build Coastguard Worker * The API endpoint to interact programmaticaly with the UI before a trace has 27*6dbdd20aSAndroid Build Coastguard Worker * been loaded. This is passed to plugins' OnActivate(). 28*6dbdd20aSAndroid Build Coastguard Worker */ 29*6dbdd20aSAndroid Build Coastguard Workerexport interface App { 30*6dbdd20aSAndroid Build Coastguard Worker /** 31*6dbdd20aSAndroid Build Coastguard Worker * The unique id for this plugin (as specified in the PluginDescriptor), 32*6dbdd20aSAndroid Build Coastguard Worker * or '__core__' for the interface exposed to the core. 33*6dbdd20aSAndroid Build Coastguard Worker */ 34*6dbdd20aSAndroid Build Coastguard Worker readonly pluginId: string; 35*6dbdd20aSAndroid Build Coastguard Worker readonly commands: CommandManager; 36*6dbdd20aSAndroid Build Coastguard Worker readonly sidebar: SidebarManager; 37*6dbdd20aSAndroid Build Coastguard Worker readonly omnibox: OmniboxManager; 38*6dbdd20aSAndroid Build Coastguard Worker readonly analytics: Analytics; 39*6dbdd20aSAndroid Build Coastguard Worker readonly plugins: PluginManager; 40*6dbdd20aSAndroid Build Coastguard Worker readonly pages: PageManager; 41*6dbdd20aSAndroid Build Coastguard Worker readonly featureFlags: FeatureFlagManager; 42*6dbdd20aSAndroid Build Coastguard Worker 43*6dbdd20aSAndroid Build Coastguard Worker /** 44*6dbdd20aSAndroid Build Coastguard Worker * The parsed querystring passed when starting the app, before any navigation 45*6dbdd20aSAndroid Build Coastguard Worker * happens. 46*6dbdd20aSAndroid Build Coastguard Worker */ 47*6dbdd20aSAndroid Build Coastguard Worker readonly initialRouteArgs: RouteArgs; 48*6dbdd20aSAndroid Build Coastguard Worker 49*6dbdd20aSAndroid Build Coastguard Worker /** 50*6dbdd20aSAndroid Build Coastguard Worker * Returns the current trace object, if any. The instance being returned is 51*6dbdd20aSAndroid Build Coastguard Worker * bound to the same plugin of App.pluginId. 52*6dbdd20aSAndroid Build Coastguard Worker */ 53*6dbdd20aSAndroid Build Coastguard Worker readonly trace?: Trace; 54*6dbdd20aSAndroid Build Coastguard Worker 55*6dbdd20aSAndroid Build Coastguard Worker // TODO(primiano): this should be needed in extremely rare cases. We should 56*6dbdd20aSAndroid Build Coastguard Worker // probably switch to mithril auto-redraw at some point. 57*6dbdd20aSAndroid Build Coastguard Worker scheduleFullRedraw(force?: 'force'): void; 58*6dbdd20aSAndroid Build Coastguard Worker 59*6dbdd20aSAndroid Build Coastguard Worker /** 60*6dbdd20aSAndroid Build Coastguard Worker * Navigate to a new page. 61*6dbdd20aSAndroid Build Coastguard Worker */ 62*6dbdd20aSAndroid Build Coastguard Worker navigate(newHash: string): void; 63*6dbdd20aSAndroid Build Coastguard Worker 64*6dbdd20aSAndroid Build Coastguard Worker openTraceFromFile(file: File): void; 65*6dbdd20aSAndroid Build Coastguard Worker openTraceFromUrl(url: string): void; 66*6dbdd20aSAndroid Build Coastguard Worker openTraceFromBuffer(args: { 67*6dbdd20aSAndroid Build Coastguard Worker buffer: ArrayBuffer; 68*6dbdd20aSAndroid Build Coastguard Worker title: string; 69*6dbdd20aSAndroid Build Coastguard Worker fileName: string; 70*6dbdd20aSAndroid Build Coastguard Worker }): void; 71*6dbdd20aSAndroid Build Coastguard Worker} 72