summaryrefslogtreecommitdiff
path: root/chromium/weblayer/browser/java/BUILD.gn
blob: 38cdda128ce9fee08314f68182709e2ce68050b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
import("//weblayer/variables.gni")

android_resources("weblayer_resources") {
  sources = [
    "res/drawable/weblayer_infobar_wrapper_bg.xml",
    "res/drawable/weblayer_tab_indicator.xml",
    "res/layout/site_settings_layout.xml",
    "res/layout/weblayer_infobar_translate_compact_content.xml",
    "res/layout/weblayer_infobar_translate_tab_content.xml",
    "res/layout/weblayer_translate_menu_item.xml",
    "res/layout/weblayer_translate_menu_item_checked.xml",
    "res/layout/weblayer_url_bar.xml",
    "res/values/colors.xml",
    "res/values/dimens.xml",
    "res/values/styles.xml",
  ]
  custom_package = "org.chromium.weblayer_private"
  deps = [
    ":weblayer_strings_grd",
    "//components/blocked_content/android:java_resources",
    "//components/browser_ui/http_auth/android:java_resources",
    "//components/browser_ui/media/android:java_resources",
    "//components/browser_ui/settings/android:java_resources",
    "//components/browser_ui/site_settings/android:java_resources",
    "//components/browser_ui/strings/android:browser_ui_strings_grd",
    "//components/browser_ui/styles/android:java_resources",
    "//components/infobars/android:java_resources",
    "//components/page_info/android:java_resources",
    "//components/permissions/android:java_resources",
    "//components/translate/content/android:java_resources",
    "//third_party/android_deps:com_google_android_material_material_java",
    "//weblayer:components_java_strings",
  ]
}

generate_product_config_srcjar("weblayer_product_config") {
  java_package = weblayer_product_config_java_package
}

java_cpp_template("resource_id_javagen") {
  sources = [ "ResourceId.template" ]
  package_path = "org/chromium/weblayer_private/resources"
  inputs = [
    "//components/resources/android/blocked_content_resource_id.h",
    "//components/resources/android/page_info_resource_id.h",
    "//components/resources/android/permissions_resource_id.h",
  ]
}

java_strings_grd("weblayer_strings_grd") {
  grd_file = "weblayer_strings.grd"
  outputs = [ "values/weblayer_strings.xml" ] +
            process_file_template(
                android_bundle_locales_as_resources,
                [ "values-{{source_name_part}}/weblayer_strings.xml" ])
}

java_cpp_enum("generated_enums") {
  sources = [
    "//weblayer/browser/controls_visibility_reason.h",
    "//weblayer/browser/infobar_android.h",
    "//weblayer/browser/translate_utils.h",
    "//weblayer/public/download.h",
    "//weblayer/public/navigation.h",
    "//weblayer/public/new_tab_delegate.h",
    "//weblayer/public/profile.h",
  ]
}

