From a2f5b52751094cbbaa1262e9f22079682a66e75a Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Wed, 10 Jun 2026 13:16:02 -0500 Subject: [PATCH] [py] fix add_request_handler ignoring url_patterns on callback= path --- py/private/bidi_enhancements_manifest.py | 3 ++- .../selenium/webdriver/common/bidi_network_tests.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/py/private/bidi_enhancements_manifest.py b/py/private/bidi_enhancements_manifest.py index 5abbae30b8e8a..314bdb1de6438 100644 --- a/py/private/bidi_enhancements_manifest.py +++ b/py/private/bidi_enhancements_manifest.py @@ -1176,7 +1176,8 @@ def to_bidi_dict(self) -> dict: return self._request_handlers.add_handler(url_patterns, event) if callable(callback) and event not in LEGACY_REQUEST_HANDLER_EVENTS: if not isinstance(event, str) or looks_like_url_glob(event): - return self._request_handlers.add_handler(event, callback) + patterns = event if event is not None else url_patterns + return self._request_handlers.add_handler(patterns, callback) canonical_event = self._canonical_request_handler_event(event) phase_map = { "before_request": "beforeRequestSent", diff --git a/py/test/unit/selenium/webdriver/common/bidi_network_tests.py b/py/test/unit/selenium/webdriver/common/bidi_network_tests.py index 96648f2d859e7..4d1acd4efab84 100644 --- a/py/test/unit/selenium/webdriver/common/bidi_network_tests.py +++ b/py/test/unit/selenium/webdriver/common/bidi_network_tests.py @@ -374,6 +374,19 @@ def test_translatable_patterns_are_sent_to_browser(): assert params["urlPatterns"] == [{"type": "pattern", "protocol": "https", "hostname": "api.tracking.com"}] +def test_url_patterns_keyword_scopes_callback_handler(): + conn = FakeConnection() + network = Network(conn) + + network.add_request_handler( + callback=lambda request: None, + url_patterns=["https://api.tracking.com/**"], + ) + + params = conn.commands_named("network.addIntercept")[0]["params"] + assert params["urlPatterns"] == [{"type": "pattern", "protocol": "https", "hostname": "api.tracking.com"}] + + def test_blocked_event_owned_by_another_intercept_is_left_alone(): conn = FakeConnection() network = Network(conn)