chromium/ui/base/ui_features.gni

# 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/ui.gni")

declare_args() {
  # Optional system library.
  use_xkbcommon =
      use_ozone && (is_linux || is_chromeos) && !is_castos &&
      # Avoid needing the 32-bit version of this library when Android is
      # building things via secondary toolchains.
      target_os != "android"

  # Whether the platform provides a native accessibility toolkit, in other words
  # the platform has a C/C++ interface for accessibility that Chrome
  # implements/subclasses in some way - win, mac, linux.
  has_native_accessibility =
      use_atk || is_win || is_mac || (is_ios && use_blink)

  # Whether the platform provide platform-specific accessibility implementation,
  # i.e. there an accessibility API of some kind on this platform that's
  # implemented in Chrome's browser process, but not necessarily something that
  # looks like subclassing an interface - so that includes Android (the Java
  # AccessibilityNodeProvider API) and Fuchsia (uses fidl messaging, kind of
  # like mojo).
  has_platform_accessibility_support = false

  # Whether the message center should be included for displaying notifications.
  enable_message_center =
      is_win || is_mac || is_linux || is_chromeos || is_fuchsia

  enable_hidpi = !is_android
}

# Android does have platform accessibility support that's implemented using
# BrowserAccessibilityManager. But unlike Windows, Mac and Linux it does not use
# AXPlatformNode to implement a native C++ API, instead it bridges to a Java API.
has_platform_accessibility_support =
    has_native_accessibility || is_android || is_fuchsia