# Copyright 2018 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/android/channel.gni")
import("//build/config/android/config.gni")
import("//weblayer/variables.gni")

declare_args() {
  # Show a launcher icon to open WebView developer UI. This is enabled by
  # default for all prestable builds. The icon for Monochrome is shown
  # dynamically at runtime if Monochrome is the current selected system WebView
  # implementation or hidden otherwise.
  webview_devui_show_icon = android_channel != "stable"
}

system_webview_android_manifest =
    "$root_gen_dir/android_webview/system_webview_apk/AndroidManifest.xml"
trichrome_webview_android_manifest =
    "$root_gen_dir/android_webview/trichrome_webview_apk/AndroidManifest.xml"
trichrome_webview_64_32_android_manifest = "$root_gen_dir/android_webview/trichrome_webview_64_32_apk/AndroidManifest.xml"
trichrome_webview_32_android_manifest =
    "$root_gen_dir/android_webview/trichrome_webview_32_apk/AndroidManifest.xml"

upstream_only_webview_deps = [
  "//android_webview:platform_service_bridge_upstream_implementation_java",
  "//android_webview/nonembedded:icon_resources",
]

if (webview_includes_weblayer) {
  upstream_only_webview_deps +=
      [ "//weblayer/browser/java:gms_bridge_upstream_impl_java" ]
}

webview_jinja_variables = [ "use_isolated_splits=$weblayer_in_split" ]

webview_product_config_java_package = "org.chromium.android_webview"
