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

import("//ios/build/config.gni")

source_set("js") {
  deps = [
    ":script_util",
    "//base",
    "//ios/web/public",
    "//ios/web/web_state/ui:crw_wk_script_message_router",
  ]

  sources = [
    "crw_js_injection_manager.mm",
    "crw_js_injection_receiver.mm",
    "crw_js_post_request_loader.h",
    "crw_js_post_request_loader.mm",
    "crw_js_window_id_manager.h",
    "crw_js_window_id_manager.mm",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("script_util") {
  deps = [
    "//base",
    "//ios/web/public",
  ]

  sources = [
    "page_script_util.h",
    "page_script_util.mm",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]
}
