# Copyright 2016 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.

import("//build/config/features.gni")

declare_args() {
  # If true, prune things down as needed for proto-quic build.
  is_proto_quic = false

  # Disables support for file URLs.  File URL support requires use of icu.
  disable_file_support = false

  # WebSockets and socket stream code are not used on iOS and are optional in
  # cronet.
  enable_websockets = !is_ios
  disable_ftp_support = is_ios || is_chromecast

  # Enable Kerberos authentication. It is disabled by default on iOS,
  # Chromecast, at least for now. This feature needs configuration (krb5.conf
  # and so on). On Chrome OS it is only supported on Active Directory
  # managed devices.
  use_kerberos = !is_ios && !is_chromecast

  # Do not disable brotli filter by default.
  disable_brotli_filter = false

  # Multicast DNS.
  enable_mdns = is_win || is_linux
}
