blob: 7d169ec828fcfb22ee927740f6c9914c924f4167 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module blink.mojom;
import "mojo/public/mojom/base/time.mojom";
import "services/network/public/mojom/fetch_api.mojom";
import "services/network/public/mojom/parsed_headers.mojom";
import "services/network/public/mojom/network_param.mojom";
import "services/network/public/mojom/network_types.mojom";
import "third_party/blink/public/mojom/blob/serialized_blob.mojom";
import "third_party/blink/public/mojom/service_worker/service_worker_error_type.mojom";
import "url/mojom/url.mojom";
// Describes a Response in terms of the concept from the Fetch spec.
// https://fetch.spec.whatwg.org/#response-class
// Note: Be sure to update CacheStorageCache::EstimatedResponseSizeWithoutBlob()
// when adding or removing members.
struct FetchAPIResponse {
// List of URLs that originally generated this response, it includes all URLs
// in case of HTTP redirect, first URL on redirect chain is on position 0.
// It can be empty if respones was generated programatically as in
// responsdWith(new Response()).
array<url.mojom.Url> url_list;
// Status code as number, e.g.: 200, 404.
// Zero status code indicates an error happened and the request was not
// handled.
uint16 status_code = 0;
// Status code as text. e.g.: "OK", "Not Found".
string status_text;
// Corresponds to response types from the Fetch spec:
// https://fetch.spec.whatwg.org/#concept-response-type
network.mojom.FetchResponseType response_type =
network.mojom.FetchResponseType.kDefault;
// Pre-computed padding for this response. This should only be non-zero
// for when |response_type| is kOpaque.
int64 padding = 0;
// The source of this response, e.g. network, CacheStorage.
network.mojom.FetchResponseSource response_source =
network.mojom.FetchResponseSource.kUnspecified;
// The response headers. It's case insensitive for header name as key.
map<string, string> headers;
// The mime type of the response, if one has been set.
string? mime_type;
// The http request method used to load the response. May be unset for
// synthetic Response objects created via the constructor.
string? request_method;
// Mojo interface to read the response payload.
SerializedBlob? blob;
// Error codes for service worker APIs.
ServiceWorkerResponseError error =
blink.mojom.ServiceWorkerResponseError.kUnknown;
// The time at which the response headers were received. For cached
// responses, this time could be "far" in the past.
mojo_base.mojom.Time response_time;
// Name of cache where this response was retrieved, empty otherwise.
string? cache_storage_cache_name;
// In case this is a CORS response fetched by a ServiceWorker, this is the
// set of headers that should be exposed.
array<string> cors_exposed_header_names;
// Used to pass code cache for responses produced by cache_storage. The code
// cache will be stored in the side data stream of the blob.
SerializedBlob? side_data_blob;
// Used to pass code cache for a response that is being newly stored in
// cache_storage. This blob is created from a memory buffer in the renderer
// and the code cache is contained in the primary data stream of the blob.
SerializedBlob? side_data_blob_for_cache_put;
// A set of parsed headers for clients that can't do the parsing themselves,
// because they aren't sandboxed (e.g. the browser process). This is the
// output of blink::ParseHeaders(headers, url);
network.mojom.ParsedHeaders? parsed_headers;
// Enumeration that describes the kind of connection originally used to
// fetch this request.
network.mojom.ConnectionInfo connection_info;
// ALPN negotiated protocol of the socket which fetched this resource.
string alpn_negotiated_protocol = "unknown";
// True if the response was originally loaded via a request fetched over a
// SPDY channel.
bool was_fetched_via_spdy = false;
// https://fetch.spec.whatwg.org/#concept-response-range-requested-flag
bool has_range_requested = false;
// Information related to an authentication challenge from the response, if
// there was one.
network.mojom.AuthChallengeInfo? auth_challenge_info;
};