20
20
* @fileoverview `NetworkRequest` represents a single network request and keeps
21
21
* track of all the related CDP events.
22
22
*/
23
-
24
23
import Protocol from 'devtools-protocol' ;
25
24
26
25
import { Deferred } from '../../../utils/deferred.js' ;
@@ -29,22 +28,19 @@ import {Network} from '../../../protocol/protocol.js';
29
28
30
29
export class NetworkRequest {
31
30
static #unknown = 'UNKNOWN' ;
32
- requestId : string ;
31
+
32
+ requestId : Network . Request ;
33
33
#eventManager: IEventManager ;
34
- #requestWillBeSentEvent: Protocol . Network . RequestWillBeSentEvent | undefined ;
35
- #requestWillBeSentExtraInfoEvent:
36
- | Protocol . Network . RequestWillBeSentExtraInfoEvent
37
- | undefined ;
38
- #responseReceivedEvent: Protocol . Network . ResponseReceivedEvent | undefined ;
39
34
40
- #responseReceivedExtraInfoEvent:
41
- | Protocol . Network . ResponseReceivedExtraInfoEvent
42
- | undefined ;
35
+ #requestWillBeSentEvent?: Protocol . Network . RequestWillBeSentEvent ;
36
+ #requestWillBeSentExtraInfoEvent?: Protocol . Network . RequestWillBeSentExtraInfoEvent ;
37
+ #responseReceivedEvent?: Protocol . Network . ResponseReceivedEvent ;
38
+ #responseReceivedExtraInfoEvent?: Protocol . Network . ResponseReceivedExtraInfoEvent ;
43
39
44
40
#beforeRequestSentDeferred: Deferred < void > ;
45
41
#responseReceivedDeferred: Deferred < void > ;
46
42
47
- constructor ( requestId : string , eventManager : IEventManager ) {
43
+ constructor ( requestId : Network . Request , eventManager : IEventManager ) {
48
44
this . requestId = requestId ;
49
45
this . #eventManager = eventManager ;
50
46
this . #beforeRequestSentDeferred = new Deferred < void > ( ) ;
@@ -63,6 +59,7 @@ export class NetworkRequest {
63
59
if ( this . #requestWillBeSentExtraInfoEvent !== undefined ) {
64
60
this . #beforeRequestSentDeferred. resolve ( ) ;
65
61
}
62
+
66
63
this . #sendBeforeRequestEvent( ) ;
67
64
}
68
65
@@ -73,6 +70,7 @@ export class NetworkRequest {
73
70
// TODO: Handle redirect event, requestId is same for the redirect chain
74
71
return ;
75
72
}
73
+
76
74
this . #requestWillBeSentExtraInfoEvent = requestWillBeSentExtraInfoEvent ;
77
75
if ( this . #requestWillBeSentEvent !== undefined ) {
78
76
this . #beforeRequestSentDeferred. resolve ( ) ;
@@ -87,18 +85,21 @@ export class NetworkRequest {
87
85
return ;
88
86
}
89
87
this . #responseReceivedEvent = responseReceivedEvent ;
88
+
90
89
if (
91
90
! responseReceivedEvent . hasExtraInfo &&
92
91
! this . #beforeRequestSentDeferred. isFinished
93
92
) {
94
93
this . #beforeRequestSentDeferred. resolve ( ) ;
95
94
}
95
+
96
96
if (
97
97
! responseReceivedEvent . hasExtraInfo ||
98
98
this . #responseReceivedExtraInfoEvent !== undefined
99
99
) {
100
100
this . #responseReceivedDeferred. resolve ( ) ;
101
101
}
102
+
102
103
this . #sendResponseReceivedEvent( ) ;
103
104
}
104
105
@@ -110,6 +111,7 @@ export class NetworkRequest {
110
111
return ;
111
112
}
112
113
this . #responseReceivedExtraInfoEvent = responseReceivedExtraInfoEvent ;
114
+
113
115
if ( this . #responseReceivedEvent !== undefined ) {
114
116
this . #responseReceivedDeferred. resolve ( ) ;
115
117
}
@@ -161,7 +163,7 @@ export class NetworkRequest {
161
163
} ;
162
164
}
163
165
164
- #getBaseEventParams( ) : Network . BaseEventParams {
166
+ #getBaseEventParams( ) : Network . BaseParameters {
165
167
return {
166
168
context : this . #requestWillBeSentEvent?. frameId ?? null ,
167
169
navigation : this . #requestWillBeSentEvent?. loaderId ?? null ,
@@ -221,8 +223,6 @@ export class NetworkRequest {
221
223
// TODO: implement.
222
224
tlsStart : 0 ,
223
225
// TODO: implement.
224
- tlsEnd : 0 ,
225
- // TODO: implement.
226
226
requestStart : 0 ,
227
227
// TODO: implement.
228
228
responseStart : 0 ,
@@ -244,7 +244,7 @@ export class NetworkRequest {
244
244
}
245
245
246
246
static #getCookiesSameSite(
247
- cdpSameSiteValue : string | undefined
247
+ cdpSameSiteValue ? : string
248
248
) : Network . Cookie [ 'sameSite' ] {
249
249
switch ( cdpSameSiteValue ) {
250
250
case 'Strict' :
@@ -309,7 +309,6 @@ export class NetworkRequest {
309
309
fromCache :
310
310
this . #responseReceivedEvent. response . fromDiskCache ||
311
311
this . #responseReceivedEvent. response . fromPrefetchCache ,
312
- // TODO: implement.
313
312
headers : this . #getHeaders(
314
313
this . #responseReceivedEvent. response . headers
315
314
) ,
0 commit comments