Use type-safe listeners for ResourceTreeModel events 2/2

R=wolfi@chromium.org

Bug: 1228674
Change-Id: I633e968442974a9c5e2b1b56604a456c585bbb19
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3062563
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Wolfgang Beyer <wolfi@chromium.org>
Commit-Queue: Wolfgang Beyer <wolfi@chromium.org>
This commit is contained in:
Simon Zünd
2021-07-30 10:23:46 +00:00
committed by Devtools-frontend LUCI CQ
parent c100a8bb82
commit 1a9304907f
16 changed files with 55 additions and 46 deletions
+2 -1
View File
@@ -50,6 +50,7 @@ import {Events as RuntimeModelEvents, RuntimeModel} from './RuntimeModel.js';
import type {Target} from './Target.js';
import {TargetManager} from './TargetManager.js';
import type {Observer} from './TargetManager.js';
import type {ResourceTreeFrame} from './ResourceTreeModel.js';
const UIStrings = {
/**
@@ -311,7 +312,7 @@ export class ConsoleModel extends Common.ObjectWrapper.ObjectWrapper implements
++this.pageLoadSequenceNumber;
}
_mainFrameNavigated(event: Common.EventTarget.EventTargetEvent): void {
_mainFrameNavigated(event: Common.EventTarget.EventTargetEvent<ResourceTreeFrame>): void {
if (Common.Settings.Settings.instance().moduleSetting('preserveConsoleLog').get()) {
Common.Console.Console.instance().log(i18nString(UIStrings.navigatedToS, {PH1: event.data.url}));
}
+4 -6
View File
@@ -122,9 +122,8 @@ export class FrameManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
this.resolveAwaitedFrame(frame);
}
_frameDetached(event: Common.EventTarget.EventTargetEvent): void {
const frame = event.data.frame as ResourceTreeFrame;
const isSwap = event.data.isSwap as boolean;
_frameDetached(event: Common.EventTarget.EventTargetEvent<{frame: ResourceTreeFrame, isSwap: boolean}>): void {
const {frame, isSwap} = event.data;
// Decrease the frame's count or remove it entirely from the map.
this._decreaseOrRemoveFrame(frame.id);
@@ -153,9 +152,8 @@ export class FrameManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
}
}
_resourceAdded(event: Common.EventTarget.EventTargetEvent): void {
const resource = (event.data as Resource);
this.dispatchEventToListeners(Events.ResourceAdded, {resource});
_resourceAdded(event: Common.EventTarget.EventTargetEvent<Resource>): void {
this.dispatchEventToListeners(Events.ResourceAdded, {resource: event.data});
}
_decreaseOrRemoveFrame(frameId: string): void {
+2 -2
View File
@@ -112,8 +112,8 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
return pageResourceLoader;
}
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent): void {
const mainFrame = (event.data as ResourceTreeFrame);
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent<ResourceTreeFrame>): void {
const mainFrame = event.data;
if (!mainFrame.isTopFrame()) {
return;
}
+7 -8
View File
@@ -230,8 +230,8 @@ class ModelInfo {
return true;
}
_resourceAdded(event: Common.EventTarget.EventTargetEvent): void {
const resource = (event.data as SDK.Resource.Resource);
_resourceAdded(event: Common.EventTarget.EventTargetEvent<SDK.Resource.Resource>): void {
const resource = event.data;
if (!this._acceptsResource(resource)) {
return;
}
@@ -263,14 +263,13 @@ class ModelInfo {
}
}
_frameWillNavigate(event: Common.EventTarget.EventTargetEvent): void {
const frame = (event.data as SDK.ResourceTreeModel.ResourceTreeFrame);
this._removeFrameResources(frame);
_frameWillNavigate(event: Common.EventTarget.EventTargetEvent<SDK.ResourceTreeModel.ResourceTreeFrame>): void {
this._removeFrameResources(event.data);
}
_frameDetached(event: Common.EventTarget.EventTargetEvent): void {
const frame = (event.data.frame as SDK.ResourceTreeModel.ResourceTreeFrame);
this._removeFrameResources(frame);
_frameDetached(event: Common.EventTarget
.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame, isSwap: boolean}>): void {
this._removeFrameResources(event.data.frame);
}
_resetForTest(): void {
@@ -53,8 +53,10 @@ export class ContrastCheckTrigger {
resourceTreeModel.target().auditsAgent().invoke_checkContrast({});
}
private pageLoaded(event: Common.EventTarget.EventTargetEvent): void {
const {resourceTreeModel} = event.data as {resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel};
private pageLoaded(
event: Common.EventTarget
.EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>): void {
const {resourceTreeModel} = event.data;
this.checkContrast(resourceTreeModel);
}
+8 -6
View File
@@ -318,8 +318,8 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper implements
}
}
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent): void {
const mainFrame = (event.data as SDK.ResourceTreeModel.ResourceTreeFrame);
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent<SDK.ResourceTreeModel.ResourceTreeFrame>): void {
const mainFrame = event.data;
const manager = mainFrame.resourceTreeModel().target().model(SDK.NetworkManager.NetworkManager);
if (!manager || mainFrame.resourceTreeModel().target().parentTarget()) {
return;
@@ -485,19 +485,21 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper implements
}
_onDOMContentLoaded(
resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, event: Common.EventTarget.EventTargetEvent): void {
resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel,
event: Common.EventTarget.EventTargetEvent<number>): void {
const networkManager = resourceTreeModel.target().model(SDK.NetworkManager.NetworkManager);
const pageLoad = networkManager ? this._pageLoadForManager.get(networkManager) : null;
if (pageLoad) {
pageLoad.contentLoadTime = (event.data as number);
pageLoad.contentLoadTime = event.data;
}
}
_onLoad(event: Common.EventTarget.EventTargetEvent): void {
_onLoad(event: Common.EventTarget
.EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>): void {
const networkManager = event.data.resourceTreeModel.target().model(SDK.NetworkManager.NetworkManager);
const pageLoad = networkManager ? this._pageLoadForManager.get(networkManager) : null;
if (pageLoad) {
pageLoad.loadTime = (event.data.loadTime as number);
pageLoad.loadTime = event.data.loadTime;
}
}
@@ -447,12 +447,12 @@ export class AppManifestView extends UI.Widget.VBox implements SDK.TargetManager
this._registeredListeners = [
this._resourceTreeModel.addEventListener(
SDK.ResourceTreeModel.Events.DOMContentLoaded,
_event => {
() => {
this._updateManifest(true);
}),
this._serviceWorkerManager.addEventListener(
SDK.ServiceWorkerManager.Events.RegistrationUpdated,
_event => {
() => {
this._updateManifest(false);
}),
];
@@ -82,9 +82,9 @@ export class ApplicationCacheModel extends SDK.SDKModel.SDKModel {
}
}
_frameDetached(event: Common.EventTarget.EventTargetEvent): void {
const frame = (event.data.frame as SDK.ResourceTreeModel.ResourceTreeFrame);
this._frameManifestRemoved(frame.id);
_frameDetached(event: Common.EventTarget
.EventTargetEvent<{frame: SDK.ResourceTreeModel.ResourceTreeFrame, isSwap: boolean}>): void {
this._frameManifestRemoved(event.data.frame.id);
}
reset(): void {
@@ -74,7 +74,7 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper {
this._onComputedStyleChanged(null);
}
_onFrameResized(_event: Common.EventTarget.EventTargetEvent): void {
_onFrameResized(): void {
function refreshContents(this: ComputedStyleModel): void {
this._onComputedStyleChanged(null);
delete this._frameResizedTimer;
+6 -4
View File
@@ -1156,23 +1156,25 @@ export class NetworkLogView extends UI.Widget.VBox implements
this._invalidateAllItems();
}
_loadEventFired(event: Common.EventTarget.EventTargetEvent): void {
_loadEventFired(
event: Common.EventTarget
.EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>): void {
if (!this._recording) {
return;
}
const time = (event.data.loadTime as number);
const time = event.data.loadTime;
if (time) {
this._mainRequestLoadTime = time;
this._columns.addEventDividers([time], 'network-load-divider');
}
}
_domContentLoadedEventFired(event: Common.EventTarget.EventTargetEvent): void {
_domContentLoadedEventFired(event: Common.EventTarget.EventTargetEvent<number>): void {
if (!this._recording) {
return;
}
const data = (event.data as number);
const {data} = event;
if (data) {
this._mainRequestDOMContentLoadedTime = data;
this._columns.addEventDividers([data], 'network-dcl-divider');
+6 -4
View File
@@ -66,16 +66,18 @@ export class NetworkOverview extends PerfUI.TimelineOverviewPane.TimelineOvervie
this.scheduleUpdate();
}
_loadEventFired(event: Common.EventTarget.EventTargetEvent): void {
const time = (event.data.loadTime as number);
_loadEventFired(
event: Common.EventTarget
.EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>): void {
const time = event.data.loadTime;
if (time) {
this._loadEvents.push(time * 1000);
}
this.scheduleUpdate();
}
_domContentLoadedEventFired(event: Common.EventTarget.EventTargetEvent): void {
const data = (event.data as number);
_domContentLoadedEventFired(event: Common.EventTarget.EventTargetEvent<number>): void {
const {data} = event;
if (data) {
this._domContentLoadedEvents.push(data * 1000);
}
+2 -2
View File
@@ -528,7 +528,7 @@ export class NetworkPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
}
}
_willReloadPage(_event: Common.EventTarget.EventTargetEvent): void {
_willReloadPage(): void {
if (this._pendingStopTimer) {
clearTimeout(this._pendingStopTimer);
delete this._pendingStopTimer;
@@ -538,7 +538,7 @@ export class NetworkPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
}
}
_load(_event: Common.EventTarget.EventTargetEvent): void {
_load(): void {
if (this._filmStripRecorder && this._filmStripRecorder.isRecording()) {
this._pendingStopTimer = window.setTimeout(this._stopFilmStripRecording.bind(this), displayScreenshotDelay);
}
@@ -723,7 +723,7 @@ export class ScreencastView extends UI.Widget.VBox implements SDK.OverlayModel.H
this._canvasElement.focus();
}
_requestNavigationHistoryEvent(_event: Common.EventTarget.EventTargetEvent): void {
_requestNavigationHistoryEvent(): void {
this._requestNavigationHistory();
}
+2 -2
View File
@@ -748,8 +748,8 @@ export class SecurityPanel extends UI.Panel.PanelWithSidebar implements
Common.EventTarget.removeEventListeners(this._eventListeners);
}
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent): void {
const frame = event.data as Protocol.Page.Frame;
_onMainFrameNavigated(event: Common.EventTarget.EventTargetEvent<SDK.ResourceTreeModel.ResourceTreeFrame>): void {
const frame = event.data;
const request = this._lastResponseReceivedForLoaderId.get(frame.loaderId);
this.selectAndSwitchToMainView();
+4 -1
View File
@@ -1133,7 +1133,10 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
this._overviewPane.setMarkers(markers);
}
async _loadEventFired(event: Common.EventTarget.EventTargetEvent): Promise<void> {
async _loadEventFired(
event: Common.EventTarget
.EventTargetEvent<{resourceTreeModel: SDK.ResourceTreeModel.ResourceTreeModel, loadTime: number}>):
Promise<void> {
if (this._state !== State.Recording || !this._recordingPageReload || !this._controller ||
this._controller.mainTarget() !== event.data.resourceTreeModel.target()) {
return;
@@ -65,7 +65,7 @@ describe('PageResourceLoader', () => {
isTopFrame() {
return true;
},
},
} as SDK.ResourceTreeModel.ResourceTreeFrame,
});
assert.deepEqual(loader.getNumberOfResources(), {loading: 3, queued: 0, resources: 0});