File: features.gni

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (91 lines) | stat: -rw-r--r-- 3,883 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

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

declare_args() {
  # Disables support for file URLs.  File URL support requires use of icu.
  # Cronet does not support file URLs.
  disable_file_support = is_cronet_build

  # WebSockets and socket stream code are not used when blink is not used
  # and are optional in cronet.
  enable_websockets = use_blink

  # Enable Kerberos authentication. It is disabled by default on iOS, Fuchsia
  # and Chromecast, at least for now. This feature needs configuration
  # (krb5.conf and so on).
  # TODO(fuchsia): Enable kerberos on Fuchsia when it's implemented there.
  use_kerberos = !is_ios && !is_fuchsia && !is_castos && !is_cast_android

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

  # Do not disable zstd filter by default.
  # TODO: https://crbug.com/40282397 - Consider dropping once Cronet default enables zstd.
  disable_zstd_filter = false

  # Multicast DNS.
  enable_mdns = is_win || is_linux || is_chromeos || is_fuchsia || is_apple

  # Reporting not used on iOS.
  enable_reporting = !is_ios

  # Includes the transport security state preload list. This list includes
  # mechanisms (e.g. HSTS, HPKP) to enforce trusted connections to a significant
  # set of hardcoded domains. While this list has a several hundred KB of binary
  # size footprint, this flag should not be disabled unless the embedder is
  # willing to take the responsibility to make sure that all important
  # connections use HTTPS.
  include_transport_security_state_preload_list = true

  # Platforms for which certificate verification can be performed either using
  # the builtin cert verifier with the Chrome Root Store, or with the platform
  # verifier.
  #
  # Currently this is used only for Android because WebView does not use the
  # builtin cert verifier, but uses the Android cert verifier.
  chrome_root_store_optional = is_android && !is_cronet_build

  # Platforms for which certificate verification can only be performed using
  # the builtin cert verifier with the Chrome Root Store.
  chrome_root_store_only = is_win || is_mac || is_linux || is_chromeos

  # DBSC is only supported on Windows, Linux and Mac for now.
  enable_device_bound_sessions = is_win || is_linux || is_mac

  # Bracketed URIs parsing is only available for debug builds.
  # TODO(crbug.com/365771838): Ensure tests are updated if needed if this
  # feature is changed at all.
  enable_bracketed_proxy_uris = is_debug

  # General QUIC proxy support is only available for debug builds.
  # TODO(crbug.com/367400641): If flag is changed or removed, ensure all
  # TODOs for this bug are correctly modified.
  enable_quic_proxy_support = is_debug

  # The SQL disk cache backend is an experimental feature (crbug.com/422065015).
  # It is enabled only in specific build configurations to avoid increasing the
  # build size.
  enable_disk_cache_sql_backend =
      (is_linux && !is_castos) ||
      (is_android && !is_cast_android && !is_cronet_build) || is_win ||
      is_mac || is_chromeos
}

assert(!chrome_root_store_optional || !chrome_root_store_only,
       "at most one of chrome_root_store_optional and chrome_root_store_only " +
           "may be true")

# Needs to be in a separate declare_args since it refers to args set in the
# previous declare_args block.
declare_args() {
  # All platforms for which certificate verification can be performed using the
  # builtin cert verifier with the Chrome Root Store. This includes both
  # platforms where use of the Chrome Root Store is optional and platforms
  # where it is the only supported method.
  chrome_root_store_supported =
      chrome_root_store_optional || chrome_root_store_only
}