| // Copyright 2019 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. |
| |
| #ifndef CONTENT_BROWSER_LOADER_BROWSER_INITIATED_RESOURCE_REQUEST_H_ |
| #define CONTENT_BROWSER_LOADER_BROWSER_INITIATED_RESOURCE_REQUEST_H_ |
| |
| namespace net { |
| class HttpRequestHeaders; |
| } // namespace net |
| |
| namespace network { |
| struct ResourceRequest; |
| } // namespace network |
| |
| namespace blink { |
| namespace mojom { |
| class RendererPreferences; |
| } // namespace mojom |
| } // namespace blink |
| |
| namespace content { |
| |
| class BrowserContext; |
| |
| // Returns true if either of FetchMetadata or experimental-web-platform-features |
| // is enabled. |
| bool IsFetchMetadataEnabled(); |
| |
| // Returns true if either of FetchMetadataDestination or |
| // experimental-web-platform-features is enabled. |
| bool IsFetchMetadataDestinationEnabled(); |
| |
| // Sets Fetch metadata headers on |resource_request| if appropriate: |
| // https://w3c.github.io/webappsec-fetch-metadata |
| void SetFetchMetadataHeadersForBrowserInitiatedRequest( |
| network::ResourceRequest* resource_request); |
| |
| // Sets request headers appropriate for browser-initiated resource requests, |
| // i.e., requests for navigations and dedicated/shared/service worker |
| // scripts. |
| // If |should_update_existing_headers| is true, this function may update values |
| // that are already set in |headers|. |
| // This needs to be called on the UI thread. |
| void UpdateAdditionalHeadersForBrowserInitiatedRequest( |
| net::HttpRequestHeaders* headers, |
| BrowserContext* browser_context, |
| bool should_update_existing_headers, |
| const blink::mojom::RendererPreferences& renderer_preferences); |
| |
| } // namespace content |
| |
| #endif // CONTENT_BROWSER_LOADER_BROWSER_INITIATED_RESOURCE_REQUEST_H_ |