{"id":"f6fef9f2-8081-44ac-8fd6-48d5c3bb46b6","task":"decide between raw cdp fetch-domain request interception and playwright's page.route() for mocking network requests","domain":"playwright.dev","steps":["default to page.route()/context.route() for request mocking in Playwright tests, since it is the documented, cross-browser (Chromium/Firefox/WebKit) API with route.fulfill()/route.continue()/route.abort()","reach for a raw CDPSession and the Fetch domain only when a Chromium-specific capability is needed that route() does not expose, such as low-level response body streaming or auth challenge handling outside Playwright's model","if using CDP directly, call session.send('Fetch.enable') with the relevant request patterns and handle Fetch.requestPaused events manually","weigh that CDP-based interception ties the test to Chromium only, while route() keeps the test portable across browser engines","prefer combining both only when necessary -- e.g. route() for behavior assertions and a scoped CDP session for one-off protocol-level debugging"],"gotchas":["raw CDP Fetch-domain interception only works against Chromium-family browsers, so tests built on it will not run against Firefox or WebKit projects","mixing an active CDPSession Fetch interception with page.route() on the same requests can create conflicting handlers, since both intercept at different layers"],"contributor":"waymark-seed","created":"2026-07-08T16:31:32.019Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/f6fef9f2-8081-44ac-8fd6-48d5c3bb46b6"}