# 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_handle.cc",
    "blob/blob_handle.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_constants.cc",
    "blob/blob_storage_constants.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_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/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_features.cc",
    "fileapi/file_system_features.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_usage_cache.cc",
    "fileapi/file_system_usage_cache.h",
    "fileapi/file_writer_delegate.cc",
    "fileapi/file_writer_delegate.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/memory_file_stream_reader.cc",
    "fileapi/memory_file_stream_reader.h",
    "fileapi/memory_file_stream_writer.cc",
    "fileapi/memory_file_stream_writer.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/obfuscated_file_util_delegate.h",
    "fileapi/obfuscated_file_util_disk_delegate.cc",
    "fileapi/obfuscated_file_util_disk_delegate.h",
    "fileapi/obfuscated_file_util_memory_delegate.cc",
    "fileapi/obfuscated_file_util_memory_delegate.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/padding_key.cc",
    "quota/padding_key.h",
    "quota/quota_callbacks.h",
    "quota/quota_client.cc",
    "quota/quota_client.h",
    "quota/quota_database.cc",
    "quota/quota_database.h",
    "quota/quota_disk_info_helper.cc",
    "quota/quota_disk_info_helper.h",
    "quota/quota_features.cc",
    "quota/quota_features.h",
    "quota/quota_limit_type.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/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/mojom",
    "//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_stream_test_utils.cc",
    "fileapi/file_stream_test_utils.h",
    "fileapi/file_system_context_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_unittest.cc",
    "fileapi/file_system_usage_cache_unittest.cc",
    "fileapi/file_writer_delegate_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/memory_file_stream_reader_unittest.cc",
    "fileapi/memory_file_stream_writer_unittest.cc",
    "fileapi/native_file_util_unittest.cc",
    "fileapi/obfuscated_file_util_memory_delegate_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_settings_unittest.cc",
    "quota/quota_temporary_storage_evictor_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/mojom",
    "//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_blob_data_handle.cc",
    "test/fake_blob_data_handle.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_util.cc",
    "test/mock_blob_util.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",
  ]
}
