Skip to content

Commit d81fad6

Browse files
wolfibCommit Bot
authored andcommitted
Reland "Port IssuesModel to TypeScript"
This is a reland of 892d5ae. The only additional change is fixing a race condition in the NetworkLog constructor which caused browser test "WorkerDevToolsSanityTest.InspectSharedWorkerNetworkPanel" to fail. original change: https://crrev.com/c/2213439 revert: https://crrev.com/c/2217412 Bug: chromium:1011811, chromium:1079233, chromium:1058320 Change-Id: I3201de972ba238d1f9e01b785d345beb8f0e32a1 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2217416 Reviewed-by: Tim van der Lippe <[email protected]> Reviewed-by: Simon Zünd <[email protected]> Commit-Queue: Wolfgang Beyer <[email protected]>
1 parent 55f7489 commit d81fad6

File tree

13 files changed

+78
-40
lines changed

13 files changed

+78
-40
lines changed

front_end/browser_sdk/LogManager.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ export class LogManager {
4747
data.entry.stackTrace, data.entry.timestamp, undefined, undefined, data.entry.workerId);
4848

4949
if (data.entry.networkRequestId) {
50-
self.SDK.networkLog.associateConsoleMessageWithRequest(consoleMessage, data.entry.networkRequestId);
50+
SDK.NetworkLog.NetworkLog.instance().associateConsoleMessageWithRequest(
51+
consoleMessage, data.entry.networkRequestId);
5152
}
5253

