BUILD.gn 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962
  1. # Copyright 2019 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. import("//components/captive_portal/core/features.gni")
  5. import("//build/config/features.gni")
  6. import("//build/config/locales.gni")
  7. import("//build/config/sanitizers/sanitizers.gni")
  8. import("//build/config/ui.gni")
  9. import("//build/config/win/console_app.gni")
  10. import("//build/config/win/manifest.gni")
  11. import("//components/spellcheck/spellcheck_build_features.gni")
  12. import("//device/vr/buildflags/buildflags.gni")
  13. import("//gpu/vulkan/features.gni")
  14. import("//media/media_options.gni")
  15. import("//mojo/public/tools/bindings/mojom.gni")
  16. import("//pdf/features.gni")
  17. import("//printing/buildflags/buildflags.gni")
  18. import("//tools/grit/grit_rule.gni")
  19. import("//tools/grit/repack.gni")
  20. import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
  21. if (is_android) {
  22. import("//build/config/android/config.gni")
  23. import("//build/config/android/rules.gni")
  24. import("//components/safe_browsing/buildflags.gni")
  25. } else if (is_mac) {
  26. import("//build/apple/tweak_info_plist.gni")
  27. import("//build/config/mac/rules.gni")
  28. import("//content/public/app/mac_helpers.gni")
  29. import("//third_party/icu/config.gni")
  30. import("//ui/gl/features.gni")
  31. import("//v8/gni/v8.gni")
  32. }
  33. source_set("android_descriptors") {
  34. sources = [ "browser/android_descriptors.h" ]
  35. public_deps = [ "//content/public/common:content_descriptors" ]
  36. }
  37. if (is_android) {
  38. weblayer_components_strings_java_resources =
  39. [ "java/res/values/components_strings.xml" ] +
  40. process_file_template(
  41. android_bundle_locales_as_resources,
  42. [ "java/res/values-{{source_name_part}}/components_strings.xml" ])
  43. grit("generate_components_strings") {
  44. source = "../components/components_strings.grd"
  45. defines = [
  46. "enable_arcore=$enable_arcore",
  47. "enable_pdf=$enable_pdf",
  48. "enable_print_preview=$enable_print_preview",
  49. "enable_vr=$enable_vr",
  50. ]
  51. # components_strings contains strings from all components. WebLayer
  52. # will never display most of them, so we try to limit the included
  53. # strings.
  54. allowlist = rebase_path("grit_strings_allowlist.txt", root_build_dir)
  55. inputs = [ "//weblayer/grit_strings_allowlist.txt" ]
  56. grit_flags = [
  57. "-w",
  58. allowlist,
  59. ]
  60. outputs =
  61. weblayer_components_strings_java_resources +
  62. [ "grit/components_strings.h" ] +
  63. process_file_template(all_chrome_locales,
  64. [ "components_strings_{{source_name_part}}.pak" ])
  65. }
  66. grit("generate_components_chromium_strings") {
  67. source = "../components/components_chromium_strings.grd"
  68. # components_chromium_strings contains Chromium-specific strings. WebLayer
  69. # will never display most of them, so we try to limit the included
  70. # strings.
  71. allowlist = rebase_path("grit_strings_allowlist.txt", root_build_dir)
  72. inputs = [ "//weblayer/grit_strings_allowlist.txt" ]
  73. grit_flags = [
  74. "-w",
  75. allowlist,
  76. ]
  77. outputs = [ "grit/components_chromium_strings.h" ] +
  78. process_file_template(
  79. all_chrome_locales,
  80. [ "components_chromium_strings_{{source_name_part}}.pak" ])
  81. }
  82. repack_locales("weblayer_locales") {
  83. input_locales = platform_pak_locales
  84. output_locales = platform_pak_locales
  85. source_patterns = [
  86. "${root_gen_dir}/components/strings/components_locale_settings_",
  87. "${root_gen_dir}/device/bluetooth/strings/bluetooth_strings_",
  88. "${root_gen_dir}/weblayer/components_chromium_strings_",
  89. "${root_gen_dir}/weblayer/components_strings_",
  90. ]
  91. deps = [
  92. ":generate_components_chromium_strings",
  93. ":generate_components_strings",
  94. "//components/strings:components_locale_settings",
  95. "//device/bluetooth/strings",
  96. ]
  97. output_dir = "$root_out_dir/weblayer/locales"
  98. }
  99. android_assets("locale_pak_assets") {
  100. disable_compression = true
  101. renaming_sources = [ "$root_out_dir/weblayer/locales/en-US.pak" ]
  102. renaming_destinations = [ "stored-locales/weblayer/en-US.pak" ]
  103. treat_as_locale_paks = true
  104. deps = [ ":weblayer_locales" ]
  105. }
  106. android_assets("bundle_locale_pak_assets") {
  107. disable_compression = true
  108. renaming_sources = []
  109. renaming_destinations = []
  110. foreach(_locale, platform_pak_locales) {
  111. renaming_sources += [ "$root_out_dir/weblayer/locales/$_locale.pak" ]
  112. renaming_destinations += [ "locales/$_locale.pak" ]
  113. }
  114. treat_as_locale_paks = true
  115. deps = [ ":weblayer_locales" ]
  116. }
  117. java_strings_grd_prebuilt("components_java_strings") {
  118. resource_overlay = true
  119. grit_output_dir = "$root_gen_dir/weblayer/java/res"
  120. generated_files =
  121. rebase_path(weblayer_components_strings_java_resources, "java/res", ".")
  122. deps = [ ":generate_components_strings" ]
  123. }
  124. }
  125. mojom("common_mojom") {
  126. disable_variants = true
  127. sources = [
  128. "common/error_page_helper.mojom",
  129. "common/renderer_configuration.mojom",
  130. ]
  131. deps = [
  132. "//components/content_settings/common:mojom",
  133. "//components/content_settings/core/common:mojo_bindings",
  134. ]
  135. }
  136. source_set("weblayer_lib_base") {
  137. sources = [
  138. "app/content_main_delegate_impl.cc",
  139. "app/content_main_delegate_impl.h",
  140. "app/main.cc",
  141. "browser/accept_languages_service_factory.cc",
  142. "browser/accept_languages_service_factory.h",
  143. "browser/autofill_client_impl.cc",
  144. "browser/autofill_client_impl.h",
  145. "browser/background_download_service_factory.cc",
  146. "browser/background_download_service_factory.h",
  147. "browser/background_fetch/background_fetch_delegate_factory.cc",
  148. "browser/background_fetch/background_fetch_delegate_factory.h",
  149. "browser/background_fetch/background_fetch_delegate_impl.cc",
  150. "browser/background_fetch/background_fetch_delegate_impl.h",
  151. "browser/background_fetch/background_fetch_download.cc",
  152. "browser/background_fetch/background_fetch_download.h",
  153. "browser/background_fetch/background_fetch_permission_context.cc",
  154. "browser/background_fetch/background_fetch_permission_context.h",
  155. "browser/background_sync/background_sync_controller_factory.cc",
  156. "browser/background_sync/background_sync_controller_factory.h",
  157. "browser/background_sync/background_sync_delegate_impl.cc",
  158. "browser/background_sync/background_sync_delegate_impl.h",
  159. "browser/bluetooth/weblayer_bluetooth_chooser_context_factory.cc",
  160. "browser/bluetooth/weblayer_bluetooth_chooser_context_factory.h",
  161. "browser/bluetooth/weblayer_bluetooth_delegate_impl_client.cc",
  162. "browser/bluetooth/weblayer_bluetooth_delegate_impl_client.h",
  163. "browser/browser_context_impl.cc",
  164. "browser/browser_context_impl.h",
  165. "browser/browser_impl.cc",
  166. "browser/browser_impl.h",
  167. "browser/browser_list.cc",
  168. "browser/browser_list.h",
  169. "browser/browser_list_observer.h",
  170. "browser/browser_main_parts_impl.cc",
  171. "browser/browser_main_parts_impl.h",
  172. "browser/browser_process.cc",
  173. "browser/browser_process.h",
  174. "browser/browsing_data_remover_delegate.cc",
  175. "browser/browsing_data_remover_delegate.h",
  176. "browser/browsing_data_remover_delegate_factory.cc",
  177. "browser/browsing_data_remover_delegate_factory.h",
  178. "browser/client_hints_factory.cc",
  179. "browser/client_hints_factory.h",
  180. "browser/content_browser_client_impl.cc",
  181. "browser/content_browser_client_impl.h",
  182. "browser/content_browser_client_impl_receiver_bindings.cc",
  183. "browser/content_settings_manager_delegate.cc",
  184. "browser/content_settings_manager_delegate.h",
  185. "browser/controls_visibility_reason.h",
  186. "browser/cookie_manager_impl.cc",
  187. "browser/cookie_manager_impl.h",
  188. "browser/cookie_settings_factory.cc",
  189. "browser/cookie_settings_factory.h",
  190. "browser/download_impl.cc",
  191. "browser/download_impl.h",
  192. "browser/download_manager_delegate_impl.cc",
  193. "browser/download_manager_delegate_impl.h",
  194. "browser/favicon/favicon_backend_wrapper.cc",
  195. "browser/favicon/favicon_backend_wrapper.h",
  196. "browser/favicon/favicon_fetcher_impl.cc",
  197. "browser/favicon/favicon_fetcher_impl.h",
  198. "browser/favicon/favicon_service_impl.cc",
  199. "browser/favicon/favicon_service_impl.h",
  200. "browser/favicon/favicon_service_impl_factory.cc",
  201. "browser/favicon/favicon_service_impl_factory.h",
  202. "browser/favicon/favicon_service_impl_observer.h",
  203. "browser/favicon/favicon_tab_helper.cc",
  204. "browser/favicon/favicon_tab_helper.h",
  205. "browser/feature_list_creator.cc",
  206. "browser/feature_list_creator.h",
  207. "browser/file_select_helper.cc",
  208. "browser/file_select_helper.h",
  209. "browser/heavy_ad_service_factory.cc",
  210. "browser/heavy_ad_service_factory.h",
  211. "browser/host_content_settings_map_factory.cc",
  212. "browser/host_content_settings_map_factory.h",
  213. "browser/i18n_util.cc",
  214. "browser/i18n_util.h",
  215. "browser/insecure_form_controller_client.cc",
  216. "browser/insecure_form_controller_client.h",
  217. "browser/js_communication/web_message_host_factory_wrapper.cc",
  218. "browser/js_communication/web_message_host_factory_wrapper.h",
  219. "browser/navigation_controller_impl.cc",
  220. "browser/navigation_controller_impl.h",
  221. "browser/navigation_entry_data.cc",
  222. "browser/navigation_entry_data.h",
  223. "browser/navigation_error_navigation_throttle.cc",
  224. "browser/navigation_error_navigation_throttle.h",
  225. "browser/navigation_impl.cc",
  226. "browser/navigation_impl.h",
  227. "browser/navigation_ui_data_impl.cc",
  228. "browser/navigation_ui_data_impl.h",
  229. "browser/no_state_prefetch/no_state_prefetch_link_manager_factory.cc",
  230. "browser/no_state_prefetch/no_state_prefetch_link_manager_factory.h",
  231. "browser/no_state_prefetch/no_state_prefetch_manager_delegate_impl.cc",
  232. "browser/no_state_prefetch/no_state_prefetch_manager_delegate_impl.h",
  233. "browser/no_state_prefetch/no_state_prefetch_manager_factory.cc",
  234. "browser/no_state_prefetch/no_state_prefetch_manager_factory.h",
  235. "browser/no_state_prefetch/no_state_prefetch_processor_impl_delegate_impl.cc",
  236. "browser/no_state_prefetch/no_state_prefetch_processor_impl_delegate_impl.h",
  237. "browser/no_state_prefetch/no_state_prefetch_utils.cc",
  238. "browser/no_state_prefetch/no_state_prefetch_utils.h",
  239. "browser/no_state_prefetch/prerender_controller_impl.cc",
  240. "browser/no_state_prefetch/prerender_controller_impl.h",
  241. "browser/no_state_prefetch/prerender_tab_helper.cc",
  242. "browser/no_state_prefetch/prerender_tab_helper.h",
  243. "browser/page_impl.cc",
  244. "browser/page_impl.h",
  245. "browser/page_load_metrics_initialize.cc",
  246. "browser/page_load_metrics_initialize.h",
  247. "browser/page_load_metrics_observer_impl.cc",
  248. "browser/page_load_metrics_observer_impl.h",
  249. "browser/page_specific_content_settings_delegate.cc",
  250. "browser/page_specific_content_settings_delegate.h",
  251. "browser/password_manager_driver_factory.cc",
  252. "browser/password_manager_driver_factory.h",
  253. "browser/permissions/geolocation_permission_context_delegate.cc",
  254. "browser/permissions/geolocation_permission_context_delegate.h",
  255. "browser/permissions/permission_decision_auto_blocker_factory.cc",
  256. "browser/permissions/permission_decision_auto_blocker_factory.h",
  257. "browser/permissions/permission_manager_factory.cc",
  258. "browser/permissions/permission_manager_factory.h",
  259. "browser/permissions/weblayer_camera_pan_tilt_zoom_permission_context_delegate.cc",
  260. "browser/permissions/weblayer_camera_pan_tilt_zoom_permission_context_delegate.h",
  261. "browser/permissions/weblayer_nfc_permission_context_delegate.cc",
  262. "browser/permissions/weblayer_nfc_permission_context_delegate.h",
  263. "browser/permissions/weblayer_permissions_client.cc",
  264. "browser/permissions/weblayer_permissions_client.h",
  265. "browser/persistence/browser_persistence_common.cc",
  266. "browser/persistence/browser_persistence_common.h",
  267. "browser/persistence/browser_persister.cc",
  268. "browser/persistence/browser_persister.h",
  269. "browser/persistence/browser_persister_file_utils.cc",
  270. "browser/persistence/browser_persister_file_utils.h",
  271. "browser/persistence/minimal_browser_persister.cc",
  272. "browser/persistence/minimal_browser_persister.h",
  273. "browser/persistent_download.cc",
  274. "browser/persistent_download.h",
  275. "browser/popup_navigation_delegate_impl.cc",
  276. "browser/popup_navigation_delegate_impl.h",
  277. "browser/profile_disk_operations.cc",
  278. "browser/profile_disk_operations.h",
  279. "browser/profile_impl.cc",
  280. "browser/profile_impl.h",
  281. "browser/reduce_accept_language_factory.cc",
  282. "browser/reduce_accept_language_factory.h",
  283. "browser/signin_url_loader_throttle.cc",
  284. "browser/signin_url_loader_throttle.h",
  285. "browser/ssl_error_controller_client.cc",
  286. "browser/ssl_error_controller_client.h",
  287. "browser/stateful_ssl_host_state_delegate_factory.cc",
  288. "browser/stateful_ssl_host_state_delegate_factory.h",
  289. "browser/subresource_filter_profile_context_factory.cc",
  290. "browser/subresource_filter_profile_context_factory.h",
  291. "browser/system_network_context_manager.cc",
  292. "browser/system_network_context_manager.h",
  293. "browser/tab_impl.cc",
  294. "browser/tab_impl.h",
  295. "browser/translate_client_impl.cc",
  296. "browser/translate_client_impl.h",
  297. "browser/translate_ranker_factory.cc",
  298. "browser/translate_ranker_factory.h",
  299. "browser/url_bar/autocomplete_scheme_classifier_impl.cc",
  300. "browser/url_bar/autocomplete_scheme_classifier_impl.h",
  301. "browser/url_bar/page_info_delegate_impl.cc",
  302. "browser/url_bar/page_info_delegate_impl.h",
  303. "browser/url_bar/url_bar_controller_impl.cc",
  304. "browser/url_bar/url_bar_controller_impl.h",
  305. "browser/web_contents_view_delegate_impl.cc",
  306. "browser/web_contents_view_delegate_impl.h",
  307. "browser/web_data_service_factory.cc",
  308. "browser/web_data_service_factory.h",
  309. "browser/weblayer_browser_interface_binders.cc",
  310. "browser/weblayer_browser_interface_binders.h",
  311. "browser/weblayer_features.cc",
  312. "browser/weblayer_features.h",
  313. "browser/weblayer_field_trials.cc",
  314. "browser/weblayer_field_trials.h",
  315. "browser/weblayer_metrics_service_accessor.h",
  316. "browser/weblayer_page_load_metrics_memory_tracker_factory.cc",
  317. "browser/weblayer_page_load_metrics_memory_tracker_factory.h",
  318. "browser/weblayer_security_blocking_page_factory.cc",
  319. "browser/weblayer_security_blocking_page_factory.h",
  320. "browser/weblayer_speech_recognition_manager_delegate.cc",
  321. "browser/weblayer_speech_recognition_manager_delegate.h",
  322. "browser/weblayer_variations_service_client.cc",
  323. "browser/weblayer_variations_service_client.h",
  324. "browser/webui/net_export_ui.cc",
  325. "browser/webui/net_export_ui.h",
  326. "browser/webui/web_ui_controller_factory.cc",
  327. "browser/webui/web_ui_controller_factory.h",
  328. "browser/webui/weblayer_internals_ui.cc",
  329. "browser/webui/weblayer_internals_ui.h",
  330. "common/content_client_impl.cc",
  331. "common/content_client_impl.h",
  332. "common/features.cc",
  333. "common/features.h",
  334. "common/isolated_world_ids.h",
  335. "common/weblayer_paths.cc",
  336. "common/weblayer_paths.h",
  337. "public/browser.cc",
  338. "public/browser.h",
  339. "public/browser_observer.h",
  340. "public/browser_restore_observer.h",
  341. "public/common/switches.cc",
  342. "public/common/switches.h",
  343. "public/cookie_manager.h",
  344. "public/download.h",
  345. "public/download_delegate.h",
  346. "public/error_page.h",
  347. "public/error_page_delegate.h",
  348. "public/favicon_fetcher.h",
  349. "public/favicon_fetcher_delegate.h",
  350. "public/fullscreen_delegate.h",
  351. "public/google_account_access_token_fetch_delegate.h",
  352. "public/google_accounts_delegate.h",
  353. "public/js_communication/web_message.cc",
  354. "public/js_communication/web_message.h",
  355. "public/js_communication/web_message_host.h",
  356. "public/js_communication/web_message_host_factory.h",
  357. "public/js_communication/web_message_reply_proxy.h",
  358. "public/main.h",
  359. "public/navigation.h",
  360. "public/navigation_controller.h",
  361. "public/navigation_observer.h",
  362. "public/new_tab_delegate.h",
  363. "public/page.h",
  364. "public/prerender_controller.h",
  365. "public/profile.h",
  366. "public/tab.h",
  367. "public/tab_observer.h",
  368. "public/url_bar_controller.h",
  369. "renderer/content_renderer_client_impl.cc",
  370. "renderer/content_renderer_client_impl.h",
  371. "renderer/error_page_helper.cc",
  372. "renderer/error_page_helper.h",
  373. "renderer/url_loader_throttle_provider.cc",
  374. "renderer/url_loader_throttle_provider.h",
  375. "renderer/weblayer_render_frame_observer.cc",
  376. "renderer/weblayer_render_frame_observer.h",
  377. "renderer/weblayer_render_thread_observer.cc",
  378. "renderer/weblayer_render_thread_observer.h",
  379. "utility/content_utility_client_impl.cc",
  380. "utility/content_utility_client_impl.h",
  381. ]
  382. configs += [ "//build/config:precompiled_headers" ]
  383. public_deps = [ ":android_descriptors" ]
  384. deps = [
  385. ":common_mojom",
  386. "//base",
  387. "//base:base_static",
  388. "//base/third_party/dynamic_annotations",
  389. "//build:chromeos_buildflags",
  390. "//cc",
  391. "//components/autofill/content/browser",
  392. "//components/autofill/content/renderer",
  393. "//components/autofill/core/browser",
  394. "//components/autofill/core/common",
  395. "//components/background_fetch",
  396. "//components/background_sync",
  397. "//components/base32",
  398. "//components/blocked_content",
  399. "//components/browsing_data/content",
  400. "//components/captive_portal/core:buildflags",
  401. "//components/cdm/renderer",
  402. "//components/client_hints/browser",
  403. "//components/content_capture/browser",
  404. "//components/content_capture/common",
  405. "//components/content_capture/renderer",
  406. "//components/content_settings/browser",
  407. "//components/content_settings/common:mojom",
  408. "//components/content_settings/common:mojom",
  409. "//components/content_settings/core/browser",
  410. "//components/content_settings/renderer",
  411. "//components/crash/content/browser",
  412. "//components/crash/core/app",
  413. "//components/crash/core/common",
  414. "//components/download/content/factory",
  415. "//components/download/content/public",
  416. "//components/download/public/background_service:public",
  417. "//components/download/public/task:public",
  418. "//components/embedder_support",
  419. "//components/embedder_support:browser_util",
  420. "//components/embedder_support/origin_trials",
  421. "//components/error_page/common",
  422. "//components/error_page/content/browser",
  423. "//components/favicon/content",
  424. "//components/favicon/core",
  425. "//components/favicon/core:database",
  426. "//components/favicon_base",
  427. "//components/find_in_page",
  428. "//components/heavy_ad_intervention",
  429. "//components/infobars/content",
  430. "//components/infobars/core",
  431. "//components/js_injection/browser",
  432. "//components/js_injection/renderer",
  433. "//components/keyed_service/content",
  434. "//components/language/core/browser",
  435. "//components/leveldb_proto",
  436. "//components/metrics",
  437. "//components/net_log",
  438. "//components/network_time",
  439. "//components/no_state_prefetch/browser",
  440. "//components/no_state_prefetch/common",
  441. "//components/no_state_prefetch/common:mojo_bindings",
  442. "//components/no_state_prefetch/renderer",
  443. "//components/omnibox/browser:browser",
  444. "//components/page_info",
  445. "//components/page_load_metrics/browser",
  446. "//components/page_load_metrics/browser/observers/ad_metrics",
  447. "//components/page_load_metrics/renderer",
  448. "//components/password_manager/content/browser",
  449. "//components/payments/content:content",
  450. "//components/payments/core",
  451. "//components/performance_manager",
  452. "//components/permissions",
  453. "//components/policy/core/browser",
  454. "//components/pref_registry:pref_registry",
  455. "//components/prefs",
  456. "//components/profile_metrics",
  457. "//components/reduce_accept_language/browser",
  458. "//components/safe_browsing/content/browser",
  459. "//components/safe_browsing/content/browser:client_side_detection",
  460. "//components/safe_browsing/content/browser/web_ui",
  461. "//components/safe_browsing/content/common:interfaces",
  462. "//components/safe_browsing/content/renderer:throttles",
  463. "//components/safe_browsing/content/renderer/phishing_classifier",
  464. "//components/safe_browsing/core/browser:safe_browsing_metrics_collector",
  465. "//components/safe_browsing/core/browser/db:database_manager",
  466. "//components/safe_browsing/core/common",
  467. "//components/security_interstitials/content:security_interstitial_page",
  468. "//components/security_interstitials/content/renderer:security_interstitial_page_controller",
  469. "//components/security_interstitials/core",
  470. "//components/security_state/content",
  471. "//components/services/storage/public/mojom",
  472. "//components/sessions",
  473. "//components/signin/core/browser",
  474. "//components/site_engagement/content",
  475. "//components/site_isolation",
  476. "//components/spellcheck:buildflags",
  477. "//components/ssl_errors",
  478. "//components/startup_metric_utils/browser",
  479. "//components/strings",
  480. "//components/subresource_filter/content/browser",
  481. "//components/subresource_filter/content/renderer",
  482. "//components/subresource_filter/core/browser",
  483. "//components/subresource_filter/core/browser",
  484. "//components/subresource_filter/core/common",
  485. "//components/translate/content/browser",
  486. "//components/translate/content/renderer",
  487. "//components/translate/core/browser",
  488. "//components/translate/core/common",
  489. "//components/ukm",
  490. "//components/ukm/content",
  491. "//components/unified_consent:unified_consent",
  492. "//components/user_prefs",
  493. "//components/variations",
  494. "//components/variations:variations_mojom",
  495. "//components/variations/net",
  496. "//components/variations/proto",
  497. "//components/variations/service",
  498. "//components/version_info",
  499. "//components/viz/common",
  500. "//components/web_cache/browser",
  501. "//components/webapps/browser",
  502. "//components/webapps/renderer",
  503. "//components/webdata_services",
  504. "//components/webrtc",
  505. "//content:content_resources",
  506. "//content:dev_ui_content_resources",
  507. "//content/public/app",
  508. "//content/public/browser",
  509. "//content/public/child",
  510. "//content/public/common",
  511. "//content/public/renderer",
  512. "//content/public/utility",
  513. "//device/base:base",
  514. "//device/vr/buildflags",
  515. "//gpu/config",
  516. "//net",
  517. "//net:net_resources",
  518. "//sandbox",
  519. "//services/cert_verifier/public/mojom",
  520. "//services/metrics/public/cpp:metrics_cpp",
  521. "//services/network/public/cpp",
  522. "//services/network/public/mojom",
  523. "//services/preferences/tracked",
  524. "//skia",
  525. "//third_party/blink/public:blink_headers",
  526. "//third_party/blink/public/common",
  527. "//third_party/blink/public/strings",
  528. "//third_party/icu",
  529. "//ui/base",
  530. "//ui/base/clipboard",
  531. "//ui/base/ime/init",
  532. "//ui/display",
  533. "//ui/events:events_base",
  534. "//ui/gfx",
  535. "//ui/gfx/geometry",
  536. "//ui/gfx/ipc",
  537. "//ui/gfx/ipc/geometry",
  538. "//ui/gfx/ipc/skia",
  539. "//ui/gl",
  540. "//ui/platform_window",
  541. "//ui/shell_dialogs",
  542. "//ui/webui",
  543. "//url",
  544. "//v8",
  545. "//weblayer:resources",
  546. "//weblayer/browser/webui:mojo_bindings",
  547. ]
  548. if (enable_captive_portal_detection) {
  549. sources += [
  550. "browser/captive_portal_service_factory.cc",
  551. "browser/captive_portal_service_factory.h",
  552. ]
  553. deps += [ "//components/captive_portal/content" ]
  554. }
  555. if (enable_arcore) {
  556. assert(is_android)
  557. sources += [
  558. "browser/xr/xr_integration_client_impl.cc",
  559. "browser/xr/xr_integration_client_impl.h",
  560. ]
  561. deps += [
  562. "//components/webxr/android",
  563. "//device/vr/android/arcore",
  564. ]
  565. }
  566. if (use_browser_spellchecker) {
  567. deps += [
  568. "//components/spellcheck/browser",
  569. "//components/spellcheck/renderer",
  570. ]
  571. }
  572. if (is_android) {
  573. sources += [
  574. "app/jni_onload.cc",
  575. "app/jni_onload.h",
  576. "browser/android/application_info_helper.cc",
  577. "browser/android/application_info_helper.h",
  578. "browser/android/exception_filter.cc",
  579. "browser/android/exception_filter.h",
  580. "browser/android/metrics/uma_utils.cc",
  581. "browser/android/metrics/uma_utils.h",
  582. "browser/android/metrics/weblayer_metrics_service_client.cc",
  583. "browser/android/metrics/weblayer_metrics_service_client.h",
  584. "browser/android/permission_request_utils.cc",
  585. "browser/android/permission_request_utils.h",
  586. "browser/android/resource_mapper.cc",
  587. "browser/android/resource_mapper.h",
  588. "browser/autofill_assistant/weblayer_assistant_field_trial_util.cc",
  589. "browser/autofill_assistant/weblayer_assistant_field_trial_util.h",
  590. "browser/autofill_assistant/weblayer_dependencies.cc",
  591. "browser/autofill_assistant/weblayer_dependencies.h",
  592. "browser/bluetooth/weblayer_bluetooth_chooser_android_delegate.cc",
  593. "browser/bluetooth/weblayer_bluetooth_chooser_android_delegate.h",
  594. "browser/bluetooth/weblayer_bluetooth_scanning_prompt_android_delegate.cc",
  595. "browser/bluetooth/weblayer_bluetooth_scanning_prompt_android_delegate.h",
  596. "browser/browser_controls_container_view.cc",
  597. "browser/browser_controls_container_view.h",
  598. "browser/browser_controls_navigation_state_handler.cc",
  599. "browser/browser_controls_navigation_state_handler.h",
  600. "browser/browser_controls_navigation_state_handler_delegate.h",
  601. "browser/browser_list_proxy.cc",
  602. "browser/browser_list_proxy.h",
  603. "browser/component_updater/client_side_phishing_component_loader_policy.cc",
  604. "browser/component_updater/client_side_phishing_component_loader_policy.h",
  605. "browser/component_updater/registration.cc",
  606. "browser/component_updater/registration.h",
  607. "browser/content_view_render_view.cc",
  608. "browser/content_view_render_view.h",
  609. "browser/devtools_manager_delegate_android.cc",
  610. "browser/devtools_manager_delegate_android.h",
  611. "browser/devtools_server_android.cc",
  612. "browser/devtools_server_android.h",
  613. "browser/download_callback_proxy.cc",
  614. "browser/download_callback_proxy.h",
  615. "browser/error_page_callback_proxy.cc",
  616. "browser/error_page_callback_proxy.h",
  617. "browser/favicon/favicon_callback_proxy.cc",
  618. "browser/favicon/favicon_callback_proxy.h",
  619. "browser/fullscreen_callback_proxy.cc",
  620. "browser/fullscreen_callback_proxy.h",
  621. "browser/google_account_access_token_fetcher_proxy.cc",
  622. "browser/google_account_access_token_fetcher_proxy.h",
  623. "browser/google_accounts_callback_proxy.cc",
  624. "browser/google_accounts_callback_proxy.h",
  625. "browser/http_auth_handler_impl.cc",
  626. "browser/http_auth_handler_impl.h",
  627. "browser/infobar_container_android.cc",
  628. "browser/infobar_container_android.h",
  629. "browser/javascript_tab_modal_dialog_manager_delegate_android.cc",
  630. "browser/javascript_tab_modal_dialog_manager_delegate_android.h",
  631. "browser/js_communication/web_message_host_factory_proxy.cc",
  632. "browser/js_communication/web_message_host_factory_proxy.h",
  633. "browser/js_communication/web_message_reply_proxy_impl.cc",
  634. "browser/js_communication/web_message_reply_proxy_impl.h",
  635. "browser/media/local_presentation_manager_factory.cc",
  636. "browser/media/local_presentation_manager_factory.h",
  637. "browser/media/media_router_factory.cc",
  638. "browser/media/media_router_factory.h",
  639. "browser/new_tab_callback_proxy.cc",
  640. "browser/new_tab_callback_proxy.h",
  641. "browser/proxying_url_loader_factory_impl.cc",
  642. "browser/proxying_url_loader_factory_impl.h",
  643. "browser/safe_browsing/client_side_detection_service_factory.cc",
  644. "browser/safe_browsing/client_side_detection_service_factory.h",
  645. "browser/safe_browsing/real_time_url_lookup_service_factory.cc",
  646. "browser/safe_browsing/real_time_url_lookup_service_factory.h",
  647. "browser/safe_browsing/safe_browsing_metrics_collector_factory.cc",
  648. "browser/safe_browsing/safe_browsing_metrics_collector_factory.h",
  649. "browser/safe_browsing/safe_browsing_navigation_observer_manager_factory.cc",
  650. "browser/safe_browsing/safe_browsing_navigation_observer_manager_factory.h",
  651. "browser/safe_browsing/safe_browsing_service.cc",
  652. "browser/safe_browsing/safe_browsing_service.h",
  653. "browser/safe_browsing/safe_browsing_token_fetcher_impl.cc",
  654. "browser/safe_browsing/safe_browsing_token_fetcher_impl.h",
  655. "browser/safe_browsing/url_checker_delegate_impl.cc",
  656. "browser/safe_browsing/url_checker_delegate_impl.h",
  657. "browser/safe_browsing/weblayer_client_side_detection_host_delegate.cc",
  658. "browser/safe_browsing/weblayer_client_side_detection_host_delegate.h",
  659. "browser/safe_browsing/weblayer_client_side_detection_service_delegate.cc",
  660. "browser/safe_browsing/weblayer_client_side_detection_service_delegate.h",
  661. "browser/safe_browsing/weblayer_ping_manager_factory.cc",
  662. "browser/safe_browsing/weblayer_ping_manager_factory.h",
  663. "browser/safe_browsing/weblayer_safe_browsing_blocking_page_factory.cc",
  664. "browser/safe_browsing/weblayer_safe_browsing_blocking_page_factory.h",
  665. "browser/safe_browsing/weblayer_safe_browsing_tab_observer_delegate.cc",
  666. "browser/safe_browsing/weblayer_safe_browsing_tab_observer_delegate.h",
  667. "browser/safe_browsing/weblayer_ui_manager_delegate.cc",
  668. "browser/safe_browsing/weblayer_ui_manager_delegate.h",
  669. "browser/safe_browsing/weblayer_user_population_helper.cc",
  670. "browser/safe_browsing/weblayer_user_population_helper.h",
  671. "browser/site_engagement/site_engagement_service_factory.cc",
  672. "browser/site_engagement/site_engagement_service_factory.h",
  673. "browser/tab_callback_proxy.cc",
  674. "browser/tab_callback_proxy.h",
  675. "browser/translate_compact_infobar.cc",
  676. "browser/translate_compact_infobar.h",
  677. "browser/tts_environment_android_impl.cc",
  678. "browser/tts_environment_android_impl.h",
  679. "browser/url_bar/page_info_client_impl.cc",
  680. "browser/url_bar/page_info_client_impl.h",
  681. "browser/url_bar/trusted_cdn_observer.cc",
  682. "browser/url_bar/trusted_cdn_observer.h",
  683. "browser/verdict_cache_manager_factory.cc",
  684. "browser/verdict_cache_manager_factory.h",
  685. "browser/webapps/webapk_install_scheduler.cc",
  686. "browser/webapps/webapk_install_scheduler.h",
  687. "browser/webapps/webapk_install_scheduler_bridge.cc",
  688. "browser/webapps/webapk_install_scheduler_bridge.h",
  689. "browser/webapps/webapps_utils.cc",
  690. "browser/webapps/webapps_utils.h",
  691. "browser/webapps/weblayer_app_banner_manager_android.cc",
  692. "browser/webapps/weblayer_app_banner_manager_android.h",
  693. "browser/webapps/weblayer_webapps_client.cc",
  694. "browser/webapps/weblayer_webapps_client.h",
  695. "browser/weblayer_factory_impl_android.cc",
  696. "browser/weblayer_factory_impl_android.h",
  697. "browser/weblayer_impl_android.cc",
  698. "browser/weblayer_impl_android.h",
  699. "browser/webrtc/media_stream_manager.cc",
  700. "browser/webrtc/media_stream_manager.h",
  701. "common/crash_reporter/crash_keys.cc",
  702. "common/crash_reporter/crash_keys.h",
  703. "common/crash_reporter/crash_reporter_client.cc",
  704. "common/crash_reporter/crash_reporter_client.h",
  705. ]
  706. deps += [
  707. "//components/android_autofill/browser",
  708. "//components/android_autofill/browser:android",
  709. "//components/android_system_error_page",
  710. "//components/autofill_assistant/browser",
  711. "//components/autofill_assistant/browser/android:dependencies_android",
  712. "//components/autofill_assistant/content/browser",
  713. "//components/browser_ui/accessibility/android",
  714. "//components/browser_ui/client_certificate/android",
  715. "//components/browser_ui/contacts_picker/android",
  716. "//components/browser_ui/photo_picker/android",
  717. "//components/browser_ui/share/android",
  718. "//components/browser_ui/site_settings/android",
  719. "//components/browser_ui/sms/android",
  720. "//components/cdm/browser",
  721. "//components/component_updater/android:embedded_component_loader",
  722. "//components/component_updater/installer_policies",
  723. "//components/content_capture/android",
  724. "//components/content_settings/android",
  725. "//components/crash/android:crash_android",
  726. "//components/crash/android:crashpad_main",
  727. "//components/embedder_support/android:context_menu",
  728. "//components/embedder_support/android:util",
  729. "//components/embedder_support/android:web_contents_delegate",
  730. "//components/embedder_support/android/metrics",
  731. "//components/external_intents/android",
  732. "//components/favicon/android",
  733. "//components/image_fetcher:android",
  734. "//components/infobars/android",
  735. "//components/installedapp/android",
  736. "//components/javascript_dialogs",
  737. "//components/location/android:settings",
  738. "//components/media_router/browser",
  739. "//components/metrics",
  740. "//components/minidump_uploader",
  741. "//components/navigation_interception",
  742. "//components/page_info/android",
  743. "//components/payments/content/android",
  744. "//components/permissions/android:native",
  745. "//components/resources:android_resources",
  746. "//components/safe_browsing/android:remote_database_manager",
  747. "//components/safe_browsing/android:safe_browsing_api_handler",
  748. "//components/safe_browsing/content/browser/triggers",
  749. "//components/safe_browsing/core/browser",
  750. "//components/safe_browsing/core/browser:token_fetcher",
  751. "//components/safe_browsing/core/browser:verdict_cache_manager",
  752. "//components/safe_browsing/core/browser/db:allowlist_checker_client",
  753. "//components/safe_browsing/core/browser/db:database_manager",
  754. "//components/safe_browsing/core/browser/realtime:policy_engine",
  755. "//components/safe_browsing/core/browser/realtime:url_lookup_service",
  756. "//components/safe_browsing/core/common",
  757. "//components/safe_browsing/core/common/proto:client_model_proto",
  758. "//components/safe_browsing/core/common/proto:csd_proto",
  759. "//components/security_interstitials/content:security_interstitial_page",
  760. "//components/security_interstitials/core:unsafe_resource",
  761. "//components/security_interstitials/core/",
  762. "//components/security_state/content/android",
  763. "//components/site_engagement/content",
  764. "//components/subresource_filter/android",
  765. "//components/translate/content/android",
  766. "//components/version_info/android:channel_getter",
  767. "//components/webauthn/android",
  768. "//google_apis",
  769. "//services/resource_coordinator/public/cpp/memory_instrumentation:browser",
  770. "//ui/android",
  771. "//url:gurl_android",
  772. "//weblayer/browser/java:jni",
  773. ]
  774. # Necessary to avoid GN errors in Cast builds, where this target isn't defined.
  775. if (safe_browsing_mode > 0) {
  776. deps += [ "//components/safe_browsing/content/browser:safe_browsing_blocking_page" ]
  777. }
  778. } else {
  779. deps += [ "//ui/views/controls/webview" ]
  780. }
  781. if (enable_vulkan) {
  782. deps += [ "//gpu/vulkan/init" ]
  783. }
  784. if (mojo_media_host == "browser") {
  785. deps += [ "//media/mojo/services" ]
  786. }
  787. if (is_win) {
  788. deps += [ "//content:sandbox_helper_win" ]
  789. if (win_console_app) {
  790. defines = [ "WIN_CONSOLE_APP" ]
  791. }
  792. }
  793. if (is_linux || is_chromeos) {
  794. deps += [
  795. "//build/config/freetype",
  796. "//third_party/fontconfig",
  797. ]
  798. }
  799. if (toolkit_views) {
  800. deps += [ "//ui/views" ]
  801. }
  802. if (use_aura) {
  803. deps += [
  804. "//ui/aura",
  805. "//ui/events",
  806. "//ui/strings",
  807. "//ui/wm",
  808. ]
  809. }
  810. }
  811. if (is_android) {
  812. source_set("weblayer_android_test_jni_impl") {
  813. testonly = true
  814. sources = [
  815. "browser/test/test_infobar.cc",
  816. "browser/test/test_infobar.h",
  817. "browser/test/test_weblayer_impl.cc",
  818. ]
  819. deps = [
  820. ":weblayer_lib_base",
  821. "//base",
  822. "//base/test:test_support",
  823. "//components/content_settings/core/browser",
  824. "//components/infobars/android",
  825. "//components/infobars/content",
  826. "//components/infobars/core",
  827. "//components/translate/core/browser",
  828. "//content/public/browser",
  829. "//content/public/test/android:content_native_test_support",
  830. "//content/test:test_support",
  831. "//testing/gtest",
  832. "//weblayer/browser/java:test_jni",
  833. ]
  834. }
  835. # Lib used in standalone WebView which allows manual JNI registration.
  836. static_library("weblayer_lib_webview") {
  837. public_deps = [ ":weblayer_lib_base" ]
  838. deps = [
  839. "//base",
  840. "//weblayer/browser/java:jni",
  841. "//weblayer/browser/java:weblayer_jni_registration",
  842. ]
  843. sources = [
  844. "$target_gen_dir/browser/java/weblayer_jni_registration.h",
  845. "browser/web_view_compatibility_helper_impl.cc",
  846. "browser/web_view_compatibility_helper_impl.h",
  847. ]
  848. defines = [ "WEBLAYER_MANUAL_JNI_REGISTRATION" ]
  849. # Explicit dependency required for JNI registration to be able to
  850. # find the native side functions.
  851. if (is_component_build) {
  852. deps += [
  853. "//components/browser_ui/photo_picker/android",
  854. "//device/gamepad",
  855. "//media/midi",
  856. "//ui/events/devices",
  857. ]
  858. }
  859. }
  860. static_library("weblayer_lib_webview_test") {
  861. testonly = true
  862. public_deps = [ ":weblayer_lib_base" ]
  863. deps = [
  864. ":weblayer_android_test_jni_impl",
  865. "//base",
  866. "//weblayer/browser/java:jni",
  867. "//weblayer/browser/java:weblayer_jni_registration",
  868. ]
  869. sources = [
  870. "$target_gen_dir/browser/java/weblayer_jni_registration.h",
  871. "browser/web_view_compatibility_helper_impl.cc",
  872. "browser/web_view_compatibility_helper_impl.h",
  873. ]
  874. defines = [ "WEBLAYER_MANUAL_JNI_REGISTRATION" ]
  875. # Explicit dependency required for JNI registration to be able to
  876. # find the native side functions.
  877. if (is_component_build) {
  878. deps += [
  879. "//device/gamepad",
  880. "//media/midi",
  881. "//ui/events/devices",
  882. ]
  883. }
  884. }
  885. # Lib used in Monochrome which does not support manual JNI registration.
  886. # Separate from the standalone WebView version to reduce APK size.
  887. static_library("weblayer_lib") {
  888. public_deps = [ ":weblayer_lib_base" ]
  889. deps = [ "//weblayer/browser/java:jni" ]
  890. sources = [
  891. "browser/web_view_compatibility_helper_impl.cc",
  892. "browser/web_view_compatibility_helper_impl.h",
  893. ]
  894. }
  895. shared_library("libweblayer_test") {
  896. testonly = true
  897. sources = [
  898. "$target_gen_dir/browser/java/test_weblayer_jni_registration.h",
  899. "app/entry_point.cc",
  900. ]
  901. deps = [
  902. ":weblayer_lib_webview_test",
  903. "//base",
  904. "//components/android_autofill/browser/test_support:component_autofill_provider_native_test_support",
  905. "//content/public/app",
  906. "//weblayer/browser/java:test_weblayer_jni_registration",
  907. ]
  908. configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
  909. configs += [ "//build/config/android:hide_all_but_jni" ]
  910. }
  911. } else {
  912. source_set("weblayer_lib") {
  913. public_deps = [ ":weblayer_lib_base" ]
  914. }
  915. }
  916. grit("resources") {
  917. source = "weblayer_resources.grd"
  918. use_brotli = true
  919. outputs = [
  920. "grit/weblayer_resources.h",
  921. "weblayer_resources.pak",
  922. ]
  923. deps = [ "//weblayer/browser/webui:mojo_bindings_webui_js" ]
  924. }
  925. # TODO(jam): move weblayer_shell_resources_grit and copy_shell_resources here in
  926. # a way that's shareable?