blob: 0f30dc4f5c66e4c324a5e1a4bb87a7e87d44be2b [file] [log] [blame]
// 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_