# 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/jumbo.gni")
import("//testing/test.gni")

jumbo_component("browser") {
  output_name = "storage_browser"
  sources = [
    "blob/blob_builder_from_stream.cc",
    "blob/blob_builder_from_stream.h",
    "blob/blob_data_builder.cc",
    "blob/blob_data_builder.h",
    "blob/blob_data_handle.cc",
    "blob/blob_data_handle.h",
    "blob/blob_data_item.cc",
    "blob/blob_data_item.h",
    "blob/blob_data_snapshot.cc",
    "blob/blob_data_snapshot.h",
    "blob/blob_entry.cc",
    "blob/blob_entry.h",
    "blob/blob_impl.cc",
    "blob/blob_impl.h",
    "blob/blob_memory_controller.cc",
    "blob/blob_memory_controller.h",
    "blob/blob_reader.cc",
    "blob/blob_reader.h",
    "blob/blob_registry_impl.cc",
    "blob/blob_registry_impl.h",
    "blob/blob_storage_context.cc",
    "blob/blob_storage_context.h",
    "blob/blob_storage_registry.cc",
    "blob/blob_storage_registry.h",
    "blob/blob_transport_strategy.cc",
    "blob/blob_transport_strategy.h",
    "blob/blob_url_loader.cc",
    "blob/blob_url_loader.h",
    "blob/blob_url_loader_factory.cc",
    "blob/blob_url_loader_factory.h",
    "blob/blob_url_request_job.cc",
    "blob/blob_url_request_job.h",
    "blob/blob_url_request_job_factory.cc",
    "blob/blob_url_request_job_factory.h",
    "blob/blob_url_store_impl.cc",
    "blob/blob_url_store_impl.h",
    "blob/blob_url_utils.cc",
    "blob/blob_url_utils.h",
    "blob/mojo_blob_reader.cc",
    "blob/mojo_blob_reader.h",
    "blob/scoped_file.cc",
    "blob/scoped_file.h",
    "blob/shareable_blob_data_item.cc",
    "blob/shareable_blob_data_item.h",
    "blob/shareable_file_reference.cc",
    "blob/shareable_file_reference.h",
    "blob/upload_blob_element_reader.cc",
    "blob/upload_blob_element_reader.h",
    "blob/view_blob_internals_job.cc",
    "blob/view_blob_internals_job.h",
    "database/database_quota_client.cc",
    "database/database_quota_client.h",
    "database/database_tracker.cc",
    "database/database_tracker.h",
    "database/database_util.cc",
    "database/database_util.h",
    "database/databases_table.cc",
    "database/databases_table.h",
    "database/vfs_backend.cc",
    "database/vfs_backend.h",
    "fileapi/async_file_util.h",
    "fileapi/async_file_util_adapter.cc",
    "fileapi/async_file_util_adapter.h",
    "fileapi/copy_or_move_file_validator.h",
    "fileapi/copy_or_move_operation_delegate.cc",
    "fileapi/copy_or_move_operation_delegate.h",
    "fileapi/dragged_file_util.cc",
    "fileapi/dragged_file_util.h",
    "fileapi/external_mount_points.cc",
    "fileapi/external_mount_points.h",
    "fileapi/file_observers.h",
    "fileapi/file_permission_policy.h",
    "fileapi/file_stream_reader.cc",
    "fileapi/file_stream_reader.h",
    "fileapi/file_stream_writer.h",
    "fileapi/file_system_backend.h",
    "fileapi/file_system_context.cc",
    "fileapi/file_system_context.h",
    "fileapi/file_system_dir_url_request_job.cc",
    "fileapi/file_system_dir_url_request_job.h",
    "fileapi/file_system_file_stream_reader.cc",
    "fileapi/file_system_file_stream_reader.h",
    "fileapi/file_system_file_util.cc",
    "fileapi/file_system_file_util.h",
    "fileapi/file_system_operation.h",
    "fileapi/file_system_operation_context.cc",
    "fileapi/file_system_operation_context.h",
    "fileapi/file_system_operation_impl.cc",
    "fileapi/file_system_operation_impl.h",
    "fileapi/file_system_operation_runner.cc",
    "fileapi/file_system_operation_runner.h",
    "fileapi/file_system_options.cc",
    "fileapi/file_system_options.h",
    "fileapi/file_system_quota_client.cc",
    "fileapi/file_system_quota_client.h",
    "fileapi/file_system_quota_util.h",
    "fileapi/file_system_url.cc",
    "fileapi/file_system_url.h",
    "fileapi/file_system_url_request_job.cc",
    "fileapi/file_system_url_request_job.h",
    "fileapi/file_system_url_request_job_factory.cc",
    "fileapi/file_system_url_request_job_factory.h",
    "fileapi/file_system_usage_cache.cc",
    "fileapi/file_system_usage_cache.h",
    "fileapi/file_writer_delegate.cc",
    "fileapi/file_writer_delegate.h",
    "fileapi/file_writer_impl.cc",
    "fileapi/file_writer_impl.h",
    "fileapi/isolated_context.cc",
    "fileapi/isolated_context.h",
    "fileapi/isolated_file_system_backend.cc",
    "fileapi/isolated_file_system_backend.h",
    "fileapi/local_file_stream_reader.cc",
    "fileapi/local_file_stream_reader.h",
    "fileapi/local_file_stream_writer.cc",
    "fileapi/local_file_stream_writer.h",
    "fileapi/local_file_util.cc",
    "fileapi/local_file_util.h",
    "fileapi/mount_points.cc",
    "fileapi/mount_points.h",
    "fileapi/native_file_util.cc",
    "fileapi/native_file_util.h",
    "fileapi/obfuscated_file_util.cc",
    "fileapi/obfuscated_file_util.h",
    "fileapi/open_file_system_mode.h",
    "fileapi/plugin_private_file_system_backend.cc",
    "fileapi/plugin_private_file_system_backend.h",
    "fileapi/quota/open_file_handle.cc",
    "fileapi/quota/open_file_handle.h",
    "fileapi/quota/open_file_handle_context.cc",
    "fileapi/quota/open_file_handle_context.h",
    "fileapi/quota/quota_backend_impl.cc",
    "fileapi/quota/quota_backend_impl.h",
    "fileapi/quota/quota_reservation.cc",
    "fileapi/quota/quota_reservation.h",
    "fileapi/quota/quota_reservation_buffer.cc",
    "fileapi/quota/quota_reservation_buffer.h",
    "fileapi/quota/quota_reservation_manager.cc",
    "fileapi/quota/quota_reservation_manager.h",
    "fileapi/recursive_operation_delegate.cc",
    "fileapi/recursive_operation_delegate.h",
    "fileapi/remove_operation_delegate.cc",
    "fileapi/remove_operation_delegate.h",
    "fileapi/sandbox_directory_database.cc",
    "fileapi/sandbox_directory_database.h",
    "fileapi/sandbox_file_stream_writer.cc",
    "fileapi/sandbox_file_stream_writer.h",
    "fileapi/sandbox_file_system_backend.cc",
    "fileapi/sandbox_file_system_backend.h",
    "fileapi/sandbox_file_system_backend_delegate.cc",
    "fileapi/sandbox_file_system_backend_delegate.h",
    "fileapi/sandbox_isolated_origin_database.cc",
    "fileapi/sandbox_isolated_origin_database.h",
    "fileapi/sandbox_origin_database.cc",
    "fileapi/sandbox_origin_database.h",
    "fileapi/sandbox_origin_database_interface.cc",
    "fileapi/sandbox_origin_database_interface.h",
    "fileapi/sandbox_prioritized_origin_database.cc",
    "fileapi/sandbox_prioritized_origin_database.h",
    "fileapi/sandbox_quota_observer.cc",
    "fileapi/sandbox_quota_observer.h",
    "fileapi/task_runner_bound_observer_list.h",
    "fileapi/transient_file_util.cc",
    "fileapi/transient_file_util.h",
    "fileapi/watcher_manager.h",
    "quota/client_usage_tracker.cc",
    "quota/client_usage_tracker.h",
    "quota/quota_callbacks.h",
    "quota/quota_client.cc",
    "quota/quota_client.h",
    "quota/quota_database.cc",
    "quota/quota_database.h",
    "quota/quota_macros.h",
    "quota/quota_manager.cc",
    "quota/quota_manager.h",
    "quota/quota_manager_proxy.cc",
    "quota/quota_manager_proxy.h",
    "quota/quota_settings.cc",
    "quota/quota_settings.h",
    "quota/quota_task.cc",
    "quota/quota_task.h",
    "quota/quota_temporary_storage_evictor.cc",
    "quota/quota_temporary_storage_evictor.h",
    "quota/special_storage_policy.cc",
    "quota/special_storage_policy.h",
    "quota/storage_monitor.cc",
    "quota/storage_monitor.h",
    "quota/storage_observer.cc",
    "quota/storage_observer.h",
    "quota/usage_tracker.cc",
    "quota/usage_tracker.h",
  ]

  defines = [ "IS_STORAGE_BROWSER_IMPL" ]
  configs += [
    "//build/config:precompiled_headers",
    "//build/config/compiler:wexit_time_destructors",
  ]

  public_deps = [
    "//components/services/filesystem/public/interfaces",
    "//storage/common",
  ]
  deps = [
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//mojo/public/cpp/bindings",
    "//net",
    "//services/network:network_service",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//sql",
    "//third_party/leveldatabase",
    "//third_party/sqlite",
    "//url",
  ]
}

