Roll src/third_party/WebKit 8b42d1d:744641d (svn 186770:186771)
[chromium-blink-merge.git] / chrome / browser / BUILD.gn
blob105c12cf2b192d864e2369fe83b41df79135f4a3
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.
5 import("//build/config/crypto.gni")
6 import("//build/config/features.gni")
7 import("//build/config/ui.gni")
8 import("//components/nacl/nacl_defines.gni")
10 # //build/config/android/rules.gni imports //tools/grit/grit_rule.gni, which
11 # produces a conflict for the "grit" template so we have to only include one.
12 if (is_android) {
13   import("//build/config/android/rules.gni")
14 } else {
15   import("//tools/grit/grit_rule.gni")
17 if (is_desktop_linux) {
18   import("//build/config/linux/pkg_config.gni")
21 about_credits_file = "$target_gen_dir/about_credits.html"
22 additional_modules_list_file =
23     "$root_gen_dir/chrome/browser/internal/additional_modules_list.txt"
25 gypi_values = exec_script("//build/gypi_to_gn.py",
26                           [ rebase_path("../chrome_browser.gypi") ],
27                           "scope",
28                           [ "../chrome_browser.gypi" ])
30 if (is_desktop_linux) {
31   pkg_config("gnome_keyring") {
32     packages = [ "gnome-keyring-1" ]
33   }
36 static_library("browser") {
37   configs += [
38     "//build/config/compiler:wexit_time_destructors",
39     "//third_party/WebKit/public:debug_devtools",
40   ]
41   defines = []
42   sources = []
43   libs = []
44   ldflags = []
46   # iOS/non-iOS shared deps. New dependencies should generally be added in the
47   # non-iOS deps below.
48   public_deps = [
49     "//components/autofill/core/browser",
50     "//content/public/browser",
51     "//sql",
52     "//sync",
53   ]
54   deps = [
55     "//base/allocator",
56     "//chrome:extra_resources",
57     "//chrome:resources",
58     "//chrome:strings",
59     "//chrome/app:generated_resources_map",
60     "//chrome/app/resources:platform_locale_settings",
61     "//chrome/app/theme:theme_resources",
62     "//chrome/browser/history:in_memory_url_index_cache_proto",
63     "//chrome/browser/net:cert_logger_proto",
64     "//chrome/browser/net:probe_message_proto",
65     "//chrome/browser/ui",
66     "//chrome/common",
67     "//chrome/common/net",
68     "//components/autofill/core/browser",
69     "//components/bookmarks/browser",
70     "//components/captive_portal",
71     "//components/cloud_devices/common",
72     "//components/component_updater",
73     "//components/content_settings/core/browser",
74     "//components/content_settings/core/common",
75     "//components/crx_file",
76     "//components/data_reduction_proxy/core/browser",
77     "//components/domain_reliability",
78     "//components/enhanced_bookmarks",
79     "//components/favicon_base",
80     "//components/favicon/core",
81     "//components/feedback",
82     "//components/gcm_driver",
83     "//components/google/core/browser",
84     "//components/handoff",
85     "//components/history/core/browser",
86     "//components/history/core/common",
87     "//components/infobars/core",
88     "//components/invalidation",
89     "//components/metrics:gpu",
90     "//components/metrics:net",
91     "//components/metrics:profiler",
92     "//components/metrics/proto:proto",
93     "//components/navigation_metrics",
94     "//components/network_time",
95     "//components/omaha_client",
96     "//components/omnibox",
97     "//components/os_crypt",
98     "//components/password_manager/core/browser",
99     "//components/password_manager/core/common",
100     "//components/policy:policy_component",
101     "//components/precache/core",
102     "//components/query_parser",
103     "//components/rappor",
104     "//components/renderer_context_menu",
105     "//components/search",
106     "//components/search_engines",
107     "//components/search_provider_logos",
108     "//components/signin/core/browser",
109     "//components/startup_metric_utils",
110     "//components/strings",
111     "//components/suggestions",
112     "//components/sync_driver",
113     "//components/translate/core/browser",
114     "//components/translate/core/common",
115     "//components/url_fixer",
116     "//components/user_prefs",
117     "//components/variations",
118     "//components/variations/net",
119     "//components/webdata/common",
120     "//components/web_resource",
121     "//content/public/browser",
122     "//content/public/common",
123     "//courgette:courgette_lib",
124     "//crypto",
125     "//google_apis",
126     "//gpu/config",
127     "//jingle:notifier",
128     "//skia",
129     "//sql",
130     "//sync",
131     "//third_party/cacheinvalidation",
132     "//third_party/icu",
133     "//third_party/libxml",
134     "//third_party/libjingle",
135     "//third_party/widevine/cdm:version_h",
136     "//third_party/zlib",
137     "//third_party/zlib:minizip",
138     "//third_party/zlib:zip",
139     "//ui/base",
140     "//ui/events:events_base",
141     "//ui/gfx",
142     "//ui/gfx/geometry",
143     "//ui/message_center",
144     "//ui/shell_dialogs",
145     "//ui/strings",
146     "//ui/resources",
147   ]
149   sources +=
150       rebase_path(gypi_values.chrome_browser_undo_sources, ".", "//chrome")
152   if (!is_ios) {
153     sources +=
154         rebase_path(gypi_values.chrome_browser_non_ios_sources, ".", "//chrome")
155     sources += rebase_path(gypi_values.chrome_browser_autocomplete_sources,
156                            ".",
157                            "//chrome")
158     sources += rebase_path(gypi_values.chrome_browser_bookmark_sources,
159                            ".",
160                            "//chrome")
161     sources += rebase_path(gypi_values.chrome_browser_browser_process_sources,
162                            ".",
163                            "//chrome")
164     sources += rebase_path(gypi_values.chrome_browser_content_settings_sources,
165                            ".",
166                            "//chrome")
167     sources +=
168         rebase_path(gypi_values.chrome_browser_favicon_sources, ".", "//chrome")
169     sources +=
170         rebase_path(gypi_values.chrome_browser_google_sources, ".", "//chrome")
171     sources +=
172         rebase_path(gypi_values.chrome_browser_history_sources, ".", "//chrome")
173     sources +=
174         rebase_path(gypi_values.chrome_browser_metrics_sources, ".", "//chrome")
175     sources +=
176         rebase_path(gypi_values.chrome_browser_net_sources, ".", "//chrome")
177     sources += rebase_path(gypi_values.chrome_browser_password_manager_sources,
178                            ".",
179                            "//chrome")
180     sources += rebase_path(gypi_values.chrome_browser_predictor_sources,
181                            ".",
182                            "//chrome")
183     sources +=
184         rebase_path(gypi_values.chrome_browser_pref_sources, ".", "//chrome")
185     sources += rebase_path(gypi_values.chrome_browser_profiles_sources,
186                            ".",
187                            "//chrome")
188     sources += rebase_path(gypi_values.chrome_browser_search_engines_sources,
189                            ".",
190                            "//chrome")
191     sources += rebase_path(gypi_values.chrome_browser_services_sources,
192                            ".",
193                            "//chrome")
194     sources +=
195         rebase_path(gypi_values.chrome_browser_session_sources, ".", "//chrome")
196     sources +=
197         rebase_path(gypi_values.chrome_browser_signin_sources, ".", "//chrome")
198     sources +=
199         rebase_path(gypi_values.chrome_browser_ssl_sources, ".", "//chrome")
200     sources +=
201         rebase_path(gypi_values.chrome_browser_sync_sources, ".", "//chrome")
202     sources += rebase_path(gypi_values.chrome_browser_web_resource_sources,
203                            ".",
204                            "//chrome")
206     #TODO(GYP) Add these sources:
207     #        # These files are generated by GRIT.
208     #        '<(grit_out_dir)/grit/component_extension_resources_map.cc',
209     #        '<(grit_out_dir)/grit/theme_resources_map.cc',
210     #        '<(SHARED_INTERMEDIATE_DIR)/ui/resources/grit/ui_resources_map.cc',
211     #
212     #        # This file is generated by
213     #        # chrome/browser/metrics/variations/generate_resources_map.py
214     #        '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/metrics/variations/generated_resources_map.cc',
216     defines = nacl_defines
218     deps += [
219       "//apps",
220       "//cc",
221       "//chrome/browser/devtools",
222       "//chrome/installer/util",
223       "//components/app_modal",
224       "//components/autofill/content/browser",
225       "//components/dom_distiller/content",
226       "//components/keyed_service/content",
227       "//components/navigation_interception",
228       "//components/password_manager/content/browser",
229       "//components/precache/content",
230       "//components/sessions:sessions_content",
231       "//components/storage_monitor",
232       "//components/translate/content/browser",
233       "//components/url_matcher",
234       "//components/visitedlink/browser",
235       "//components/visitedlink/common",
236       "//components/web_cache/browser",
237       "//components/web_modal",
238       "//content/app/resources",
239       "//media",
240       "//media/cast:net",
241       "//mojo/common",
242       "//mojo/edk/system",
243       "//mojo/environment:chromium",
244       "//mojo/public/cpp/bindings",
245       "//mojo/public/js",
246       "//net:extras",
247       "//net:net_with_v8",
248       "//storage/browser",
249       "//storage/common",
250       "//third_party/WebKit/public:resources",
251       "//third_party/expat",
252       "//third_party/leveldatabase",
253       "//third_party/libaddressinput",
254       "//third_party/libyuv",
255       "//third_party/npapi",
256       "//third_party/re2",
257       "//third_party/smhasher:cityhash",
258       "//third_party/webrtc/modules/desktop_capture",
259       "//ui/gl",
260       "//ui/surface",
261       "//ui/web_dialogs",
262       "//v8",
264       ## TODO(tonyg): Remove this dependency (crbug.com/280157).
265       #"../testing/perf/perf_test.gyp:*",  TODO(GYP)
266     ]
267   } else {  # iOS
268     sources +=
269         rebase_path(gypi_values.chrome_browser_ios_sources, ".", "//chrome")
270     sources +=
271         rebase_path(gypi_values.chrome_browser_google_sources, ".", "//chrome")
272     deps += [ "//net" ]
273     libs += [
274       "CoreTelephony.framework",
275       "CoreText.framework",
276       "MobileCoreServices.framework",
277       "QuartzCore.framework",
278     ]
279     ldflags += [
280       "-weak_framework",
281       "CoreImage",
282     ]
283   }
285   if (is_win || is_mac) {
286     sources +=
287         rebase_path(gypi_values.chrome_browser_win_mac_sources, ".", "//chrome")
288   }
289   if (!is_android && !is_ios && !is_chromeos && enable_configuration_policy) {
290     sources += [
291       "net/disk_cache_dir_policy_handler.cc",
292       "net/disk_cache_dir_policy_handler.h",
293     ]
294   }
295   if (!is_android && !is_ios && enable_configuration_policy) {
296     sources += [
297       "download/download_dir_policy_handler.cc",
298       "download/download_dir_policy_handler.h",
299     ]
300   }
301   if (is_mac) {
302     sources +=
303         rebase_path(gypi_values.chrome_browser_mac_sources, ".", "//chrome")
304     deps += [
305       #"app_shim"  TODO(GYP)
306       #"browser_app_shim"  TODO(GYP)
307     ]
308   }
309   if (enable_extensions) {
310     public_deps += [ "//chrome/browser/extensions" ]
311     deps += [
312       "//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto",
313       "//chrome/common/extensions/api",
314       "//chrome/common/extensions/api:api_registration",
315       "//extensions/components/javascript_dialog_extensions_client",
316     ]
317     sources += rebase_path(gypi_values.chrome_browser_extensions_sources,
318                            ".",
319                            "//chrome")
320   }
321   if (enable_background) {
322     sources += rebase_path(gypi_values.chrome_browser_background_sources,
323                            ".",
324                            "//chrome")
325     if (!use_aura || is_win || is_chromeos) {
326       sources -= [ "background/background_mode_manager_aura.cc" ]
327     }
328     defines += [ "ENABLE_BACKGROUND=1" ]
329   }
330   if (enable_task_manager) {
331     sources += rebase_path(gypi_values.chrome_browser_task_manager_sources,
332                            ".",
333                            "//chrome")
334   }
335   if (enable_spellcheck) {
336     sources += rebase_path(gypi_values.chrome_browser_spellchecker_sources,
337                            ".",
338                            "//chrome")
339     deps += [ "//third_party/hunspell" ]
340   }
341   if (enable_nacl) {
342     sources +=
343         rebase_path(gypi_values.chrome_browser_nacl_sources, ".", "//chrome")
344     #deps += [ "//components/nacl:nacl_browser" ]  TODO(GYP)
345   }
347   if (enable_configuration_policy) {
348     sources +=
349         rebase_path(gypi_values.chrome_browser_policy_shared_with_ios_sources,
350                     ".",
351                     "//chrome")
352     deps += [
353       "//components/policy",
354       "//components/policy/proto",
355     ]
356     if (!is_ios) {
357       sources += rebase_path(gypi_values.chrome_browser_policy_non_ios_sources,
358                              ".",
359                              "//chrome")
360     }
361     if (!is_chromeos) {
362       sources += rebase_path(
363               gypi_values.chrome_browser_policy_shared_with_ios_not_chromeos_sources,
364               ".",
365               "//chrome")
366     }
367     if (is_win || is_mac || is_desktop_linux) {
368       sources += rebase_path(gypi_values.chrome_browser_policy_desktop_sources,
369                              ".",
370                              "//chrome")
371     }
372     if (is_android || is_ios) {
373       sources += rebase_path(gypi_values.chrome_browser_policy_mobile_sources,
374                              ".",
375                              "//chrome")
376     } else {
377       deps += [ "//chrome/browser/policy:path_parser" ]
378     }
379   } else {
380     # Configuration policy disabled.
381     sources += rebase_path(gypi_values.chrome_browser_policy_disabled_sources,
382                            ".",
383                            "//chrome")
384   }
386   if (enable_plugins) {
387     sources +=
388         rebase_path(gypi_values.chrome_browser_plugins_sources, ".", "//chrome")
389     deps += [
390       "//components/pdf/browser",
391       "//ppapi:ppapi_ipc",
392       "//third_party/adobe/flash:flapper_version_h",
393     ]
394   }
395   if (safe_browsing_mode != 0) {
396     sources +=
397         rebase_path(gypi_values.chrome_browser_safe_browsing_basic_sources,
398                     ".",
399                     "//chrome")
400     deps += [
401       "//chrome/browser/safe_browsing:chunk_proto",
402       "//chrome/browser/safe_browsing:metadata_proto",
403       "//chrome/browser/safe_browsing:report_proto",
404     ]
405     if (safe_browsing_mode == 1) {
406       sources +=
407           rebase_path(gypi_values.chrome_browser_safe_browsing_full_sources,
408                       ".",
409                       "//chrome")
410       defines += [ "FULL_SAFE_BROWSING" ]
411       deps += [ "//chrome/common/safe_browsing:proto" ]
412     } else if (safe_browsing_mode == 2) {
413       defines += [ "MOBILE_SAFE_BROWSING" ]
414     }
415   }
417   if (is_linux) {
418     deps += [
419       "//device/media_transfer_protocol",
420       "//device/udev_linux",
421     ]
422   }
423   if (is_linux && !is_chromeos) {
424     deps += [ "//third_party/speech-dispatcher" ]
425   }
427   if (is_chromeos) {
428     sources += rebase_path(gypi_values.chrome_browser_chromeos_sources,
429                            ".",
430                            "//chrome")
431     deps += [ "//chrome/browser/chromeos" ]
432   } else {
433     # Non-ChromeOS.
434     sources += rebase_path(gypi_values.chrome_browser_non_chromeos_sources,
435                            ".",
436                            "//chrome")
437   }
439   if (is_chromeos || is_ios) {
440     sources -= [
441       "metrics/signin_status_metrics_provider.cc",
442       "metrics/signin_status_metrics_provider.h",
443     ]
444   }
446   if (use_cups) {
447     configs += [ "//printing:cups" ]
448   }
449   if (is_desktop_linux) {
450     sources += rebase_path(gypi_values.chrome_browser_gnome_keyring_sources,
451                            ".",
452                            "//chrome")
453     configs += [ ":gnome_keyring" ]
454   }
455   if (use_aura) {
456     sources +=
457         rebase_path(gypi_values.chrome_browser_aura_sources, ".", "//chrome")
458     deps += [
459       "//ui/aura",
460       "//ui/compositor",
461       "//ui/keyboard",
462     ]
463   }
464   if (ui_compositor_image_transport) {
465     deps += [ "//ui/gl" ]
466   }
468   if (use_ash) {
469     sources +=
470         rebase_path(gypi_values.chrome_browser_ash_sources, ".", "//chrome")
471   }
473   if (use_x11) {
474     sources +=
475         rebase_path(gypi_values.chrome_browser_x11_sources, ".", "//chrome")
476     if (!is_chromeos) {
477       configs += [ "//build/config/linux:xscrnsaver" ]
478     }
479   }
480   if (is_posix && !is_mac && !is_ios) {
481     sources += [
482       "//chrome/app/chrome_crash_reporter_client.cc",
483       "//chrome/app/chrome_crash_reporter_client.h",
484     ]
485     deps += [
486       "//components/crash/app",
487       "//components/crash/browser",
488     ]
489   }
490   if (use_nss_certs) {
491     sources +=
492         rebase_path(gypi_values.chrome_browser_nss_sources, ".", "//chrome")
493     if (is_chromeos) {
494       sources -= [ "net/nss_context_linux.cc" ]
495     }
496   }
497   if (enable_notifications) {
498     sources += rebase_path(gypi_values.chrome_browser_notifications_sources,
499                            ".",
500                            "//chrome")
501     if (!is_android) {
502       sources += rebase_path(
503               gypi_values.chrome_browser_notifications_non_android_sources,
504               ".",
505               "//chrome")
506     }
507   }
508   if (enable_themes) {
509     sources +=
510         rebase_path(gypi_values.chrome_browser_themes_sources, ".", "//chrome")
511   }
513   if (enable_basic_printing || enable_print_preview) {
514     # Some form of printing support.
515     sources += rebase_path(gypi_values.chrome_browser_printing_basic_sources,
516                            ".",
517                            "//chrome")
518     deps += [ "//printing" ]
519     if (is_win) {
520       sources += rebase_path(gypi_values.chrome_browser_printing_emf_sources,
521                              ".",
522                              "//chrome")
523     }
524     if (enable_print_preview) {
525       # Full printing on top of the above.
526       sources += rebase_path(gypi_values.chrome_browser_printing_full_sources,
527                              ".",
528                              "//chrome")
529     } else {
530       # Partial-only printing support.
531       sources +=
532           rebase_path(gypi_values.chrome_browser_printing_basic_only_sources,
533                       ".",
534                       "//chrome")
535     }
536   }
537   if (enable_captive_portal_detection) {
538     sources += rebase_path(gypi_values.chrome_browser_captive_portal_sources,
539                            ".",
540                            "//chrome")
541   }
542   if (enable_session_service) {
543     sources += rebase_path(gypi_values.chrome_browser_session_service_sources,
544                            ".",
545                            "//chrome")
546   }
548   if (!is_android && !is_ios && !is_chromeos) {
549     sources +=
550         rebase_path(gypi_values.chrome_browser_desktop_sources, ".", "//chrome")
551   }
553   if (is_android || is_ios) {
554     # Mobile.
555     sources +=
556         rebase_path(gypi_values.chrome_browser_mobile_sources, ".", "//chrome")
557   } else {
558     # Non-mobile.
559     sources += rebase_path(gypi_values.chrome_browser_non_mobile_sources,
560                            ".",
561                            "//chrome")
562     deps += [
563       "//device/core",
564       "//device/usb",
565     ]
566   }
568   if (is_android) {
569     sources +=
570         rebase_path(gypi_values.chrome_browser_android_sources, ".", "//chrome")
571     deps += [
572       ":jni_headers",
573       "//components/cdm/browser",
574       "//components/enhanced_bookmarks",
575       "//components/history/core/android",
576       "//components/resources:components_resources",
577       "//components/web_contents_delegate_android",
578       "//third_party/android_opengl/etc1",
579     ]
580     deps -= [
581       "//third_party/libaddressinput",
582       "//components/feedback",
583       "//components/storage_monitor",
584       "//components/web_modal",
585     ]
586   } else {
587     sources += rebase_path(gypi_values.chrome_browser_non_android_sources,
588                            ".",
589                            "//chrome")
590   }
592   if (is_mac) {
593     deps += [
594       "//third_party/google_toolbox_for_mac",
595       #"../third_party/mozilla/mozilla.gyp:mozilla",  TODO(GYP)
596     ]
597     libs += [
598       "Accelerate.framework",
599       "AddressBook.framework",
600       "AudioUnit.framework",
601       "DiskArbitration.framework",
602       "IOKit.framework",
603       "ImageCaptureCore.framework",
604       "OpenGL.framework",
605       "QuartzCore.framework",
606       "SecurityInterface.framework",
607     ]
608   }
610   if (enable_rlz) {
611     sources +=
612         rebase_path(gypi_values.chrome_browser_rlz_sources, ".", "//chrome")
613     deps += [ "//rlz:rlz_lib" ]
614   }
616   # TODO(GYP)
617   # Temporary fix to break the browser target into smaller chunks so it
618   # will link with goma builds.
619   #["OS=="win" and chromium_win_pch==0", {
620   #  "msvs_shard": 4,
621   #}],
623   if (is_win) {
624     sources +=
625         rebase_path(gypi_values.chrome_browser_win_sources, ".", "//chrome")
626     if (!is_chrome_branded) {
627       sources -= [
628         "google/did_run_updater_win.cc",
629         "google/did_run_updater_win.h",
630       ]
631     }
632     public_deps += [
633       "//ui/views",
634       "//ui/views/controls/webview",
635     ]
636     deps += [
637       "//chrome:version_header",
638       "//chrome/installer/util:strings",
639       "//third_party/iaccessible2",
640       "//third_party/isimpledom",
641       "//third_party/wtl",
643       #"chrome_process_finder",  TODO(GYP)
644       #"../chrome_elf/chrome_elf.gyp:chrome_elf",  TODO(GYP)
645       #"../chrome_elf/chrome_elf.gyp:chrome_elf_constants",  TODO(GYP)
646       #"../chrome_elf/chrome_elf.gyp:dll_hash",  TODO(GYP)
647       #"../google_update/google_update.gyp:google_update",  TODO(GYP)
648       #"../ui/metro_viewer/metro_viewer.gyp:metro_viewer_messages",  TODO(GYP)
649       #"../win8/win8.gyp:metro_viewer",  TODO(GYP)
650     ]
651   } else {
652     # Non-Windows.
653     sources +=
654         rebase_path(gypi_values.chrome_browser_non_win_sources, ".", "//chrome")
655     if (toolkit_views) {
656       deps += [
657         "//ui/views",
658         "//ui/views/controls/webview",
659       ]
660       # TODO(GYP) why is this needed? Very susicious.
661       #  "include_dirs": [
662       #    "<(INTERMEDIATE_DIR)/chrome",
663       #  ],
664     }
665   }
667   if (is_linux) {
668     sources +=
669         rebase_path(gypi_values.chrome_browser_linux_sources, ".", "//chrome")
670     if (use_aura) {
671       configs += [
672         "//build/config/linux:dbus",
673         "//build/config/linux:fontconfig",
674       ]
675       deps += [ "//dbus" ]
676     }
677     if (use_x11) {
678       configs += [ "//build/config/linux:x11" ]
679       deps += [ "//ui/gfx/x" ]
680     }
681   }
683   if (is_desktop_linux) {
684     sources += rebase_path(gypi_values.chrome_browser_linux_desktop_sources,
685                            ".",
686                            "//chrome")
687   }
688   if (enable_plugin_installation) {
689     sources +=
690         rebase_path(gypi_values.chrome_browser_plugin_installation_sources,
691                     ".",
692                     "//chrome")
693   }
694   if (enable_app_list) {
695     deps += [ "//ui/app_list" ]
696   }
697   if (enable_supervised_users) {
698     sources += rebase_path(gypi_values.chrome_browser_supervised_user_sources,
699                            ".",
700                            "//chrome")
701   }
702   if (enable_supervised_users && enable_themes) {
703     sources += rebase_path(
704             gypi_values.chrome_browser_supervised_user_and_themes_sources,
705             ".",
706             "//chrome")
707   }
708   if (enable_webrtc) {
709     sources +=
710         rebase_path(gypi_values.chrome_browser_webrtc_sources, ".", "//chrome")
711   }
712   if (enable_service_discovery) {
713     sources += rebase_path(gypi_values.chrome_browser_service_discovery_sources,
714                            ".",
715                            "//chrome")
716   }
717   if (enable_mdns) {
718     sources +=
719         rebase_path(gypi_values.chrome_browser_mdns_sources, ".", "//chrome")
720   }
721   if (!enable_autofill_dialog || is_android || is_ios) {
722     sources -= [
723       "autofill/validation_rules_storage_factory.cc",
724       "autofill/validation_rules_storage_factory.h",
725     ]
726   }
727   if (enable_wifi_bootstrapping) {
728     sources +=
729         rebase_path(gypi_values.chrome_browser_wifi_bootstrapping_sources,
730                     ".",
731                     "//chrome")
732     if (is_win || is_mac) {
733       # TODO(brettw) as of this writing wifi bootstrapping is set on Windows
734       # and Mac, so this test is meaningless. Can we merge these lists?
735       sources += rebase_path(
736               gypi_values.chrome_browser_wifi_bootstrapping_win_mac_sources,
737               ".",
738               "//chrome")
739     }
740   }
743 if (is_android) {
744   # GYP version: chrome/chrome_browser.gypi:chrome_browser_jni_headers
745   generate_jni("jni_headers") {
746     sources =
747         rebase_path(gypi_values.chrome_browser_jni_sources, ".", "//chrome")
748     jni_package = "chrome"
749   }
752 # GYP version: chrome/chrome_resources.gyp:chrome_resources
753 # (generate_browser_resources action)
754 grit("resources") {
755   source = "browser_resources.grd"
756   output_dir = "$root_gen_dir/chrome"
757   outputs = [
758     "grit/browser_resources.h",
759     "browser_resources.pak",
760   ]
762   omnibox_mojom_file =
763       "$root_gen_dir/chrome/browser/ui/webui/omnibox/omnibox.mojom.js"
765   grit_flags = [
766     "-E",
767     "about_credits_file=" + rebase_path(about_credits_file, root_build_dir),
768     "-E",
769     "additional_modules_list_file=" +
770         rebase_path(additional_modules_list_file, root_build_dir),
771     "-E",
772     "omnibox_mojom_file=" + rebase_path(omnibox_mojom_file, root_build_dir),
773   ]
775   deps = [
776     ":about_credits",
777     ":chrome_internal_resources_gen",
778     "//chrome/browser/ui/webui/omnibox:mojo_bindings",
779     "//mojo/environment:chromium",
780   ]
783 # GYP version: chrome/chrome_resource.gyp:about_credits
784 action("about_credits") {
785   script = "//tools/licenses.py"
787   # TODO(phajdan.jr): input dependencies so this can be regenerated
788   # automatically when one of the credits changes. The way this should work is
789   # that licenses.py should write a .d file listing the input dependencies (see
790   # "depfile" in GN).
791   outputs = [
792     about_credits_file,
793   ]
795   args = [
796     "credits",
797     rebase_path(about_credits_file, root_build_dir),
798   ]
801 # GYP version: chrome/chrome_resource.gyp:chrome_internal_resources_gen
802 if (is_chrome_branded) {
803   action("chrome_internal_resources_gen") {
804     script = "internal/transform_additional_modules_list.py"
805     sources = [
806       "internal/resources/additional_modules_list.input",
807     ]
808     outputs = [
809       additional_modules_list_file,
810     ]
811     args = rebase_path(sources, root_build_dir) +
812            rebase_path(outputs, root_build_dir)
813   }
814 } else {
815   group("chrome_internal_resources_gen") {
816     # Empty placeholder.
817   }
820 # In GYP this is part of test_support_common.
821 source_set("test_support") {
822   testonly = true
824   # Always include this via the main test support target.
825   visibility = [ "//chrome/test:test_support" ]
827   sources = [
828     "browsing_data/mock_browsing_data_appcache_helper.cc",
829     "browsing_data/mock_browsing_data_appcache_helper.h",
830     "browsing_data/mock_browsing_data_channel_id_helper.cc",
831     "browsing_data/mock_browsing_data_channel_id_helper.h",
832     "browsing_data/mock_browsing_data_cookie_helper.cc",
833     "browsing_data/mock_browsing_data_cookie_helper.h",
834     "browsing_data/mock_browsing_data_database_helper.cc",
835     "browsing_data/mock_browsing_data_database_helper.h",
836     "browsing_data/mock_browsing_data_file_system_helper.cc",
837     "browsing_data/mock_browsing_data_file_system_helper.h",
838     "browsing_data/mock_browsing_data_flash_lso_helper.cc",
839     "browsing_data/mock_browsing_data_flash_lso_helper.h",
840     "browsing_data/mock_browsing_data_indexed_db_helper.cc",
841     "browsing_data/mock_browsing_data_indexed_db_helper.h",
842     "browsing_data/mock_browsing_data_local_storage_helper.cc",
843     "browsing_data/mock_browsing_data_local_storage_helper.h",
844     "browsing_data/mock_browsing_data_quota_helper.cc",
845     "browsing_data/mock_browsing_data_quota_helper.h",
846     "browsing_data/mock_browsing_data_service_worker_helper.cc",
847     "browsing_data/mock_browsing_data_service_worker_helper.h",
848     "download/download_test_file_activity_observer.cc",
849     "download/download_test_file_activity_observer.h",
850     "download/test_download_shelf.cc",
851     "download/test_download_shelf.h",
852     "invalidation/fake_invalidation_service.cc",
853     "invalidation/fake_invalidation_service.h",
854     "media/fake_desktop_media_list.cc",
855     "media/fake_desktop_media_list.h",
856     "net/dns_probe_test_util.cc",
857     "net/dns_probe_test_util.h",
858     "net/url_request_mock_util.cc",
859     "net/url_request_mock_util.h",
860     "notifications/notification_test_util.cc",
861     "notifications/notification_test_util.h",
862     "password_manager/mock_password_store_service.cc",
863     "password_manager/mock_password_store_service.h",
864     "password_manager/null_password_store_service.cc",
865     "password_manager/null_password_store_service.h",
866     "password_manager/test_password_store_service.cc",
867     "password_manager/test_password_store_service.h",
868     "prefs/pref_service_mock_factory.cc",
869     "prefs/pref_service_mock_factory.h",
870     "profile_resetter/profile_resetter_test_base.cc",
871     "profile_resetter/profile_resetter_test_base.h",
872     "search_engines/template_url_service_factory_test_util.cc",
873     "search_engines/template_url_service_factory_test_util.h",
874     "search_engines/template_url_service_test_util.cc",
875     "search_engines/template_url_service_test_util.h",
876     "sessions/session_service_test_helper.cc",
877     "sessions/session_service_test_helper.h",
878     "signin/fake_account_reconcilor.cc",
879     "signin/fake_account_reconcilor.h",
880     "signin/fake_account_tracker_service.cc",
881     "signin/fake_account_tracker_service.h",
882     "signin/fake_profile_oauth2_token_service.cc",
883     "signin/fake_profile_oauth2_token_service.h",
884     "signin/fake_profile_oauth2_token_service_builder.cc",
885     "signin/fake_profile_oauth2_token_service_builder.h",
886     "signin/fake_signin_manager.cc",
887     "signin/fake_signin_manager.h",
888     "ssl/ssl_client_auth_requestor_mock.cc",
889     "ssl/ssl_client_auth_requestor_mock.h",
890     "sync/profile_sync_components_factory_mock.cc",
891     "sync/profile_sync_components_factory_mock.h",
892     "sync/profile_sync_service_mock.cc",
893     "sync/profile_sync_service_mock.h",
894     "ui/webui/signin/login_ui_test_utils.cc",
895     "ui/webui/signin/login_ui_test_utils.h",
896   ]
898   public_deps = [
899     ":browser",
900     "//chrome/browser/ui:test_support",
901   ]
902   deps = [
903     "//base:prefs_test_support",
904     "//chrome/browser",
905     "//chrome/common",
906     "//chrome/common/safe_browsing:proto",
907     "//components/invalidation",
908     "//components/invalidation:test_support",
909     "//components/password_manager/core/browser:test_support",
910     "//components/search_engines:test_support",
911     "//content/test:test_support",
912     "//chrome/app/theme:theme_resources",
913     "//net:test_support",
914     "//skia",
915     "//testing/gmock",
916     "//testing/gtest",
917     "//ui/gfx",
918   ]
920   if (!is_ios) {
921     deps += [
922       "//components/sessions:test_support",
923       "//google_apis:test_support",
924     ]
925   }
927   if (enable_extensions) {
928     sources += [
929       "extensions/extension_action_test_util.cc",
930       "extensions/extension_action_test_util.h",
931     ]
932     deps += [ "//extensions:test_support" ]
933   }
935   if (is_chromeos) {
936     sources += [
937       "chromeos/app_mode/fake_cws.cc",
938       "chromeos/app_mode/fake_cws.h",
939       "chromeos/file_manager/fake_disk_mount_manager.cc",
940       "chromeos/file_manager/fake_disk_mount_manager.h",
941       "chromeos/input_method/mock_candidate_window_controller.cc",
942       "chromeos/input_method/mock_candidate_window_controller.h",
943       "chromeos/input_method/mock_input_method_engine.cc",
944       "chromeos/input_method/mock_input_method_engine.h",
945       "chromeos/input_method/mock_input_method_manager.cc",
946       "chromeos/input_method/mock_input_method_manager.h",
947       "chromeos/login/fake_login_utils.cc",
948       "chromeos/login/fake_login_utils.h",
949       "chromeos/login/mock_login_utils.cc",
950       "chromeos/login/mock_login_utils.h",
951       "chromeos/login/users/avatar/mock_user_image_manager.cc",
952       "chromeos/login/users/avatar/mock_user_image_manager.h",
953       "chromeos/login/users/fake_supervised_user_manager.cc",
954       "chromeos/login/users/fake_supervised_user_manager.h",
955       "chromeos/login/users/fake_user_manager.cc",
956       "chromeos/login/users/fake_user_manager.h",
957       "chromeos/login/users/mock_user_manager.cc",
958       "chromeos/login/users/mock_user_manager.h",
959       "chromeos/login/test/oobe_screen_waiter.cc",
960       "chromeos/login/test/oobe_screen_waiter.h",
961       "chromeos/login/test/js_checker.cc",
962       "chromeos/login/test/js_checker.h",
963       "chromeos/login/ui/mock_login_display.cc",
964       "chromeos/login/ui/mock_login_display.h",
965       "chromeos/login/ui/mock_login_display_host.cc",
966       "chromeos/login/ui/mock_login_display_host.h",
967       "chromeos/net/network_portal_detector_test_utils.cc",
968       "chromeos/net/network_portal_detector_test_utils.h",
969       "chromeos/policy/cloud_external_data_manager_base_test_util.cc",
970       "chromeos/policy/cloud_external_data_manager_base_test_util.h",
971       "chromeos/policy/device_policy_builder.cc",
972       "chromeos/policy/device_policy_builder.h",
973       "chromeos/policy/fake_device_cloud_policy_initializer.cc",
974       "chromeos/policy/fake_device_cloud_policy_initializer.h",
975       "chromeos/policy/stub_enterprise_install_attributes.cc",
976       "chromeos/policy/stub_enterprise_install_attributes.h",
977       "chromeos/settings/device_settings_test_helper.cc",
978       "chromeos/settings/device_settings_test_helper.h",
979       "chromeos/system/fake_input_device_settings.cc",
980       "chromeos/system/fake_input_device_settings.h",
981     ]
982     configs += [ "//build/config/linux:dbus" ]
983     deps += [ "//chromeos:test_support" ]
984   }
986   if (enable_configuration_policy) {
987     sources += [
988       "policy/test/local_policy_test_server.cc",
989       "policy/test/local_policy_test_server.h",
990     ]
991     public_deps += [
992       "//components/policy:policy_component_test_support",
993       "//components/policy:test_support",
994     ]
995   }
997   if (safe_browsing_mode == 1) {
998     sources += [
999       "extensions/fake_safe_browsing_database_manager.cc",
1000       "extensions/fake_safe_browsing_database_manager.h",
1001     ]
1002   }
1004   if (enable_extensions) {
1005     sources += [
1006       "drive/dummy_drive_service.cc",
1007       "drive/dummy_drive_service.h",
1008       "drive/fake_drive_service.cc",
1009       "drive/fake_drive_service.h",
1010       "drive/test_util.cc",
1011       "drive/test_util.h",
1012       "extensions/api/messaging/native_messaging_test_util.cc",
1013       "extensions/api/messaging/native_messaging_test_util.h",
1014       "extensions/extension_notification_observer.cc",
1015       "extensions/extension_notification_observer.h",
1016       "extensions/mock_extension_special_storage_policy.cc",
1017       "extensions/mock_extension_special_storage_policy.h",
1018       "extensions/test_blacklist.cc",
1019       "extensions/test_blacklist.h",
1020       "extensions/test_blacklist_state_fetcher.cc",
1021       "extensions/test_blacklist_state_fetcher.h",
1022       "extensions/test_extension_environment.cc",
1023       "extensions/test_extension_environment.h",
1024       "extensions/test_extension_prefs.cc",
1025       "extensions/test_extension_prefs.h",
1026       "extensions/test_extension_service.cc",
1027       "extensions/test_extension_service.h",
1028       "extensions/test_extension_system.cc",
1029       "extensions/test_extension_system.h",
1030       "media_galleries/media_galleries_test_util.cc",
1031       "media_galleries/media_galleries_test_util.h",
1032     ]
1033     deps += [ "//components/storage_monitor:test_support" ]
1034   }
1036   if (enable_mdns) {
1037     sources += [
1038       "local_discovery/test_service_discovery_client.cc",
1039       "local_discovery/test_service_discovery_client.h",
1040     ]
1041   }
1043   if (enable_app_list) {
1044     sources += [
1045       "ui/app_list/test/chrome_app_list_test_support.cc",
1046       "ui/app_list/test/chrome_app_list_test_support.h",
1047     ]
1048   }
1050   if (enable_wifi_bootstrapping) {
1051     sources += [
1052       "local_discovery/wifi/mock_wifi_manager.cc",
1053       "local_discovery/wifi/mock_wifi_manager.h",
1054     ]
1055   }