| // Copyright 2022 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; |
| |
| // Describes the variance of URL query search params for cache matching |
| // purposes. |
| // For more information, see: |
| // https://wicg.github.io/nav-speculation/no-vary-search.html#model |
| union SearchParamsVariance { |
| // Query parameters which should be ignored when comparing a request |
| // to a cached response. This is empty if all query parameters are |
| // significant. |
| array<string> no_vary_params; |
| // Query parameters which should be respected when comparing a request |
| // to a cached response. This is empty if all query parameters should be |
| // ignored. |
| array<string> vary_params; |
| }; |
| |
| // The parsed value of the No-Vary-Search header. |
| // For more information, see: |
| // https://wicg.github.io/nav-speculation/no-vary-search.html#model |
| struct NoVarySearch { |
| // Describes the variance of URL query search params for cache matching |
| // purposes. |
| // For more information, see: |
| // https://wicg.github.io/nav-speculation/no-vary-search.html#model |
| SearchParamsVariance search_variance; |
| |
| // If false, parameters with distinct keys can be reordered in order to find a |
| // cache hit. Defaults to true. |
| bool vary_on_key_order; |
| }; |
| |
| // Parse error encountered when parsing No-Vary-Search header value. |
| // The values are one to one with the parse error values in |
| // http_no_vary_search_data.h. |
| enum NoVarySearchParseError { |
| kOk, // Parsing is correct. Also returned if there is |
| // no header. |
| kDefaultValue, // Parsing is correct but led to default value. |
| // The header could be removed. |
| kNotDictionary, // Header value is not a dictionary. |
| kUnknownDictionaryKey, // Header value contains unknown dictionary keys. |
| kNonBooleanKeyOrder, // `key-order` is non-boolean. |
| kParamsNotStringList, // `params` is not a string list. |
| kExceptNotStringList, // `expect` is not a string list. |
| kExceptWithoutTrueParams, // `expect` without `params` set to true. |
| }; |
| |
| // The parsed value of No-Vary-Search header or the error |
| // encountered while parsing the header. |
| union NoVarySearchWithParseError { |
| NoVarySearch no_vary_search; |
| NoVarySearchParseError parse_error; |
| }; |