summaryrefslogtreecommitdiff
path: root/chromium/weblayer/browser/java/BUILD.gn
blob: d83e7746f585c6bf9e842521c7568aff778c764b (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
# 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("//weblayer/variables.gni")

android_resources("weblayer_resources") {
  sources = [
    "res/layout/weblayer_url_bar.xml",
    "res/values/dimens.xml",
  ]
  custom_package = "org.chromium.weblayer_private"
  deps = [
    "//components/browser_ui/strings/android:browser_ui_strings_grd",
    "//components/browser_ui/styles/android:java_resources",
    "//components/permissions/android:java_resources",
    "//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/permissions_resource_id.h" ]
}

java_cpp_enum("generated_enums") {
  sources = [
    "//weblayer/browser/controls_visibility_reason.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/BrowserFragmentImpl.java",
    "org/chromium/weblayer_private/BrowserImpl.java",
    "org/chromium/weblayer_private/BrowserViewController.java",
    "org/chromium/weblayer_private/ChildProcessServiceImpl.java",
    "org/chromium/weblayer_private/ContentView.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/InterceptNavigationDelegateImpl.java",
    "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.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/ProfileManager.java",
    "org/chromium/weblayer_private/RemoteFragmentImpl.java",
    "org/chromium/weblayer_private/TabCallbackProxy.java",
    "org/chromium/weblayer_private/TabImpl.java",
    "org/chromium/weblayer_private/TopControlsContainerView.java",
    "org/chromium/weblayer_private/UrlBarControllerImpl.java",
    "org/chromium/weblayer_private/WebContentsGestureStateTracker.java",
    "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
    "org/chromium/weblayer_private/WebLayerFactoryImpl.java",
    "org/chromium/weblayer_private/WebLayerImpl.java",
    "org/chromium/weblayer_private/WebLayerTabModalPresenter.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/modaldialog/android:java",
    "//components/browser_ui/styles/android:java",
    "//components/browser_ui/styles/android:java_resources",
    "//components/browser_ui/util/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: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/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/permissions/android: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",
    "//content/public/android:content_java",
    "//net/android:net_java",
    "//services/network/public/mojom:mojom_java",
    "//third_party/android_deps:androidx_core_core_java",
    "//third_party/android_deps:com_android_support_support_compat_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/TestWebLayerImpl.java" ]
  deps = [
    ":weblayer_test_resources",
    "//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" ]
}

generate_jni("jni") {
  sources = [
    "org/chromium/weblayer_private/BrowserImpl.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/InterceptNavigationDelegateImpl.java",
    "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.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/TopControlsContainerView.java",
    "org/chromium/weblayer_private/UrlBarControllerImpl.java",
    "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
    "org/chromium/weblayer_private/WebLayerImpl.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/StrictModeWorkaround.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/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/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",
  ]
}

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