android_library("java") {
  sources = [
    "org/chromium/weblayer_private/ActionModeCallback.java",
    "org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
    "org/chromium/weblayer_private/AutofillView.java",
    "org/chromium/weblayer_private/BrowserControlsContainerView.java",
    "org/chromium/weblayer_private/BrowserFragmentImpl.java",
    "org/chromium/weblayer_private/BrowserImpl.java",
    "org/chromium/weblayer_private/BrowserViewController.java",
    "org/chromium/weblayer_private/ChildProcessServiceImpl.java",
    "org/chromium/weblayer_private/ConfirmInfoBar.java",
    "org/chromium/weblayer_private/ContentViewRenderView.java",
    "org/chromium/weblayer_private/CookieManagerImpl.java",
    "org/chromium/weblayer_private/CrashReporterControllerImpl.java",
    "org/chromium/weblayer_private/DownloadCallbackProxy.java",
    "org/chromium/weblayer_private/DownloadImpl.java",
    "org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
    "org/chromium/weblayer_private/ExternalNavigationDelegateImpl.java",
    "org/chromium/weblayer_private/FragmentAndroidPermissionDelegate.java",
    "org/chromium/weblayer_private/FragmentWindowAndroid.java",
    "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
    "org/chromium/weblayer_private/InfoBar.java",
    "org/chromium/weblayer_private/InfoBarCompactLayout.java",
    "org/chromium/weblayer_private/InfoBarContainer.java",
    "org/chromium/weblayer_private/InfoBarContainerLayout.java",
    "org/chromium/weblayer_private/InfoBarContainerView.java",
    "org/chromium/weblayer_private/InfoBarUiItem.java",
    "org/chromium/weblayer_private/InfoBarWrapper.java",
    "org/chromium/weblayer_private/IntentUtils.java",
    "org/chromium/weblayer_private/InterceptNavigationDelegateClientImpl.java",
    "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
    "org/chromium/weblayer_private/MediaSessionManager.java",
    "org/chromium/weblayer_private/MediaStreamManager.java",
    "org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
    "org/chromium/weblayer_private/NavigationControllerImpl.java",
    "org/chromium/weblayer_private/NavigationImpl.java",
    "org/chromium/weblayer_private/NewTabCallbackProxy.java",
    "org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java",
    "org/chromium/weblayer_private/ProfileImpl.java",
    "org/chromium/weblayer_private/ProfileManager.java",
    "org/chromium/weblayer_private/RemoteFragmentImpl.java",
    "org/chromium/weblayer_private/SiteSettingsFragmentImpl.java",
    "org/chromium/weblayer_private/SwipableOverlayView.java",
    "org/chromium/weblayer_private/TabCallbackProxy.java",
    "org/chromium/weblayer_private/TabImpl.java",
    "org/chromium/weblayer_private/TranslateCompactInfoBar.java",
    "org/chromium/weblayer_private/TranslateMenu.java",
    "org/chromium/weblayer_private/TranslateMenuHelper.java",
    "org/chromium/weblayer_private/TranslateOptions.java",
    "org/chromium/weblayer_private/TranslateTabContent.java",
    "org/chromium/weblayer_private/TranslateTabLayout.java",
    "org/chromium/weblayer_private/UrlBarControllerImpl.java",
    "org/chromium/weblayer_private/WebContentsGestureStateTracker.java",
    "org/chromium/weblayer_private/WebLayerAccessibilityUtil.java",
    "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
    "org/chromium/weblayer_private/WebLayerFactoryImpl.java",
    "org/chromium/weblayer_private/WebLayerImpl.java",
    "org/chromium/weblayer_private/WebLayerNotificationBuilder.java",
    "org/chromium/weblayer_private/WebLayerNotificationChannels.java",
    "org/chromium/weblayer_private/WebLayerSiteSettingsClient.java",
    "org/chromium/weblayer_private/WebLayerTabModalPresenter.java",
    "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
    "org/chromium/weblayer_private/WebShareServiceFactory.java",
    "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java",
    "org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
    "org/chromium/weblayer_private/metrics/UmaUtils.java",
    "org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
    "org/chromium/weblayer_private/resources/ResourceMapper.java",
  ]

  deps = [
    ":gms_bridge_java",
    ":interfaces_java",
    ":weblayer_resources",
    "//base:base_java",
    "//base:jni_java",
    "//components/autofill/android/provider:java",
    "//components/browser_ui/client_certificate/android:java",
    "//components/browser_ui/http_auth/android:java",
    "//components/browser_ui/media/android:java",
    "//components/browser_ui/modaldialog/android:java",
    "//components/browser_ui/notifications/android:java",
    "//components/browser_ui/settings/android:java",
    "//components/browser_ui/share/android:java",
    "//components/browser_ui/site_settings/android:java",
    "//components/browser_ui/styles/android:java",
    "//components/browser_ui/util/android:java",
    "//components/browser_ui/webshare/android:java",
    "//components/browser_ui/widget/android:java",
    "//components/content_settings/android:java",
    "//components/crash/android:handler_java",
    "//components/crash/android:java",
    "//components/download/internal/common:internal_java",
    "//components/embedder_support/android:application_java",
    "//components/embedder_support/android:browser_context_java",
    "//components/embedder_support/android:content_view_java",
    "//components/embedder_support/android:context_menu_java",
    "//components/embedder_support/android:util_java",
    "//components/embedder_support/android:web_contents_delegate_java",
    "//components/embedder_support/android/metrics:java",
    "//components/external_intents/android:java",
    "//components/find_in_page/android:java",
    "//components/infobars/android:java",
    "//components/infobars/core:infobar_enums_java",
    "//components/javascript_dialogs/android:java",
    "//components/location/android:settings_java",
    "//components/metrics:metrics_java",
    "//components/minidump_uploader:minidump_uploader_java",
    "//components/navigation_interception/android:navigation_interception_java",
    "//components/omnibox/browser:browser_java",
    "//components/page_info/android:java",
    "//components/permissions/android:java",
    "//components/safe_browsing/android:safe_browsing_java",
    "//components/security_interstitials/content/android:java",
    "//components/spellcheck/browser/android:java",
    "//components/url_formatter/android:url_formatter_java",
    "//components/variations/android:variations_java",
    "//components/version_info/android:version_constants_java",
    "//components/webapk/android/libs/client:java",
    "//components/webapk/android/libs/common:java",
    "//components/webrtc/android:java",
    "//content/public/android:content_java",
    "//mojo/public/java:bindings_java",
    "//net/android:net_java",
    "//services/network/public/mojom:cookies_mojom_java",
    "//services/network/public/mojom:mojom_java",
    "//services/service_manager/public/java:service_manager_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_java",
    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
    "//third_party/android_deps:androidx_core_core_java",
    "//third_party/android_deps:androidx_fragment_fragment_java",
    "//third_party/android_deps:androidx_preference_preference_java",
    "//third_party/android_deps:com_google_android_material_material_java",
    "//third_party/blink/public/mojom:android_mojo_bindings_java",
    "//ui/android:ui_full_java",
    "//ui/android:ui_java",
    "//url:gurl_java",
  ]
  srcjar_deps = [
    ":generated_enums",
    ":resource_id_javagen",
    ":weblayer_product_config",
  ]
  jar_excluded_patterns = [ "*/ProductConfig.class" ]
  annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]

  # Needed for android.webkit.WebView(Delegate|Factory)
  alternative_android_sdk_dep =
      "//third_party/android_sdk:public_framework_system_java"
}

