1# Copyright 2017 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
5if (is_android) {
6  import("//build/config/android/rules.gni")
7}
8import("//third_party/protobuf/proto_library.gni")
9
10static_library("prefetch") {
11  sources = [
12    "generate_page_bundle_request.cc",
13    "generate_page_bundle_request.h",
14    "get_operation_request.cc",
15    "get_operation_request.h",
16    "offline_metrics_collector.h",
17    "prefetch_background_task.cc",
18    "prefetch_background_task.h",
19    "prefetch_background_task_handler.h",
20    "prefetch_dispatcher.h",
21    "prefetch_dispatcher_impl.cc",
22    "prefetch_dispatcher_impl.h",
23    "prefetch_downloader.h",
24    "prefetch_downloader_impl.cc",
25    "prefetch_downloader_impl.h",
26    "prefetch_gcm_app_handler.cc",
27    "prefetch_gcm_app_handler.h",
28    "prefetch_gcm_handler.h",
29    "prefetch_importer.cc",
30    "prefetch_importer.h",
31    "prefetch_importer_impl.cc",
32    "prefetch_importer_impl.h",
33    "prefetch_network_request_factory.h",
34    "prefetch_network_request_factory_impl.cc",
35    "prefetch_network_request_factory_impl.h",
36    "prefetch_prefs.cc",
37    "prefetch_prefs.h",
38    "prefetch_proto_utils.cc",
39    "prefetch_proto_utils.h",
40    "prefetch_request_fetcher.cc",
41    "prefetch_request_fetcher.h",
42    "prefetch_server_urls.cc",
43    "prefetch_server_urls.h",
44    "prefetch_service.h",
45    "prefetch_service_impl.cc",
46    "prefetch_service_impl.h",
47    "prefetch_types.cc",
48    "prefetch_types.h",
49    "server_forbidden_check_request.cc",
50    "server_forbidden_check_request.h",
51    "store/prefetch_downloader_quota.cc",
52    "store/prefetch_downloader_quota.h",
53    "store/prefetch_store.cc",
54    "store/prefetch_store.h",
55    "store/prefetch_store_schema.cc",
56    "store/prefetch_store_schema.h",
57    "store/prefetch_store_utils.cc",
58    "store/prefetch_store_utils.h",
59    "suggestions_provider.cc",
60    "suggestions_provider.h",
61    "tasks/add_unique_urls_task.cc",
62    "tasks/add_unique_urls_task.h",
63    "tasks/download_archives_task.cc",
64    "tasks/download_archives_task.h",
65    "tasks/download_cleanup_task.cc",
66    "tasks/download_cleanup_task.h",
67    "tasks/download_completed_task.cc",
68    "tasks/download_completed_task.h",
69    "tasks/finalize_dismissed_url_suggestion_task.cc",
70    "tasks/finalize_dismissed_url_suggestion_task.h",
71    "tasks/generate_page_bundle_reconcile_task.cc",
72    "tasks/generate_page_bundle_reconcile_task.h",
73    "tasks/generate_page_bundle_task.cc",
74    "tasks/generate_page_bundle_task.h",
75    "tasks/get_operation_task.cc",
76    "tasks/get_operation_task.h",
77    "tasks/get_visuals_info_task.cc",
78    "tasks/get_visuals_info_task.h",
79    "tasks/import_archives_task.cc",
80    "tasks/import_archives_task.h",
81    "tasks/import_cleanup_task.cc",
82    "tasks/import_cleanup_task.h",
83    "tasks/import_completed_task.cc",
84    "tasks/import_completed_task.h",
85    "tasks/mark_operation_done_task.cc",
86    "tasks/mark_operation_done_task.h",
87    "tasks/metrics_finalization_task.cc",
88    "tasks/metrics_finalization_task.h",
89    "tasks/page_bundle_update_task.cc",
90    "tasks/page_bundle_update_task.h",
91    "tasks/remove_url_task.cc",
92    "tasks/remove_url_task.h",
93    "tasks/sent_get_operation_cleanup_task.cc",
94    "tasks/sent_get_operation_cleanup_task.h",
95    "tasks/stale_entry_finalizer_task.cc",
96    "tasks/stale_entry_finalizer_task.h",
97    "visuals_fetch_by_url.cc",
98    "visuals_fetch_by_url.h",
99  ]
100
101  public_deps = [ ":proto" ]
102
103  deps = [
104    "//base",
105    "//components/download/public/background_service:public",
106    "//components/gcm_driver",
107    "//components/gcm_driver/common",
108    "//components/image_fetcher/core",
109    "//components/keyed_service/core",
110    "//components/offline_pages/core",
111    "//components/offline_pages/core:switches",
112    "//components/offline_pages/task",
113    "//components/prefs",
114    "//components/variations:variations",
115    "//components/version_info",
116    "//google_apis",
117    "//net:net",
118    "//services/network/public/cpp:cpp",
119    "//sql:sql",
120    "//url",
121  ]
122}
123
124static_library("test_support") {
125  testonly = true
126  sources = [
127    "fake_suggestions_provider.cc",
128    "fake_suggestions_provider.h",
129    "mock_prefetch_item_generator.cc",
130    "mock_prefetch_item_generator.h",
131    "prefetch_item.cc",
132    "prefetch_item.h",
133    "prefetch_request_test_base.cc",
134    "prefetch_request_test_base.h",
135    "prefetch_service_test_taco.cc",
136    "prefetch_service_test_taco.h",
137    "store/prefetch_store_test_util.cc",
138    "store/prefetch_store_test_util.h",
139    "stub_prefetch_service.cc",
140    "stub_prefetch_service.h",
141    "tasks/prefetch_task_test_base.cc",
142    "tasks/prefetch_task_test_base.h",
143    "test_download_client.cc",
144    "test_download_client.h",
145    "test_download_service.cc",
146    "test_download_service.h",
147    "test_offline_metrics_collector.h",
148    "test_prefetch_dispatcher.cc",
149    "test_prefetch_dispatcher.h",
150    "test_prefetch_downloader.cc",
151    "test_prefetch_downloader.h",
152    "test_prefetch_gcm_handler.cc",
153    "test_prefetch_gcm_handler.h",
154    "test_prefetch_importer.cc",
155    "test_prefetch_importer.h",
156    "test_prefetch_network_request_factory.cc",
157    "test_prefetch_network_request_factory.h",
158    "test_util.cc",
159  ]
160
161  deps = [
162    ":prefetch",
163    "//base",
164    "//components/download/public/background_service:public",
165    "//components/download/public/background_service/test:test_support",
166    "//components/gcm_driver/instance_id",
167    "//components/image_fetcher/core:test_support",
168    "//components/keyed_service/core",
169    "//components/offline_pages/core",
170    "//components/offline_pages/core:switches",
171    "//components/offline_pages/core:test_support",
172    "//components/offline_pages/task",
173    "//components/offline_pages/task:test_support",
174    "//components/prefs:test_support",
175    "//components/version_info:channel",
176    "//net:test_support",
177    "//services/network:test_support",
178    "//sql:sql",
179    "//testing/gmock",
180    "//url",
181  ]
182}
183
184proto_library("proto") {
185  sources = [
186    "proto/any.proto",
187    "proto/offline_pages.proto",
188    "proto/operation.proto",
189    "proto/status.proto",
190  ]
191}
192
193if (is_android) {
194  proto_java_library("offline_prefetch_proto_java") {
195    proto_path = "proto"
196    sources = [
197      "proto/any.proto",
198      "proto/offline_pages.proto",
199      "proto/operation.proto",
200      "proto/status.proto",
201    ]
202  }
203}
204
205source_set("unit_tests") {
206  testonly = true
207  sources = [
208    "generate_page_bundle_request_unittest.cc",
209    "get_operation_request_unittest.cc",
210    "prefetch_downloader_impl_unittest.cc",
211    "prefetch_gcm_app_handler_unittest.cc",
212    "prefetch_importer_impl_unittest.cc",
213    "prefetch_item_unittest.cc",
214    "prefetch_network_request_factory_impl_unittest.cc",
215    "prefetch_prefs_unittest.cc",
216    "prefetch_request_fetcher_unittest.cc",
217    "prefetch_request_operation_response_unittest.cc",
218    "prefetch_server_urls_unittest.cc",
219    "server_forbidden_check_request_unittest.cc",
220    "store/prefetch_downloader_quota_unittest.cc",
221    "store/prefetch_store_schema_unittest.cc",
222    "store/prefetch_store_unittest.cc",
223    "tasks/add_unique_urls_task_unittest.cc",
224    "tasks/download_archives_task_unittest.cc",
225    "tasks/download_cleanup_task_unittest.cc",
226    "tasks/download_completed_task_unittest.cc",
227    "tasks/finalize_dismissed_url_suggestion_task_unittest.cc",
228    "tasks/generate_page_bundle_reconcile_task_unittest.cc",
229    "tasks/generate_page_bundle_task_unittest.cc",
230    "tasks/get_operation_task_unittest.cc",
231    "tasks/get_visuals_info_task_unittest.cc",
232    "tasks/import_archives_task_unittest.cc",
233    "tasks/import_cleanup_task_unittest.cc",
234    "tasks/import_completed_task_unittest.cc",
235    "tasks/mark_operation_done_task_unittest.cc",
236    "tasks/metrics_finalization_task_unittest.cc",
237    "tasks/page_bundle_update_task_unittest.cc",
238    "tasks/prefetch_task_test_base_unittest.cc",
239    "tasks/sent_get_operation_cleanup_task_unittest.cc",
240    "tasks/stale_entry_finalizer_task_unittest.cc",
241  ]
242
243  deps = [
244    ":prefetch",
245    ":test_support",
246    "//base",
247    "//components/download/public/background_service:public",
248    "//components/download/public/background_service/test:test_support",
249    "//components/gcm_driver/instance_id",
250    "//components/image_fetcher/core:test_support",
251    "//components/offline_pages/buildflags",
252    "//components/offline_pages/core",
253    "//components/offline_pages/core:switches",
254    "//components/offline_pages/core:test_support",
255    "//components/offline_pages/task",
256    "//components/offline_pages/task:test_support",
257    "//components/prefs:test_support",
258    "//components/variations:test_support",
259    "//components/version_info:channel",
260    "//components/version_info:version_info",
261    "//net:test_support",
262    "//services/network:test_support",
263    "//sql:sql",
264    "//testing/gmock",
265    "//testing/gtest",
266    "//url",
267  ]
268
269  sources += [
270    "prefetch_dispatcher_impl_unittest.cc",
271    "prefetch_download_flow_unittest.cc",
272  ]
273}
274