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

# GYP version: extensions/extensions.gyp:extensions_browser
source_set("browser") {
  sources = [
  ]

  deps = [
    "//components/keyed_service/content",
    "//components/keyed_service/core",
    "//components/pref_registry",
    "//components/sessions",
    "//components/web_cache/browser",
    "//components/web_modal",
    "//content/public/browser",
    "//crypto:platform",
    "//extensions/common",
    "//extensions/common/api",
    "//extensions/common/api:api_registration",
    "//extensions/strings",
    "//skia",
    "//third_party/leveldatabase",
    "//third_party/re2"
  ]

  if (enable_extensions) {
    # Includes all API implementations and the ExtensionsApiClient
    # interface. Moving an API from src/chrome to src/extensions implies
    # it can be cleanly disabled with enable_extensions=false.
    # TODO: Eventually the entire extensions module should not be built
    # when enable_extensions=false.
    sources += [
      "api/activity_log/web_request_constants.cc",
      "api/activity_log/web_request_constants.h",
      "api/api_resource.cc",
      "api/api_resource.h",
      "api/api_resource_manager.h",
      "api/app_current_window_internal/app_current_window_internal_api.cc",
      "api/app_current_window_internal/app_current_window_internal_api.h",
      "api/app_runtime/app_runtime_api.cc",
      "api/app_runtime/app_runtime_api.h",
      "api/app_view/app_view_internal_api.cc",
      "api/app_view/app_view_internal_api.h",
      "api/app_window/app_window_api.cc",
      "api/app_window/app_window_api.h",
      "api/guest_view/guest_view_internal_api.cc",
      "api/guest_view/guest_view_internal_api.h",
      "api/async_api_function.cc",
      "api/async_api_function.h",
      "api/bluetooth/bluetooth_api.cc",
      "api/bluetooth/bluetooth_api.h",
      "api/bluetooth/bluetooth_api_pairing_delegate.cc",
      "api/bluetooth/bluetooth_api_pairing_delegate.h",
      "api/bluetooth/bluetooth_api_utils.cc",
      "api/bluetooth/bluetooth_api_utils.h",
      "api/bluetooth/bluetooth_event_router.cc",
      "api/bluetooth/bluetooth_event_router.h",
      "api/bluetooth/bluetooth_extension_function.cc",
      "api/bluetooth/bluetooth_extension_function.h",
      "api/bluetooth/bluetooth_private_api.cc",
      "api/bluetooth/bluetooth_private_api.h",
      "api/bluetooth_low_energy/bluetooth_low_energy_api.cc",
      "api/bluetooth_low_energy/bluetooth_low_energy_api.h",
      "api/bluetooth_low_energy/bluetooth_low_energy_connection.cc",
      "api/bluetooth_low_energy/bluetooth_low_energy_connection.h",
      "api/bluetooth_low_energy/bluetooth_low_energy_event_router.cc",
      "api/bluetooth_low_energy/bluetooth_low_energy_event_router.h",
      "api/bluetooth_low_energy/bluetooth_low_energy_notify_session.cc",
      "api/bluetooth_low_energy/bluetooth_low_energy_notify_session.h",
      "api/bluetooth_low_energy/utils.cc",
      "api/bluetooth_low_energy/utils.h",
      "api/bluetooth_socket/bluetooth_api_socket.cc",
      "api/bluetooth_socket/bluetooth_api_socket.h",
      "api/bluetooth_socket/bluetooth_socket_api.cc",
      "api/bluetooth_socket/bluetooth_socket_api.h",
      "api/bluetooth_socket/bluetooth_socket_event_dispatcher.cc",
      "api/bluetooth_socket/bluetooth_socket_event_dispatcher.h",
      "api/capture_web_contents_function.cc",
      "api/capture_web_contents_function.h",
      "api/cast_channel/cast_auth_util.cc",
      "api/cast_channel/cast_auth_util.h",
      "api/cast_channel/cast_channel_api.cc",
      "api/cast_channel/cast_channel_api.h",
      "api/cast_channel/cast_framer.cc",
      "api/cast_channel/cast_framer.h",
      "api/cast_channel/cast_message_util.cc",
      "api/cast_channel/cast_message_util.h",
      "api/cast_channel/cast_socket.cc",
      "api/cast_channel/cast_socket.h",
      "api/cast_channel/cast_transport.cc",
      "api/cast_channel/cast_transport.h",
      "api/cast_channel/logger.cc",
      "api/cast_channel/logger.h",
      "api/cast_channel/logger_util.cc",
      "api/cast_channel/logger_util.h",
      "api/declarative/declarative_api.cc",
      "api/declarative/declarative_api.h",
      "api/declarative/declarative_rule.h",
      "api/declarative/deduping_factory.h",
      "api/declarative/rules_cache_delegate.cc",
      "api/declarative/rules_cache_delegate.h",
      "api/declarative/rules_registry.cc",
      "api/declarative/rules_registry.h",
      "api/declarative/rules_registry_service.cc",
      "api/declarative/rules_registry_service.h",
      "api/declarative/test_rules_registry.cc",
      "api/declarative/test_rules_registry.h",
      "api/declarative_content/content_rules_registry.h",
      "api/declarative_webrequest/request_stage.cc",
      "api/declarative_webrequest/request_stage.h",
      "api/declarative_webrequest/webrequest_action.cc",
      "api/declarative_webrequest/webrequest_action.h",
      "api/declarative_webrequest/webrequest_condition_attribute.cc",
      "api/declarative_webrequest/webrequest_condition_attribute.h",
      "api/declarative_webrequest/webrequest_condition.cc",
      "api/declarative_webrequest/webrequest_condition.h",
      "api/declarative_webrequest/webrequest_constants.cc",
      "api/declarative_webrequest/webrequest_constants.h",
      "api/declarative_webrequest/webrequest_rules_registry.cc",
      "api/declarative_webrequest/webrequest_rules_registry.h",
      "api/dns/dns_api.cc",
      "api/dns/dns_api.h",
      "api/dns/host_resolver_wrapper.cc",
      "api/dns/host_resolver_wrapper.h",
      "api/execute_code_function.cc",
      "api/execute_code_function.h",
      "api/extensions_api_client.cc",
      "api/extensions_api_client.h",
      "api/hid/hid_api.cc",
      "api/hid/hid_api.h",
      "api/hid/hid_connection_resource.cc",
      "api/hid/hid_connection_resource.h",
      "api/hid/hid_device_manager.cc",
      "api/hid/hid_device_manager.h",
      "api/power/power_api.cc",
      "api/power/power_api.h",
      "api/power/power_api_manager.cc",
      "api/power/power_api_manager.h",
      "api/runtime/runtime_api.cc",
      "api/runtime/runtime_api.h",
      "api/runtime/runtime_api_delegate.cc",
      "api/runtime/runtime_api_delegate.h",
      "api/serial/serial_api.cc",
      "api/serial/serial_api.h",
      "api/serial/serial_connection.cc",
      "api/serial/serial_connection.h",
      "api/serial/serial_event_dispatcher.cc",
      "api/serial/serial_event_dispatcher.h",
      "api/socket/socket.cc",
      "api/socket/socket.h",
      "api/socket/socket_api.cc",
      "api/socket/socket_api.h",
      "api/socket/tcp_socket.cc",
      "api/socket/tcp_socket.h",
      "api/socket/tls_socket.cc",
      "api/socket/tls_socket.h",
      "api/socket/udp_socket.cc",
      "api/socket/udp_socket.h",
      "api/sockets_tcp/sockets_tcp_api.cc",
      "api/sockets_tcp/sockets_tcp_api.h",
      "api/sockets_tcp/tcp_socket_event_dispatcher.cc",
      "api/sockets_tcp/tcp_socket_event_dispatcher.h",
      "api/sockets_tcp_server/sockets_tcp_server_api.cc",
      "api/sockets_tcp_server/sockets_tcp_server_api.h",
      "api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc",
      "api/sockets_tcp_server/tcp_server_socket_event_dispatcher.h",
      "api/sockets_udp/sockets_udp_api.cc",
      "api/sockets_udp/sockets_udp_api.h",
      "api/sockets_udp/udp_socket_event_dispatcher.cc",
      "api/sockets_udp/udp_socket_event_dispatcher.h",
      "api/storage/leveldb_settings_storage_factory.cc",
      "api/storage/leveldb_settings_storage_factory.h",
      "api/storage/local_value_store_cache.cc",
      "api/storage/local_value_store_cache.h",
      "api/storage/settings_namespace.cc",
      "api/storage/settings_namespace.h",
      "api/storage/settings_observer.h",
      "api/storage/settings_storage_factory.h",
      "api/storage/settings_storage_quota_enforcer.cc",
      "api/storage/settings_storage_quota_enforcer.h",
      "api/storage/storage_api.cc",
      "api/storage/storage_api.h",
      "api/storage/storage_frontend.cc",
      "api/storage/storage_frontend.h",
      "api/storage/value_store_cache.cc",
      "api/storage/value_store_cache.h",
      "api/storage/weak_unlimited_settings_storage.cc",
      "api/storage/weak_unlimited_settings_storage.h",
      "api/system_cpu/cpu_info_provider.cc",
      "api/system_cpu/cpu_info_provider.h",
      "api/system_cpu/cpu_info_provider_linux.cc",
      "api/system_cpu/cpu_info_provider_mac.cc",
      "api/system_cpu/cpu_info_provider_win.cc",
      "api/system_cpu/system_cpu_api.cc",
      "api/system_cpu/system_cpu_api.h",
      "api/system_display/display_info_provider.cc",
      "api/system_display/display_info_provider.h",
      "api/system_display/system_display_api.cc",
      "api/system_display/system_display_api.h",
      "api/system_info/system_info_api.cc",
      "api/system_info/system_info_api.h",
      "api/system_info/system_info_provider.cc",
      "api/system_info/system_info_provider.h",
      "api/system_memory/memory_info_provider.cc",
      "api/system_memory/memory_info_provider.h",
      "api/system_memory/system_memory_api.cc",
      "api/system_memory/system_memory_api.h",
      "api/system_network/system_network_api.cc",
      "api/system_network/system_network_api.h",
      "api/system_storage/storage_info_provider.cc",
      "api/system_storage/storage_info_provider.h",
      "api/system_storage/system_storage_api.cc",
      "api/system_storage/system_storage_api.h",
      "api/test/test_api.cc",
      "api/test/test_api.h",
      "api/usb/usb_api.cc",
      "api/usb/usb_api.h",
      "api/usb/usb_device_resource.cc",
      "api/usb/usb_device_resource.h",
      "api/usb_private/usb_private_api.cc",
      "api/usb_private/usb_private_api.h",
      "api/web_request/form_data_parser.cc",
      "api/web_request/form_data_parser.h",
      "api/web_request/upload_data_presenter.cc",
      "api/web_request/upload_data_presenter.h",
      "api/web_request/web_request_api.cc",
      "api/web_request/web_request_api.h",
      "api/web_request/web_request_api_constants.cc",
      "api/web_request/web_request_api_constants.h",
      "api/web_request/web_request_api_helpers.cc",
      "api/web_request/web_request_api_helpers.h",
      "api/web_request/web_request_permissions.cc",
      "api/web_request/web_request_permissions.h",
      "api/web_request/web_request_event_router_delegate.cc",
      "api/web_request/web_request_event_router_delegate.h",
      "api/web_request/web_request_time_tracker.cc",
      "api/web_request/web_request_time_tracker.h",
      "api/web_view/web_view_internal_api.cc",
      "api/web_view/web_view_internal_api.h",
      "api_activity_monitor.h",
      "app_sorting.h",
      "app_window/app_delegate.h",
      "app_window/app_web_contents_helper.cc",
      "app_window/app_web_contents_helper.h",
      "app_window/app_window.cc",
      "app_window/app_window.h",
      "app_window/app_window_client.cc",
      "app_window/app_window_client.h",
      "app_window/app_window_contents.cc",
      "app_window/app_window_contents.h",
      "app_window/app_window_geometry_cache.cc",
      "app_window/app_window_geometry_cache.h",
      "app_window/app_window_registry.cc",
      "app_window/app_window_registry.h",
      "app_window/native_app_window.h",
      "app_window/size_constraints.cc",
      "app_window/size_constraints.h",
      "blacklist_state.h",
      "blob_holder.cc",
      "blob_holder.h",
      "browser_context_keyed_api_factory.h",
      "browser_context_keyed_service_factories.cc",
      "browser_context_keyed_service_factories.h",
      "component_extension_resource_manager.h",
      "computed_hashes.cc",
      "computed_hashes.h",
      "content_hash_fetcher.cc",
      "content_hash_fetcher.h",
      "content_hash_reader.cc",
      "content_hash_reader.h",
      "content_hash_tree.cc",
      "content_hash_tree.h",
      "content_verifier.cc",
      "content_verifier.h",
      "content_verifier_delegate.h",
      "content_verifier_io_data.cc",
      "content_verifier_io_data.h",
      "content_verify_job.cc",
      "content_verify_job.h",
      "error_map.cc",
      "error_map.h",
      "event_listener_map.cc",
      "event_listener_map.h",
      "event_router.cc",
      "event_router.h",
      "extension_error.cc",
      "extension_error.h",
      "extension_function.cc",
      "extension_function.h",
      "extension_function_dispatcher.cc",
      "extension_function_dispatcher.h",
      "extension_function_registry.cc",
      "extension_function_registry.h",
      "extension_function_util.cc",
      "extension_function_util.h",
      "extension_host.cc",
      "extension_host.h",
      "extension_host_delegate.h",
      "extension_icon_image.cc",
      "extension_icon_image.h",
      "extension_message_filter.cc",
      "extension_message_filter.h",
      "extension_pref_store.cc",
      "extension_pref_store.h",
      "extension_pref_value_map.cc",
      "extension_pref_value_map.h",
      "extension_pref_value_map_factory.cc",
      "extension_pref_value_map_factory.h",
      "extension_prefs.cc",
      "extension_prefs.h",
      "extension_prefs_factory.cc",
      "extension_prefs_factory.h",
      "extension_prefs_observer.h",
      "extension_prefs_scope.h",
      "extension_protocols.cc",
      "extension_protocols.h",
      "extension_registry.cc",
      "extension_registry.h",
      "extension_registry_factory.cc",
      "extension_registry_factory.h",
      "extension_registry_observer.h",
      "extension_scoped_prefs.h",
      "extension_system.cc",
      "extension_system.h",
      "extension_system_provider.cc",
      "extension_system_provider.h",
      "extension_util.cc",
      "extension_util.h",
      "extension_web_contents_observer.cc",
      "extension_web_contents_observer.h",
      "extensions_browser_client.cc",
      "extensions_browser_client.h",
      "external_provider_interface.h",
      "file_highlighter.cc",
      "file_highlighter.h",
      "file_reader.cc",
      "file_reader.h",
      "granted_file_entry.cc",
      "granted_file_entry.h",
      "guest_view/app_view/app_view_constants.cc",
      "guest_view/app_view/app_view_constants.h",
      "guest_view/app_view/app_view_guest.cc",
      "guest_view/app_view/app_view_guest.h",
      "guest_view/app_view/app_view_guest_delegate.cc",
      "guest_view/app_view/app_view_guest_delegate.h",
      "guest_view/extension_options/extension_options_constants.cc",
      "guest_view/extension_options/extension_options_constants.h",
      "guest_view/extension_options/extension_options_guest.cc",
      "guest_view/extension_options/extension_options_guest.h",
      "guest_view/extension_options/extension_options_guest_delegate.cc",
      "guest_view/extension_options/extension_options_guest_delegate.h",
      "guest_view/guest_view_base.cc",
      "guest_view/guest_view_base.h",
      "guest_view/guest_view_manager_factory.h",
      "guest_view/guest_view_manager.cc",
      "guest_view/guest_view_manager.h",
      "guest_view/guest_view.h",
      "guest_view/mime_handler_view/mime_handler_view_constants.cc",
      "guest_view/mime_handler_view/mime_handler_view_constants.h",
      "guest_view/mime_handler_view/mime_handler_view_guest.h",
      "guest_view/mime_handler_view/mime_handler_view_guest.cc",
      "guest_view/mime_handler_view/mime_handler_view_guest_delegate.h",
      "guest_view/web_view/javascript_dialog_helper.cc",
      "guest_view/web_view/javascript_dialog_helper.h",
      "guest_view/web_view/web_view_constants.cc",
      "guest_view/web_view/web_view_constants.h",
      "guest_view/web_view/web_view_find_helper.cc",
      "guest_view/web_view/web_view_find_helper.h",
      "guest_view/web_view/web_view_guest.cc",
      "guest_view/web_view/web_view_guest.h",
      "guest_view/web_view/web_view_guest_delegate.h",
      "guest_view/web_view/web_view_permission_types.h",
      "guest_view/web_view/web_view_permission_helper.cc",
      "guest_view/web_view/web_view_permission_helper.h",
      "guest_view/web_view/web_view_permission_helper_delegate.cc",
      "guest_view/web_view/web_view_permission_helper_delegate.h",
      "guest_view/web_view/web_view_renderer_state.cc",
      "guest_view/web_view/web_view_renderer_state.h",
      "image_loader.cc",
      "image_loader.h",
      "image_loader_factory.cc",
      "image_loader_factory.h",
      "image_util.cc",
      "image_util.h",
      "info_map.cc",
      "info_map.h",
      "install_flag.h",
      "lazy_background_task_queue.cc",
      "lazy_background_task_queue.h",
      "management_policy.cc",
      "management_policy.h",
      "pref_names.cc",
      "pref_names.h",
      "process_manager.cc",
      "process_manager.h",
      "process_manager_delegate.h",
      "process_manager_observer.h",
      "process_map.cc",
      "process_map.h",
      "process_map_factory.cc",
      "process_map_factory.h",
      "quota_service.cc",
      "quota_service.h",
      "renderer_startup_helper.cc",
      "renderer_startup_helper.h",
      "runtime_data.cc",
      "runtime_data.h",
      "script_execution_observer.h",
      "script_executor.cc",
      "script_executor.h",
      "state_store.cc",
      "state_store.h",
      "suggest_permission_util.cc",
      "suggest_permission_util.h",
      "uninstall_reason.h",
      "update_observer.h",
      "updater/manifest_fetch_data.cc",
      "updater/manifest_fetch_data.h",
      "updater/safe_manifest_parser.cc",
      "updater/safe_manifest_parser.h",
      "url_request_util.cc",
      "url_request_util.h",
      "value_store/leveldb_value_store.cc",
      "value_store/leveldb_value_store.h",
      "value_store/testing_value_store.cc",
      "value_store/testing_value_store.h",
      "value_store/value_store.cc",
      "value_store/value_store.h",
      "value_store/value_store_change.cc",
      "value_store/value_store_change.h",
      "value_store/value_store_frontend.cc",
      "value_store/value_store_frontend.h",
      "value_store/value_store_util.cc",
      "value_store/value_store_util.h",
      "verified_contents.cc",
      "verified_contents.h",
      "view_type_utils.cc",
      "view_type_utils.h",
      "warning_service.cc",
      "warning_service.h",
      "warning_set.cc",
      "warning_set.h",
    ]

    deps += [
      "//components/storage_monitor",
      "//crypto:platform",
      "//device/bluetooth",
      "//device/core",
      "//device/hid",
      "//device/serial",
      "//device/usb",
      "//extensions/common/api/cast_channel:cast_channel_proto",
    ]

    if (use_openssl) {
      sources += [
        "api/cast_channel/cast_auth_util_openssl.cc",
      ]
    } else {
      sources += [
        "api/cast_channel/cast_auth_util_nss.cc",
      ]
    }
  }

  if (is_win) {
    cflags = [
      "/wd4267", # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    ]
  }
}