generate_jni_registration("weblayer_jni_registration") {
  targets = [ ":java" ]
  header_output = "$target_gen_dir/$target_name.h"
  namespace = "weblayer"
}

android_resources("weblayer_test_resources") {
  sources = [
    "res_test/layout/test_layout.xml",
    "res_test/values/values.xml",
  ]
  custom_package = "org.chromium.weblayer_private.test"
}

android_library("test_java") {
  testonly = true
  sources = [
    "org/chromium/weblayer_private/test/TestInfoBar.java",
    "org/chromium/weblayer_private/test/TestWebLayerImpl.java",
  ]
  deps = [
    ":interfaces_java",
    ":java",
    ":weblayer_test_resources",
    "//base:jni_java",
    "//components/location/android:location_java",
    "//components/permissions/android:java",
    "//content/public/test/android:content_java_test_support",
    "//net/android:net_java",
    "//services/device/public/java:geolocation_java",
    "//services/device/public/java:geolocation_java_test_support",
    "//ui/android:ui_full_java",
  ]
  srcjar_deps = [ ":test_aidl" ]
  annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}

generate_jni("test_jni") {
  testonly = true
  sources = [
    "org/chromium/weblayer_private/test/TestInfoBar.java",
    "org/chromium/weblayer_private/test/TestWebLayerImpl.java",
  ]
}

generate_jni("jni") {
  sources = [
    "org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
    "org/chromium/weblayer_private/BrowserControlsContainerView.java",
    "org/chromium/weblayer_private/BrowserImpl.java",
    "org/chromium/weblayer_private/ConfirmInfoBar.java",
    "org/chromium/weblayer_private/ContentViewRenderView.java",
    "org/chromium/weblayer_private/CookieManagerImpl.java",
    "org/chromium/weblayer_private/DownloadCallbackProxy.java",
    "org/chromium/weblayer_private/DownloadImpl.java",
    "org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
    "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
    "org/chromium/weblayer_private/InfoBar.java",
    "org/chromium/weblayer_private/InfoBarContainer.java",
    "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
    "org/chromium/weblayer_private/MediaStreamManager.java",
    "org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
    "org/chromium/weblayer_private/NavigationControllerImpl.java",
    "org/chromium/weblayer_private/NavigationImpl.java",
    "org/chromium/weblayer_private/NewTabCallbackProxy.java",
    "org/chromium/weblayer_private/ProfileImpl.java",
    "org/chromium/weblayer_private/TabCallbackProxy.java",
    "org/chromium/weblayer_private/TabImpl.java",
    "org/chromium/weblayer_private/TranslateCompactInfoBar.java",
    "org/chromium/weblayer_private/UrlBarControllerImpl.java",
    "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
    "org/chromium/weblayer_private/WebLayerFactoryImpl.java",
    "org/chromium/weblayer_private/WebLayerImpl.java",
    "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
    "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java",
    "org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
    "org/chromium/weblayer_private/metrics/UmaUtils.java",
    "org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
    "org/chromium/weblayer_private/resources/ResourceMapper.java",
  ]
}

