# 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/android/config.gni")
import("//build/config/android/rules.gni")

content_jni_gypi_values = exec_script("//build/gypi_to_gn.py",
                                      [ rebase_path("../../content_jni.gypi") ],
                                      "scope",
                                      [ "../../content_jni.gypi" ])

android_aidl("common_aidl") {
  interface_file = "java/src/org/chromium/content/common/common.aidl"
  import_include = "java/src"
  sources = [
    "java/src/org/chromium/content/common/IChildProcessCallback.aidl",
    "java/src/org/chromium/content/common/IChildProcessService.aidl",
  ]
}

android_resources("content_java_resources") {
  deps = [
    ":content_strings_grd",
    "//ui/android:ui_java_resources",
  ]
  custom_package = "org.chromium.content"
  resource_dirs = [ "java/res" ]
}

android_library("content_java") {
  deps = [
    ":content_java_resources",
    "//base:base_java",
    "//device/battery:mojo_bindings_java",
    "//device/battery/android:battery_monitor_android",
    "//device/bluetooth:java",
    "//device/gamepad:java",
    "//device/nfc:mojo_bindings_java",
    "//device/nfc/android:java",
    "//device/power_save_blocker:java",
    "//device/usb:java",
    "//device/vibration:mojo_bindings_java",
    "//device/vibration/android:vibration_manager_android",
    "//media/base/android:media_java",
    "//media/capture/content/android:screen_capture_java",
    "//media/capture/video/android:capture_java",
    "//media/midi:midi_java",
    "//mojo/android:system_java",
    "//mojo/public/java:bindings",
    "//mojo/public/java:system",
    "//net/android:net_java",
    "//third_party/WebKit/public:blink_headers_java",
    "//third_party/android_tools:android_support_annotations_java",
    "//third_party/jsr-305:jsr_305_javalib",
    "//ui/accessibility:ui_accessibility_java",
    "//ui/android:ui_java",

    #"//content:content_common",
  ]

  if (enable_webvr) {
    deps += [ "//device/vr:java" ]
  }

  srcjar_deps = [
    ":common_aidl",
    ":content_public_android_java_enums_srcjar",
    "//content/browser/accessibility:content_browser_accessibility_java_enums_srcjar",
    "//ui/touch_selection:ui_touch_selection_enums_srcjar",
    "//ui/touch_selection:ui_touch_handle_orientation_srcjar",
  ]

  java_files = [
    "java/src/org/chromium/content/app/ChildProcessService.java",
    "java/src/org/chromium/content/app/ChildProcessServiceImpl.java",
    "java/src/org/chromium/content/app/ChromiumLinkerParams.java",
    "java/src/org/chromium/content/app/ContentApplication.java",
    "java/src/org/chromium/content/app/ContentMain.java",
    "java/src/org/chromium/content/app/DownloadProcessService.java",
    "java/src/org/chromium/content/app/PrivilegedProcessService.java",
    "java/src/org/chromium/content/app/PrivilegedProcessService0.java",
    "java/src/org/chromium/content/app/PrivilegedProcessService1.java",
    "java/src/org/chromium/content/app/PrivilegedProcessService2.java",
    "java/src/org/chromium/content/app/SandboxedProcessService.java",
    "java/src/org/chromium/content/app/SandboxedProcessService0.java",
    "java/src/org/chromium/content/app/SandboxedProcessService1.java",
    "java/src/org/chromium/content/app/SandboxedProcessService10.java",
    "java/src/org/chromium/content/app/SandboxedProcessService11.java",
    "java/src/org/chromium/content/app/SandboxedProcessService12.java",
    "java/src/org/chromium/content/app/SandboxedProcessService13.java",
    "java/src/org/chromium/content/app/SandboxedProcessService14.java",
    "java/src/org/chromium/content/app/SandboxedProcessService15.java",
    "java/src/org/chromium/content/app/SandboxedProcessService16.java",
    "java/src/org/chromium/content/app/SandboxedProcessService17.java",
    "java/src/org/chromium/content/app/SandboxedProcessService18.java",
    "java/src/org/chromium/content/app/SandboxedProcessService19.java",
    "java/src/org/chromium/content/app/SandboxedProcessService2.java",
    "java/src/org/chromium/content/app/SandboxedProcessService3.java",
    "java/src/org/chromium/content/app/SandboxedProcessService4.java",
    "java/src/org/chromium/content/app/SandboxedProcessService5.java",
    "java/src/org/chromium/content/app/SandboxedProcessService6.java",
    "java/src/org/chromium/content/app/SandboxedProcessService7.java",
    "java/src/org/chromium/content/app/SandboxedProcessService8.java",
    "java/src/org/chromium/content/app/SandboxedProcessService9.java",
    "java/src/org/chromium/content/browser/ActivityContentVideoViewEmbedder.java",
    "java/src/org/chromium/content/browser/BackgroundSyncNetworkObserver.java",
    "java/src/org/chromium/content/browser/BindingManager.java",
    "java/src/org/chromium/content/browser/BindingManagerImpl.java",
    "java/src/org/chromium/content/browser/BrowserStartupController.java",
    "java/src/org/chromium/content/browser/ChildProcessConnection.java",
    "java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java",
    "java/src/org/chromium/content/browser/ChildProcessConstants.java",
    "java/src/org/chromium/content/browser/ChildProcessCreationParams.java",
    "java/src/org/chromium/content/browser/ChildProcessLauncher.java",
    "java/src/org/chromium/content/browser/ContainerViewObserver.java",
    "java/src/org/chromium/content/browser/ContentVideoView.java",
    "java/src/org/chromium/content/browser/ContentVideoViewEmbedder.java",
    "java/src/org/chromium/content/browser/ContentView.java",
    "java/src/org/chromium/content/browser/ContentViewClient.java",
    "java/src/org/chromium/content/browser/ContentViewCore.java",
    "java/src/org/chromium/content/browser/ContentViewRenderView.java",
    "java/src/org/chromium/content/browser/ContentViewStatics.java",
    "java/src/org/chromium/content/browser/ContextualSearchClient.java",
    "java/src/org/chromium/content/browser/DeviceSensors.java",
    "java/src/org/chromium/content/browser/DeviceUtils.java",
    "java/src/org/chromium/content/browser/FileDescriptorInfo.java",
    "java/src/org/chromium/content/browser/FloatingWebActionModeCallback.java",
    "java/src/org/chromium/content/browser/InterfaceProvider.java",
    "java/src/org/chromium/content/browser/InterfaceRegistrar.java",
    "java/src/org/chromium/content/browser/InterfaceRegistry.java",
    "java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java",
    "java/src/org/chromium/content/browser/JavascriptInterface.java",
    "java/src/org/chromium/content/browser/MediaResourceGetter.java",
    "java/src/org/chromium/content/browser/MediaSessionDelegate.java",
    "java/src/org/chromium/content/browser/MediaThrottler.java",
    "java/src/org/chromium/content/browser/MotionEventSynthesizer.java",
    "java/src/org/chromium/content/browser/OverscrollRefreshHandler.java",
    "java/src/org/chromium/content/browser/PepperPluginManager.java",
    "java/src/org/chromium/content/browser/PopupZoomer.java",
    "java/src/org/chromium/content/browser/PositionObserver.java",
    "java/src/org/chromium/content/browser/RenderCoordinates.java",
    "java/src/org/chromium/content/browser/SPenSupport.java",
    "java/src/org/chromium/content/browser/ScreenOrientationListener.java",
    "java/src/org/chromium/content/browser/ScreenOrientationProvider.java",
    "java/src/org/chromium/content/browser/SmartClipProvider.java",
    "java/src/org/chromium/content/browser/SpeechRecognition.java",
    "java/src/org/chromium/content/browser/TimeZoneMonitor.java",
    "java/src/org/chromium/content/browser/TracingControllerAndroid.java",
    "java/src/org/chromium/content/browser/ViewPositionObserver.java",
    "java/src/org/chromium/content/browser/WebActionMode.java",
    "java/src/org/chromium/content/browser/WebActionModeCallback.java",
    "java/src/org/chromium/content/browser/WindowAndroidProvider.java",
    "java/src/org/chromium/content/browser/WindowAndroidChangedObserver.java",
    "java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java",
    "java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java",
    "java/src/org/chromium/content/browser/accessibility/LollipopBrowserAccessibilityManager.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/CaptioningBridgeFactory.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/CaptioningStyle.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/EmptyCaptioningBridge.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/KitKatCaptioningBridge.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/SystemCaptioningBridge.java",
    "java/src/org/chromium/content/browser/accessibility/captioning/TextTrackSettings.java",
    "java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java",
    "java/src/org/chromium/content/browser/crypto/CipherFactory.java",
    "java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java",
    "java/src/org/chromium/content/browser/input/AnimationIntervalProvider.java",
    "java/src/org/chromium/content/browser/input/ChromiumBaseInputConnection.java",
    "java/src/org/chromium/content/browser/input/CursorAnchorInfoController.java",
    "java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java",
    "java/src/org/chromium/content/browser/input/FloatingPastePopupMenu.java",
    "java/src/org/chromium/content/browser/input/HandleViewResources.java",
    "java/src/org/chromium/content/browser/input/ImeAdapter.java",
    "java/src/org/chromium/content/browser/input/ImeUtils.java",
    "java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java",
    "java/src/org/chromium/content/browser/input/InputMethodUma.java",
    "java/src/org/chromium/content/browser/input/JoystickScrollProvider.java",
    "java/src/org/chromium/content/browser/input/JoystickZoomProvider.java",
    "java/src/org/chromium/content/browser/input/LegacyPastePopupMenu.java",
    "java/src/org/chromium/content/browser/input/PastePopupMenu.java",
    "java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java",
    "java/src/org/chromium/content/browser/input/Range.java",
    "java/src/org/chromium/content/browser/input/ReplicaInputConnection.java",
    "java/src/org/chromium/content/browser/input/SelectPopup.java",
    "java/src/org/chromium/content/browser/input/SelectPopupAdapter.java",
    "java/src/org/chromium/content/browser/input/SelectPopupDialog.java",
    "java/src/org/chromium/content/browser/input/SelectPopupDropdown.java",
    "java/src/org/chromium/content/browser/input/SelectPopupItem.java",
    "java/src/org/chromium/content/browser/input/TextInputState.java",
    "java/src/org/chromium/content/browser/input/ThreadedInputConnection.java",
    "java/src/org/chromium/content/browser/input/ThreadedInputConnectionFactory.java",
    "java/src/org/chromium/content/browser/input/ThreadedInputConnectionProxyView.java",
    "java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java",
    "java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java",
    "java/src/org/chromium/content/common/CleanupReference.java",
    "java/src/org/chromium/content/common/ContentSwitches.java",
    "java/src/org/chromium/content/common/SurfaceWrapper.java",
    "java/src/org/chromium/content_public/browser/AccessibilitySnapshotCallback.java",
    "java/src/org/chromium/content_public/browser/AccessibilitySnapshotNode.java",
    "java/src/org/chromium/content_public/browser/ContentBitmapCallback.java",
    "java/src/org/chromium/content_public/browser/GestureStateListener.java",
    "java/src/org/chromium/content_public/browser/ImageDownloadCallback.java",
    "java/src/org/chromium/content_public/browser/JavaScriptCallback.java",
    "java/src/org/chromium/content_public/browser/LoadUrlParams.java",
    "java/src/org/chromium/content_public/browser/NavigationController.java",
    "java/src/org/chromium/content_public/browser/NavigationEntry.java",
    "java/src/org/chromium/content_public/browser/NavigationHistory.java",
    "java/src/org/chromium/content_public/browser/WebContents.java",
    "java/src/org/chromium/content_public/browser/WebContentsObserver.java",
    "java/src/org/chromium/content_public/common/MediaMetadata.java",
    "java/src/org/chromium/content_public/common/Referrer.java",
    "java/src/org/chromium/content_public/common/ResourceRequestBody.java",
    "java/src/org/chromium/content_public/common/ScreenOrientationConstants.java",
  ]
}