5354
if (consoleMessage.source === SDK.ConsoleModel.MessageSource.Worker) {

front_end/extensions/ExtensionServer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper {
429429
return this._status.OK();
430430
}
431431

432-
const request = self.SDK.networkLog.requestForURL(message.url);
432+
const request = SDK.NetworkLog.NetworkLog.instance().requestForURL(message.url);
433433
if (request) {
434434
Common.Revealer.reveal(request);
435435
return this._status.OK();
@@ -489,7 +489,7 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper {
489489
}
490490

491491
async _onGetHAR() {
492-
const requests = self.SDK.networkLog.requests();
492+
const requests = SDK.NetworkLog.NetworkLog.instance().requests();
493493
const harLog = await SDK.HARLog.HARLog.build(requests);
494494
for (let i = 0; i < harLog.entries.length; ++i) {
495495
harLog.entries[i]._requestId = this._requestId(requests[i]);

front_end/issues/IssuesPane.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,12 @@ class AffectedResourcesView extends UI.TreeOutline.TreeElement {
108108
* @return {!Array<!SDK.NetworkRequest.NetworkRequest>}
109109
*/
110110
_resolveRequestId(requestId) {
111-
const requests = self.SDK.networkLog.requestsForId(requestId);
111+
const requests = SDK.NetworkLog.NetworkLog.instance().requestsForId(requestId);
112112
if (!requests.length) {
113113
this._unresolvedRequestIds.add(requestId);
114114
if (!this._listener) {
115-
this._listener =
116-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.RequestAdded, this._onRequestAdded, this);
115+
this._listener = SDK.NetworkLog.NetworkLog.instance().addEventListener(
116+
SDK.NetworkLog.Events.RequestAdded, this._onRequestAdded, this);
117117
}
118118
}
119119
return requests;

front_end/network/NetworkDataGridNode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ export class NetworkRequestNode extends NetworkNode {
749749
showingInitiatorChainChanged() {
750750
const showInitiatorChain = this.showingInitiatorChain();
751751

752-
const initiatorGraph = self.SDK.networkLog.initiatorGraphForRequest(this._request);
752+
const initiatorGraph = SDK.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this._request);
753753
for (const request of initiatorGraph.initiators) {
754754
if (request === this._request) {
755755
continue;
@@ -1176,7 +1176,7 @@ export class NetworkRequestNode extends NetworkNode {
11761176
_renderInitiatorCell(cell) {
11771177
this._initiatorCell = cell;
11781178
const request = this._request;
1179-
const initiator = self.SDK.networkLog.initiatorInfoForRequest(request);
1179+
const initiator = SDK.NetworkLog.NetworkLog.instance().initiatorInfoForRequest(request);
11801180

11811181
const timing = request.timing;
11821182
if (timing && timing.pushStart) {

front_end/network/NetworkLogView.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,11 @@ export class NetworkLogView extends UI.Widget.VBox {
193193
.addChangeListener(this._invalidateAllItems.bind(this, false), this);
194194

195195
SDK.SDKModel.TargetManager.instance().observeModels(SDK.NetworkManager.NetworkManager, this);
196-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.RequestAdded, this._onRequestUpdated, this);
197-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.RequestUpdated, this._onRequestUpdated, this);
198-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.Reset, this._reset, this);
196+
SDK.NetworkLog.NetworkLog.instance().addEventListener(
197+
SDK.NetworkLog.Events.RequestAdded, this._onRequestUpdated, this);
198+
SDK.NetworkLog.NetworkLog.instance().addEventListener(
199+
SDK.NetworkLog.Events.RequestUpdated, this._onRequestUpdated, this);
200+
SDK.NetworkLog.NetworkLog.instance().addEventListener(SDK.NetworkLog.Events.Reset, this._reset, this);
199201

200202
this._updateGroupByFrame();
201203
Common.Settings.Settings.instance()
@@ -558,7 +560,8 @@ export class NetworkLogView extends UI.Widget.VBox {
558560
this._harLoadFailed(e);
559561
return;
560562
}
561-
self.SDK.networkLog.importRequests(HARImporter.HARImporter.Importer.requestsFromHARLog(harRoot.log));
563+
SDK.NetworkLog.NetworkLog.instance().importRequests(
564+
HARImporter.HARImporter.Importer.requestsFromHARLog(harRoot.log));
562565
}
563566

564567
/**
@@ -841,7 +844,7 @@ export class NetworkLogView extends UI.Widget.VBox {
841844
let maxTime = -1;
842845

843846
let nodeCount = 0;
844-
for (const request of self.SDK.networkLog.requests()) {
847+
for (const request of SDK.NetworkLog.NetworkLog.instance().requests()) {
845848
const node = request[_networkNodeSymbol];
846849
if (!node) {
847850
continue;
@@ -972,7 +975,7 @@ export class NetworkLogView extends UI.Widget.VBox {
972975
* @param {boolean=} deferUpdate
973976
*/
974977
_invalidateAllItems(deferUpdate) {
975-
this._staleRequests = new Set(self.SDK.networkLog.requests());
978+
this._staleRequests = new Set(SDK.NetworkLog.NetworkLog.instance().requests());
976979
if (deferUpdate) {
977980
this.scheduleRefresh();
978981
} else {
@@ -1489,7 +1492,7 @@ export class NetworkLogView extends UI.Widget.VBox {
14891492
}
14901493

14911494
_harRequests() {
1492-
return self.SDK.networkLog.requests().filter(NetworkLogView.HTTPRequestsFilter).filter(request => {
1495+
return SDK.NetworkLog.NetworkLog.instance().requests().filter(NetworkLogView.HTTPRequestsFilter).filter(request => {
14931496
return request.finished ||
14941497
(request.resourceType() === Common.ResourceType.resourceTypes.WebSocket && request.responseReceivedTime);
14951498
});
@@ -1513,7 +1516,7 @@ export class NetworkLogView extends UI.Widget.VBox {
15131516
* @param {string} platform
15141517
*/
15151518
async _copyAllCurlCommand(platform) {
1516-
const commands = await this._generateAllCurlCommand(self.SDK.networkLog.requests(), platform);
1519+
const commands = await this._generateAllCurlCommand(SDK.NetworkLog.NetworkLog.instance().requests(), platform);
15171520
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(commands);
15181521
}
15191522

@@ -1530,7 +1533,7 @@ export class NetworkLogView extends UI.Widget.VBox {
15301533
* @param {boolean} includeCookies
15311534
*/
15321535
async _copyAllFetchCall(includeCookies) {
1533-
const commands = await this._generateAllFetchCall(self.SDK.networkLog.requests(), includeCookies);
1536+
const commands = await this._generateAllFetchCall(SDK.NetworkLog.NetworkLog.instance().requests(), includeCookies);
15341537
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(commands);
15351538
}
15361539

@@ -1543,7 +1546,7 @@ export class NetworkLogView extends UI.Widget.VBox {
15431546
}
15441547

15451548
async _copyAllPowerShellCommand() {
1546-
const commands = await this._generateAllPowerShellCommand(self.SDK.networkLog.requests());
1549+
const commands = await this._generateAllPowerShellCommand(SDK.NetworkLog.NetworkLog.instance().requests());
15471550
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(commands);
15481551
}
15491552

front_end/network/NetworkPanel.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,11 @@ export class NetworkPanel extends UI.Panel.Panel {
180180
SDK.ResourceTreeModel.ResourceTreeModel, SDK.ResourceTreeModel.Events.Load, this._load, this);
181181
this._networkLogView.addEventListener(Events.RequestSelected, this._onRequestSelected, this);
182182
this._networkLogView.addEventListener(Events.RequestActivated, this._onRequestActivated, this);
183-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.RequestAdded, this._onUpdateRequest, this);
184-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.RequestUpdated, this._onUpdateRequest, this);
185-
self.SDK.networkLog.addEventListener(SDK.NetworkLog.Events.Reset, this._onNetworkLogReset, this);
183+
SDK.NetworkLog.NetworkLog.instance().addEventListener(
184+
SDK.NetworkLog.Events.RequestAdded, this._onUpdateRequest, this);
185+
SDK.NetworkLog.NetworkLog.instance().addEventListener(
186+
SDK.NetworkLog.Events.RequestUpdated, this._onUpdateRequest, this);
187+
SDK.NetworkLog.NetworkLog.instance().addEventListener(SDK.NetworkLog.Events.Reset, this._onNetworkLogReset, this);
186188
}
187189

188190
/**
@@ -248,7 +250,8 @@ export class NetworkPanel extends UI.Panel.Panel {
248250
}
249251
this._panelToolbar.appendToolbarItem(UI.Toolbar.Toolbar.createActionButton(this._toggleRecordAction));
250252
const clearButton = new UI.Toolbar.ToolbarButton(Common.UIString.UIString('Clear'), 'largeicon-clear');
251-
clearButton.addEventListener(UI.Toolbar.ToolbarButton.Events.Click, () => self.SDK.networkLog.reset(), this);
253+
clearButton.addEventListener(
254+
UI.Toolbar.ToolbarButton.Events.Click, () => SDK.NetworkLog.NetworkLog.instance().reset(), this);
252255
this._panelToolbar.appendToolbarItem(clearButton);
253256
this._panelToolbar.appendSeparator();
254257

@@ -322,7 +325,7 @@ export class NetworkPanel extends UI.Panel.Panel {
322325

323326
_toggleRecording() {
324327
if (!this._preserveLogSetting.get() && !this._toggleRecordAction.toggled()) {
325-
self.SDK.networkLog.reset();
328+
SDK.NetworkLog.NetworkLog.instance().reset();
326329
}
327330
this._toggleRecord(!this._toggleRecordAction.toggled());
328331
}
@@ -338,7 +341,7 @@ export class NetworkPanel extends UI.Panel.Panel {
338341
}
339342
// TODO(einbinder) This should be moved to a setting/action that NetworkLog owns but NetworkPanel controls, but
340343
// always be present in the command menu.
341-
self.SDK.networkLog.setIsRecording(toggled);
344+
SDK.NetworkLog.NetworkLog.instance().setIsRecording(toggled);
342345
}
343346

344347
/**

front_end/network/NetworkSearchScope.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export class NetworkSearchScope {
2828
*/
2929
async performSearch(searchConfig, progress, searchResultCallback, searchFinishedCallback) {
3030
const promises = [];
31-
const requests =
32-
self.SDK.networkLog.requests().filter(request => searchConfig.filePathMatchesFileQuery(request.url()));
31+
const requests = SDK.NetworkLog.NetworkLog.instance().requests().filter(
32+
request => searchConfig.filePathMatchesFileQuery(request.url()));
3333
progress.setTotalWork(requests.length);
3434
for (const request of requests) {
3535
const promise = this._searchRequest(searchConfig, request, progress);

front_end/network/RequestInitiatorView.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class RequestInitiatorView extends UI.Widget.VBox {
134134
this._appendExpandableSection(stackTracePreview.element, ls`Request call stack`, true);
135135
}
136136

137-
const initiatorGraph = self.SDK.networkLog.initiatorGraphForRequest(this._request);
137+
const initiatorGraph = SDK.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this._request);
138138
if (initiatorGraph.initiators.size > 1 || initiatorGraph.initiated.size > 1) {
139139
initiatorDataPresent = true;
140140
this._appendExpandableSection(

front_end/network_test_runner/NetworkTestRunner.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ NetworkTestRunner.networkWaterfallColumn = function() {
5757
};
5858

5959
NetworkTestRunner.networkRequests = function() {
60-
return Array.from(self.SDK.networkLog.requests());
60+
return Array.from(SDK.NetworkLog.instance().requests());
6161
};
6262

6363
NetworkTestRunner.dumpNetworkRequests = function() {
@@ -75,7 +75,7 @@ NetworkTestRunner.dumpNetworkRequests = function() {
7575
};
7676

7777
NetworkTestRunner.dumpNetworkRequestsWithSignedExchangeInfo = function() {
78-
for (const request of self.SDK.networkLog.requests()) {
78+
for (const request of SDK.NetworkLog.instance().requests()) {
7979
TestRunner.addResult(`* ${request.url()}`);
8080
TestRunner.addResult(` failed: ${!!request.failed}`);
8181
TestRunner.addResult(` statusCode: ${request.statusCode}`);

front_end/protocol_client/InspectorBackend.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,13 @@ export class TargetBase {
650650

651651
// Agent accessors, keep alphabetically sorted.
652652

653+
/**
654+
* @return {!ProtocolProxyApi.AuditsApi}
655+
*/
656+
auditsAgent() {
657+
throw new Error('Implemented in InspectorBackend.js');
658+
}
659+
653660
/**
654661
* @return {!ProtocolProxyApi.CacheStorageApi}
655662
*/
@@ -744,6 +751,13 @@ export class TargetBase {
744751

745752
// Dispatcher registration, keep alphabetically sorted.
746753

754+
/**
755+
* @param {!ProtocolProxyApi.AuditsDispatcher} dispatcher
756+
*/
757+
registerAuditsDispatcher(dispatcher) {
758+
throw new Error('Implemented in InspectorBackend.js');
759+
}
760+
747761
/**
748762
* @param {!ProtocolProxyApi.DebuggerDispatcher} dispatcher
749763
*/

front_end/sdk/IssuesModel.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
// @ts-nocheck
6-
// TODO(crbug.com/1011811): Enable TypeScript compiler checks
7-
85
import {CrossOriginEmbedderPolicyIssue} from './CrossOriginEmbedderPolicyIssue.js';
96
import {Issue} from './Issue.js'; // eslint-disable-line no-unused-vars
107
import {MixedContentIssue} from './MixedContentIssue.js';
8+
import {NetworkLog} from './NetworkLog.js';
119
import {Events as NetworkManagerEvents, NetworkManager} from './NetworkManager.js';
1210
import {NetworkRequest} from './NetworkRequest.js'; // eslint-disable-line no-unused-vars
1311
import {SameSiteCookieIssue} from './SameSiteCookieIssue.js';
@@ -30,7 +28,7 @@ export class NetworkIssueDetector {
3028
if (this._networkManager) {
3129
this._networkManager.addEventListener(NetworkManagerEvents.RequestFinished, this._handleRequestFinished, this);
3230
}
33-
for (const request of self.SDK.networkLog.requests()) {
31+
for (const request of NetworkLog.instance().requests()) {
3432
this._handleRequestFinished({data: request});
3533
}
3634
}
@@ -78,7 +76,7 @@ export class NetworkIssueDetector {
7876
* class (usually derived from `Issue`) and passes the instances on via a dispatched event.
7977
* We chose this approach here because the lifetime of the Model is tied to the target, but DevTools
8078
* wants to preserve issues for targets (e.g. iframes) that are already gone as well.
81-
* @implements {Protocol.AuditsDispatcher}
79+
* @implements {ProtocolProxyApiWorkaround_AuditsDispatcher}
8280
*/
8381
export class IssuesModel extends SDKModel {
8482
/**
@@ -93,6 +91,13 @@ export class IssuesModel extends SDKModel {
9391
this.ensureEnabled();
9492
}
9593

94+
/**
95+
* @return {!Protocol.UsesObjectNotation}
96+
*/
97+
usesObjectNotation() {
98+
return true;
99+
}
100+
96101
ensureEnabled() {
97102
if (this._enabled) {
98103
return;
@@ -101,16 +106,16 @@ export class IssuesModel extends SDKModel {
101106
this._enabled = true;
102107
this.target().registerAuditsDispatcher(this);
103108
this._auditsAgent = this.target().auditsAgent();
104-
this._auditsAgent.enable();
109+
this._auditsAgent.invoke_enable();
105110
this._networkIssueDetector = new NetworkIssueDetector(this.target(), this);
106111
}
107112

108113
/**
109114
* @override
110-
* @param {!Protocol.Audits.InspectorIssue} inspectorIssue
115+
* @param {!Protocol.Audits.IssueAddedEvent} issueAddedEvent
111116
*/
112-
issueAdded(inspectorIssue) {
113-
const issues = this._createIssuesFromProtocolIssue(inspectorIssue);
117+
issueAdded(issueAddedEvent) {
118+
const issues = this._createIssuesFromProtocolIssue(issueAddedEvent.issue);
114119
for (const issue of issues) {
115120
this.addIssue(issue);
116121
}

front_end/sdk/NetworkLog.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ import {Events as ResourceTreeModelEvents, ResourceTreeFrame, ResourceTreeModel}
3838
import {RuntimeModel} from './RuntimeModel.js';
3939
import {SDKModelObserver, TargetManager} from './SDKModel.js'; // eslint-disable-line no-unused-vars
4040

41+
/** @type {!NetworkLog} */
42+
let _instance;
43+
4144
/**
4245
* @implements {SDKModelObserver<!NetworkManager>}
4346
*/
@@ -54,11 +57,21 @@ export class NetworkLog extends Common.ObjectWrapper.ObjectWrapper {
5457
this._pageLoadForManager = new Map();
5558
/** @type {boolean} */
5659
this._isRecording = true;
57-
TargetManager.instance().observeModels(NetworkManager, this);
5860
/** @type {!WeakMap<!NetworkManager, !Array<!Common.EventTarget.EventDescriptor>>} */
5961
this._modelListeners = new WeakMap();
6062
/** @type {!WeakMap<!NetworkRequest, !InitiatorData>} */
6163
this._initiatorData = new WeakMap();
64+
TargetManager.instance().observeModels(NetworkManager, this);
65+
}
66+
67+
/**
68+
* @return {!NetworkLog}
69+
*/
70+
static instance() {
71+
if (!_instance) {
72+
_instance = new NetworkLog();
73+
}
74+
return _instance;
6275
}
6376

6477
/**

front_end/sdk/sdk-legacy.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,4 +253,3 @@ SDK.TracingModel.Event = SDKModule.TracingModel.Event;
253253
self.SDK.targetManager = SDKModule.SDKModel.TargetManager.instance();
254254
self.SDK.isolateManager = new SDKModule.IsolateManager.IsolateManager();
255255
self.SDK.domModelUndoStack = new SDKModule.DOMModel.DOMModelUndoStack();
256-
self.SDK.networkLog = new SDKModule.NetworkLog.NetworkLog();

0 commit comments

Comments
 (0)