android_library("interfaces_java") {
  sources = [
    "org/chromium/weblayer_private/interfaces/APICallException.java",
    "org/chromium/weblayer_private/interfaces/BrowserFragmentArgs.java",
    "org/chromium/weblayer_private/interfaces/BrowsingDataType.java",
    "org/chromium/weblayer_private/interfaces/CookieChangeCause.java",
    "org/chromium/weblayer_private/interfaces/DownloadError.java",
    "org/chromium/weblayer_private/interfaces/DownloadState.java",
    "org/chromium/weblayer_private/interfaces/LoadError.java",
    "org/chromium/weblayer_private/interfaces/NavigateParams.java",
    "org/chromium/weblayer_private/interfaces/NavigationState.java",
    "org/chromium/weblayer_private/interfaces/NewTabType.java",
    "org/chromium/weblayer_private/interfaces/ObjectWrapper.java",
    "org/chromium/weblayer_private/interfaces/ScrollNotificationType.java",
    "org/chromium/weblayer_private/interfaces/SettingType.java",
    "org/chromium/weblayer_private/interfaces/SiteSettingsFragmentArgs.java",
    "org/chromium/weblayer_private/interfaces/SiteSettingsIntentHelper.java",
    "org/chromium/weblayer_private/interfaces/StrictModeWorkaround.java",
    "org/chromium/weblayer_private/interfaces/UrlBarOptionsKeys.java",
    "org/chromium/weblayer_private/interfaces/WebLayerVersionConstants.java",
  ]

  deps = [ "//third_party/android_deps:androidx_annotation_annotation_java" ]

  srcjar_deps = [ ":aidl" ]
}

# Separate target to allow for a dependency on GmsCore without pulling in all of
# java classes. It compiles the abstract class; implementations are compiled
# separately.
android_library("gms_bridge_java") {
  sources = [
    "org/chromium/weblayer_private/GmsBridge.java",
    "org/chromium/weblayer_private/GmsBridgeImpl.java",
  ]

  deps = [
    "//base:base_java",
    "//components/embedder_support/android/metrics:java",
  ]

  # The appropriate .class file will be loaded via a dependency to a library
  # like :gms_bridge_upstream_impl_java below.
  jar_excluded_patterns = [ "*/GmsBridgeImpl.class" ]
}

# This target compiles the implementation of GmsBridge for public targets.
android_library("gms_bridge_upstream_impl_java") {
  sources = [ "org/chromium/weblayer_private/GmsBridgeImpl.java" ]
  deps = [ ":gms_bridge_java" ]
}

android_aidl("aidl") {
  import_include = [ "." ]
  sources = [
    "org/chromium/weblayer_private/interfaces/IBrowser.aidl",
    "org/chromium/weblayer_private/interfaces/IBrowserClient.aidl",
    "org/chromium/weblayer_private/interfaces/IBrowserFragment.aidl",
    "org/chromium/weblayer_private/interfaces/IChildProcessService.aidl",
    "org/chromium/weblayer_private/interfaces/IClientDownload.aidl",
    "org/chromium/weblayer_private/interfaces/IClientNavigation.aidl",
    "org/chromium/weblayer_private/interfaces/ICookieChangedCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/ICookieManager.aidl",
    "org/chromium/weblayer_private/interfaces/ICrashReporterController.aidl",
    "org/chromium/weblayer_private/interfaces/ICrashReporterControllerClient.aidl",
    "org/chromium/weblayer_private/interfaces/IDownload.aidl",
    "org/chromium/weblayer_private/interfaces/IDownloadCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/IErrorPageCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/IFindInPageCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/IFullscreenCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/IMediaCaptureCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/INavigation.aidl",
    "org/chromium/weblayer_private/interfaces/INavigationController.aidl",
    "org/chromium/weblayer_private/interfaces/INavigationControllerClient.aidl",
    "org/chromium/weblayer_private/interfaces/IObjectWrapper.aidl",
    "org/chromium/weblayer_private/interfaces/IProfile.aidl",
    "org/chromium/weblayer_private/interfaces/IRemoteFragment.aidl",
    "org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl",
    "org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl",
    "org/chromium/weblayer_private/interfaces/ITab.aidl",
    "org/chromium/weblayer_private/interfaces/ITabClient.aidl",
    "org/chromium/weblayer_private/interfaces/IUrlBarController.aidl",
    "org/chromium/weblayer_private/interfaces/IWebLayer.aidl",
    "org/chromium/weblayer_private/interfaces/IWebLayerClient.aidl",
    "org/chromium/weblayer_private/interfaces/IWebLayerFactory.aidl",
    "org/chromium/weblayer_private/interfaces/IWebMessageCallbackClient.aidl",
    "org/chromium/weblayer_private/interfaces/IWebMessageReplyProxy.aidl",
  ]
}

android_aidl("test_aidl") {
  import_include = [ "." ]
  testonly = true
  sources =
      [ "org/chromium/weblayer_private/test_interfaces/ITestWebLayer.aidl" ]
}