Skip to content

Commit

Permalink
Add network request interception
Browse files Browse the repository at this point in the history
Add a feature for intercepting network requests.

Network request incercepts are created using the network.addIntercept
command. This takes a URL pattern describing which resources to match,
and a list of phases, which can be "beforeRequestSent",
"responseStarted", or "authRequired". It returns a handle that can
later be used with network.removeIntercept to unregister the
intercept.

When a request is intercepted, the corresponding network events get
their `isBLocked` property set to true, and the client has to respond
with a command in order to unblock the request.

Blocking only occurs if a client is also subscribed to the relevant
network events.

Each request inteception phase has a corresponding event, and one or
more commands to continue the request from that point.

At the beforeRequestSent phase, the client may respond with
continueRequest, which allows altering the request properties, but
continues processing the request via the normal network stack. It may
also respond with network.provideResponse, which allows providing a
complete response body and prevents all further processing.

At the afterResponse stage, the client may respond with
network.continueResponse, which allows altering the response status and
headers, or network.provideResponse, which overrides the network response with
the client-provided response.

At either phase the client may response with network.failRequest to
cause the fetch to end with a network error.

At the authRequired phase, the client must respond with
network.continueWithAuth, to handle the request for credentials.

Credentials can also be provided in the responseStarted phase (when
the response has an approproate status code and authentication
header), in which case those credentials will be used and a
network.authRequired event will not be sent.
  • Loading branch information
jgraham committed Aug 17, 2023
1 parent 077fb5b commit 4e18076
Showing 1 changed file with 1,488 additions and 184 deletions.
Loading

0 comments on commit 4e18076

Please sign in to comment.