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

static_library("app_modal") {
  sources = [
    "app_modal_dialog.cc",
    "app_modal_dialog.h",
    "app_modal_dialog_queue.cc",
    "app_modal_dialog_queue.h",
    "javascript_app_modal_dialog.cc",
    "javascript_app_modal_dialog.h",
    "javascript_dialog_extensions_client.h",
    "javascript_dialog_manager.cc",
    "javascript_dialog_manager.h",
    "javascript_native_dialog_factory.h",
    "native_app_modal_dialog.h",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//components/strings",
    "//components/url_formatter",
    "//content/public/browser",
    "//content/public/common",
    "//net",
    "//skia",
    "//ui/base",
  ]

  if (use_aura) {
    deps += [ "//ui/aura" ]
  }

  if (toolkit_views) {
    sources += [
      "views/javascript_app_modal_dialog_views.cc",
      "views/javascript_app_modal_dialog_views.h",
    ]

    deps += [
      "//components/constrained_window",
      "//ui/views",
    ]
  }
}
