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