chrome-devtools-frontend 1.0.921565 → 1.0.922782
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/front_end/core/common/Settings.ts +8 -1
- package/front_end/core/i18n/locales/af.json +53 -32
- package/front_end/core/i18n/locales/am.json +56 -35
- package/front_end/core/i18n/locales/ar.json +53 -32
- package/front_end/core/i18n/locales/as.json +63 -42
- package/front_end/core/i18n/locales/az.json +53 -32
- package/front_end/core/i18n/locales/be.json +52 -31
- package/front_end/core/i18n/locales/bg.json +51 -30
- package/front_end/core/i18n/locales/bn.json +63 -42
- package/front_end/core/i18n/locales/bs.json +57 -36
- package/front_end/core/i18n/locales/ca.json +55 -34
- package/front_end/core/i18n/locales/cs.json +51 -30
- package/front_end/core/i18n/locales/cy.json +63 -42
- package/front_end/core/i18n/locales/da.json +55 -34
- package/front_end/core/i18n/locales/de.json +52 -31
- package/front_end/core/i18n/locales/el.json +58 -37
- package/front_end/core/i18n/locales/en-GB.json +51 -30
- package/front_end/core/i18n/locales/es-419.json +53 -32
- package/front_end/core/i18n/locales/es.json +52 -31
- package/front_end/core/i18n/locales/et.json +54 -33
- package/front_end/core/i18n/locales/eu.json +71 -50
- package/front_end/core/i18n/locales/fa.json +54 -33
- package/front_end/core/i18n/locales/fi.json +55 -34
- package/front_end/core/i18n/locales/fil.json +59 -38
- package/front_end/core/i18n/locales/fr-CA.json +52 -31
- package/front_end/core/i18n/locales/fr.json +54 -33
- package/front_end/core/i18n/locales/gl.json +57 -36
- package/front_end/core/i18n/locales/gu.json +65 -44
- package/front_end/core/i18n/locales/he.json +56 -35
- package/front_end/core/i18n/locales/hi.json +61 -40
- package/front_end/core/i18n/locales/hr.json +55 -34
- package/front_end/core/i18n/locales/hu.json +53 -32
- package/front_end/core/i18n/locales/hy.json +54 -33
- package/front_end/core/i18n/locales/id.json +59 -38
- package/front_end/core/i18n/locales/is.json +51 -30
- package/front_end/core/i18n/locales/it.json +51 -30
- package/front_end/core/i18n/locales/ja.json +52 -31
- package/front_end/core/i18n/locales/ka.json +51 -30
- package/front_end/core/i18n/locales/kk.json +56 -35
- package/front_end/core/i18n/locales/km.json +59 -38
- package/front_end/core/i18n/locales/kn.json +63 -42
- package/front_end/core/i18n/locales/ko.json +59 -38
- package/front_end/core/i18n/locales/ky.json +54 -33
- package/front_end/core/i18n/locales/lo.json +59 -38
- package/front_end/core/i18n/locales/lt.json +52 -31
- package/front_end/core/i18n/locales/lv.json +60 -39
- package/front_end/core/i18n/locales/mk.json +51 -30
- package/front_end/core/i18n/locales/ml.json +65 -44
- package/front_end/core/i18n/locales/mn.json +59 -38
- package/front_end/core/i18n/locales/mr.json +61 -40
- package/front_end/core/i18n/locales/ms.json +59 -38
- package/front_end/core/i18n/locales/my.json +59 -38
- package/front_end/core/i18n/locales/ne.json +63 -42
- package/front_end/core/i18n/locales/nl.json +55 -34
- package/front_end/core/i18n/locales/no.json +54 -33
- package/front_end/core/i18n/locales/or.json +63 -42
- package/front_end/core/i18n/locales/pa.json +61 -40
- package/front_end/core/i18n/locales/pl.json +51 -30
- package/front_end/core/i18n/locales/pt-PT.json +52 -31
- package/front_end/core/i18n/locales/pt.json +59 -38
- package/front_end/core/i18n/locales/ro.json +52 -31
- package/front_end/core/i18n/locales/ru.json +52 -31
- package/front_end/core/i18n/locales/si.json +59 -38
- package/front_end/core/i18n/locales/sk.json +52 -31
- package/front_end/core/i18n/locales/sl.json +52 -31
- package/front_end/core/i18n/locales/sq.json +51 -30
- package/front_end/core/i18n/locales/sr-Latn.json +52 -31
- package/front_end/core/i18n/locales/sr.json +52 -31
- package/front_end/core/i18n/locales/sv.json +52 -31
- package/front_end/core/i18n/locales/sw.json +60 -39
- package/front_end/core/i18n/locales/ta.json +67 -46
- package/front_end/core/i18n/locales/te.json +62 -41
- package/front_end/core/i18n/locales/th.json +52 -31
- package/front_end/core/i18n/locales/tr.json +55 -34
- package/front_end/core/i18n/locales/uk.json +55 -34
- package/front_end/core/i18n/locales/ur.json +60 -39
- package/front_end/core/i18n/locales/uz.json +52 -31
- package/front_end/core/i18n/locales/vi.json +54 -33
- package/front_end/core/i18n/locales/zh-HK.json +52 -31
- package/front_end/core/i18n/locales/zh-TW.json +57 -36
- package/front_end/core/i18n/locales/zh.json +56 -35
- package/front_end/core/i18n/locales/zu.json +59 -38
- package/front_end/core/sdk/FrameManager.ts +2 -2
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +1 -1
- package/front_end/entrypoints/js_app/JsMain.ts +1 -1
- package/front_end/entrypoints/node_main/NodeMain.ts +1 -1
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/models/emulation/DeviceModeModel.ts +1 -1
- package/front_end/models/timeline_model/TimelineModel.ts +5 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +8 -7
- package/front_end/panels/application/DatabaseQueryView.ts +7 -1
- package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
- package/front_end/panels/changes/ChangesSidebar.ts +6 -1
- package/front_end/panels/console/ConsolePrompt.ts +6 -1
- package/front_end/panels/console/ConsoleSidebar.ts +5 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
- package/front_end/panels/coverage/CoverageView.ts +5 -4
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +59 -48
- package/front_end/panels/css_overview/CSSOverviewController.ts +48 -8
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +8 -1
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +14 -12
- package/front_end/panels/elements/ElementsPanel.ts +10 -8
- package/front_end/panels/elements/ElementsTreeOutline.ts +8 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +12 -2
- package/front_end/panels/emulation/AdvancedApp.ts +2 -12
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +14 -1
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +7 -1
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +4 -4
- package/front_end/panels/layer_viewer/Layers3DView.ts +7 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +7 -1
- package/front_end/panels/layers/LayersPanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -2
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +4 -0
- package/front_end/panels/network/NetworkDataGridNode.ts +46 -104
- package/front_end/panels/network/NetworkItemView.ts +2 -6
- package/front_end/panels/network/NetworkLogView.ts +4 -4
- package/front_end/panels/network/NetworkPanel.ts +12 -18
- package/front_end/panels/profiler/CPUProfileFlameChart.ts +26 -11
- package/front_end/panels/profiler/HeapProfileView.ts +5 -6
- package/front_end/panels/profiler/HeapSnapshotView.ts +6 -6
- package/front_end/panels/profiler/HeapTimelineOverview.ts +17 -3
- package/front_end/panels/profiler/ProfileLauncherView.ts +6 -1
- package/front_end/panels/profiler/ProfileView.ts +1 -1
- package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
- package/front_end/panels/settings/SettingsScreen.ts +2 -2
- package/front_end/panels/sources/CSSPlugin.ts +6 -6
- package/front_end/panels/sources/DebuggerPlugin.ts +4 -5
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +7 -5
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +5 -5
- package/front_end/panels/sources/OutlineQuickOpen.ts +7 -2
- package/front_end/panels/sources/ScriptFormatterEditorAction.ts +5 -6
- package/front_end/panels/sources/SourcesPanel.ts +2 -2
- package/front_end/panels/sources/SourcesView.ts +16 -3
- package/front_end/panels/sources/TabbedEditorContainer.ts +8 -13
- package/front_end/panels/sources/UISourceCodeFrame.ts +7 -1
- package/front_end/panels/sources/watchExpressionsSidebarPane.css +2 -7
- package/front_end/panels/timeline/TimelineDetailsView.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -4
- package/front_end/panels/timeline/TimelineLayersView.ts +7 -7
- package/front_end/panels/timeline/TimelinePanel.ts +2 -1
- package/front_end/panels/timeline/TimelineTreeView.ts +6 -1
- package/front_end/ui/components/docs/toggle_fonts.ts +28 -1
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +4 -5
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +14 -5
- package/front_end/ui/legacy/Dialog.ts +12 -2
- package/front_end/ui/legacy/FilterBar.ts +12 -8
- package/front_end/ui/legacy/InspectorView.ts +3 -3
- package/front_end/ui/legacy/SplitWidget.ts +6 -1
- package/front_end/ui/legacy/TabbedPane.ts +9 -1
- package/front_end/ui/legacy/TextEditor.ts +12 -1
- package/front_end/ui/legacy/Treeoutline.ts +19 -11
- package/front_end/ui/legacy/ViewManager.ts +8 -7
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +6 -1
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +6 -1
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +7 -1
- package/front_end/ui/legacy/components/inline_editor/FontEditor.ts +12 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +6 -6
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +8 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +9 -1
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +13 -3
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +14 -3
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +11 -4
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +13 -3
- package/front_end/ui/legacy/components/quick_open/QuickInput.ts +4 -5
- package/front_end/ui/legacy/components/quick_open/QuickPick.ts +4 -5
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +29 -19
- package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +18 -2
- package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +3 -1
- package/front_end/ui/legacy/splitWidget.css +2 -2
- package/package.json +1 -1
- package/scripts/build/generate_css_js_files.js +1 -0
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
+
import * as Common from '../../core/common/common.js';
|
|
31
32
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
32
33
|
import * as Platform from '../../core/platform/platform.js';
|
|
33
34
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
@@ -155,7 +156,8 @@ const UIStrings = {
|
|
|
155
156
|
const str_ = i18n.i18n.registerUIStrings('panels/layer_viewer/LayerDetailsView.ts', UIStrings);
|
|
156
157
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
157
158
|
const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
|
|
158
|
-
export class LayerDetailsView extends UI.Widget.Widget
|
|
159
|
+
export class LayerDetailsView extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.Widget>(
|
|
160
|
+
UI.Widget.Widget) implements LayerView {
|
|
159
161
|
private readonly layerViewHost: LayerViewHost;
|
|
160
162
|
private readonly emptyWidget: UI.EmptyWidget.EmptyWidget;
|
|
161
163
|
private layerSnapshotMap: Map<SDK.LayerTreeBase.Layer, SnapshotSelection>;
|
|
@@ -470,6 +472,10 @@ export enum Events {
|
|
|
470
472
|
PaintProfilerRequested = 'PaintProfilerRequested',
|
|
471
473
|
}
|
|
472
474
|
|
|
475
|
+
export type EventTypes = {
|
|
476
|
+
[Events.PaintProfilerRequested]: Selection,
|
|
477
|
+
};
|
|
478
|
+
|
|
473
479
|
export const slowScrollRectNames = new Map([
|
|
474
480
|
[SDK.LayerTreeBase.Layer.ScrollRectType.NonFastScrollable, i18nLazyString(UIStrings.nonFastScrollable)],
|
|
475
481
|
[SDK.LayerTreeBase.Layer.ScrollRectType.TouchEventHandler, i18nLazyString(UIStrings.touchEventHandler)],
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
-
import
|
|
31
|
+
import * as Common from '../../core/common/common.js';
|
|
32
32
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
33
33
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
34
34
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
@@ -54,8 +54,8 @@ const UIStrings = {
|
|
|
54
54
|
};
|
|
55
55
|
const str_ = i18n.i18n.registerUIStrings('panels/layer_viewer/LayerTreeOutline.ts', UIStrings);
|
|
56
56
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
57
|
-
export class LayerTreeOutline extends
|
|
58
|
-
|
|
57
|
+
export class LayerTreeOutline extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.TreeOutline.TreeOutline>(
|
|
58
|
+
UI.TreeOutline.TreeOutline) implements Common.EventTarget.EventTarget<EventTypes>, LayerView {
|
|
59
59
|
private layerViewHost: LayerViewHost;
|
|
60
60
|
private treeOutline: UI.TreeOutline.TreeOutlineInShadow;
|
|
61
61
|
private lastHoveredNode: LayerTreeElement|null;
|
|
@@ -220,7 +220,7 @@ export class LayerTreeOutline extends UI.TreeOutline.TreeOutline implements Comm
|
|
|
220
220
|
if (this.layerSnapshotMap.has(layer)) {
|
|
221
221
|
contextMenu.defaultSection().appendItem(
|
|
222
222
|
i18nString(UIStrings.showPaintProfiler),
|
|
223
|
-
() => this.dispatchEventToListeners(Events.PaintProfilerRequested, selection), false);
|
|
223
|
+
() => this.dispatchEventToListeners(Events.PaintProfilerRequested, selection as Selection), false);
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
this.layerViewHost.showContextMenu(contextMenu, selection);
|
|
@@ -99,7 +99,8 @@ const uniformSamplerLocations = new Map<WebGLProgram, WebGLUniformLocation|null>
|
|
|
99
99
|
|
|
100
100
|
const imageForTexture = new Map<WebGLTexture, HTMLImageElement>();
|
|
101
101
|
|
|
102
|
-
export class Layers3DView extends UI.Widget.VBox
|
|
102
|
+
export class Layers3DView extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.VBox>(UI.Widget.VBox)
|
|
103
|
+
implements LayerView {
|
|
103
104
|
private readonly failBanner: UI.Widget.VBox;
|
|
104
105
|
private readonly layerViewHost: LayerViewHost;
|
|
105
106
|
private transformController: TransformController;
|
|
@@ -892,6 +893,11 @@ export enum Events {
|
|
|
892
893
|
ScaleChanged = 'ScaleChanged',
|
|
893
894
|
}
|
|
894
895
|
|
|
896
|
+
export type EventTypes = {
|
|
897
|
+
[Events.PaintProfilerRequested]: Selection,
|
|
898
|
+
[Events.ScaleChanged]: void,
|
|
899
|
+
};
|
|
900
|
+
|
|
895
901
|
export const enum ChromeTexture {
|
|
896
902
|
Left = 0,
|
|
897
903
|
Middle = 1,
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
+
import * as Common from '../../core/common/common.js';
|
|
31
32
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
32
33
|
import * as Platform from '../../core/platform/platform.js';
|
|
33
34
|
import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
|
|
@@ -75,7 +76,8 @@ let categories: {[x: string]: PaintProfilerCategory}|null = null;
|
|
|
75
76
|
|
|
76
77
|
let logItemCategoriesMap: {[x: string]: PaintProfilerCategory}|null = null;
|
|
77
78
|
|
|
78
|
-
export class PaintProfilerView extends UI.Widget.HBox
|
|
79
|
+
export class PaintProfilerView extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.HBox>(
|
|
80
|
+
UI.Widget.HBox) {
|
|
79
81
|
private canvasContainer: HTMLElement;
|
|
80
82
|
private readonly progressBanner: HTMLElement;
|
|
81
83
|
private pieChart: PerfUI.PieChart.PieChart;
|
|
@@ -422,6 +424,10 @@ export enum Events {
|
|
|
422
424
|
WindowChanged = 'WindowChanged',
|
|
423
425
|
}
|
|
424
426
|
|
|
427
|
+
export type EventTypes = {
|
|
428
|
+
[Events.WindowChanged]: void,
|
|
429
|
+
};
|
|
430
|
+
|
|
425
431
|
export class PaintProfilerCommandLogView extends UI.ThrottledWidget.ThrottledWidget {
|
|
426
432
|
private readonly treeOutline: UI.TreeOutline.TreeOutlineInShadow;
|
|
427
433
|
private log: SDK.PaintProfiler.PaintProfilerLogItem[];
|
|
@@ -197,7 +197,7 @@ export class LayersPanel extends UI.Panel.PanelWithSidebar implements SDK.Target
|
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
private onTabClosed(event: Common.EventTarget.EventTargetEvent): void {
|
|
200
|
+
private onTabClosed(event: Common.EventTarget.EventTargetEvent<UI.TabbedPane.EventData>): void {
|
|
201
201
|
if (event.data.tabId !== DetailsViewTabs.Profiler || !this.layerBeingProfiled) {
|
|
202
202
|
return;
|
|
203
203
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
import * as Common from '../../core/common/common.js';
|
|
6
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
6
|
import type * as ProtocolClient from '../../core/protocol_client/protocol_client.js';
|
|
8
7
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
@@ -12,7 +11,7 @@ import type * as ReportRenderer from './LighthouseReporterTypes.js';
|
|
|
12
11
|
|
|
13
12
|
let lastId = 1;
|
|
14
13
|
|
|
15
|
-
export class ProtocolService
|
|
14
|
+
export class ProtocolService {
|
|
16
15
|
private rawConnection?: ProtocolClient.InspectorBackend.Connection;
|
|
17
16
|
private lighthouseWorkerPromise?: Promise<Worker>;
|
|
18
17
|
private lighthouseMessageUpdateCallback?: ((arg0: string) => void);
|
|
@@ -245,100 +245,49 @@ export enum Events {
|
|
|
245
245
|
RequestActivated = 'RequestActivated',
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
export
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
abstract headerHeight(): number;
|
|
255
|
-
|
|
256
|
-
setRecording(recording: boolean): void {
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
setWindow(start: number, end: number): void {
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
resetFocus(): void {
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
columnExtensionResolved(): void {
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
hoveredNode(): NetworkNode|null {
|
|
269
|
-
throw new Error('not implemented');
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
scheduleRefresh(): void {
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
addFilmStripFrames(times: number[]): void {
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
selectFilmStripFrame(time: number): void {
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
clearFilmStripFrame(): void {
|
|
282
|
-
}
|
|
283
|
-
timeCalculator(): NetworkTimeCalculator {
|
|
284
|
-
throw new Error('not implemented');
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
calculator(): NetworkTimeCalculator {
|
|
288
|
-
throw new Error('not implemented');
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
setCalculator(x: NetworkTimeCalculator): void {
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
flatNodesList(): NetworkNode[] {
|
|
295
|
-
throw new Error('not implemented');
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
updateNodeBackground(): void {
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
updateNodeSelectedClass(isSelected: boolean): void {
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
stylesChanged(): void {
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
setTextFilterValue(filterString: string): void {
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
rowHeight(): number {
|
|
311
|
-
throw new Error('not implemented');
|
|
312
|
-
}
|
|
248
|
+
export interface RequestActivatedEvent {
|
|
249
|
+
showPanel: boolean;
|
|
250
|
+
takeFocus?: boolean;
|
|
251
|
+
tab?: NetworkForward.UIRequestLocation.UIRequestTabs;
|
|
252
|
+
}
|
|
313
253
|
|
|
314
|
-
|
|
315
|
-
|
|
254
|
+
export type EventTypes = {
|
|
255
|
+
[Events.RequestSelected]: SDK.NetworkRequest.NetworkRequest,
|
|
256
|
+
[Events.RequestActivated]: RequestActivatedEvent,
|
|
257
|
+
};
|
|
316
258
|
|
|
259
|
+
export interface NetworkLogViewInterface extends Common.EventTarget.EventTarget<EventTypes> {
|
|
260
|
+
onLoadFromFile(file: File): Promise<void>;
|
|
261
|
+
nodeForRequest(request: SDK.NetworkRequest.NetworkRequest): NetworkRequestNode|null;
|
|
262
|
+
headerHeight(): number;
|
|
263
|
+
setRecording(recording: boolean): void;
|
|
264
|
+
setWindow(start: number, end: number): void;
|
|
265
|
+
resetFocus(): void;
|
|
266
|
+
columnExtensionResolved(): void;
|
|
267
|
+
hoveredNode(): NetworkNode|null;
|
|
268
|
+
scheduleRefresh(): void;
|
|
269
|
+
addFilmStripFrames(times: number[]): void;
|
|
270
|
+
selectFilmStripFrame(time: number): void;
|
|
271
|
+
clearFilmStripFrame(): void;
|
|
272
|
+
timeCalculator(): NetworkTimeCalculator;
|
|
273
|
+
calculator(): NetworkTimeCalculator;
|
|
274
|
+
setCalculator(x: NetworkTimeCalculator): void;
|
|
275
|
+
flatNodesList(): NetworkNode[];
|
|
276
|
+
updateNodeBackground(): void;
|
|
277
|
+
updateNodeSelectedClass(isSelected: boolean): void;
|
|
278
|
+
stylesChanged(): void;
|
|
279
|
+
setTextFilterValue(filterString: string): void;
|
|
280
|
+
rowHeight(): number;
|
|
281
|
+
switchViewMode(gridMode: boolean): void;
|
|
317
282
|
handleContextMenuForRequest(contextMenu: UI.ContextMenu.ContextMenu, request: SDK.NetworkRequest.NetworkRequest):
|
|
318
|
-
void
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
selectRequest(request: SDK.NetworkRequest.NetworkRequest): void {
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
removeAllNodeHighlights(): void {
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
modelAdded(model: SDK.NetworkManager.NetworkManager): void {
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
modelRemoved(model: SDK.NetworkManager.NetworkManager): void {
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
linkifier(): Components.Linkifier.Linkifier {
|
|
340
|
-
throw new Error('not implemented');
|
|
341
|
-
}
|
|
283
|
+
void;
|
|
284
|
+
exportAll(): Promise<void>;
|
|
285
|
+
revealAndHighlightRequest(request: SDK.NetworkRequest.NetworkRequest): void;
|
|
286
|
+
selectRequest(request: SDK.NetworkRequest.NetworkRequest): void;
|
|
287
|
+
removeAllNodeHighlights(): void;
|
|
288
|
+
modelAdded(model: SDK.NetworkManager.NetworkManager): void;
|
|
289
|
+
modelRemoved(model: SDK.NetworkManager.NetworkManager): void;
|
|
290
|
+
linkifier(): Components.Linkifier.Linkifier;
|
|
342
291
|
}
|
|
343
292
|
|
|
344
293
|
export class NetworkNode extends DataGrid.SortableDataGrid.SortableDataGridNode<NetworkNode> {
|
|
@@ -1003,9 +952,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1003
952
|
|
|
1004
953
|
select(supressSelectedEvent?: boolean): void {
|
|
1005
954
|
super.select(supressSelectedEvent);
|
|
1006
|
-
|
|
1007
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1008
|
-
(this.parentView() as any).dispatchEventToListeners(Events.RequestSelected, this.requestInternal);
|
|
955
|
+
this.parentView().dispatchEventToListeners(Events.RequestSelected, this.requestInternal);
|
|
1009
956
|
}
|
|
1010
957
|
|
|
1011
958
|
highlightMatchedSubstring(regexp: RegExp|null): Object[] {
|
|
@@ -1056,9 +1003,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1056
1003
|
this.nameCell = cell;
|
|
1057
1004
|
cell.addEventListener('dblclick', this.openInNewTab.bind(this), false);
|
|
1058
1005
|
cell.addEventListener('click', () => {
|
|
1059
|
-
|
|
1060
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1061
|
-
(this.parentView() as any).dispatchEventToListeners(Events.RequestActivated, {showPanel: true});
|
|
1006
|
+
this.parentView().dispatchEventToListeners(Events.RequestActivated, {showPanel: true});
|
|
1062
1007
|
});
|
|
1063
1008
|
let iconElement;
|
|
1064
1009
|
if (this.requestInternal.resourceType() === Common.ResourceType.resourceTypes.Image) {
|
|
@@ -1190,9 +1135,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1190
1135
|
if (displayShowHeadersLink) {
|
|
1191
1136
|
this.setTextAndTitleAsLink(
|
|
1192
1137
|
cell, i18nString(UIStrings.blockeds, {PH1: reason}), i18nString(UIStrings.blockedTooltip), () => {
|
|
1193
|
-
|
|
1194
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1195
|
-
(this.parentView() as any).dispatchEventToListeners(Events.RequestActivated, {
|
|
1138
|
+
this.parentView().dispatchEventToListeners(Events.RequestActivated, {
|
|
1196
1139
|
showPanel: true,
|
|
1197
1140
|
tab: NetworkForward.UIRequestLocation.UIRequestTabs.Headers,
|
|
1198
1141
|
});
|
|
@@ -1398,10 +1341,9 @@ export class NetworkGroupNode extends NetworkNode {
|
|
|
1398
1341
|
select(supressSelectedEvent?: boolean): void {
|
|
1399
1342
|
super.select(supressSelectedEvent);
|
|
1400
1343
|
const firstChildNode = (this.traverseNextNode(false, undefined, true) as NetworkNode);
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
(this.parentView() as any).dispatchEventToListeners(Events.RequestSelected, firstChildNode.request());
|
|
1344
|
+
const request = firstChildNode?.request();
|
|
1345
|
+
if (request) {
|
|
1346
|
+
this.parentView().dispatchEventToListeners(Events.RequestSelected, request);
|
|
1405
1347
|
}
|
|
1406
1348
|
}
|
|
1407
1349
|
}
|
|
@@ -274,15 +274,11 @@ export class NetworkItemView extends UI.TabbedPane.TabbedPane {
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
private tabSelected(event: {
|
|
278
|
-
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
279
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
280
|
-
data: any,
|
|
281
|
-
}): void {
|
|
277
|
+
private tabSelected(event: Common.EventTarget.EventTargetEvent<UI.TabbedPane.EventData>): void {
|
|
282
278
|
if (!event.data.isUserGesture) {
|
|
283
279
|
return;
|
|
284
280
|
}
|
|
285
|
-
this.resourceViewTabSetting.set(event.data.tabId);
|
|
281
|
+
this.resourceViewTabSetting.set(event.data.tabId as NetworkForward.UIRequestLocation.UIRequestTabs);
|
|
286
282
|
}
|
|
287
283
|
|
|
288
284
|
request(): SDK.NetworkRequest.NetworkRequest {
|
|
@@ -52,7 +52,7 @@ import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
|
|
|
52
52
|
|
|
53
53
|
import networkLogViewStyles from './networkLogView.css.js';
|
|
54
54
|
|
|
55
|
-
import type {NetworkLogViewInterface, NetworkNode} from './NetworkDataGridNode.js';
|
|
55
|
+
import type {NetworkLogViewInterface, NetworkNode, EventTypes} from './NetworkDataGridNode.js';
|
|
56
56
|
import {Events, NetworkGroupNode, NetworkRequestNode} from './NetworkDataGridNode.js';
|
|
57
57
|
import {NetworkFrameGrouper} from './NetworkFrameGrouper.js';
|
|
58
58
|
import {NetworkLogViewColumns} from './NetworkLogViewColumns.js';
|
|
@@ -351,8 +351,8 @@ const enum FetchStyle {
|
|
|
351
351
|
NodeJs = 1,
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
export class NetworkLogView extends UI.Widget.VBox
|
|
355
|
-
SDK.TargetManager.SDKModelObserver<SDK.NetworkManager.NetworkManager>, NetworkLogViewInterface {
|
|
354
|
+
export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.VBox>(UI.Widget.VBox)
|
|
355
|
+
implements SDK.TargetManager.SDKModelObserver<SDK.NetworkManager.NetworkManager>, NetworkLogViewInterface {
|
|
356
356
|
private readonly networkInvertFilterSetting: Common.Settings.Setting<boolean>;
|
|
357
357
|
private readonly networkHideDataURLSetting: Common.Settings.Setting<boolean>;
|
|
358
358
|
private readonly networkShowIssuesOnlySetting: Common.Settings.Setting<boolean>;
|
|
@@ -864,7 +864,7 @@ export class NetworkLogView extends UI.Widget.VBox implements
|
|
|
864
864
|
this.textFilterUI.setSuggestionProvider(this.suggestionBuilder.completions.bind(this.suggestionBuilder));
|
|
865
865
|
}
|
|
866
866
|
|
|
867
|
-
private filterChanged(
|
|
867
|
+
private filterChanged(): void {
|
|
868
868
|
this.removeAllNodeHighlights();
|
|
869
869
|
this.parseFilterQuery(this.textFilterUI.value(), this.invertFilterUI.checked());
|
|
870
870
|
this.filterRequests();
|
|
@@ -48,6 +48,7 @@ import * as MobileThrottling from '../mobile_throttling/mobile_throttling.js';
|
|
|
48
48
|
import * as Search from '../search/search.js';
|
|
49
49
|
|
|
50
50
|
import {BlockedURLsPane} from './BlockedURLsPane.js';
|
|
51
|
+
import type {RequestActivatedEvent} from './NetworkDataGridNode.js';
|
|
51
52
|
import {Events} from './NetworkDataGridNode.js';
|
|
52
53
|
import {NetworkItemView} from './NetworkItemView.js';
|
|
53
54
|
import {NetworkLogView} from './NetworkLogView.js';
|
|
@@ -369,7 +370,8 @@ export class NetworkPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
|
|
|
369
370
|
return this.throttlingSelect;
|
|
370
371
|
}
|
|
371
372
|
|
|
372
|
-
private onWindowChanged(event: Common.EventTarget.EventTargetEvent):
|
|
373
|
+
private onWindowChanged(event: Common.EventTarget.EventTargetEvent<PerfUI.TimelineOverviewPane.WindowChangedEvent>):
|
|
374
|
+
void {
|
|
373
375
|
const startTime = Math.max(this.calculator.minimumBoundary(), event.data.startTime / 1000);
|
|
374
376
|
const endTime = Math.min(this.calculator.maximumBoundary(), event.data.endTime / 1000);
|
|
375
377
|
this.networkLogView.setWindow(startTime, endTime);
|
|
@@ -649,18 +651,10 @@ export class NetworkPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
|
|
|
649
651
|
this.updateNetworkItemView();
|
|
650
652
|
}
|
|
651
653
|
|
|
652
|
-
private onRequestActivated(event: {
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
}): void {
|
|
657
|
-
const eventData = (event.data as {
|
|
658
|
-
showPanel: boolean,
|
|
659
|
-
tab: NetworkForward.UIRequestLocation.UIRequestTabs,
|
|
660
|
-
takeFocus: (boolean | undefined),
|
|
661
|
-
});
|
|
662
|
-
if (eventData.showPanel) {
|
|
663
|
-
this.showRequestPanel(eventData.tab, /* takeFocus */ eventData.takeFocus);
|
|
654
|
+
private onRequestActivated(event: Common.EventTarget.EventTargetEvent<RequestActivatedEvent>): void {
|
|
655
|
+
const {showPanel, tab, takeFocus} = event.data;
|
|
656
|
+
if (showPanel) {
|
|
657
|
+
this.showRequestPanel(tab, takeFocus);
|
|
664
658
|
} else {
|
|
665
659
|
this.hideRequestPanel();
|
|
666
660
|
}
|
|
@@ -766,18 +760,18 @@ export class NetworkPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
|
|
|
766
760
|
appendRevealItem.call(this, request);
|
|
767
761
|
}
|
|
768
762
|
|
|
769
|
-
private onFilmFrameSelected(event: Common.EventTarget.EventTargetEvent): void {
|
|
770
|
-
const timestamp =
|
|
763
|
+
private onFilmFrameSelected(event: Common.EventTarget.EventTargetEvent<number>): void {
|
|
764
|
+
const timestamp = event.data;
|
|
771
765
|
this.overviewPane.setWindowTimes(0, timestamp);
|
|
772
766
|
}
|
|
773
767
|
|
|
774
|
-
private onFilmFrameEnter(event: Common.EventTarget.EventTargetEvent): void {
|
|
775
|
-
const timestamp =
|
|
768
|
+
private onFilmFrameEnter(event: Common.EventTarget.EventTargetEvent<number>): void {
|
|
769
|
+
const timestamp = event.data;
|
|
776
770
|
this.networkOverview.selectFilmStripFrame(timestamp);
|
|
777
771
|
this.networkLogView.selectFilmStripFrame(timestamp / 1000);
|
|
778
772
|
}
|
|
779
773
|
|
|
780
|
-
private onFilmFrameExit(
|
|
774
|
+
private onFilmFrameExit(): void {
|
|
781
775
|
this.networkOverview.clearFilmStripFrame();
|
|
782
776
|
this.networkLogView.clearFilmStripFrame();
|
|
783
777
|
}
|
|
@@ -171,7 +171,7 @@ export class CPUProfileFlameChart extends UI.Widget.VBox implements UI.Searchabl
|
|
|
171
171
|
this.mainPane.addEventListener(PerfUI.FlameChart.Events.EntryInvoked, this.onEntryInvoked, this);
|
|
172
172
|
this.entrySelected = false;
|
|
173
173
|
this.mainPane.addEventListener(PerfUI.FlameChart.Events.CanvasFocused, this.onEntrySelected, this);
|
|
174
|
-
this.overviewPane.addEventListener(
|
|
174
|
+
this.overviewPane.addEventListener(OverviewPaneEvents.WindowChanged, this.onWindowChanged, this);
|
|
175
175
|
this.dataProvider = dataProvider;
|
|
176
176
|
this.searchResults = [];
|
|
177
177
|
}
|
|
@@ -180,9 +180,8 @@ export class CPUProfileFlameChart extends UI.Widget.VBox implements UI.Searchabl
|
|
|
180
180
|
this.mainPane.focus();
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
onWindowChanged(event: Common.EventTarget.EventTargetEvent): void {
|
|
184
|
-
const windowLeft = event.data
|
|
185
|
-
const windowRight = event.data.windowTimeRight;
|
|
183
|
+
onWindowChanged(event: Common.EventTarget.EventTargetEvent<OverviewPaneWindowChangedEvent>): void {
|
|
184
|
+
const {windowTimeLeft: windowLeft, windowTimeRight: windowRight} = event.data;
|
|
186
185
|
this.mainPane.setWindowTimes(windowLeft, windowRight, /* animate */ true);
|
|
187
186
|
}
|
|
188
187
|
|
|
@@ -190,9 +189,9 @@ export class CPUProfileFlameChart extends UI.Widget.VBox implements UI.Searchabl
|
|
|
190
189
|
this.overviewPane.selectRange(timeLeft, timeRight);
|
|
191
190
|
}
|
|
192
191
|
|
|
193
|
-
onEntrySelected(event: Common.EventTarget.EventTargetEvent): void {
|
|
192
|
+
onEntrySelected(event: Common.EventTarget.EventTargetEvent<void|number>): void {
|
|
194
193
|
if (event.data) {
|
|
195
|
-
const eventIndex =
|
|
194
|
+
const eventIndex = event.data;
|
|
196
195
|
this.mainPane.setSelectedEntry(eventIndex);
|
|
197
196
|
if (eventIndex === -1) {
|
|
198
197
|
this.entrySelected = false;
|
|
@@ -205,7 +204,7 @@ export class CPUProfileFlameChart extends UI.Widget.VBox implements UI.Searchabl
|
|
|
205
204
|
}
|
|
206
205
|
}
|
|
207
206
|
|
|
208
|
-
onEntryInvoked(event: Common.EventTarget.EventTargetEvent): void {
|
|
207
|
+
onEntryInvoked(event: Common.EventTarget.EventTargetEvent<number>): void {
|
|
209
208
|
this.onEntrySelected(event);
|
|
210
209
|
this.dispatchEventToListeners(PerfUI.FlameChart.Events.EntryInvoked, event.data);
|
|
211
210
|
}
|
|
@@ -308,7 +307,8 @@ export class OverviewCalculator implements PerfUI.TimelineGrid.Calculator {
|
|
|
308
307
|
}
|
|
309
308
|
}
|
|
310
309
|
|
|
311
|
-
export class OverviewPane extends
|
|
310
|
+
export class OverviewPane extends Common.ObjectWrapper.eventMixin<OverviewPaneEvents, typeof UI.Widget.VBox>(
|
|
311
|
+
UI.Widget.VBox) implements PerfUI.FlameChart.FlameChartDelegate {
|
|
312
312
|
overviewContainer: HTMLElement;
|
|
313
313
|
readonly overviewCalculator: OverviewCalculator;
|
|
314
314
|
readonly overviewGrid: PerfUI.OverviewGrid.OverviewGrid;
|
|
@@ -329,7 +329,8 @@ export class OverviewPane extends UI.Widget.VBox implements PerfUI.FlameChart.Fl
|
|
|
329
329
|
(this.overviewContainer.createChild('canvas', 'cpu-profile-flame-chart-overview-canvas') as HTMLCanvasElement);
|
|
330
330
|
this.overviewContainer.appendChild(this.overviewGrid.element);
|
|
331
331
|
this.dataProvider = dataProvider;
|
|
332
|
-
this.overviewGrid.addEventListener(
|
|
332
|
+
this.overviewGrid.addEventListener(
|
|
333
|
+
PerfUI.OverviewGrid.Events.WindowChangedWithPosition, this.onWindowChanged, this);
|
|
333
334
|
}
|
|
334
335
|
|
|
335
336
|
windowChanged(windowStartTime: number, windowEndTime: number): void {
|
|
@@ -348,12 +349,13 @@ export class OverviewPane extends UI.Widget.VBox implements PerfUI.FlameChart.Fl
|
|
|
348
349
|
this.overviewGrid.setWindow((timeLeft - startTime) / totalTime, (timeRight - startTime) / totalTime);
|
|
349
350
|
}
|
|
350
351
|
|
|
351
|
-
onWindowChanged(event: Common.EventTarget.EventTargetEvent):
|
|
352
|
+
onWindowChanged(event: Common.EventTarget.EventTargetEvent<PerfUI.OverviewGrid.WindowChangedWithPositionEvent>):
|
|
353
|
+
void {
|
|
352
354
|
const windowPosition = {windowTimeLeft: event.data.rawStartValue, windowTimeRight: event.data.rawEndValue};
|
|
353
355
|
this.windowTimeLeft = windowPosition.windowTimeLeft;
|
|
354
356
|
this.windowTimeRight = windowPosition.windowTimeRight;
|
|
355
357
|
|
|
356
|
-
this.dispatchEventToListeners(
|
|
358
|
+
this.dispatchEventToListeners(OverviewPaneEvents.WindowChanged, windowPosition);
|
|
357
359
|
}
|
|
358
360
|
|
|
359
361
|
timelineData(): PerfUI.FlameChart.TimelineData|null {
|
|
@@ -445,3 +447,16 @@ export class OverviewPane extends UI.Widget.VBox implements PerfUI.FlameChart.Fl
|
|
|
445
447
|
this.overviewCanvas.style.height = height + 'px';
|
|
446
448
|
}
|
|
447
449
|
}
|
|
450
|
+
|
|
451
|
+
export const enum OverviewPaneEvents {
|
|
452
|
+
WindowChanged = 'WindowChanged',
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
export interface OverviewPaneWindowChangedEvent {
|
|
456
|
+
windowTimeLeft: number;
|
|
457
|
+
windowTimeRight: number;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
export type OVerviewPaneEventTypes = {
|
|
461
|
+
[OverviewPaneEvents.WindowChanged]: OverviewPaneWindowChangedEvent,
|
|
462
|
+
};
|
|
@@ -14,8 +14,8 @@ import type * as Protocol from '../../generated/protocol.js';
|
|
|
14
14
|
|
|
15
15
|
import {ProfileFlameChartDataProvider} from './CPUProfileFlameChart.js';
|
|
16
16
|
|
|
17
|
-
import type {Samples} from './HeapTimelineOverview.js';
|
|
18
|
-
import {
|
|
17
|
+
import type {Samples, IdsRangeChangedEvent} from './HeapTimelineOverview.js';
|
|
18
|
+
import {Events, HeapTimelineOverview} from './HeapTimelineOverview.js';
|
|
19
19
|
import type {Formatter, ProfileDataGridNode} from './ProfileDataGrid.js';
|
|
20
20
|
import type {ProfileHeader} from './ProfileHeader.js';
|
|
21
21
|
import {ProfileType, ProfileEvents} from './ProfileHeader.js';
|
|
@@ -155,7 +155,7 @@ export class HeapProfileView extends ProfileView implements UI.SearchableView.Se
|
|
|
155
155
|
this.timelineOverview = new HeapTimelineOverview();
|
|
156
156
|
|
|
157
157
|
if (Root.Runtime.experiments.isEnabled('samplingHeapProfilerTimeline')) {
|
|
158
|
-
this.timelineOverview.addEventListener(IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
158
|
+
this.timelineOverview.addEventListener(Events.IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
159
159
|
this.timelineOverview.show(this.element, this.element.firstChild);
|
|
160
160
|
this.timelineOverview.start();
|
|
161
161
|
|
|
@@ -172,9 +172,8 @@ export class HeapProfileView extends ProfileView implements UI.SearchableView.Se
|
|
|
172
172
|
return [...await super.toolbarItems(), this.selectedSizeText];
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
onIdsRangeChanged(event: Common.EventTarget.EventTargetEvent): void {
|
|
176
|
-
const minId =
|
|
177
|
-
const maxId = (event.data.maxId as number);
|
|
175
|
+
onIdsRangeChanged(event: Common.EventTarget.EventTargetEvent<IdsRangeChangedEvent>): void {
|
|
176
|
+
const {minId, maxId} = event.data;
|
|
178
177
|
this.selectedSizeText.setText(
|
|
179
178
|
i18nString(UIStrings.selectedSizeS, {PH1: Platform.NumberUtilities.bytesToString(event.data.size)}));
|
|
180
179
|
this.setSelectionRange(minId, maxId);
|
|
@@ -49,7 +49,8 @@ import type {AllocationGridNode, HeapSnapshotGridNode} from './HeapSnapshotGridN
|
|
|
49
49
|
import {HeapSnapshotGenericObjectNode} from './HeapSnapshotGridNodes.js';
|
|
50
50
|
import type {HeapSnapshotProxy} from './HeapSnapshotProxy.js';
|
|
51
51
|
import {HeapSnapshotWorkerProxy} from './HeapSnapshotProxy.js';
|
|
52
|
-
import {
|
|
52
|
+
import type {IdsRangeChangedEvent} from './HeapTimelineOverview.js';
|
|
53
|
+
import {HeapTimelineOverview, Events, Samples} from './HeapTimelineOverview.js';
|
|
53
54
|
import * as ModuleUIStrings from './ModuleUIStrings.js';
|
|
54
55
|
import type {DataDisplayDelegate} from './ProfileHeader.js';
|
|
55
56
|
import {Events as ProfileHeaderEvents, ProfileEvents as ProfileTypeEvents, ProfileHeader, ProfileType} from './ProfileHeader.js';
|
|
@@ -441,7 +442,7 @@ export class HeapSnapshotView extends UI.View.SimpleView implements DataDisplayD
|
|
|
441
442
|
createOverview(): void {
|
|
442
443
|
const profileType = this.profile.profileType();
|
|
443
444
|
this.trackingOverviewGrid = new HeapTimelineOverview();
|
|
444
|
-
this.trackingOverviewGrid.addEventListener(IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
445
|
+
this.trackingOverviewGrid.addEventListener(Events.IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
445
446
|
if (!this.profile.fromFile() && profileType.profileBeingRecorded() === this.profile) {
|
|
446
447
|
profileType.addEventListener(TrackingHeapSnapshotProfileType.HeapStatsUpdate, this.onHeapStatsUpdate, this);
|
|
447
448
|
profileType.addEventListener(TrackingHeapSnapshotProfileType.TrackingStopped, this.onStopTracking, this);
|
|
@@ -550,9 +551,8 @@ export class HeapSnapshotView extends UI.View.SimpleView implements DataDisplayD
|
|
|
550
551
|
return statistics;
|
|
551
552
|
}
|
|
552
553
|
|
|
553
|
-
onIdsRangeChanged(event: Common.EventTarget.EventTargetEvent): void {
|
|
554
|
-
const minId = event.data
|
|
555
|
-
const maxId = event.data.maxId;
|
|
554
|
+
onIdsRangeChanged(event: Common.EventTarget.EventTargetEvent<IdsRangeChangedEvent>): void {
|
|
555
|
+
const {minId, maxId} = event.data;
|
|
556
556
|
this.selectedSizeText.setText(
|
|
557
557
|
i18nString(UIStrings.selectedSizeS, {PH1: Platform.NumberUtilities.bytesToString(event.data.size)}));
|
|
558
558
|
if (this.constructorsDataGrid.snapshot) {
|
|
@@ -988,7 +988,7 @@ export class HeapSnapshotView extends UI.View.SimpleView implements DataDisplayD
|
|
|
988
988
|
}
|
|
989
989
|
this.onStopTracking();
|
|
990
990
|
if (this.trackingOverviewGrid) {
|
|
991
|
-
this.trackingOverviewGrid.removeEventListener(IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
991
|
+
this.trackingOverviewGrid.removeEventListener(Events.IdsRangeChanged, this.onIdsRangeChanged.bind(this));
|
|
992
992
|
}
|
|
993
993
|
}
|
|
994
994
|
}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import * as Common from '../../core/common/common.js';
|
|
5
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
7
|
import * as Platform from '../../core/platform/platform.js';
|
|
7
8
|
import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
|
|
8
9
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
9
10
|
|
|
10
|
-
export class HeapTimelineOverview extends UI.Widget.VBox
|
|
11
|
+
export class HeapTimelineOverview extends Common.ObjectWrapper.eventMixin<EventTypes, typeof UI.Widget.VBox>(
|
|
12
|
+
UI.Widget.VBox) {
|
|
11
13
|
readonly overviewCalculator: OverviewCalculator;
|
|
12
14
|
overviewContainer: HTMLElement;
|
|
13
15
|
overviewGrid: PerfUI.OverviewGrid.OverviewGrid;
|
|
@@ -246,11 +248,23 @@ export class HeapTimelineOverview extends UI.Widget.VBox {
|
|
|
246
248
|
const minId = minIndex > 0 ? ids[minIndex - 1] : 0;
|
|
247
249
|
const maxId = maxIndex < ids.length ? ids[maxIndex] : Infinity;
|
|
248
250
|
|
|
249
|
-
this.dispatchEventToListeners(IdsRangeChanged, {minId, maxId, size});
|
|
251
|
+
this.dispatchEventToListeners(Events.IdsRangeChanged, {minId, maxId, size});
|
|
250
252
|
}
|
|
251
253
|
}
|
|
252
254
|
|
|
253
|
-
export const
|
|
255
|
+
export const enum Events {
|
|
256
|
+
IdsRangeChanged = 'IdsRangeChanged',
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
export interface IdsRangeChangedEvent {
|
|
260
|
+
minId: number;
|
|
261
|
+
maxId: number;
|
|
262
|
+
size: number;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export type EventTypes = {
|
|
266
|
+
[Events.IdsRangeChanged]: IdsRangeChangedEvent,
|
|
267
|
+
};
|
|
254
268
|
|
|
255
269
|
export class SmoothScale {
|
|
256
270
|
lastUpdate: number;
|