@@ -62,13 +62,14 @@ public abstract class Network<AUTHREQUIRED, REQUESTPAUSED> {
62
62
private volatile Filter filter = defaultFilter ;
63
63
protected final DevTools devTools ;
64
64
65
- private final AtomicBoolean networkInterceptorClosed = new AtomicBoolean ();
65
+ private final AtomicBoolean fetchEnabled = new AtomicBoolean ();
66
66
67
67
public Network (DevTools devtools ) {
68
68
this .devTools = Require .nonNull ("DevTools" , devtools );
69
69
}
70
70
71
71
public void disable () {
72
+ fetchEnabled .set (false );
72
73
devTools .send (disableFetch ());
73
74
devTools .send (enableNetworkCaching ());
74
75
@@ -141,10 +142,6 @@ public void resetNetworkFilter() {
141
142
filter = defaultFilter ;
142
143
}
143
144
144
- public void markNetworkInterceptorClosed () {
145
- networkInterceptorClosed .set (true );
146
- }
147
-
148
145
public void interceptTrafficWith (Filter filter ) {
149
146
Require .nonNull ("HTTP filter" , filter );
150
147
@@ -153,6 +150,11 @@ public void interceptTrafficWith(Filter filter) {
153
150
}
154
151
155
152
public void prepareToInterceptTraffic () {
153
+ if (fetchEnabled .getAndSet (true )) {
154
+ // ensure we do not register the listeners multiple times, otherwise the events are handled
155
+ // multiple times
156
+ return ;
157
+ }
156
158
devTools .send (disableNetworkCaching ());
157
159
158
160
devTools .addListener (
@@ -221,7 +223,7 @@ public void prepareToInterceptTraffic() {
221
223
Thread .currentThread ().interrupt ();
222
224
throw new WebDriverException (e );
223
225
} catch (ExecutionException e ) {
224
- if (! networkInterceptorClosed .get ()) {
226
+ if (fetchEnabled .get ()) {
225
227
LOG .log (WARNING , e , () -> "Unable to process request" );
226
228
}
227
229
return new HttpResponse ();
@@ -236,8 +238,8 @@ public void prepareToInterceptTraffic() {
236
238
237
239
devTools .send (fulfillRequest (pausedRequest , forBrowser ));
238
240
} catch (TimeoutException e ) {
239
- if (! networkInterceptorClosed .get ()) {
240
- throw new WebDriverException ( e ) ;
241
+ if (fetchEnabled .get ()) {
242
+ throw e ;
241
243
}
242
244
}
243
245
});
0 commit comments