# 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("//ios/web/js_compile.gni")

source_set("web") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "dom_altering_lock.h",
    "dom_altering_lock.mm",
    "error_page_util.h",
    "error_page_util.mm",
    "font_size_tab_helper.h",
    "font_size_tab_helper.mm",
    "image_fetch_tab_helper.h",
    "image_fetch_tab_helper.mm",
    "load_timing_tab_helper.h",
    "load_timing_tab_helper.mm",
    "mailto_handler.h",
    "mailto_handler.mm",
    "mailto_handler_gmail.h",
    "mailto_handler_gmail.mm",
    "mailto_handler_inbox.h",
    "mailto_handler_inbox.mm",
    "mailto_handler_manager.h",
    "mailto_handler_manager.mm",
    "mailto_handler_system_mail.h",
    "mailto_handler_system_mail.mm",
    "network_activity_indicator_tab_helper.h",
    "network_activity_indicator_tab_helper.mm",
    "page_placeholder_tab_helper.h",
    "page_placeholder_tab_helper.mm",
    "repost_form_tab_helper.h",
    "repost_form_tab_helper.mm",
    "sad_tab_tab_helper.h",
    "sad_tab_tab_helper.mm",
  ]
  deps = [
    ":feature_flags",
    ":tab_helper_delegates",
    "//base",
    "//components/error_page/common",
    "//components/image_fetcher/ios",
    "//components/resources:components_resources_grit",
    "//components/strings",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/snapshots",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/commands:commands",
    "//ios/chrome/browser/ui/fullscreen",
    "//ios/chrome/browser/ui/util:util",
    "//ios/net",
    "//ios/web",
    "//ui/base",
    "//url",
  ]
  public_deps = [
    ":tab_id_tab_helper",
  ]
}

source_set("tab_id_tab_helper") {
  sources = [
    "tab_id_tab_helper.h",
    "tab_id_tab_helper.mm",
  ]
  deps = [
    "//base",
    "//ios/web/public",
  ]
  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("tab_helper_delegates") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "repost_form_tab_helper_delegate.h",
    "sad_tab_tab_helper_delegate.h",
  ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "error_page_util_unittest.mm",
    "font_size_js_unittest.mm",
    "font_size_tab_helper_unittest.mm",
    "image_fetch_js_unittest.mm",
    "image_fetch_tab_helper_unittest.mm",
    "load_timing_tab_helper_unittest.mm",
    "mailto_handler_gmail_unittest.mm",
    "mailto_handler_inbox_unittest.mm",
    "mailto_handler_manager_unittest.mm",
    "mailto_handler_system_mail_unittest.mm",
    "mailto_handler_unittest.mm",
    "network_activity_indicator_tab_helper_unittest.mm",
    "page_placeholder_tab_helper_unittest.mm",
    "repost_form_tab_helper_unittest.mm",
    "sad_tab_tab_helper_unittest.mm",
    "tab_id_tab_helper_unittest.mm",
  ]
  deps = [
    ":accessibility",
    ":image_fetch",
    ":tab_helper_delegates",
    ":test_support",
    ":web",
    "//base:base",
    "//base/test:test_support",
    "//components/strings:components_strings_grit",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/snapshots",
    "//ios/chrome/test:test_support",
    "//ios/web",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/public/test/http_server",
    "//net:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:base",
    "//url:url",
  ]
}

js_compile_bundle("chrome_bundle_all_frames") {
  closure_entry_point = "__crWeb.chromeBundleAllFrames"
  sources = [
    "//components/autofill/ios/form_util/resources/form.js",
    "resources/accessibility.js",
    "resources/chrome_bundle_all_frames.js",
  ]
}

js_compile_bundle("chrome_bundle_main_frame") {
  closure_entry_point = "__crWeb.chromeBundleMainFrame"
  sources = [
    "//components/autofill/ios/browser/resources/autofill_controller.js",
    "//components/autofill/ios/form_util/resources/fill.js",
    "//components/password_manager/ios/resources/password_controller.js",
    "resources/chrome_bundle_main_frame.js",
    "resources/image_fetch.js",
    "resources/print.js",
  ]

  deps = [
    ":credential_manager",
    ":payment_request",
  ]
}

js_compile_checked("payment_request") {
  sources = [
    "resources/payment_request.js",
  ]
}

