commit 12762429a28b7faac12e783c3c7b8330ceec3f13
parent 10d9b0bae303474b8afd08741ef21387518d7bda
Author: Julian Descottes <jdescottes@mozilla.com>
Date: Tue, 14 Oct 2025 13:18:55 +0000
Bug 1992214 - [bidi] Update network.getData to always throw NoSuchNetworkData for unhandled requests r=webdriver-reviewers,Sasha
Differential Revision: https://phabricator.services.mozilla.com/D267379
Diffstat:
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/remote/webdriver-bidi/modules/root/network.sys.mjs b/remote/webdriver-bidi/modules/root/network.sys.mjs
@@ -2191,7 +2191,11 @@ class NetworkModule extends RootBiDiModule {
);
// Cached stencils do not return any response body.
// TODO: Handle response body for data URLs.
+ collectedData.pending = false;
collectedData.networkDataCollected.resolve();
+ this.#collectedNetworkData.delete(
+ `${collectedData.request}-${collectedData.type}`
+ );
return;
}
diff --git a/testing/web-platform/mozilla/tests/webdriver/bidi/network/get_data/cached_request.py b/testing/web-platform/mozilla/tests/webdriver/bidi/network/get_data/cached_request.py
@@ -9,6 +9,10 @@ from tests.bidi.network import (
from webdriver.bidi import error
+@pytest.mark.parametrize(
+ "use_collector",
+ [True, False],
+)
@pytest.mark.asyncio
async def test_cached_stylesheet(
bidi_session,
@@ -17,6 +21,7 @@ async def test_cached_stylesheet(
setup_network_test,
top_context,
add_data_collector,
+ use_collector,
):
network_events = await setup_network_test(
events=[
@@ -63,8 +68,13 @@ async def test_cached_stylesheet(
# Based on the current spec Firefox behavior is correct, but we didn't
# discuss the behavior for cached responses previously.
with pytest.raises(error.NoSuchNetworkDataException):
- await bidi_session.network.get_data(
- request=cached_css_event["request"]["request"],
- data_type="response",
- collector=collector,
- )
+ if use_collector:
+ await bidi_session.network.get_data(
+ request=cached_css_event["request"]["request"],
+ data_type="response",
+ collector=collector,
+ )
+ else:
+ await bidi_session.network.get_data(
+ request=cached_css_event["request"]["request"], data_type="response"
+ )