# 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_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_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/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_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_stream_test_utils.cc",
    "fileapi/file_stream_test_utils.h",
    "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/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/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",
  ]
}
