| // 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. |
| |
| module network.mojom; |
| |
| // Corresponds to Fetch request's "mode" and "use-CORS-preflight flag": |
| // https://fetch.spec.whatwg.org/#concept-request-mode |
| // |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum RequestMode { |
| kSameOrigin = 0, |
| kNoCors = 1, |
| kCors = 2, |
| kCorsWithForcedPreflight = 3, |
| kNavigate = 4, |
| // Add a new type here, then update "FetchRequestMode" in enums.xml. |
| }; |
| |
| // Corresponds to Fetch request's "destination": |
| // https://fetch.spec.whatwg.org/#concept-request-destination |
| // |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum RequestDestination { |
| kEmpty = 0, |
| kAudio = 1, |
| kAudioWorklet = 2, |
| // kDocument is for a main resource request in a main frame. |
| kDocument = 3, |
| kEmbed = 4, |
| kFont = 5, |
| kFrame = 6, |
| kIframe = 7, |
| kImage = 8, |
| kManifest = 9, |
| kObject = 10, |
| kPaintWorklet = 11, |
| kReport = 12, |
| kScript = 13, |
| kServiceWorker = 14, |
| kSharedWorker = 15, |
| kStyle = 16, |
| kTrack = 17, |
| kVideo = 18, |
| // kWebBundle represents a request for a WebBundle. A <script> element whose |
| // type is "webbundle" uses this destination. |
| // |
| // e.g. <script type=webbundle> { "source": "foo.wbn", ... } </script> |
| // |
| // Fetch specifiction does not define this destination yet. |
| // Tracking issue: https://github.com/whatwg/fetch/issues/1120 |
| kWebBundle = 19, |
| kWorker = 20, |
| kXslt = 21, |
| // kFencedframe represents a main resource request in a fenced frame. A |
| // <fencedframe> element uses this destination. |
| // |
| // e.g. <fencedframe src="example.com"></fencedframe> |
| // |
| // Fenced Frame is not standardized yet. See |
| // https://github.com/shivanigithub/fenced-frame for the explainer and |
| // crbug.com/1123606 for the implementation. |
| kFencedframe = 22, |
| // Requests from the federated credential management API, |
| // https://fedidcg.github.io/FedCM/ |
| kWebIdentity = 23, |
| // Requests for compression dictionary |
| kDictionary = 24, |
| // Requests for speculation rules. |
| // https://wicg.github.io/nav-speculation/speculation-rules.html |
| kSpeculationRules = 25, |
| // Requests for JSON modules |
| kJson = 26, |
| // Requests for shared storage worklet. |
| kSharedStorageWorklet = 27, |
| // Requests for email verification. |
| kEmailVerification = 28, |
| }; |
| |
| // Corresponds to Fetch request's "redirect mode": |
| // https://fetch.spec.whatwg.org/#concept-request-redirect-mode |
| enum RedirectMode { |
| kFollow, |
| kError, |
| kManual, |
| }; |
| |
| // Corresponds to Fetch request's "credentials mode": |
| // https://fetch.spec.whatwg.org/#concept-request-credentials-mode |
| enum CredentialsMode { |
| // TODO(crbug.com/40089326): Due to a bug, this does not properly |
| // correspond to Fetch's "credentials mode", in that client certificates will |
| // be sent is available, or the handshake will be aborted in order to allow |
| // selecting a client cert. The correct behavior is to omit all client certs |
| // and continue the handshake without sending one if requested. |
| kOmit, |
| |
| kSameOrigin, |
| kInclude, |
| |
| // TODO(crbug.com/40089326): This works around kOmit not doing the |
| // spec-defined behavior. This is a temporary workaround that explicitly |
| // indicates the caller wants the spec-defined behavior. It's named as such |
| // because this should be only temporary, until kOmit is fixed. |
| kOmitBug_775438_Workaround |
| }; |
| |
| // Corresponds to response types from the Fetch spec: |
| // https://fetch.spec.whatwg.org/#concept-response-type |
| // |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum FetchResponseType { |
| kBasic = 0, |
| kCors = 1, |
| kDefault = 2, |
| kError = 3, |
| kOpaque = 4, |
| kOpaqueRedirect = 5, |
| // Add a new type here, then update "FetchResponseType" in enums.xml. |
| }; |
| |
| // Indicates the source of a response. |
| // This represents the source of the outmost response of a request. |
| // This is used only for histograms and isn't web-exposed. |
| enum FetchResponseSource { |
| // The source is unspecified: e.g. "new Response('hi')" or a response from |
| // a service worker. |
| kUnspecified, |
| // The response came from network: e.g. "fetch(req)". |
| kNetwork, |
| // The response came from HttpCache: e.g. "fetch(req)" and there is an entry |
| // in HttpCache. |
| kHttpCache, |
| // The response came from CacheStorage: e.g. "cache.match(req)" in a fetch |
| // event handler. |
| kCacheStorage, |
| }; |