Route

Struct Route 

Source
pub struct Route { /* private fields */ }
Expand description

Route represents a network route handler.

Routes allow intercepting, aborting, continuing, or fulfilling network requests.

See: https://playwright.dev/docs/api/class-route

Implementations§

Source§

impl Route

Source

pub fn new( parent: Arc<dyn ChannelOwner>, type_name: String, guid: Arc<str>, initializer: Value, ) -> Result<Self>

Creates a new Route from protocol initialization

This is called by the object factory when the server sends a __create__ message for a Route object.

Source

pub fn request(&self) -> Request

Returns the request that is being routed.

See: https://playwright.dev/docs/api/class-route#route-request

Source

pub async fn abort(&self, error_code: Option<&str>) -> Result<()>

Aborts the route’s request.

§Arguments
  • error_code - Optional error code (default: “failed”)

Available error codes:

  • “aborted” - User-initiated cancellation
  • “accessdenied” - Permission denied
  • “addressunreachable” - Host unreachable
  • “blockedbyclient” - Client blocked request
  • “connectionaborted”, “connectionclosed”, “connectionfailed”, “connectionrefused”, “connectionreset”
  • “internetdisconnected”
  • “namenotresolved”
  • “timedout”
  • “failed” - Generic error (default)

See: https://playwright.dev/docs/api/class-route#route-abort

Source

pub async fn continue_(&self, overrides: Option<ContinueOptions>) -> Result<()>

Continues the route’s request with optional modifications.

§Arguments
  • overrides - Optional modifications to apply to the request

See: https://playwright.dev/docs/api/class-route#route-continue

Source

pub async fn fulfill(&self, options: Option<FulfillOptions>) -> Result<()>

Fulfills the route’s request with a custom response.

§Arguments
  • options - Response configuration (status, headers, body, etc.)
§Known Limitations

Response body fulfillment is not supported in Playwright 1.49.0 - 1.56.1.

The route.fulfill() method can successfully send requests for status codes and headers, but the response body is not transmitted to the browser JavaScript layer. This applies to ALL request types (main document, fetch, XHR, etc.), not just document navigation.

Investigation Findings:

  • The protocol message is correctly formatted and accepted by the Playwright server
  • The body bytes are present in the fulfill() call
  • The Playwright server creates a Response object
  • But the body content does not reach the browser’s fetch/network API

This appears to be a limitation or bug in the Playwright server implementation. Tested with versions 1.49.0 and 1.56.1 (latest as of 2025-11-10).

TODO: Periodically test with newer Playwright versions for fix. Workaround: Mock responses at the HTTP server level rather than using network interception, or wait for a newer Playwright version that supports response body fulfillment.

See: https://playwright.dev/docs/api/class-route#route-fulfill

Trait Implementations§

Source§

impl ChannelOwner for Route

Source§

fn guid(&self) -> &str

Returns the unique GUID for this object. Read more
Source§

fn type_name(&self) -> &str

Returns the protocol type name (e.g., “Browser”, “Page”).
Source§

fn parent(&self) -> Option<Arc<dyn ChannelOwner>>

Returns the parent object, if any. Read more
Source§

fn connection(&self) -> Arc<dyn ConnectionLike>

Returns the connection this object belongs to.
Source§

fn initializer(&self) -> &Value

Returns the raw initializer JSON from the server. Read more
Source§

fn channel(&self) -> &Channel

Returns the channel for RPC communication.
Source§

fn dispose(&self, reason: DisposeReason)

Disposes this object and all its children. Read more
Source§

fn adopt(&self, child: Arc<dyn ChannelOwner>)

Adopts a child object (moves from old parent to this parent). Read more
Source§

fn add_child(&self, guid: Arc<str>, child: Arc<dyn ChannelOwner>)

Adds a child object to this parent’s registry. Read more
Source§

fn remove_child(&self, guid: &str)

Removes a child object from this parent’s registry. Read more
Source§

fn on_event(&self, _method: &str, _params: Value)

Handles a protocol event sent to this object. Read more
Source§

fn was_collected(&self) -> bool

Returns true if this object was garbage collected.
Source§

fn as_any(&self) -> &dyn Any

Enables downcasting to concrete types. Read more
Source§

impl Clone for Route

Source§

fn clone(&self) -> Route

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Route

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Route

§

impl !RefUnwindSafe for Route

§

impl Send for Route

§

impl Sync for Route

§

impl Unpin for Route

§

impl !UnwindSafe for Route

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more