executable("dump_file_system") {
  sources = [
    "fileapi/dump_file_system.cc",
  ]

  deps = [
    ":browser",
    "//base",
    "//build/win:default_exe_manifest",
    "//storage/common",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    # This target is in the process of being populated. See
    # http://crbug.com/653751
    "blob/blob_builder_from_stream_unittest.cc",
    "blob/blob_data_builder_unittest.cc",
    "blob/blob_flattener_unittest.cc",
    "blob/blob_impl_unittest.cc",
    "blob/blob_memory_controller_unittest.cc",
    "blob/blob_reader_unittest.cc",
    "blob/blob_registry_impl_unittest.cc",
    "blob/blob_slice_unittest.cc",
    "blob/blob_storage_context_unittest.cc",
    "blob/blob_storage_registry_unittest.cc",
    "blob/blob_transport_strategy_unittest.cc",
    "blob/blob_url_store_impl_unittest.cc",
    "database/database_quota_client_unittest.cc",
    "database/database_tracker_unittest.cc",
    "database/database_util_unittest.cc",
    "database/databases_table_unittest.cc",
    "fileapi/copy_or_move_file_validator_unittest.cc",
    "fileapi/copy_or_move_operation_delegate_unittest.cc",
    "fileapi/dragged_file_util_unittest.cc",
    "fileapi/external_mount_points_unittest.cc",
    "fileapi/file_system_context_unittest.cc",
    "fileapi/file_system_dir_url_request_job_unittest.cc",
    "fileapi/file_system_file_stream_reader_unittest.cc",
    "fileapi/file_system_operation_impl_unittest.cc",
    "fileapi/file_system_operation_impl_write_unittest.cc",
    "fileapi/file_system_quota_client_unittest.cc",
    "fileapi/file_system_url_request_job_unittest.cc",
    "fileapi/file_system_url_unittest.cc",
    "fileapi/file_system_usage_cache_unittest.cc",
    "fileapi/file_writer_delegate_unittest.cc",
    "fileapi/file_writer_impl_unittest.cc",
    "fileapi/isolated_context_unittest.cc",
    "fileapi/local_file_stream_reader_unittest.cc",
    "fileapi/local_file_stream_writer_unittest.cc",
    "fileapi/local_file_util_unittest.cc",
    "fileapi/native_file_util_unittest.cc",
    "fileapi/obfuscated_file_util_unittest.cc",
    "fileapi/plugin_private_file_system_backend_unittest.cc",
    "fileapi/quota/quota_backend_impl_unittest.cc",
    "fileapi/quota/quota_reservation_manager_unittest.cc",
    "fileapi/recursive_operation_delegate_unittest.cc",
    "fileapi/sandbox_directory_database_unittest.cc",
    "fileapi/sandbox_file_system_backend_delegate_unittest.cc",
    "fileapi/sandbox_file_system_backend_unittest.cc",
    "fileapi/sandbox_isolated_origin_database_unittest.cc",
    "fileapi/sandbox_origin_database_unittest.cc",
    "fileapi/sandbox_prioritized_origin_database_unittest.cc",
    "fileapi/transient_file_util_unittest.cc",
    "quota/quota_database_unittest.cc",
    "quota/quota_manager_unittest.cc",
    "quota/quota_temporary_storage_evictor_unittest.cc",
    "quota/storage_monitor_unittest.cc",
    "quota/usage_tracker_unittest.cc",
    "test/mock_quota_manager_unittest.cc",
  ]

  deps = [
    ":browser",
    ":test_support",
    "//base/test:test_support",
    "//components/services/filesystem/public/interfaces",
    "//mojo/core/embedder",
    "//net:test_support",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//sql:test_support",
    "//testing/gtest",
    "//third_party/leveldatabase",
    "//third_party/sqlite",
  ]
}

