diff --git a/src/bidiMapper/modules/network/NetworkRequest.ts b/src/bidiMapper/modules/network/NetworkRequest.ts index 53225fd713..37494c4e30 100644 --- a/src/bidiMapper/modules/network/NetworkRequest.ts +++ b/src/bidiMapper/modules/network/NetworkRequest.ts @@ -65,6 +65,8 @@ export class NetworkRequest { #fetchId?: Protocol.Fetch.RequestId; + #finished = false; + /** * Indicates the network intercept phase, if the request is currently blocked. * Undefined necessarily implies that the request is not blocked. @@ -473,7 +475,8 @@ export class NetworkRequest { if ( Boolean(this.#response.info) && responseExtraInfoCompleted && - responseInterceptionCompleted + responseInterceptionCompleted && + this.#finished ) { this.#emitEvent(this.#getResponseReceivedEvent.bind(this)); this.#networkStorage.disposeRequest(this.id); @@ -523,6 +526,7 @@ export class NetworkRequest { } onLoadingFailedEvent(event: Protocol.Network.LoadingFailedEvent) { + this.#finished = true; this.#emitEventsIfReady({ hasFailed: true, }); @@ -1100,6 +1104,11 @@ export class NetworkRequest { return 'other'; } } + + onLoadingFinished(): void { + this.#finished = true; + this.#emitEventsIfReady(); + } } function getCdpBodyFromBiDiBytesValue( diff --git a/src/bidiMapper/modules/network/NetworkStorage.ts b/src/bidiMapper/modules/network/NetworkStorage.ts index 0f04fc6af2..512b87c31a 100644 --- a/src/bidiMapper/modules/network/NetworkStorage.ts +++ b/src/bidiMapper/modules/network/NetworkStorage.ts @@ -161,6 +161,15 @@ export class NetworkStorage { ).onResponseReceivedExtraInfoEvent(params); }, ], + [ + 'Network.loadingFinished', + (params: Protocol.Network.LoadingFinishedEvent) => { + this.#getOrCreateNetworkRequest( + params.requestId, + cdpTarget, + ).onLoadingFinished(); + }, + ], [ 'Network.requestServedFromCache', (params: Protocol.Network.RequestServedFromCacheEvent) => { diff --git a/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/combined/network_events.py.ini b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/combined/network_events.py.ini new file mode 100644 index 0000000000..adc3f048c5 --- /dev/null +++ b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/combined/network_events.py.ini @@ -0,0 +1,3 @@ +[network_events.py] + [test_event_order_with_redirect] + expected: FAIL diff --git a/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini new file mode 100644 index 0000000000..1fdaf2fc4a --- /dev/null +++ b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini @@ -0,0 +1,2 @@ +[fetch_error.py] + expected: TIMEOUT diff --git a/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed.py.ini b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed.py.ini index acde9fac86..d039f1e891 100644 --- a/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed.py.ini +++ b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed.py.ini @@ -4,3 +4,15 @@ [test_response_status[407-Proxy Authentication Required\]] expected: FAIL + + [test_redirect] + expected: FAIL + + [test_redirect_document[http\]] + expected: FAIL + + [test_redirect_document[https\]] + expected: FAIL + + [test_redirect_document[https coop\]] + expected: FAIL diff --git a/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini new file mode 100644 index 0000000000..35c099cccc --- /dev/null +++ b/wpt-metadata/chromedriver/headful/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini @@ -0,0 +1,3 @@ +[response_completed_cached.py] + [test_cached_redirect] + expected: FAIL diff --git a/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/combined/network_events.py.ini b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/combined/network_events.py.ini new file mode 100644 index 0000000000..adc3f048c5 --- /dev/null +++ b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/combined/network_events.py.ini @@ -0,0 +1,3 @@ +[network_events.py] + [test_event_order_with_redirect] + expected: FAIL diff --git a/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini new file mode 100644 index 0000000000..1fdaf2fc4a --- /dev/null +++ b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini @@ -0,0 +1,2 @@ +[fetch_error.py] + expected: TIMEOUT diff --git a/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini index acde9fac86..d039f1e891 100644 --- a/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini +++ b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini @@ -4,3 +4,15 @@ [test_response_status[407-Proxy Authentication Required\]] expected: FAIL + + [test_redirect] + expected: FAIL + + [test_redirect_document[http\]] + expected: FAIL + + [test_redirect_document[https\]] + expected: FAIL + + [test_redirect_document[https coop\]] + expected: FAIL diff --git a/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini new file mode 100644 index 0000000000..35c099cccc --- /dev/null +++ b/wpt-metadata/chromedriver/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini @@ -0,0 +1,3 @@ +[response_completed_cached.py] + [test_cached_redirect] + expected: FAIL diff --git a/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini new file mode 100644 index 0000000000..1fdaf2fc4a --- /dev/null +++ b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/fetch_error/fetch_error.py.ini @@ -0,0 +1,2 @@ +[fetch_error.py] + expected: TIMEOUT diff --git a/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini index acde9fac86..cf98402e7a 100644 --- a/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini +++ b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed.py.ini @@ -1,4 +1,5 @@ [response_completed.py] + expected: TIMEOUT [test_response_status[101-Switching Protocols\]] expected: FAIL diff --git a/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini new file mode 100644 index 0000000000..35c099cccc --- /dev/null +++ b/wpt-metadata/mapper/headless/webdriver/tests/bidi/network/response_completed/response_completed_cached.py.ini @@ -0,0 +1,3 @@ +[response_completed_cached.py] + [test_cached_redirect] + expected: FAIL