# Copyright 2017 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("io_thread") {
  configs += [ "//build/config/compiler:enable_arc" ]

  deps = [
    "//base",
    "//components/net_log",
    "//components/network_session_configurator/browser",
    "//components/prefs",
    "//components/proxy_config",
    "//components/proxy_config/ios",
    "//components/variations",
    "//components/version_info",
    "//ios/web",
    "//ios/web/public",
    "//net",
  ]

  sources = [
    "ios_io_thread.h",
    "ios_io_thread.mm",
  ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "ios_io_thread_unittest.mm",
  ]
  deps = [
    ":io_thread",
    "//base",
    "//components/prefs",
    "//components/prefs:test_support",
    "//components/proxy_config",
    "//ios/web",
    "//ios/web/public/test",
    "//net",
    "//net:test_support",
    "//testing/gtest",
  ]
}
