| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp |
| |
| # A domain for letting clients substitute browser's network layer with client code. |
| domain Fetch |
| depends on Network |
| depends on IO |
| depends on Page |
| |
| # Unique request identifier. |
| # Note that this does not identify individual HTTP requests that are part of |
| # a network request. |
| type RequestId extends string |
| |
| # Stages of the request to handle. Request will intercept before the request is |
| # sent. Response will intercept after the response is received (but before response |
| # body is received). |
| type RequestStage extends string |
| enum |
| Request |
| Response |
| |
| type RequestPattern extends object |
| properties |
| # Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is |
| # backslash. Omitting is equivalent to `"*"`. |
| optional string urlPattern |
| # If set, only requests for matching resource types will be intercepted. |
| optional Network.ResourceType resourceType |
| # Stage at which to begin intercepting requests. Default is Request. |
| optional RequestStage requestStage |
| |
| # Response HTTP header entry |
| type HeaderEntry extends object |
| properties |
| string name |
| string value |
| |
| # Authorization challenge for HTTP status code 401 or 407. |
| type AuthChallenge extends object |
| properties |
| # Source of the authentication challenge. |
| optional enum source |
| Server |
| Proxy |
| # Origin of the challenger. |
| string origin |
| # The authentication scheme used, such as basic or digest |
| string scheme |
| # The realm of the challenge. May be empty. |
| string realm |
| |
| # Response to an AuthChallenge. |
| type AuthChallengeResponse extends object |
| properties |
| # The decision on what to do in response to the authorization challenge. Default means |
| # deferring to the default behavior of the net stack, which will likely either the Cancel |
| # authentication or display a popup dialog box. |
| enum response |
| Default |
| CancelAuth |
| ProvideCredentials |
| # The username to provide, possibly empty. Should only be set if response is |
| # ProvideCredentials. |
| optional string username |
| # The password to provide, possibly empty. Should only be set if response is |
| # ProvideCredentials. |
| optional string password |
| |
| # Disables the fetch domain. |
| command disable |
| |
| # Enables issuing of requestPaused events. A request will be paused until client |
| # calls one of failRequest, fulfillRequest or continueRequest/continueWithAuth. |
| command enable |
| parameters |
| # If specified, only requests matching any of these patterns will produce |
| # fetchRequested event and will be paused until clients response. If not set, |
| # all requests will be affected. |
| optional array of RequestPattern patterns |
| # If true, authRequired events will be issued and requests will be paused |
| # expecting a call to continueWithAuth. |
| optional boolean handleAuthRequests |
| |
| # Causes the request to fail with specified reason. |
| command failRequest |
| parameters |
| # An id the client received in requestPaused event. |
| RequestId requestId |
| # Causes the request to fail with the given reason. |
| Network.ErrorReason errorReason |
| |
| # Provides response to the request. |
| command fulfillRequest |
| parameters |
| # An id the client received in requestPaused event. |
| RequestId requestId |
| # An HTTP response code. |
| integer responseCode |
| # Response headers. |
| optional array of HeaderEntry responseHeaders |
| # Alternative way of specifying response headers as a \0-separated |
| # series of name: value pairs. Prefer the above method unless you |
| # need to represent some non-UTF8 values that can't be transmitted |
| # over the protocol as text. |
| optional binary binaryResponseHeaders |
| # A response body. If absent, original response body will be used if |
| # the request is intercepted at the response stage and empty body |
| # will be used if the request is intercepted at the request stage. |
| optional binary body |
| # A textual representation of responseCode. |
| # If absent, a standard phrase matching responseCode is used. |
| optional string responsePhrase |
| |
| # Continues the request, optionally modifying some of its parameters. |
| command continueRequest |
| parameters |
| # An id the client received in requestPaused event. |
| RequestId requestId |
| # If set, the request url will be modified in a way that's not observable by page. |
| optional string url |
| # If set, the request method is overridden. |
| optional string method |
| # If set, overrides the post data in the request. |
| optional binary postData |
| # If set, overrides the request headers. Note that the overrides do not |
| # extend to subsequent redirect hops, if a redirect happens. Another override |
| # may be applied to a different request produced by a redirect. |
| optional array of HeaderEntry headers |
| # If set, overrides response interception behavior for this request. |
| experimental optional boolean interceptResponse |
| |
| # Continues a request supplying authChallengeResponse following authRequired event. |
| command continueWithAuth |
| parameters |
| # An id the client received in authRequired event. |
| RequestId requestId |
| # Response to with an authChallenge. |
| AuthChallengeResponse authChallengeResponse |
| |
| # Continues loading of the paused response, optionally modifying the |
| # response headers. If either responseCode or headers are modified, all of them |
| # must be present. |
| experimental command continueResponse |
| parameters |
| # An id the client received in requestPaused event. |
| RequestId requestId |
| # An HTTP response code. If absent, original response code will be used. |
| optional integer responseCode |
| # A textual representation of responseCode. |
| # If absent, a standard phrase matching responseCode is used. |
| optional string responsePhrase |
| # Response headers. If absent, original response headers will be used. |
| optional array of HeaderEntry responseHeaders |
| # Alternative way of specifying response headers as a \0-separated |
| # series of name: value pairs. Prefer the above method unless you |
| # need to represent some non-UTF8 values that can't be transmitted |
| # over the protocol as text. |
| optional binary binaryResponseHeaders |
| |
| # Causes the body of the response to be received from the server and |
| # returned as a single string. May only be issued for a request that |
| # is paused in the Response stage and is mutually exclusive with |
| # takeResponseBodyForInterceptionAsStream. Calling other methods that |
| # affect the request or disabling fetch domain before body is received |
| # results in an undefined behavior. |
| # Note that the response body is not available for redirects. Requests |
| # paused in the _redirect received_ state may be differentiated by |
| # `responseCode` and presence of `location` response header, see |
| # comments to `requestPaused` for details. |
| command getResponseBody |
| parameters |
| # Identifier for the intercepted request to get body for. |
| RequestId requestId |
| returns |
| # Response body. |
| string body |
| # True, if content was sent as base64. |
| boolean base64Encoded |
| |
| # Returns a handle to the stream representing the response body. |
| # The request must be paused in the HeadersReceived stage. |
| # Note that after this command the request can't be continued |
| # as is -- client either needs to cancel it or to provide the |
| # response body. |
| # The stream only supports sequential read, IO.read will fail if the position |
| # is specified. |
| # This method is mutually exclusive with getResponseBody. |
| # Calling other methods that affect the request or disabling fetch |
| # domain before body is received results in an undefined behavior. |
| command takeResponseBodyAsStream |
| parameters |
| RequestId requestId |
| returns |
| IO.StreamHandle stream |
| |
| # Issued when the domain is enabled and the request URL matches the |
| # specified filter. The request is paused until the client responds |
| # with one of continueRequest, failRequest or fulfillRequest. |
| # The stage of the request can be determined by presence of responseErrorReason |
| # and responseStatusCode -- the request is at the response stage if either |
| # of these fields is present and in the request stage otherwise. |
| # Redirect responses and subsequent requests are reported similarly to regular |
| # responses and requests. Redirect responses may be distinguished by the value |
| # of `responseStatusCode` (which is one of 301, 302, 303, 307, 308) along with |
| # presence of the `location` header. Requests resulting from a redirect will |
| # have `redirectedRequestId` field set. |
| event requestPaused |
| parameters |
| # Each request the page makes will have a unique id. |
| RequestId requestId |
| # The details of the request. |
| Network.Request request |
| # The id of the frame that initiated the request. |
| Page.FrameId frameId |
| # How the requested resource will be used. |
| Network.ResourceType resourceType |
| # Response error if intercepted at response stage. |
| optional Network.ErrorReason responseErrorReason |
| # Response code if intercepted at response stage. |
| optional integer responseStatusCode |
| # Response status text if intercepted at response stage. |
| optional string responseStatusText |
| # Response headers if intercepted at the response stage. |
| optional array of HeaderEntry responseHeaders |
| # If the intercepted request had a corresponding Network.requestWillBeSent event fired for it, |
| # then this networkId will be the same as the requestId present in the requestWillBeSent event. |
| optional Network.RequestId networkId |
| # If the request is due to a redirect response from the server, the id of the request that |
| # has caused the redirect. |
| experimental optional RequestId redirectedRequestId |
| |
| # Issued when the domain is enabled with handleAuthRequests set to true. |
| # The request is paused until client responds with continueWithAuth. |
| event authRequired |
| parameters |
| # Each request the page makes will have a unique id. |
| RequestId requestId |
| # The details of the request. |
| Network.Request request |
| # The id of the frame that initiated the request. |
| Page.FrameId frameId |
| # How the requested resource will be used. |
| Network.ResourceType resourceType |
| # Details of the Authorization Challenge encountered. |
| # If this is set, client should respond with continueRequest that |
| # contains AuthChallengeResponse. |
| AuthChallenge authChallenge |