js_compile_checked("credential_manager") {
  sources = [
    "resources/credential_manager.js",
  ]
}

js_compile_checked("accessibility") {
  sources = [
    "resources/accessibility.js",
  ]
}

js_compile_checked("image_fetch") {
  sources = [
    "resources/image_fetch.js",
  ]
}

source_set("web_internal") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "blocked_popup_tab_helper.h",
    "blocked_popup_tab_helper.mm",
    "chrome_web_client.h",
    "chrome_web_client.mm",
    "error_page_content.h",
    "error_page_content.mm",
    "error_page_generator.h",
    "error_page_generator.mm",
    "print_tab_helper.h",
    "print_tab_helper.mm",
    "web_state_printer.h",
  ]
  deps = [
    ":chrome_bundle_all_frames",
    ":chrome_bundle_main_frame",
    "//base",
    "//components/content_settings/core/browser",
    "//components/dom_distiller/core",
    "//components/infobars/core",
    "//components/payments/core",
    "//components/prefs",
    "//components/resources",
    "//components/strings",
    "//components/version_info",
    "//ios/chrome/app/resources:ios_resources",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//ios/chrome/browser:browser_impl",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/content_settings",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/ssl",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/ui:ui_util",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/static_content",
    "//ios/chrome/browser/unzip",
    "//ios/chrome/browser/web",
    "//ios/public/provider/chrome/browser",
    "//ios/public/provider/chrome/browser/voice",
    "//ios/web",
    "//ios/web/public",
    "//net",
    "//ui/base",
    "//ui/gfx",
    "//url",
  ]
  libs = [
    "UIKit.framework",
    "Foundation.framework",
  ]
}

source_set("test_support") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "chrome_web_test.h",
    "chrome_web_test.mm",
    "fake_mailto_handler_helpers.h",
    "fake_mailto_handler_helpers.mm",
  ]
  deps = [
    "//components/password_manager/core/browser:test_support",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/ui:ui_internal",
    "//ios/chrome/browser/web",
    "//ios/web",
    "//ios/web/public/test",
  ]
}

source_set("unit_tests_internal") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "blocked_popup_tab_helper_unittest.mm",
    "chrome_web_client_unittest.mm",
    "error_page_generator_unittest.mm",
  ]
  deps = [
    ":test_support",
    ":web_internal",
    "//base",
    "//base/test:test_support",
    "//components/content_settings/core/browser",
    "//components/infobars/core",
    "//components/payments/core",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/content_settings:content_settings",
    "//ios/chrome/browser/find_in_page",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/web",
    "//ios/web",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//net",
    "//testing/gtest",
    "//third_party/ocmock",
    "//url",
  ]
}

source_set("eg_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "browsing_egtest.mm",
    "browsing_prevent_default_egtest.mm",
    "cache_egtest.mm",
    "child_window_open_by_dom_egtest.mm",
    "error_page_egtest.mm",
    "forms_egtest.mm",
    "http_auth_egtest.mm",
    "js_print_egtest.mm",
    "navigation_egtest.mm",
    "progress_indicator_egtest.mm",
    "push_and_replace_state_navigation_egtest.mm",
    "stop_loading_egtest.mm",
    "visible_url_egtest.mm",
    "window_open_by_dom_egtest.mm",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//components/content_settings/core/common",
    "//components/strings",
    "//components/version_info:version_info",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/test:test_support",
    "//ios/chrome/test/app:test_support",
    "//ios/chrome/test/earl_grey:test_support",
    "//ios/testing:embedded_test_server_support",
    "//ios/testing/earl_grey:earl_grey_support",
    "//ios/third_party/earl_grey:earl_grey+link",
    "//ios/third_party/material_components_ios",
    "//ios/web",
    "//ios/web:earl_grey_test_support",
    "//ios/web/public/test",
    "//ios/web/public/test/http_server",
    "//net",
    "//net:test_support",
    "//ui/base",
    "//url",
  ]
  libs = [
    "UIKit.framework",
    "XCTest.framework",
  ]
}

source_set("perf_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "early_page_script_perftest.mm",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/test/base:perf_test_support",
    "//ios/web",
    "//ios/web/public/test",
  ]
  libs = [ "WebKit.framework" ]
}

source_set("feature_flags") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "features.cc",
    "features.h",
  ]
  deps = [
    "//base",
  ]
}
