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