java_strings_grd("content_strings_grd") {
  grd_file = "java/strings/android_content_strings.grd"
  outputs = [
    "values-am/android_content_strings.xml",
    "values-ar/android_content_strings.xml",
    "values-bg/android_content_strings.xml",
    "values-ca/android_content_strings.xml",
    "values-cs/android_content_strings.xml",
    "values-da/android_content_strings.xml",
    "values-de/android_content_strings.xml",
    "values-el/android_content_strings.xml",
    "values/android_content_strings.xml",
    "values-en-rGB/android_content_strings.xml",
    "values-es/android_content_strings.xml",
    "values-es-rUS/android_content_strings.xml",
    "values-fa/android_content_strings.xml",
    "values-fi/android_content_strings.xml",
    "values-tl/android_content_strings.xml",
    "values-fr/android_content_strings.xml",
    "values-hi/android_content_strings.xml",
    "values-hr/android_content_strings.xml",
    "values-hu/android_content_strings.xml",
    "values-in/android_content_strings.xml",
    "values-it/android_content_strings.xml",
    "values-iw/android_content_strings.xml",
    "values-ja/android_content_strings.xml",
    "values-ko/android_content_strings.xml",
    "values-lt/android_content_strings.xml",
    "values-lv/android_content_strings.xml",
    "values-nl/android_content_strings.xml",
    "values-nb/android_content_strings.xml",
    "values-pl/android_content_strings.xml",
    "values-pt-rBR/android_content_strings.xml",
    "values-pt-rPT/android_content_strings.xml",
    "values-ro/android_content_strings.xml",
    "values-ru/android_content_strings.xml",
    "values-sk/android_content_strings.xml",
    "values-sl/android_content_strings.xml",
    "values-sr/android_content_strings.xml",
    "values-sv/android_content_strings.xml",
    "values-sw/android_content_strings.xml",
    "values-th/android_content_strings.xml",
    "values-tr/android_content_strings.xml",
    "values-uk/android_content_strings.xml",
    "values-vi/android_content_strings.xml",
    "values-zh-rCN/android_content_strings.xml",
    "values-zh/android_content_strings.xml",
  ]
}

