# 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.

if (is_android) {
  import("//build/config/android/rules.gni")
}

source_set("navigation_interception") {
  sources = [
    "intercept_navigation_throttle.cc",
    "intercept_navigation_throttle.h",
    "navigation_params.cc",
    "navigation_params.h",
  ]

  deps = [
    "//base",
    "//content/public/browser",
    "//content/public/common",
    "//net",
    "//ui/base",
  ]

  if (is_android) {
    sources += [
      "component_jni_registrar.cc",
      "component_jni_registrar.h",
      "intercept_navigation_delegate.cc",
      "intercept_navigation_delegate.h",
      "navigation_params_android.cc",
      "navigation_params_android.h",
    ]
    deps += [ ":jni_headers" ]
  }
}

if (is_android) {
  # GYP: //components/navigation_interception.gypi:navigation_interception_jni_headers
  generate_jni("jni_headers") {
    sources = [
      "android/java/src/org/chromium/components/navigation_interception/InterceptNavigationDelegate.java",
      "android/java/src/org/chromium/components/navigation_interception/NavigationParams.java",
    ]
    jni_package = "navigation_interception"
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "intercept_navigation_throttle_unittest.cc",
  ]
  deps = [
    ":navigation_interception",
    "//base",
    "//content/public/browser",
    "//content/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