jumbo_static_library("test_support") {
  testonly = true

  sources = [
    "test/async_file_test_helper.cc",
    "test/async_file_test_helper.h",
    "test/fake_blob.cc",
    "test/fake_blob.h",
    "test/fake_progress_client.cc",
    "test/fake_progress_client.h",
    "test/fileapi_test_file_set.cc",
    "test/fileapi_test_file_set.h",
    "test/mock_blob_registry_delegate.cc",
    "test/mock_blob_registry_delegate.h",
    "test/mock_blob_url_request_context.cc",
    "test/mock_blob_url_request_context.h",
    "test/mock_bytes_provider.cc",
    "test/mock_bytes_provider.h",
    "test/mock_file_change_observer.cc",
    "test/mock_file_change_observer.h",
    "test/mock_file_update_observer.cc",
    "test/mock_file_update_observer.h",
    "test/mock_quota_manager.cc",
    "test/mock_quota_manager.h",
    "test/mock_quota_manager_proxy.cc",
    "test/mock_quota_manager_proxy.h",
    "test/mock_special_storage_policy.cc",
    "test/mock_special_storage_policy.h",
    "test/mock_storage_client.cc",
    "test/mock_storage_client.h",
    "test/sandbox_database_test_helper.cc",
    "test/sandbox_database_test_helper.h",
    "test/sandbox_file_system_test_helper.cc",
    "test/sandbox_file_system_test_helper.h",
    "test/test_file_system_backend.cc",
    "test/test_file_system_backend.h",
    "test/test_file_system_context.cc",
    "test/test_file_system_context.h",
    "test/test_file_system_options.cc",
    "test/test_file_system_options.h",
  ]

  deps = [
    ":browser",
    "//base/test:test_support",
    "//net:test_support",
    "//services/network:network_service",
    "//testing/gtest",
    "//third_party/leveldatabase",
  ]
}
