# 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.

# GYP version: storage/storage_browser.gyp:storage
component("browser") {
  output_name = "storage_browser"
  sources = [
    "storage_browser_export.h",
    "blob/blob_data_handle.cc",
    "blob/blob_data_handle.h",
    "blob/blob_storage_context.cc",
    "blob/blob_storage_context.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/file_stream_reader.cc",
    "blob/file_stream_reader.h",
    "blob/local_file_stream_reader.cc",
    "blob/local_file_stream_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_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/isolated_context.cc",
    "fileapi/isolated_context.h",
    "fileapi/isolated_file_system_backend.cc",
    "fileapi/isolated_file_system_backend.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/timed_task_helper.cc",
    "fileapi/timed_task_helper.h",
    "fileapi/transient_file_util.cc",
    "fileapi/transient_file_util.h",
    "quota/client_usage_tracker.cc",
    "quota/client_usage_tracker.h",
    "quota/quota_callbacks.h",
    "quota/quota_client.h",
    "quota/quota_database.cc",
    "quota/quota_database.h",
    "quota/quota_manager.cc",
    "quota/quota_manager.h",
    "quota/quota_manager_proxy.cc",
    "quota/quota_manager_proxy.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 = [ "STORAGE_BROWSER_IMPLEMENTATION" ]
  configs += [ "//build/config/compiler:wexit_time_destructors" ]
  if (is_win) {
    cflags = [ "/wd4267" ]  # TODO(jschuh): fix size_t to int truncations.
  }

  deps = [
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//net",
    "//sql",
    "//storage/common",
    "//third_party/leveldatabase",
    "//third_party/sqlite",
    "//url",
  ]

  # TODO(GYP) support chrome_multiple_dll
  #['chrome_multiple_dll!=1', {
  #  'dependencies': [
  #    '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
  #  ],
  #}],
}

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

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