[Tizen][M34-Merge] Implement favicon database get API
[platform/framework/web/chromium-efl.git] / components / BUILD.gn
1 # Copyright 2014 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
5 import("//build/config/chrome_build.gni")
6 import("//build/config/features.gni")
7 import("//build/config/ui.gni")
8 import("//components/nacl/features.gni")
9 import("//media/media_options.gni")
10 import("//printing/buildflags/buildflags.gni")
11 import("//rlz/buildflags/buildflags.gni")
12 import("//testing/test.gni")
13 import("//tools/grit/repack.gni")
14
15 if (is_android) {
16   import("//build/config/android/rules.gni")
17   import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
18 }
19
20 if (is_ios) {
21   import("//ios/build/config.gni")
22 }
23
24 if (is_ios) {
25   bundle_data("components_tests_pak_bundle_data") {
26     public_deps = [
27       ":components_tests_pak",
28       "//ui/resources:ui_test_pak",
29     ]
30     sources = [
31       "$root_out_dir/components_tests_resources.pak",
32       "$root_out_dir/ui_test.pak",
33     ]
34     outputs = [
35       "{{bundle_resources_dir}}/{{source_file_part}}",
36     ]
37   }
38 }
39
40 # To add a unit test to this target, make a "unit_test" source_set in your
41 # component (it's important to use a source_set instead of a static library or
42 # no tests will run) and add a reference here. You can add more than one unit
43 # test target if convenient.
44 test("components_unittests") {
45   if (is_android || is_linux || is_mac || is_win) {
46     data = [
47       "test/data/",
48
49       # TODO(dpranke): Remove the next two lines after GN has rolled to 339778.
50       "$root_out_dir/components_tests_resources.pak",
51       "$root_out_dir/ui_test.pak",
52     ]
53   }
54
55   if (is_android) {
56     enable_multidex = true
57   }
58
59   # Add only ":unit_tests" dependencies here. If your tests have dependencies
60   # (this would at least include the component itself), they should be on the
61   # test source set and not here.
62
63   deps = [
64     "//base",
65     "//components/apdu:unit_tests",
66     "//components/assist_ranker:unit_tests",
67     "//components/autofill/core/browser:unit_tests",
68     "//components/autofill/core/common:unit_tests",
69     "//components/base32:unit_tests",
70     "//components/bookmarks/browser:unit_tests",
71     "//components/bookmarks/managed:unit_tests",
72     "//components/browser_sync:unit_tests",
73     "//components/browsing_data/core:unit_tests",
74     "//components/bubble:unit_tests",
75     "//components/captive_portal:unit_tests",
76     "//components/cbor:unit_tests",
77     "//components/client_update_protocol:unit_tests",
78     "//components/cloud_devices/common:unit_tests",
79     "//components/component_updater:unit_tests",
80     "//components/consent_auditor:unit_tests",
81     "//components/content_settings/core/browser:unit_tests",
82     "//components/content_settings/core/common:unit_tests",
83     "//components/crx_file:unit_tests",
84     "//components/data_usage/core:unit_tests",
85     "//components/device_event_log:unit_tests",
86     "//components/dom_distiller/core:unit_tests",
87     "//components/download:unit_tests",
88     "//components/encrypted_messages:unit_tests",
89     "//components/favicon/core:unit_tests",
90     "//components/favicon_base:unit_tests",
91     "//components/feature_engagement:unit_tests",
92     "//components/feed:unit_tests",
93     "//components/filename_generation:unit_tests",
94     "//components/flags_ui:unit_tests",
95     "//components/gcm_driver:unit_tests",
96     "//components/gcm_driver/crypto:unit_tests",
97     "//components/google/core/browser:unit_tests",
98     "//components/grpc_support/test:unit_tests",
99     "//components/history/core/browser:unit_tests",
100     "//components/history/core/common:unit_tests",
101     "//components/image_fetcher/core:unit_tests",
102     "//components/json_schema:unit_tests",
103     "//components/keyed_service/core:unit_tests",
104     "//components/language/core/browser:unit_tests",
105     "//components/language/core/common:unit_tests",
106     "//components/language_usage_metrics:unit_tests",
107     "//components/leveldb_proto:unit_tests",
108     "//components/login:unit_tests",
109     "//components/metrics:unit_tests",
110     "//components/navigation_metrics:unit_tests",
111     "//components/net_log:unit_tests",
112     "//components/network_session_configurator/browser:unit_tests",
113     "//components/network_time:unit_tests",
114     "//components/ntp_snippets:unit_tests",
115     "//components/ntp_tiles:unit_tests",
116     "//components/offline_items_collection/core:unit_tests",
117     "//components/omnibox/browser:unit_tests",
118     "//components/open_from_clipboard:unit_tests",
119     "//components/os_crypt:unit_tests",
120     "//components/password_manager/core/browser:unit_tests",
121     "//components/password_manager/core/common:unit_tests",
122     "//components/password_manager/sync/browser:unit_tests",
123     "//components/payments/core:unit_tests",
124     "//components/physical_web/data_source:unit_tests",
125     "//components/prefs:unit_tests",
126     "//components/previews/core:unit_tests",
127     "//components/proxy_config:unit_tests",
128     "//components/query_parser:unit_tests",
129     "//components/rappor:unit_tests",
130     "//components/reading_list/core:unit_tests",
131     "//components/search:unit_tests",
132     "//components/search_engines:unit_tests",
133     "//components/search_provider_logos:unit_tests",
134     "//components/security_state/core:unit_tests",
135     "//components/services/heap_profiling/public/cpp:unit_tests",
136     "//components/services/unzip:unit_tests",
137     "//components/sessions:unit_tests",
138     "//components/signin/core/browser:unit_tests",
139     "//components/ssl_config:unit_tests",
140     "//components/ssl_errors:unit_tests",
141     "//components/subresource_filter/core/browser:unit_tests",
142     "//components/subresource_filter/core/common:unit_tests",
143     "//components/suggestions:unit_tests",
144     "//components/supervised_user_error_page:unit_tests",
145     "//components/sync:unit_tests",
146     "//components/sync_bookmarks:unit_tests",
147     "//components/sync_preferences:unit_tests",
148     "//components/sync_sessions:unit_tests",
149     "//components/task_scheduler_util/common:unit_tests",
150     "//components/test:run_all_unittests",
151     "//components/translate/core/browser:unit_tests",
152     "//components/translate/core/common:unit_tests",
153     "//components/translate/core/language_detection:unit_tests",
154     "//components/ukm:unit_tests",
155     "//components/undo:unit_tests",
156     "//components/update_client:unit_tests",
157     "//components/upload_list:unit_tests",
158     "//components/url_formatter:unit_tests",
159     "//components/url_matcher:unit_tests",
160     "//components/url_pattern_index:unit_tests",
161     "//components/variations:unit_tests",
162     "//components/variations/field_trial_config:unit_tests",
163     "//components/variations/service:unit_tests",
164     "//components/web_resource:unit_tests",
165     "//components/webdata/common:unit_tests",
166   ]
167
168   if (toolkit_views && use_aura) {
169     deps += [ "//components/ui_devtools/views:unit_tests" ]
170   }
171
172   if (enable_nacl) {
173     deps += [ "//components/nacl/browser:unit_tests" ]
174   }
175
176   if (is_ios) {
177     deps += [
178       "//components/autofill/ios/browser:unit_tests",
179       "//components/autofill/ios/fill:unit_tests",
180       "//components/image_fetcher/ios:unit_tests",
181       "//components/signin/ios/browser:unit_tests",
182       "//components/translate/ios/browser:unit_tests",
183     ]
184   } else {  # !iOS
185     deps += [
186       "//components/app_modal:unit_tests",
187       "//components/autofill/content/browser:unit_tests",
188       "//components/autofill/content/common:unit_tests",
189       "//components/autofill/content/renderer:unit_tests",
190       "//components/cast_certificate:unit_tests",
191       "//components/cast_channel:unit_tests",
192       "//components/certificate_transparency:unit_tests",
193       "//components/contextual_search:unit_tests",
194       "//components/crash/content/app:unit_tests",
195       "//components/crash/content/browser:unit_tests",
196       "//components/crash/core/common:unit_tests",
197       "//components/data_reduction_proxy/content/browser:unit_tests",
198       "//components/data_reduction_proxy/content/renderer:unit_tests",
199       "//components/data_reduction_proxy/core/browser:unit_tests",
200       "//components/data_reduction_proxy/core/common:unit_tests",
201       "//components/data_use_measurement/core:unit_tests",
202       "//components/discardable_memory/common:unit_tests",
203       "//components/discardable_memory/service:unit_tests",
204       "//components/dom_distiller/content/browser:unit_tests",
205       "//components/domain_reliability:unit_tests",
206       "//components/favicon/content:unit_tests",
207       "//components/gcm_driver/instance_id:unit_tests",
208       "//components/history/content/browser:unit_tests",
209       "//components/invalidation/impl:unit_tests",
210       "//components/keyed_service/content:unit_tests",
211       "//components/language/content/browser:unit_tests",
212       "//components/link_header_util:unit_tests",
213       "//components/navigation_interception:unit_tests",
214       "//components/network_hints/renderer:unit_tests",
215       "//components/offline_pages:unit_tests",
216       "//components/optimization_guide:unit_tests",
217       "//components/password_manager/content/browser:unit_tests",
218       "//components/payments/content:unit_tests",
219       "//components/payments/content/utility:unit_tests",
220       "//components/policy/core/browser:unit_tests",
221       "//components/policy/core/common:unit_tests",
222       "//components/previews/content:unit_tests",
223       "//components/safe_browsing/common:unit_tests",
224       "//components/safe_browsing/password_protection:password_protection_unittest",
225       "//components/safe_browsing/triggers:unit_tests",
226       "//components/security_state/content:unit_tests",
227       "//components/services/heap_profiling:unit_tests",
228       "//components/spellcheck/browser:unit_tests",
229       "//components/spellcheck/renderer:unit_tests",
230       "//components/subresource_filter/content/browser:unit_tests",
231       "//components/subresource_filter/content/common:unit_tests",
232       "//components/subresource_filter/content/renderer:unit_tests",
233       "//components/tracing:unit_tests",
234       "//components/translate/content/renderer:unit_tests",
235       "//components/ukm/content:unit_tests",
236       "//components/visitedlink/test:unit_tests",
237       "//components/web_cache/browser:unit_tests",
238       "//components/webcrypto:unit_tests",
239     ]
240
241     data_deps = [
242       ":components_tests_pak",
243       "//third_party/mesa:osmesa",
244       "//ui/resources:ui_test_pak",
245     ]
246   }  # iOS/!iOS
247
248   if (is_ios) {
249     deps += [ ":components_tests_pak_bundle_data" ]
250   }
251
252   if (is_mac || is_linux) {
253     data_deps += [ "//content/shell:pak" ]
254   }
255
256   if (is_android) {
257     deps += [
258       "//base:base_java_unittest_support",
259       "//components/cdm/browser:unit_tests",
260       "//components/gcm_driver/instance_id:test_support",
261       "//components/gcm_driver/instance_id/android:instance_id_driver_java",
262       "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
263       "//components/invalidation/impl",
264       "//components/invalidation/impl:java",
265       "//components/policy/android:policy_java",
266       "//components/signin/core/browser",
267       "//components/signin/core/browser/android:java",
268       "//components/spellcheck/browser/android:java",
269       "//components/variations/android:variations_java",
270       "//components/web_restrictions:test_support",
271       "//components/web_restrictions:test_support_java",
272       "//components/web_restrictions:unit_tests",
273       "//content/public/android:content_java",
274       "//content/public/browser",
275       "//net",
276       "//ui/android:ui_java",
277       "//ui/base",
278       "//ui/gfx",
279     ]
280     if (use_v8_context_snapshot) {
281       deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
282     } else {
283       deps += [ "//v8:v8_external_startup_data_assets" ]
284     }
285   } else {  # !is_android
286     deps += [ "//components/keep_alive_registry:unit_tests" ]
287   }
288
289   # Desktop-only deps.
290   if (!is_android && !is_ios) {
291     deps += [
292       "//components/feedback:unit_tests",
293
294       # See comment in components/guest_view/browser/BUILD.gn for why
295       # guest_view is currently non-mobile.
296       "//components/guest_view/browser:unit_tests",
297       "//components/storage_monitor:unit_tests",
298       "//components/web_modal:unit_tests",
299       "//components/zoom:unit_tests",
300     ]
301   }
302
303   if (enable_rlz_support) {
304     deps += [ "//components/rlz:unit_tests" ]
305   }
306
307   if (is_chromeos) {
308     deps += [
309       "//components/arc:unit_tests",
310       "//components/cryptauth:unit_tests",
311       "//components/ownership:unit_tests",
312       "//components/pairing:unit_tests",
313       "//components/sync_wifi:unit_tests",
314       "//components/timers:unit_tests",
315       "//components/user_manager:unit_tests",
316     ]
317   }
318
319   if (toolkit_views) {
320     deps += [ "//components/constrained_window:unit_tests" ]
321   }
322
323   if (is_win) {
324     deps += [ "//components/browser_watcher:unit_tests" ]
325   }
326
327   if (enable_basic_printing || enable_print_preview) {
328     deps += [ "//components/printing/service:unit_tests" ]
329   }
330   if (enable_print_preview) {
331     deps += [ "//components/pwg_encoder:unit_tests" ]
332   }
333
334   if (safe_browsing_mode == 1) {
335     deps += [ "//components/safe_browsing/db:unit_tests_desktop" ]
336   } else if (safe_browsing_mode == 2) {
337     deps += [ "//components/safe_browsing/android:unit_tests_mobile" ]
338   }
339
340   if (enable_webrtc && !is_ios) {
341     deps += [
342       "//components/webrtc_logging/browser:unit_tests",
343       "//components/webrtc_logging/common:unit_tests",
344     ]
345   }
346
347   # No components should depend on Chrome.
348   assert_no_deps = [ "//chrome/*" ]
349
350   if (is_ios) {
351     assert_no_deps += ios_assert_no_deps
352   }
353 }
354
355 repack("components_tests_pak") {
356   sources = [
357     "$root_gen_dir/components/components_resources.pak",
358     "$root_gen_dir/components/strings/components_strings_en-US.pak",
359   ]
360
361   output = "$root_out_dir/components_tests_resources.pak"
362   deps = [
363     "//components/resources",
364     "//components/strings",
365   ]
366
367   if (is_chrome_branded) {
368     sources += [ "${root_gen_dir}/components/strings/components_google_chrome_strings_en-US.pak" ]
369   } else {
370     sources += [ "${root_gen_dir}/components/strings/components_chromium_strings_en-US.pak" ]
371   }
372 }
373
374 if (is_android) {
375   android_assets("components_browsertests_assets") {
376     testonly = true
377     sources = [
378       "$root_out_dir/components_tests_resources.pak",
379       "$root_out_dir/content_shell.pak",
380     ]
381     deps = [
382       ":components_tests_pak",
383       "//content/shell:pak",
384       "//third_party/icu:icu_assets",
385     ]
386     if (use_v8_context_snapshot) {
387       deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
388     } else {
389       deps += [ "//v8:v8_external_startup_data_assets" ]
390     }
391   }
392
393   android_library("components_browsertests_java") {
394     testonly = true
395     deps = [
396       ":components_browsertests_resources",
397       "//base:base_java",
398       "//base:base_java_test_support",
399       "//content/public/test/android:content_java_test_support",
400       "//content/shell/android:content_shell_browsertests_java",
401       "//testing/android/native_test:native_test_java",
402     ]
403     java_files = [
404       "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsActivity.java",
405       "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsApplication.java",
406     ]
407   }
408
409   jinja_template("components_browsertests_manifest") {
410     testonly = true
411     input =
412         "//components/test/android/browsertests_apk/AndroidManifest.xml.jinja2"
413     output =
414         "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml"
415   }
416
417   android_resources("components_browsertests_resources") {
418     testonly = true
419     resource_dirs = [ "//components/test/android/browsertests_apk/res" ]
420     custom_package = "org.chromium.components_browsertests_apk"
421   }
422 }
423
424 if (!is_ios) {
425   test("components_browsertests") {
426     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
427
428     sources = [
429       "autofill/content/browser/risk/fingerprint_browsertest.cc",
430       "autofill/content/renderer/form_autofill_util_browsertest.cc",
431       "autofill/content/renderer/password_form_conversion_utils_browsertest.cc",
432       "dom_distiller/content/browser/distillable_page_utils_browsertest.cc",
433       "dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc",
434       "dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc",
435       "offline_pages/content/renovations/test/page_renovator_browsertest.cc",
436       "security_state/content/content_utils_browsertest.cc",
437       "ukm/content/source_url_recorder_browsertest.cc",
438     ]
439
440     data = [
441       "$root_out_dir/components_tests_resources.pak",
442       "$root_out_dir/content_shell.pak",
443       "test/data/",
444       "dom_distiller/core/javascript/",
445       "security_state/content/testdata/",
446       "//content/test/data/",
447       "//third_party/dom_distiller_js/dist/test/data/",
448     ]
449
450     deps = [
451       "//base",
452       "//base/test:test_support",
453       "//components/autofill/content/browser",
454       "//components/autofill/content/renderer",
455       "//components/autofill/core/browser",
456       "//components/content_settings/core/common",
457       "//components/dom_distiller/content/browser",
458       "//components/dom_distiller/core",
459       "//components/dom_distiller/core:test_support",
460       "//components/offline_pages/content/renovations",
461       "//components/offline_pages/core/renovations",
462       "//components/password_manager/content/browser",
463       "//components/security_state/content",
464       "//components/security_state/core",
465       "//components/strings",
466       "//components/tracing",
467       "//components/ukm:test_support",
468       "//components/ukm/content",
469       "//content/public/browser",
470       "//content/shell:content_shell_lib",
471       "//content/test:browsertest_support",
472       "//content/test:test_support",
473       "//device/bluetooth",
474       "//device/geolocation/public/cpp:test_support",
475       "//google_apis",
476       "//ipc:test_support",
477       "//net:test_support",
478       "//printing/buildflags",
479       "//services/device/public/mojom",
480       "//services/service_manager/public/cpp",
481       "//services/service_manager/public/mojom",
482       "//testing/gmock",
483       "//testing/gtest",
484       "//ui/base",
485       "//url",
486     ]
487
488     data_deps = [
489       ":components_tests_pak",
490       "//third_party/mesa:osmesa",
491     ]
492
493     if (is_mac) {
494       data_deps += [ "//content/shell:content_shell" ]
495       data += [ "$root_out_dir/Content Shell.app/" ]
496     }
497
498     if (!is_android) {
499       sources += [ "pdf/renderer/pdf_accessibility_tree_browsertest.cc" ]
500       deps += [ "//components/pdf/renderer" ]
501     }
502
503     if (is_android) {
504       enable_multidex = true
505       sources += [
506         "test/android/browsertests_apk/components_browser_tests_jni_onload.cc",
507       ]
508       sources -= [ "autofill/content/browser/risk/fingerprint_browsertest.cc" ]
509       deps += [
510         "//content/public/test/android:layouttest_java_support",
511         "//content/test:layouttest_support",
512         "//testing/android/native_test:native_test_support",
513       ]
514       use_default_launcher = false
515       android_manifest = "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml"
516       android_manifest_dep = ":components_browsertests_manifest"
517       deps += [
518         ":components_browsertests_assets",
519         ":components_browsertests_java",
520       ]
521     }
522
523     if (is_linux) {
524       # content_extractor_browsertest is a standalone content extraction tool built as
525       # a MANUAL component_browsertest.
526       sources += [ "dom_distiller/standalone/content_extractor_browsertest.cc" ]
527       deps += [
528         "//components/leveldb_proto",
529         "//components/prefs:test_support",
530         "//components/sync_preferences:test_support",
531       ]
532     }
533
534     if (enable_basic_printing || enable_print_preview) {
535       sources += [ "printing/test/print_render_frame_helper_browsertest.cc" ]
536       deps += [ "//components/printing/test:test_support" ]
537     }
538
539     assert_no_deps = [ "//chrome/*" ]
540   }
541
542   test("components_perftests") {
543     sources = [
544       "discardable_memory/common/discardable_shared_memory_heap_perftest.cc",
545       "omnibox/browser/history_quick_provider_performance_unittest.cc",
546       "subresource_filter/core/common/perftests/indexed_ruleset_perftest.cc",
547       "test/run_all_perftests.cc",
548       "visitedlink/test/visitedlink_perftest.cc",
549     ]
550
551     deps = [
552       "//base",
553       "//components/discardable_memory/common",
554       "//components/history/core/test",
555       "//components/omnibox/browser",
556       "//components/omnibox/browser:test_support",
557       "//components/subresource_filter/core/common",
558       "//components/subresource_filter/core/common:tools_lib",
559       "//components/test:test_support",
560       "//components/visitedlink/browser",
561       "//testing/perf",
562       "//url",
563     ]
564
565     data_deps = [
566       ":components_tests_pak",
567       "//ui/resources:ui_test_pak",
568     ]
569
570     data = [
571       "$root_out_dir/components_tests_resources.pak",
572       "$root_out_dir/ui_test.pak",
573       "//components/subresource_filter/core/common/perftests/data",
574
575       # Needed for isolate script to execute.
576       "//testing/scripts/common.py",
577       "//testing/xvfb.py",
578       "//testing/scripts/run_gtest_perf_test.py",
579       "//tools/perf/generate_legacy_perf_dashboard_json.py",
580     ]
581
582     if (is_android) {
583       enable_multidex = true
584       deps += [ "//ui/android:ui_java" ]
585       if (use_v8_context_snapshot) {
586         deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
587       } else {
588         deps += [ "//v8:v8_external_startup_data_assets" ]
589       }
590     }
591
592     if (!is_android) {
593       sources += [ "safe_browsing/db/v4_store_perftest.cc" ]
594       deps += [
595         "//components/safe_browsing/db:v4_protocol_manager_util",
596         "//components/safe_browsing/db:v4_store",
597         "//components/safe_browsing/db:v4_test_util",
598         "//crypto",
599       ]
600     }
601   }
602 }