blob: f2ce21a8e5113021add5fd43f19f2da74d9190ed [file] [log] [blame]
John Abd-El-Malek402a13f2019-08-23 07:06:401# 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
5import("//build/config/features.gni")
Clark DuVallc75c5d22019-11-12 23:00:386import("//build/config/locales.gni")
John Abd-El-Malek402a13f2019-08-23 07:06:407import("//build/config/sanitizers/sanitizers.gni")
8import("//build/config/ui.gni")
9import("//build/config/win/console_app.gni")
10import("//build/config/win/manifest.gni")
11import("//gpu/vulkan/features.gni")
12import("//media/media_options.gni")
13import("//mojo/public/tools/bindings/mojom.gni")
14import("//tools/grit/grit_rule.gni")
15import("//tools/grit/repack.gni")
16import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
17if (is_android) {
18 import("//build/config/android/config.gni")
19} else if (is_mac) {
20 import("//build/config/mac/rules.gni")
21 import("//build/mac/tweak_info_plist.gni")
22 import("//content/public/app/mac_helpers.gni")
23 import("//third_party/icu/config.gni")
24 import("//ui/gl/features.gni")
25 import("//v8/gni/v8.gni")
26}
27
28source_set("android_descriptors") {
29 sources = [
30 "browser/android_descriptors.h",
31 ]
32 public_deps = [
33 "//content/public/common:content_descriptors",
34 ]
35}
36
Clark DuVallc75c5d22019-11-12 23:00:3837if (is_android) {
38 grit("generate_components_strings") {
39 source = "../components/components_strings.grd"
40
41 # components_strings contains strings from all components. WebLayer
42 # will never display most of them, so we try to limit the included
43 # strings.
44 whitelist = rebase_path("grit_strings_whitelist.txt", root_build_dir)
45 inputs = [
46 "//weblayer/grit_strings_whitelist.txt",
47 ]
48 grit_flags = [
49 "-w",
50 whitelist,
51 ]
52 outputs = [
53 "grit/components_strings.h",
54 "java/res/values-am/components_strings.xml",
55 "java/res/values-ar/components_strings.xml",
56 "java/res/values-bg/components_strings.xml",
57 "java/res/values-bn/components_strings.xml",
58 "java/res/values-ca/components_strings.xml",
59 "java/res/values-cs/components_strings.xml",
60 "java/res/values-da/components_strings.xml",
61 "java/res/values-de/components_strings.xml",
62 "java/res/values-el/components_strings.xml",
63 "java/res/values-en-rGB/components_strings.xml",
64 "java/res/values-es/components_strings.xml",
65 "java/res/values-es-rUS/components_strings.xml",
66 "java/res/values-et/components_strings.xml",
67 "java/res/values-fa/components_strings.xml",
68 "java/res/values-fi/components_strings.xml",
69 "java/res/values-fr/components_strings.xml",
70 "java/res/values-gu/components_strings.xml",
71 "java/res/values-hi/components_strings.xml",
72 "java/res/values-hr/components_strings.xml",
73 "java/res/values-hu/components_strings.xml",
74 "java/res/values-in/components_strings.xml",
75 "java/res/values-it/components_strings.xml",
76 "java/res/values-iw/components_strings.xml",
77 "java/res/values-ja/components_strings.xml",
78 "java/res/values-kn/components_strings.xml",
79 "java/res/values-ko/components_strings.xml",
80 "java/res/values-lt/components_strings.xml",
81 "java/res/values-lv/components_strings.xml",
82 "java/res/values-ml/components_strings.xml",
83 "java/res/values-mr/components_strings.xml",
84 "java/res/values-ms/components_strings.xml",
85 "java/res/values-nb/components_strings.xml",
86 "java/res/values-nl/components_strings.xml",
87 "java/res/values-pl/components_strings.xml",
88 "java/res/values-pt-rBR/components_strings.xml",
89 "java/res/values-pt-rPT/components_strings.xml",
90 "java/res/values-ro/components_strings.xml",
91 "java/res/values-ru/components_strings.xml",
92 "java/res/values-sk/components_strings.xml",
93 "java/res/values-sl/components_strings.xml",
94 "java/res/values-sr/components_strings.xml",
95 "java/res/values-sv/components_strings.xml",
96 "java/res/values-sw/components_strings.xml",
97 "java/res/values-ta/components_strings.xml",
98 "java/res/values-te/components_strings.xml",
99 "java/res/values-th/components_strings.xml",
100 "java/res/values-tl/components_strings.xml",
101 "java/res/values-tr/components_strings.xml",
102 "java/res/values-uk/components_strings.xml",
103 "java/res/values-vi/components_strings.xml",
104 "java/res/values-zh-rCN/components_strings.xml",
105 "java/res/values-zh-rTW/components_strings.xml",
106 "java/res/values/components_strings.xml",
107 ]
108 foreach(_locale, locales_with_fake_bidi) {
109 outputs += [ "components_strings_${_locale}.pak" ]
110 }
111 }
112
113 repack("weblayer_locales") {
114 sources = [
115 "${root_gen_dir}/weblayer/components_strings_en-US.pak",
116 ]
117 deps = [
118 ":generate_components_strings",
119 ]
120 output = "$root_out_dir/weblayer/locales/en-US.pak"
121 }
122
123 android_assets("locale_pak_assets") {
124 disable_compression = true
125 renaming_sources = [ "$root_out_dir/weblayer/locales/en-US.pak" ]
126 renaming_destinations = [ "stored-locales/weblayer/en-US.pak" ]
127 treat_as_locale_paks = true
128 deps = [
129 ":weblayer_locales",
130 ]
131 }
132}
133
John Abd-El-Malek402a13f2019-08-23 07:06:40134jumbo_static_library("weblayer_lib") {
135 sources = [
John Abd-El-Malekc0b023c2019-08-24 20:46:29136 "app/content_main_delegate_impl.cc",
137 "app/content_main_delegate_impl.h",
138 "app/main.cc",
John Abd-El-Malekc0b023c2019-08-24 20:46:29139 "browser/browser_main_parts_impl.cc",
140 "browser/browser_main_parts_impl.h",
141 "browser/content_browser_client_impl.cc",
142 "browser/content_browser_client_impl.h",
Clark DuVall0c63dda2019-10-22 21:01:46143 "browser/file_select_helper.cc",
144 "browser/file_select_helper.h",
Evan Stade47692792019-11-14 22:20:52145 "browser/i18n_util.cc",
146 "browser/i18n_util.h",
Clark DuVall8d1f447b2019-10-21 19:31:44147 "browser/isolated_world_ids.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29148 "browser/navigation_controller_impl.cc",
149 "browser/navigation_controller_impl.h",
John Abd-El-Malek63ea6962019-08-27 00:49:31150 "browser/navigation_impl.cc",
151 "browser/navigation_impl.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29152 "browser/profile_impl.cc",
153 "browser/profile_impl.h",
Evan Stadec36cdbc62019-10-31 23:28:47154 "browser/ssl_blocking_page.cc",
155 "browser/ssl_blocking_page.h",
156 "browser/ssl_error_handler.cc",
157 "browser/ssl_error_handler.h",
158 "browser/ssl_host_state_delegate_impl.cc",
159 "browser/ssl_host_state_delegate_impl.h",
Scott Violet72fad2602019-11-06 16:42:16160 "browser/tab_impl.cc",
161 "browser/tab_impl.h",
Clark DuVall1644dbe2019-09-19 17:16:47162 "browser/weblayer_content_browser_overlay_manifest.cc",
163 "browser/weblayer_content_browser_overlay_manifest.h",
164 "browser/webui/web_ui_controller_factory.cc",
165 "browser/webui/web_ui_controller_factory.h",
166 "browser/webui/weblayer_internals_ui.cc",
167 "browser/webui/weblayer_internals_ui.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29168 "common/content_client_impl.cc",
169 "common/content_client_impl.h",
Tim Volodine805894b2019-10-23 17:41:57170 "common/features.cc",
171 "common/features.h",
Tobias Sargeantf3261002019-10-28 10:48:21172 "common/weblayer_paths.cc",
173 "common/weblayer_paths.h",
Bo Liu1cf15442019-11-23 02:36:50174 "public/common/switches.cc",
175 "public/common/switches.h",
Evan Stadedb1404e2019-10-18 00:16:26176 "public/download_delegate.h",
Evan Stade94c2a5652019-11-14 16:32:24177 "public/error_page_delegate.h",
Scott Violet47bd2942019-10-16 21:35:38178 "public/fullscreen_delegate.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29179 "public/main.h",
John Abd-El-Malek795fbea2019-08-23 21:57:31180 "public/navigation.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29181 "public/navigation_controller.h",
John Abd-El-Malek795fbea2019-08-23 21:57:31182 "public/navigation_observer.h",
Scott Violet72fad2602019-11-06 16:42:16183 "public/new_tab_delegate.h",
John Abd-El-Malekc0b023c2019-08-24 20:46:29184 "public/profile.h",
Scott Violet72fad2602019-11-06 16:42:16185 "public/tab.h",
186 "public/tab_observer.h",
Evan Stadec36cdbc62019-10-31 23:28:47187 "renderer/content_renderer_client_impl.cc",
188 "renderer/content_renderer_client_impl.h",
189 "renderer/ssl_error_helper.cc",
190 "renderer/ssl_error_helper.h",
Colin Blundell030a2632019-10-18 13:40:49191 "utility/content_utility_client_impl.cc",
192 "utility/content_utility_client_impl.h",
John Abd-El-Malek402a13f2019-08-23 07:06:40193 ]
194
Tim Volodine1718b8892019-10-31 16:17:21195 if (is_android) {
196 # TODO(timvolodine): move this to safe_browsing/
197 sources += [
Alex Clarke6aeb48b2019-11-13 19:40:24198 "browser/devtools_manager_delegate_android.cc",
199 "browser/devtools_manager_delegate_android.h",
200 "browser/devtools_server_android.cc",
201 "browser/devtools_server_android.h",
Tim Volodine1718b8892019-10-31 16:17:21202 "browser/safe_browsing/safe_browsing_service.cc",
203 "browser/safe_browsing/safe_browsing_service.h",
204 "browser/safe_browsing/safe_browsing_ui_manager.cc",
205 "browser/safe_browsing/safe_browsing_ui_manager.h",
206 "browser/safe_browsing/url_checker_delegate_impl.cc",
207 "browser/safe_browsing/url_checker_delegate_impl.h",
Alex Clarke6aeb48b2019-11-13 19:40:24208 "browser/weblayer_impl_android.cc",
Tim Volodine1718b8892019-10-31 16:17:21209 ]
210 }
211
John Abd-El-Malek402a13f2019-08-23 07:06:40212 configs += [
213 "//build/config:precompiled_headers",
214
215 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
216 "//build/config/compiler:no_size_t_to_int_warning",
217 ]
218
219 public_deps = [
220 ":android_descriptors",
221 ]
222 deps = [
223 "//base",
224 "//base:base_static",
225 "//base/third_party/dynamic_annotations",
226 "//cc",
Tobias Sargeant13eb3662019-10-31 09:18:36227 "//components/crash/content/app",
228 "//components/crash/content/browser",
Evan Stadec36cdbc62019-10-31 23:28:47229 "//components/security_interstitials/content:security_interstitial_page",
230 "//components/security_interstitials/content/renderer:security_interstitial_page_controller",
231 "//components/security_interstitials/core",
Doug Turner17eff5f8a2019-11-13 16:03:13232 "//components/version_info",
Pavel Shmakovb4aa4172019-11-05 17:45:15233 "//components/web_cache/browser",
John Abd-El-Malek402a13f2019-08-23 07:06:40234 "//content:resources",
235 "//content/app/resources",
John Abd-El-Malek402a13f2019-08-23 07:06:40236 "//content/public/app:both",
Scott Violet5844e4112019-09-10 21:11:46237 "//content/public/browser",
238 "//content/public/child",
John Abd-El-Malek402a13f2019-08-23 07:06:40239 "//content/public/common",
240 "//content/public/common:service_names",
Evan Stadec36cdbc62019-10-31 23:28:47241 "//content/public/renderer",
Colin Blundell030a2632019-10-18 13:40:49242 "//content/public/utility",
John Abd-El-Malek402a13f2019-08-23 07:06:40243 "//net",
244 "//net:net_resources",
245 "//sandbox",
Pavel Shmakov6eb4340f2019-10-17 11:02:14246 "//services/network/public/mojom",
Scott Violet5844e4112019-09-10 21:11:46247 "//services/service_manager/embedder:embedder_result_codes",
John Abd-El-Malek402a13f2019-08-23 07:06:40248 "//skia",
Evan Stade47692792019-11-14 22:20:52249 "//third_party/blink/public/common",
Gyuyoung Kim8c5d0772019-09-18 15:41:39250 "//third_party/blink/public/strings",
John Abd-El-Malek402a13f2019-08-23 07:06:40251 "//third_party/icu",
252 "//ui/base",
253 "//ui/base/clipboard",
254 "//ui/base/ime/init",
255 "//ui/display",
256 "//ui/events:events_base",
257 "//ui/gfx",
258 "//ui/gfx/geometry",
259 "//ui/gfx/ipc",
260 "//ui/gfx/ipc/geometry",
261 "//ui/gfx/ipc/skia",
262 "//ui/gl",
263 "//ui/platform_window",
Clark DuVall0c63dda2019-10-22 21:01:46264 "//ui/shell_dialogs",
Clark DuVall1644dbe2019-09-19 17:16:47265 "//ui/webui",
John Abd-El-Malek402a13f2019-08-23 07:06:40266 "//url",
267 "//v8",
Clark DuVall1644dbe2019-09-19 17:16:47268 "//weblayer:resources",
269 "//weblayer/browser/webui:mojo_bindings",
John Abd-El-Malek402a13f2019-08-23 07:06:40270 ]
271
Tim Volodine805894b2019-10-23 17:41:57272 if (is_android) {
Tobias Sargeant13eb3662019-10-31 09:18:36273 sources += [
Tobias Sargeant939390e62019-11-15 14:12:04274 "common/crash_reporter/crash_keys.cc",
275 "common/crash_reporter/crash_keys.h",
276 "common/crash_reporter/crash_reporter_client.cc",
277 "common/crash_reporter/crash_reporter_client.h",
Tobias Sargeant13eb3662019-10-31 09:18:36278 ]
279 deps += [
Colin Blundelle6c6234c2019-11-13 18:50:20280 "//android_webview:generate_aw_resources",
281 "//android_webview:generate_aw_strings",
Tobias Sargeant13eb3662019-10-31 09:18:36282 "//components/crash/android:crashpad_main",
Tim Volodinef4fe4f62019-11-21 20:10:33283 "//components/prefs",
Tim Volodine1718b8892019-10-31 16:17:21284 "//components/safe_browsing",
Tobias Sargeant13eb3662019-10-31 09:18:36285 "//components/safe_browsing/android:remote_database_manager",
Tim Volodinece717a52019-11-07 13:44:11286 "//components/safe_browsing/android:safe_browsing_api_handler",
Tim Volodine1718b8892019-10-31 16:17:21287 "//components/safe_browsing/browser",
288 "//components/safe_browsing/browser:network_context",
289 "//components/safe_browsing/db:database_manager",
Tim Volodinef4fe4f62019-11-21 20:10:33290 "//components/user_prefs",
Tobias Sargeant13eb3662019-10-31 09:18:36291 "//components/version_info/android:channel_getter",
292 ]
Tim Volodine805894b2019-10-23 17:41:57293 }
294
John Abd-El-Malek402a13f2019-08-23 07:06:40295 if (enable_vulkan) {
296 deps += [ "//gpu/vulkan/init" ]
297 }
298 if (mojo_media_host == "browser") {
299 deps += [
300 "//media/mojo/mojom:constants",
301 "//media/mojo/services",
302 ]
303 }
304
305 if (is_win) {
306 deps += [ "//content:sandbox_helper_win" ]
Reid Kleckner06e12bf2019-08-23 20:54:23307 if (win_console_app) {
308 defines = [ "WIN_CONSOLE_APP" ]
309 }
John Abd-El-Malek402a13f2019-08-23 07:06:40310 }
311
312 if (is_linux) {
313 deps += [
314 "//build/config/freetype",
315 "//third_party/fontconfig",
316 ]
317 }
318
319 if (is_android) {
320 deps += [
Clark DuVall621ae172019-10-24 16:11:56321 "//components/embedder_support/android:web_contents_delegate",
Scott Violet5844e4112019-09-10 21:11:46322 "//components/version_info",
John Abd-El-Malek402a13f2019-08-23 07:06:40323 "//ui/android",
Scott Violet0d03987a2019-08-27 22:08:21324 "//weblayer/browser/java:jni",
John Abd-El-Malek402a13f2019-08-23 07:06:40325 ]
Scott Violet1637edb2019-08-28 02:59:12326 sources += [
Clark DuVall03486022019-09-06 19:28:34327 "app/jni_onload.cc",
328 "app/jni_onload.h",
Scott Violet2a39d8e2019-09-09 22:30:14329 "browser/content_view_render_view.cc",
330 "browser/content_view_render_view.h",
John Abd-El-Malek4129c2ec2019-10-31 22:04:35331 "browser/download_callback_proxy.cc",
332 "browser/download_callback_proxy.h",
Evan Stade94c2a5652019-11-14 16:32:24333 "browser/error_page_callback_proxy.cc",
334 "browser/error_page_callback_proxy.h",
John Abd-El-Malek4129c2ec2019-10-31 22:04:35335 "browser/fullscreen_callback_proxy.cc",
336 "browser/fullscreen_callback_proxy.h",
Scott Violet72fad2602019-11-06 16:42:16337 "browser/new_tab_callback_proxy.cc",
338 "browser/new_tab_callback_proxy.h",
339 "browser/tab_callback_proxy.cc",
340 "browser/tab_callback_proxy.h",
Scott Violet2a39d8e2019-09-09 22:30:14341 "browser/top_controls_container_view.cc",
342 "browser/top_controls_container_view.h",
Scott Violet1637edb2019-08-28 02:59:12343 ]
John Abd-El-Malek402a13f2019-08-23 07:06:40344 }
Scott Violet5844e4112019-09-10 21:11:46345 if (!is_android) {
346 deps += [ "//ui/views/controls/webview" ]
347 }
John Abd-El-Malek402a13f2019-08-23 07:06:40348
349 if (toolkit_views) {
350 deps += [ "//ui/views" ]
351 }
352
353 if (use_aura) {
354 deps += [
355 "//ui/aura",
356 "//ui/events",
357 "//ui/strings",
358 "//ui/wm",
359 ]
360 }
361}
Bo Liu7e22c0a2019-08-26 21:44:28362
Clark DuVall1644dbe2019-09-19 17:16:47363grit("resources") {
364 source = "weblayer_resources.grd"
365
366 source_is_generated = true
367
368 outputs = [
369 "grit/weblayer_resources.h",
370 "weblayer_resources.pak",
371 ]
372 grit_flags = [
373 "-E",
374 "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
375 ]
376 deps = [
377 "//weblayer/browser/webui:mojo_bindings_js",
378 ]
379}
380
John Abd-El-Malek402a13f2019-08-23 07:06:40381# TODO(jam): move weblayer_shell_resources_grit and copy_shell_resources here in
382# a way that's shareable?
Bo Liu7e22c0a2019-08-26 21:44:28383
384if (is_android) {
385 shared_library("libweblayer") {
386 sources = [
Clark DuVall03486022019-09-06 19:28:34387 "app/entry_point.cc",
Bo Liu7e22c0a2019-08-26 21:44:28388 ]
389 deps = [
390 ":weblayer_lib",
391 "//base",
392 "//content/public/app:both",
393 ]
394 configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
395 configs += [ "//build/config/android:hide_all_but_jni" ]
396 }
Bo Liu7e22c0a2019-08-26 21:44:28397}