RouteHandlerRegistry

Struct RouteHandlerRegistry 

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

Route handler registry for a page or context.

Implementations§

Source§

impl RouteHandlerRegistry

Source

pub fn new(connection: Arc<CdpConnection>, session_id: String) -> Self

Create a new route handler registry.

Source

pub fn with_credentials( connection: Arc<CdpConnection>, session_id: String, credentials: HttpCredentials, ) -> Self

Create a new route handler registry with HTTP credentials.

Source

pub fn with_context_routes( connection: Arc<CdpConnection>, session_id: String, context_routes: Arc<ContextRouteRegistry>, http_credentials: Option<HttpCredentials>, ) -> Self

Create a new route handler registry with context-level routes.

If http_credentials is provided, they will be set on the auth handler for handling HTTP authentication challenges.

Source

pub async fn enable_fetch_for_context_routes(&self) -> Result<(), NetworkError>

Enable Fetch domain if context has routes or auth is enabled.

This should be called after the registry is created to check if there are context-level routes that need interception or if HTTP credentials are configured.

Source

pub fn set_context_routes(&mut self, context_routes: Arc<ContextRouteRegistry>)

Set the context-level route registry.

Source

pub fn start_fetch_listener(self: &Arc<Self>)

Start the background fetch event listener.

This spawns a background task that listens for Fetch.requestPaused and Fetch.authRequired events and dispatches them to the appropriate handlers.

Also listens for context route change notifications to enable Fetch when new routes are added to the context after the page was created.

This should be called after creating the registry, passing an Arc reference to self.

Source

pub async fn set_http_credentials(&self, credentials: HttpCredentials)

Set HTTP credentials for authentication.

Source

pub async fn clear_http_credentials(&self)

Clear HTTP credentials.

Source

pub async fn handle_auth_required( &self, event: &AuthRequiredEvent, ) -> Result<(), NetworkError>

Handle an authentication challenge.

Source

pub async fn route<M, H, Fut>( &self, pattern: M, handler: H, ) -> Result<(), NetworkError>
where M: Into<UrlPattern>, H: Fn(Route) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<(), NetworkError>> + Send + 'static,

Register a route handler for the given pattern.

Source

pub async fn route_predicate<P, H, Fut>( &self, predicate: P, handler: H, ) -> Result<(), NetworkError>
where P: Fn(&str) -> bool + Send + Sync + 'static, H: Fn(Route) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<(), NetworkError>> + Send + 'static,

Register a route handler with a predicate function.

Source

pub async fn unroute(&self, pattern: &str)

Unregister handlers matching the given pattern.

Source

pub async fn unroute_all(&self)

Unregister all handlers.

Source

pub async fn handle_request( &self, event: &RequestPausedEvent, ) -> Result<(), NetworkError>

Handle a paused request by dispatching to matching handlers.

Handlers are tried in reverse order (LIFO). If a handler calls fallback(), the next matching handler is tried. If no handler handles the request, it is continued to the network.

Source

pub async fn ensure_fetch_enabled_public(&self) -> Result<(), NetworkError>

Enable the Fetch domain if not already enabled.

This is a public version for use by ContextRouteRegistry when synchronously enabling Fetch on all pages after a context route is added.

Trait Implementations§

Source§

impl Debug for RouteHandlerRegistry

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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