blob: 7d5be92b8856c937b92add2d76e83e69ac69dc2c [file] [log] [blame]
# Copyright 2016 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/chromeos/ui_mode.gni")
import("//extensions/buildflags/buildflags.gni")
import("//extensions/common/api/schema.gni")
import("//tools/json_schema_compiler/json_schema_api.gni")
assert(enable_extensions,
"Cannot depend on extensions because enable_extensions=false.")
source_set("api") {
sources = [
"async_api_function.cc",
"async_api_function.h",
# TODO(crbug.com/1206265): anything under storage/ should be moved out of
# this target.
"storage/backend_task_runner.cc",
"storage/backend_task_runner.h",
"storage/local_value_store_cache.cc",
"storage/local_value_store_cache.h",
"storage/session_storage_manager.cc",
"storage/session_storage_manager.h",
"storage/settings_storage_quota_enforcer.cc",
"storage/settings_storage_quota_enforcer.h",
"storage/storage_api.cc",
"storage/storage_api.h",
"storage/storage_area_namespace.cc",
"storage/storage_area_namespace.h",
"storage/storage_frontend.cc",
"storage/storage_frontend.h",
"storage/value_store_cache.cc",
"storage/value_store_cache.h",
"storage/value_store_util.cc",
"storage/value_store_util.h",
"storage/weak_unlimited_settings_storage.cc",
"storage/weak_unlimited_settings_storage.h",
]
public_deps = [
"//base",
"//content/public/browser",
"//content/public/common",
"//extensions/common",
"//extensions/common/api",
"//ipc",
]
deps = [
"//base:i18n",
"//build:chromeos_buildflags",
"//components/keyed_service/content:content",
"//extensions/browser:browser_sources",
"//extensions/common:mojom",
"//extensions/common/api",
"//extensions/strings",
"//services/device/public/cpp/hid",
"//services/device/public/mojom",
]
# TODO(michaelpg): Move these deps to the individual APIs that require them.
deps += [
"//components/onc",
"//components/storage_monitor",
"//device/bluetooth",
]
if (is_chromeos) {
deps += [
"//chromeos/dbus/permission_broker",
"//components/prefs:prefs",
"//ui/base/clipboard",
]
}
if (is_chromeos_ash) {
sources += [
"lock_screen_data/data_item.cc",
"lock_screen_data/data_item.h",
"lock_screen_data/lock_screen_data_api.cc",
"lock_screen_data/lock_screen_data_api.h",
"lock_screen_data/lock_screen_item_storage.cc",
"lock_screen_data/lock_screen_item_storage.h",
"lock_screen_data/lock_screen_value_store_migrator.h",
"lock_screen_data/lock_screen_value_store_migrator_impl.cc",
"lock_screen_data/lock_screen_value_store_migrator_impl.h",
"lock_screen_data/operation_result.h",
"media_perception_private/conversion_utils.cc",
"media_perception_private/conversion_utils.h",
"media_perception_private/media_perception_api_delegate.h",
"media_perception_private/media_perception_api_manager.cc",
"media_perception_private/media_perception_api_manager.h",
"media_perception_private/media_perception_private_api.cc",
"media_perception_private/media_perception_private_api.h",
]
deps += [
"//chromeos",
"//chromeos/ash/components/dbus/media_analytics",
"//chromeos/ash/components/dbus/media_analytics:media_perception_proto",
"//chromeos/ash/components/dbus/upstart",
"//chromeos/dbus",
"//chromeos/login/login_state",
"//chromeos/services/media_perception/public/mojom",
"//chromeos/services/media_perception/public/mojom:mojom_js_data_deps",
]
}
}
group("api_implementations") {
public_deps = [
"//extensions/browser:browser_sources",
"//extensions/browser/api",
"//extensions/browser/api/alarms",
"//extensions/browser/api/app_current_window_internal",
"//extensions/browser/api/app_runtime",
"//extensions/browser/api/app_window",
"//extensions/browser/api/audio",
"//extensions/browser/api/automation_internal",
"//extensions/browser/api/bluetooth",
"//extensions/browser/api/bluetooth_low_energy",
"//extensions/browser/api/bluetooth_socket",
"//extensions/browser/api/dns",
"//extensions/browser/api/feedback_private",
"//extensions/browser/api/file_handlers",
"//extensions/browser/api/file_system",
"//extensions/browser/api/i18n",
"//extensions/browser/api/idle",
"//extensions/browser/api/management",
"//extensions/browser/api/messaging",
"//extensions/browser/api/messaging:native_messaging",
"//extensions/browser/api/metrics_private",
"//extensions/browser/api/mime_handler_private",
"//extensions/browser/api/networking_private",
"//extensions/browser/api/offscreen",
"//extensions/browser/api/power",
"//extensions/browser/api/printer_provider",
"//extensions/browser/api/runtime",
"//extensions/browser/api/serial",
"//extensions/browser/api/socket",
"//extensions/browser/api/sockets_tcp",
"//extensions/browser/api/sockets_tcp_server",
"//extensions/browser/api/sockets_udp",
"//extensions/browser/api/system_cpu",
"//extensions/browser/api/system_info",
"//extensions/browser/api/system_memory",
"//extensions/browser/api/system_network",
"//extensions/browser/api/system_storage",
"//extensions/browser/api/test",
"//extensions/browser/api/virtual_keyboard_private",
]
if (is_chromeos) {
public_deps += [ "//extensions/browser/api/virtual_keyboard" ]
}
if (is_chromeos_ash) {
public_deps += [
"//extensions/browser/api/cec_private",
"//extensions/browser/api/diagnostics",
"//extensions/browser/api/webcam_private",
]
}
}
function_registration("api_registration") {
sources = extensions_api_schema_files + extensions_api_uncompiled_sources
impl_dir = "//extensions/browser/api"
bundle_name = ""
root_namespace = extensions_api_root_namespace
deps = [
":api",
"//extensions/common/api",
"//skia",
]
}