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

component("child") {
  output_name = "webkit_child"
  sources = [
    "multipart_response_delegate.cc",
    "multipart_response_delegate.h",
    "resource_loader_bridge.cc",
    "resource_loader_bridge.h",
    "webkit_child_export.h",
    "weburlresponse_extradata_impl.cc",
    "weburlresponse_extradata_impl.h",
  ]

  defines = [ "WEBKIT_CHILD_IMPLEMENTATION" ]
  include_dirs = [
    # For JNI generated header.
    "$root_gen_dir/webkit",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]
  if (is_win) {
    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    cflags = [ "/wd4267" ]
  }

  if (is_mac) {
    libs = [ "QuartzCore.framework" ]
  }
  if (is_android) {
    #deps += [ ":overscroller_jni_headers" ]  TODO(GYP)
  }

  deps = [
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//net",
    "//skia",
    #"//third_party/WebKit/public:blink",  TODO(GYP)
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/native_theme",
    "//url",
    "//v8",
    "//webkit/common",
  ]
}

#TODO(GYP)
#'target_name': 'overscroller_jni_headers',
#'type': 'none',
#'variables': {
#  'jni_gen_package': 'webkit',
#  'input_java_class': 'android/widget/OverScroller.class',
#},
#'includes': [ '../../build/jar_file_jni_generator.gypi' ],

