BUILD.gn 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. # Copyright 2019 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//third_party/protobuf/proto_library.gni")
  5. source_set("storage") {
  6. sources = [
  7. "dom_storage/async_dom_storage_database.cc",
  8. "dom_storage/async_dom_storage_database.h",
  9. "dom_storage/dom_storage_constants.cc",
  10. "dom_storage/dom_storage_constants.h",
  11. "dom_storage/dom_storage_database.cc",
  12. "dom_storage/dom_storage_database.h",
  13. "dom_storage/local_storage_impl.cc",
  14. "dom_storage/local_storage_impl.h",
  15. "dom_storage/session_storage_area_impl.cc",
  16. "dom_storage/session_storage_area_impl.h",
  17. "dom_storage/session_storage_data_map.cc",
  18. "dom_storage/session_storage_data_map.h",
  19. "dom_storage/session_storage_impl.cc",
  20. "dom_storage/session_storage_impl.h",
  21. "dom_storage/session_storage_metadata.cc",
  22. "dom_storage/session_storage_metadata.h",
  23. "dom_storage/session_storage_namespace_impl.cc",
  24. "dom_storage/session_storage_namespace_impl.h",
  25. "dom_storage/storage_area_impl.cc",
  26. "dom_storage/storage_area_impl.h",
  27. "indexed_db/leveldb/leveldb_factory.cc",
  28. "indexed_db/leveldb/leveldb_factory.h",
  29. "indexed_db/leveldb/leveldb_state.cc",
  30. "indexed_db/leveldb/leveldb_state.h",
  31. "indexed_db/scopes/leveldb_scope.cc",
  32. "indexed_db/scopes/leveldb_scope.h",
  33. "indexed_db/scopes/leveldb_scope_deletion_mode.h",
  34. "indexed_db/scopes/leveldb_scopes.cc",
  35. "indexed_db/scopes/leveldb_scopes.h",
  36. "indexed_db/scopes/leveldb_scopes_coding.cc",
  37. "indexed_db/scopes/leveldb_scopes_coding.h",
  38. "indexed_db/scopes/leveldb_scopes_factory.cc",
  39. "indexed_db/scopes/leveldb_scopes_factory.h",
  40. "indexed_db/scopes/leveldb_scopes_tasks.cc",
  41. "indexed_db/scopes/leveldb_scopes_tasks.h",
  42. "indexed_db/scopes/varint_coding.cc",
  43. "indexed_db/scopes/varint_coding.h",
  44. "indexed_db/transactional_leveldb/leveldb_write_batch.cc",
  45. "indexed_db/transactional_leveldb/leveldb_write_batch.h",
  46. "indexed_db/transactional_leveldb/transactional_leveldb_database.cc",
  47. "indexed_db/transactional_leveldb/transactional_leveldb_database.h",
  48. "indexed_db/transactional_leveldb/transactional_leveldb_factory.cc",
  49. "indexed_db/transactional_leveldb/transactional_leveldb_factory.h",
  50. "indexed_db/transactional_leveldb/transactional_leveldb_iterator.cc",
  51. "indexed_db/transactional_leveldb/transactional_leveldb_iterator.h",
  52. "indexed_db/transactional_leveldb/transactional_leveldb_transaction.cc",
  53. "indexed_db/transactional_leveldb/transactional_leveldb_transaction.h",
  54. "origin_context_impl.cc",
  55. "origin_context_impl.h",
  56. "partition_impl.cc",
  57. "partition_impl.h",
  58. "sandboxed_vfs_delegate.cc",
  59. "sandboxed_vfs_delegate.h",
  60. "service_worker/service_worker_database.cc",
  61. "service_worker/service_worker_database.h",
  62. "service_worker/service_worker_disk_cache.cc",
  63. "service_worker/service_worker_disk_cache.h",
  64. "service_worker/service_worker_resource_ops.cc",
  65. "service_worker/service_worker_resource_ops.h",
  66. "service_worker/service_worker_storage.cc",
  67. "service_worker/service_worker_storage.h",
  68. "service_worker/service_worker_storage_control_impl.cc",
  69. "service_worker/service_worker_storage_control_impl.h",
  70. "shared_storage/async_shared_storage_database.h",
  71. "shared_storage/async_shared_storage_database_impl.cc",
  72. "shared_storage/async_shared_storage_database_impl.h",
  73. "shared_storage/shared_storage_database.cc",
  74. "shared_storage/shared_storage_database.h",
  75. "shared_storage/shared_storage_manager.cc",
  76. "shared_storage/shared_storage_manager.h",
  77. "shared_storage/shared_storage_options.cc",
  78. "shared_storage/shared_storage_options.h",
  79. "storage_service_impl.cc",
  80. "storage_service_impl.h",
  81. ]
  82. public_deps = [
  83. ":lock_manager",
  84. ":test_api_stubs",
  85. "//base",
  86. "//components/services/storage/dom_storage:local_storage_proto",
  87. "//components/services/storage/indexed_db/scopes:scopes_metadata_proto",
  88. "//components/services/storage/privileged/mojom",
  89. "//components/services/storage/public/mojom",
  90. "//components/services/storage/service_worker:service_worker_proto",
  91. "//components/services/storage/shared_storage/public/mojom",
  92. "//mojo/public/cpp/bindings",
  93. "//sql",
  94. "//third_party/abseil-cpp:absl",
  95. "//third_party/blink/public/common",
  96. "//third_party/leveldatabase",
  97. "//url",
  98. ]
  99. deps = [
  100. ":filesystem_proxy_factory",
  101. "//components/services/storage/public/cpp",
  102. "//net",
  103. "//services/network/public/cpp",
  104. "//services/network/public/mojom",
  105. "//storage/browser",
  106. "//storage/common",
  107. "//third_party/sqlite",
  108. ]
  109. }
  110. component("lock_manager") {
  111. sources = [
  112. "indexed_db/locks/disjoint_range_lock_manager.cc",
  113. "indexed_db/locks/disjoint_range_lock_manager.h",
  114. "indexed_db/locks/leveled_lock.cc",
  115. "indexed_db/locks/leveled_lock.h",
  116. "indexed_db/locks/leveled_lock_manager.cc",
  117. "indexed_db/locks/leveled_lock_manager.h",
  118. "indexed_db/locks/leveled_lock_range.cc",
  119. "indexed_db/locks/leveled_lock_range.h",
  120. ]
  121. deps = [ "//base" ]
  122. defines = [ "IS_LOCK_MANAGER_IMPL" ]
  123. }
  124. # This is its own component target because it exposes global state to multiple
  125. # independent libraries in component builds.
  126. component("filesystem_proxy_factory") {
  127. sources = [
  128. "filesystem_proxy_factory.cc",
  129. "filesystem_proxy_factory.h",
  130. ]
  131. public_deps = [
  132. "//base",
  133. "//components/services/storage/public/cpp/filesystem",
  134. ]
  135. defines = [ "IS_FILESYSTEM_PROXY_FACTORY_IMPL" ]
  136. }
  137. # A separate component target which merely defines storage for a global testing
  138. # API binder implementations to be injected. No actual testing logic should be
  139. # included in this target.
  140. component("test_api_stubs") {
  141. sources = [
  142. "test_api_stubs.cc",
  143. "test_api_stubs.h",
  144. ]
  145. public_deps = [
  146. "//base",
  147. "//mojo/public/cpp/system",
  148. ]
  149. defines = [ "IS_STORAGE_SERVICE_TEST_API_STUBS_IMPL" ]
  150. }
  151. bundle_data("tests_bundle_data") {
  152. visibility = [ ":tests" ]
  153. testonly = true
  154. sources = [
  155. "//components/test/data/storage/shared_storage.v0.init_too_old.sql",
  156. "//components/test/data/storage/shared_storage.v1.init_too_new.sql",
  157. "//components/test/data/storage/shared_storage.v1.iterator.sql",
  158. "//components/test/data/storage/shared_storage.v1.no_budget_table.sql",
  159. "//components/test/data/storage/shared_storage.v1.sql",
  160. ]
  161. outputs = [ "{{bundle_resources_dir}}/" +
  162. "{{source_root_relative_dir}}/{{source_file_part}}" ]
  163. }
  164. source_set("tests") {
  165. testonly = true
  166. sources = [
  167. "dom_storage/dom_storage_database_unittest.cc",
  168. "dom_storage/local_storage_impl_unittest.cc",
  169. "dom_storage/session_storage_area_impl_unittest.cc",
  170. "dom_storage/session_storage_data_map_unittest.cc",
  171. "dom_storage/session_storage_impl_unittest.cc",
  172. "dom_storage/session_storage_metadata_unittest.cc",
  173. "dom_storage/session_storage_namespace_impl_unittest.cc",
  174. "dom_storage/storage_area_impl_unittest.cc",
  175. "indexed_db/locks/disjoint_range_lock_manager_unittest.cc",
  176. "indexed_db/locks/leveled_lock_manager_unittest.cc",
  177. "indexed_db/scopes/leveldb_scope_unittest.cc",
  178. "indexed_db/scopes/leveldb_scopes_coding_unittest.cc",
  179. "indexed_db/scopes/leveldb_scopes_tasks_unittest.cc",
  180. "indexed_db/scopes/leveldb_scopes_unittest.cc",
  181. "indexed_db/scopes/varint_coding_unittest.cc",
  182. "indexed_db/transactional_leveldb/transactional_leveldb_transaction_unittest.cc",
  183. "indexed_db/transactional_leveldb/transactional_leveldb_unittest.cc",
  184. "partition_impl_unittest.cc",
  185. "service_worker/service_worker_database_unittest.cc",
  186. "service_worker/service_worker_disk_cache_unittest.cc",
  187. "service_worker/service_worker_storage_control_impl_unittest.cc",
  188. "service_worker/service_worker_storage_test_utils.cc",
  189. "service_worker/service_worker_storage_test_utils.h",
  190. "service_worker/service_worker_storage_unittest.cc",
  191. "shared_storage/async_shared_storage_database_impl_unittest.cc",
  192. "shared_storage/shared_storage_database_unittest.cc",
  193. "shared_storage/shared_storage_manager_unittest.cc",
  194. "storage_service_impl_unittest.cc",
  195. ]
  196. deps = [
  197. ":storage",
  198. ":test_support",
  199. ":tests_bundle_data",
  200. "//base",
  201. "//base/test:test_support",
  202. "//components/services/storage/public/cpp",
  203. "//components/services/storage/public/cpp/filesystem:tests",
  204. "//components/services/storage/public/mojom",
  205. "//components/services/storage/public/mojom:tests",
  206. "//mojo/public/cpp/bindings",
  207. "//mojo/public/cpp/system",
  208. "//net",
  209. "//net:test_support",
  210. "//sql",
  211. "//sql:test_support",
  212. "//storage/browser:browser",
  213. "//storage/browser:test_support",
  214. "//testing/gmock",
  215. "//testing/gtest",
  216. "//third_party/sqlite",
  217. ]
  218. data = [ "//components/services/storage/test_data/" ]
  219. }
  220. source_set("test_support") {
  221. testonly = true
  222. sources = [
  223. "dom_storage/storage_area_test_util.cc",
  224. "dom_storage/storage_area_test_util.h",
  225. "dom_storage/testing_legacy_session_storage_database.cc",
  226. "dom_storage/testing_legacy_session_storage_database.h",
  227. "indexed_db/leveldb/fake_leveldb_factory.cc",
  228. "indexed_db/leveldb/fake_leveldb_factory.h",
  229. "indexed_db/leveldb/mock_level_db.cc",
  230. "indexed_db/leveldb/mock_level_db.h",
  231. "indexed_db/scopes/leveldb_scopes_test_utils.cc",
  232. "indexed_db/scopes/leveldb_scopes_test_utils.h",
  233. "shared_storage/shared_storage_test_utils.cc",
  234. "shared_storage/shared_storage_test_utils.h",
  235. ]
  236. deps = [
  237. ":storage",
  238. "//base/test:test_support",
  239. "//sql:test_support",
  240. "//testing/gmock",
  241. "//testing/gtest",
  242. "//third_party/leveldatabase",
  243. ]
  244. public_deps = [
  245. "//base",
  246. "//mojo/public/cpp/bindings",
  247. "//testing/gmock",
  248. ]
  249. }