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    "suggested_articles_observer.cc",
60    "suggested_articles_observer.h",
61    "suggestions_provider.cc",
62    "suggestions_provider.h",
63    "tasks/add_unique_urls_task.cc",
64    "tasks/add_unique_urls_task.h",
65    "tasks/download_archives_task.cc",
66    "tasks/download_archives_task.h",
67    "tasks/download_cleanup_task.cc",
68    "tasks/download_cleanup_task.h",
69    "tasks/download_completed_task.cc",
70    "tasks/download_completed_task.h",
71    "tasks/finalize_dismissed_url_suggestion_task.cc",
72    "tasks/finalize_dismissed_url_suggestion_task.h",
73    "tasks/generate_page_bundle_reconcile_task.cc",
74    "tasks/generate_page_bundle_reconcile_task.h",
75    "tasks/generate_page_bundle_task.cc",
76    "tasks/generate_page_bundle_task.h",
77    "tasks/get_operation_task.cc",
78    "tasks/get_operation_task.h",
79    "tasks/get_visuals_info_task.cc",
80    "tasks/get_visuals_info_task.h",
81    "tasks/import_archives_task.cc",
82    "tasks/import_archives_task.h",
83    "tasks/import_cleanup_task.cc",
84    "tasks/import_cleanup_task.h",
85    "tasks/import_completed_task.cc",
86    "tasks/import_completed_task.h",
87    "tasks/mark_operation_done_task.cc",
88    "tasks/mark_operation_done_task.h",
89    "tasks/metrics_finalization_task.cc",
90    "tasks/metrics_finalization_task.h",
91    "tasks/page_bundle_update_task.cc",
92    "tasks/page_bundle_update_task.h",
93    "tasks/remove_url_task.cc",
94    "tasks/remove_url_task.h",
95    "tasks/sent_get_operation_cleanup_task.cc",
96    "tasks/sent_get_operation_cleanup_task.h",
97    "tasks/stale_entry_finalizer_task.cc",
98    "tasks/stale_entry_finalizer_task.h",
99    "thumbnail_fetcher.h",
100    "visuals_fetch_by_url.cc",
101    "visuals_fetch_by_url.h",
102  ]
103
104  public_deps = [ ":proto" ]
105
106  deps = [
107    "//base",
108    "//components/download/public/background_service:public",
109    "//components/gcm_driver",
110    "//components/gcm_driver/common",
111    "//components/image_fetcher/core",
112    "//components/keyed_service/core",
113    "//components/ntp_snippets",
114    "//components/offline_pages/core",
115    "//components/offline_pages/core:switches",
116    "//components/offline_pages/task",
117    "//components/prefs",
118    "//components/variations:variations",
119    "//components/version_info",
120    "//google_apis",
121    "//net:net",
122    "//services/network/public/cpp:cpp",
123    "//sql:sql",
124    "//url",
125  ]
126}
127
128static_library("test_support") {
129  testonly = true
130  sources = [
131    "fake_suggestions_provider.cc",
132    "fake_suggestions_provider.h",
133    "mock_prefetch_item_generator.cc",
134    "mock_prefetch_item_generator.h",
135    "mock_thumbnail_fetcher.cc",
136    "mock_thumbnail_fetcher.h",
137    "prefetch_item.cc",
138    "prefetch_item.h",
139    "prefetch_request_test_base.cc",
140    "prefetch_request_test_base.h",
141    "prefetch_service_test_taco.cc",
142    "prefetch_service_test_taco.h",
143    "store/prefetch_store_test_util.cc",
144    "store/prefetch_store_test_util.h",
145    "stub_prefetch_service.cc",
146    "stub_prefetch_service.h",
147    "tasks/prefetch_task_test_base.cc",
148    "tasks/prefetch_task_test_base.h",
149    "test_download_client.cc",
150    "test_download_client.h",
151    "test_download_service.cc",
152    "test_download_service.h",
153    "test_offline_metrics_collector.h",
154    "test_prefetch_dispatcher.cc",
155    "test_prefetch_dispatcher.h",
156    "test_prefetch_downloader.cc",
157    "test_prefetch_downloader.h",
158    "test_prefetch_gcm_handler.cc",
159    "test_prefetch_gcm_handler.h",
160    "test_prefetch_importer.cc",
161    "test_prefetch_importer.h",
162    "test_prefetch_network_request_factory.cc",
163    "test_prefetch_network_request_factory.h",
164    "test_util.cc",
165  ]
166
167  deps = [
168    ":prefetch",
169    "//base",
170    "//components/download/public/background_service:public",
171    "//components/download/public/background_service/test:test_support",
172    "//components/gcm_driver/instance_id",
173    "//components/image_fetcher/core:test_support",
174    "//components/keyed_service/core",
175    "//components/offline_pages/core",
176    "//components/offline_pages/core:switches",
177    "//components/offline_pages/core:test_support",
178    "//components/offline_pages/task",
179    "//components/offline_pages/task:test_support",
180    "//components/prefs:test_support",
181    "//components/version_info:channel",
182    "//net:test_support",
183    "//services/network:test_support",
184    "//sql:sql",
185    "//testing/gmock",
186    "//url",
187  ]
188}
189
190proto_library("proto") {
191  sources = [
192    "proto/any.proto",
193    "proto/offline_pages.proto",
194    "proto/operation.proto",
195    "proto/status.proto",
196  ]
197}
198
199if (is_android) {
200  proto_java_library("offline_prefetch_proto_java") {
201    proto_path = "proto"
202    sources = [
203      "proto/any.proto",
204      "proto/offline_pages.proto",
205      "proto/operation.proto",
206      "proto/status.proto",
207    ]
208  }
209}
210
211source_set("unit_tests") {
212  testonly = true
213  sources = [
214    "generate_page_bundle_request_unittest.cc",
215    "get_operation_request_unittest.cc",
216    "prefetch_downloader_impl_unittest.cc",
217    "prefetch_gcm_app_handler_unittest.cc",
218    "prefetch_importer_impl_unittest.cc",
219    "prefetch_item_unittest.cc",
220    "prefetch_network_request_factory_impl_unittest.cc",
221    "prefetch_prefs_unittest.cc",
222    "prefetch_request_fetcher_unittest.cc",
223    "prefetch_request_operation_response_unittest.cc",
224    "prefetch_server_urls_unittest.cc",
225    "server_forbidden_check_request_unittest.cc",
226    "store/prefetch_downloader_quota_unittest.cc",
227    "store/prefetch_store_schema_unittest.cc",
228    "store/prefetch_store_unittest.cc",
229    "suggested_articles_observer_unittest.cc",
230    "tasks/add_unique_urls_task_unittest.cc",
231    "tasks/download_archives_task_unittest.cc",
232    "tasks/download_cleanup_task_unittest.cc",
233    "tasks/download_completed_task_unittest.cc",
234    "tasks/finalize_dismissed_url_suggestion_task_unittest.cc",
235    "tasks/generate_page_bundle_reconcile_task_unittest.cc",
236    "tasks/generate_page_bundle_task_unittest.cc",
237    "tasks/get_operation_task_unittest.cc",
238    "tasks/get_visuals_info_task_unittest.cc",
239    "tasks/import_archives_task_unittest.cc",
240    "tasks/import_cleanup_task_unittest.cc",
241    "tasks/import_completed_task_unittest.cc",
242    "tasks/mark_operation_done_task_unittest.cc",
243    "tasks/metrics_finalization_task_unittest.cc",
244    "tasks/page_bundle_update_task_unittest.cc",
245    "tasks/prefetch_task_test_base_unittest.cc",
246    "tasks/sent_get_operation_cleanup_task_unittest.cc",
247    "tasks/stale_entry_finalizer_task_unittest.cc",
248  ]
249
250  deps = [
251    ":prefetch",
252    ":test_support",
253    "//base",
254    "//components/download/public/background_service:public",
255    "//components/download/public/background_service/test:test_support",
256    "//components/gcm_driver/instance_id",
257    "//components/image_fetcher/core:test_support",
258    "//components/offline_pages/buildflags",
259    "//components/offline_pages/core",
260    "//components/offline_pages/core:switches",
261    "//components/offline_pages/core:test_support",
262    "//components/offline_pages/task",
263    "//components/offline_pages/task:test_support",
264    "//components/prefs:test_support",
265    "//components/variations:test_support",
266    "//components/version_info:channel",
267    "//components/version_info:version_info",
268    "//net:test_support",
269    "//services/network:test_support",
270    "//sql:sql",
271    "//testing/gmock",
272    "//testing/gtest",
273    "//url",
274  ]
275
276  sources += [
277    "prefetch_dispatcher_impl_unittest.cc",
278    "prefetch_download_flow_unittest.cc",
279  ]
280}
281