java_cpp_enum("content_public_android_java_enums_srcjar") {
  sources = [
    "//content/browser/android/content_view_core_impl.cc",
    "//content/browser/android/gesture_event_type.h",
    "//content/browser/device_sensors/device_sensors_consts.h",
    "//content/browser/device_sensors/sensor_manager_android.h",
    "//content/public/browser/invalidate_type.h",
    "//content/public/browser/navigation_controller.h",
    "//content/public/browser/readback_types.h",
    "//content/public/common/console_message_level.h",
    "//content/public/common/result_codes.h",
    "//content/public/common/screen_orientation_values.h",
    "//content/public/common/speech_recognition_error.h",
    "//content/public/common/top_controls_state.h",
  ]
}

generate_jar_jni("jar_jni") {
  jni_package = "content"
  classes = [
    "java/util/HashSet.class",
    "android/view/DragEvent.class",
    "android/view/MotionEvent.class",
  ]
}

generate_jni("content_jni_headers") {
  sources = rebase_path(content_jni_gypi_values.sources, "", "../..")
  jni_package = "content"
}

group("jni") {
  public_deps = [
    ":content_jni_headers",
    ":jar_jni",
  ]
}

android_library("content_javatests") {
  testonly = true
  deps = [
    ":content_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//content/public/test/android:content_java_test_support",
    "//content/shell/android:content_shell_apk_java",
    "//content/shell/android:content_shell_java",
    "//content/shell/android:content_shell_test_java",
    "//device/geolocation:geolocation_java",
    "//device/geolocation:geolocation_java_test_support",
    "//device/vibration:mojo_bindings_java",
    "//device/vibration/android:vibration_manager_android",
    "//media/base/android:media_java",
    "//media/capture/content/android:screen_capture_java",
    "//media/capture/video/android:capture_java",
    "//mojo/android:system_java",
    "//mojo/public/interfaces/bindings/tests:test_interfaces_java",
    "//mojo/public/java:bindings",
    "//mojo/public/java:system",
    "//net/android:net_java",
    "//net/android:net_java_test_support",
    "//third_party/android_tools:legacy_http_javalib",
    "//ui/android:ui_java",
  ]

  java_files = [
    "javatests/src/org/chromium/content/browser/AddressDetectionTest.java",
    "javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java",
    "javatests/src/org/chromium/content/browser/ChildProcessLauncherTest.java",
    "javatests/src/org/chromium/content/browser/ClickListenerTest.java",
    "javatests/src/org/chromium/content/browser/ClipboardTest.java",
    "javatests/src/org/chromium/content/browser/ContentCommandLineTest.java",
    "javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java",
    "javatests/src/org/chromium/content/browser/ContentViewCoreFocusTest.java",
    "javatests/src/org/chromium/content/browser/ContentViewCoreSelectionTest.java",
    "javatests/src/org/chromium/content/browser/ContentViewLocationTest.java",
    "javatests/src/org/chromium/content/browser/ContentViewPopupZoomerTest.java",
    "javatests/src/org/chromium/content/browser/ContentViewScrollingTest.java",
    "javatests/src/org/chromium/content/browser/ContentViewZoomingTest.java",
    "javatests/src/org/chromium/content/browser/DeviceSensorsTest.java",
    "javatests/src/org/chromium/content/browser/EmailAddressDetectionTest.java",
    "javatests/src/org/chromium/content/browser/EncodeHtmlDataUriTest.java",
    "javatests/src/org/chromium/content/browser/GestureDetectorResetTest.java",
    "javatests/src/org/chromium/content/browser/ImportantFileWriterAndroidTest.java",
    "javatests/src/org/chromium/content/browser/InterfaceRegistryTest.java",
    "javatests/src/org/chromium/content/browser/InterstitialPageTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeArrayCoercionTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeArrayTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeBareboneTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeChildFrameTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeFieldsTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeReturnValuesTest.java",
    "javatests/src/org/chromium/content/browser/JavaBridgeTestBase.java",
    "javatests/src/org/chromium/content/browser/LocationProviderTest.java",
    "javatests/src/org/chromium/content/browser/MediaResourceGetterTest.java",
    "javatests/src/org/chromium/content/browser/MediaSessionTest.java",
    "javatests/src/org/chromium/content/browser/NavigationTest.java",
    "javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java",
    "javatests/src/org/chromium/content/browser/PopupZoomerTest.java",
    "javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java",
    "javatests/src/org/chromium/content/browser/ScreenOrientationProviderTest.java",
    "javatests/src/org/chromium/content/browser/TestsJavaScriptEvalTest.java",
    "javatests/src/org/chromium/content/browser/TracingControllerAndroidTest.java",
    "javatests/src/org/chromium/content/browser/VSyncMonitorTest.java",
    "javatests/src/org/chromium/content/browser/VibrationManagerImplTest.java",
    "javatests/src/org/chromium/content/browser/ViewportTest.java",
    "javatests/src/org/chromium/content/browser/WebContentsObserverAndroidTest.java",
    "javatests/src/org/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegateTest.java",
    "javatests/src/org/chromium/content/browser/crypto/CipherFactoryTest.java",
    "javatests/src/org/chromium/content/browser/input/CursorAnchorInfoControllerTest.java",
    "javatests/src/org/chromium/content/browser/input/ImeLollipopTest.java",
    "javatests/src/org/chromium/content/browser/input/ImeTest.java",
    "javatests/src/org/chromium/content/browser/input/ImeTestUtils.java",
    "javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java",
    "javatests/src/org/chromium/content/browser/input/ReplicaInputConnectionTest.java",
    "javatests/src/org/chromium/content/browser/input/SelectPopupTest.java",
    "javatests/src/org/chromium/content/browser/input/TestImeAdapterDelegate.java",
    "javatests/src/org/chromium/content/browser/webcontents/AccessibilitySnapshotTest.java",
    "javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java",
    "javatests/src/org/chromium/content/common/CleanupReferenceTest.java",
  ]

  data = [
    "//content/test/data/android/",
    "//content/test/data/media/session/",
  ]
  data_deps = [
    "//net:test_support",
  ]
}

# GYP: //content/content_tests.gypi:content_junit_tests
junit_binary("content_junit_tests") {
  java_files = [
    "junit/src/org/chromium/content/browser/input/RangeTest.java",
    "junit/src/org/chromium/content/browser/input/TextInputStateTest.java",
    "junit/src/org/chromium/content/browser/input/ThreadedInputConnectionTest.java",
    "junit/src/org/chromium/content/browser/BindingManagerImplTest.java",
  ]
  deps = [
    ":content_java",
    "//base:base_java",
    "//base:base_java_test_support",
  ]
}
