BUILD.gn 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  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("//build/config/android/config.gni")
  5. import("//build/config/android/rules.gni")
  6. import("//build/config/locales.gni")
  7. import("//device/vr/buildflags/buildflags.gni")
  8. import("//tools/grit/grit_rule.gni")
  9. import("//weblayer/variables.gni")
  10. _bundle_utils_output =
  11. "$target_gen_dir/org/chromium/weblayer_private/WebLayerBundleUtils.java"
  12. jinja_template("weblayer_bundle_utils") {
  13. input = "WebLayerBundleUtils.java.jinja2"
  14. output = _bundle_utils_output
  15. variables = "weblayer_in_split=$weblayer_in_split"
  16. }
  17. android_resources("weblayer_resources") {
  18. sources = [
  19. "res/drawable-hdpi/amp_icon.png",
  20. "res/drawable-mdpi/amp_icon.png",
  21. "res/drawable-xhdpi/amp_icon.png",
  22. "res/drawable-xxhdpi/amp_icon.png",
  23. "res/drawable-xxxhdpi/amp_icon.png",
  24. "res/drawable/weblayer_tab_indicator.xml",
  25. "res/layout/settings_layout.xml",
  26. "res/layout/weblayer_infobar_translate_compact_content.xml",
  27. "res/layout/weblayer_url_bar.xml",
  28. "res/values-night/styles.xml",
  29. "res/values/colors.xml",
  30. "res/values/dimens.xml",
  31. "res/values/styles.xml",
  32. ]
  33. deps = [
  34. ":weblayer_strings_grd",
  35. "//components/blocked_content/android:java_resources",
  36. "//components/browser_ui/accessibility/android:java_resources",
  37. "//components/browser_ui/contacts_picker/android:java_resources",
  38. "//components/browser_ui/http_auth/android:java_resources",
  39. "//components/browser_ui/media/android:java_resources",
  40. "//components/browser_ui/settings/android:java_resources",
  41. "//components/browser_ui/site_settings/android:java_resources",
  42. "//components/browser_ui/strings/android:browser_ui_strings_grd",
  43. "//components/browser_ui/theme/android:java_resources",
  44. "//components/infobars/android:java_resources",
  45. "//components/omnibox/browser:java_resources",
  46. "//components/page_info/android:java_resources",
  47. "//components/permissions/android:java_resources",
  48. # TODO(crbug.com/1137713): Determine why the creation of
  49. # //components/subresource_filter Java resources caused //weblayer's BundlePackageTest
  50. # to fail without this dep even in advance of //weblayer depending on the code that uses these
  51. # resources.
  52. "//components/subresource_filter/android:java_resources",
  53. "//components/translate/content/android:java_resources",
  54. "//third_party/android_deps:material_design_java",
  55. "//weblayer:components_java_strings",
  56. ]
  57. }
  58. generate_product_config_srcjar("weblayer_product_config") {
  59. java_package = weblayer_product_config_java_package
  60. }
  61. java_cpp_template("resource_id_javagen") {
  62. sources = [ "ResourceId.template" ]
  63. inputs = [
  64. "//components/resources/android/blocked_content_resource_id.h",
  65. "//components/resources/android/page_info_resource_id.h",
  66. "//components/resources/android/permissions_resource_id.h",
  67. "//components/resources/android/sms_resource_id.h",
  68. "//components/resources/android/webxr_resource_id.h",
  69. "$root_gen_dir/device/vr/buildflags/buildflags.h",
  70. ]
  71. deps = [ "//device/vr/buildflags" ]
  72. }
  73. java_strings_grd("weblayer_strings_grd") {
  74. grd_file = "weblayer_strings.grd"
  75. outputs = [ "values/weblayer_strings.xml" ] +
  76. process_file_template(
  77. android_bundle_locales_as_resources,
  78. [ "values-{{source_name_part}}/weblayer_strings.xml" ])
  79. }
  80. java_cpp_enum("generated_enums") {
  81. sources = [
  82. "//weblayer/browser/controls_visibility_reason.h",
  83. "//weblayer/public/download.h",
  84. "//weblayer/public/navigation.h",
  85. "//weblayer/public/new_tab_delegate.h",
  86. "//weblayer/public/profile.h",
  87. ]
  88. }
  89. android_library("base_module_java") {
  90. sources = [
  91. "org/chromium/weblayer_private/ApplicationInfoHelper.java",
  92. "org/chromium/weblayer_private/ChildProcessServiceImpl.java",
  93. "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java",
  94. ]
  95. deps = [
  96. ":base_module_interfaces_java",
  97. "$google_play_services_package:google_play_services_basement_java",
  98. "//base:base_java",
  99. "//base:jni_java",
  100. "//build/android:build_java",
  101. "//components/embedder_support/android:application_java",
  102. "//content/public/android:content_java",
  103. ]
  104. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  105. # Needed for android.webkit.WebViewFactory
  106. alternative_android_sdk_dep =
  107. "//third_party/android_sdk:public_framework_system_java"
  108. }
  109. android_library("java") {
  110. sources = [
  111. "org/chromium/weblayer_private/ActionModeCallback.java",
  112. "org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
  113. "org/chromium/weblayer_private/BrowserControlsContainerView.java",
  114. "org/chromium/weblayer_private/BrowserFragmentImpl.java",
  115. "org/chromium/weblayer_private/BrowserImpl.java",
  116. "org/chromium/weblayer_private/BrowserList.java",
  117. "org/chromium/weblayer_private/BrowserListObserver.java",
  118. "org/chromium/weblayer_private/BrowserViewController.java",
  119. "org/chromium/weblayer_private/ContactsPickerAdapter.java",
  120. "org/chromium/weblayer_private/ContentViewRenderView.java",
  121. "org/chromium/weblayer_private/ContentViewWithAutofill.java",
  122. "org/chromium/weblayer_private/CookieManagerImpl.java",
  123. "org/chromium/weblayer_private/CrashReporterControllerImpl.java",
  124. "org/chromium/weblayer_private/DownloadCallbackProxy.java",
  125. "org/chromium/weblayer_private/DownloadImpl.java",
  126. "org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
  127. "org/chromium/weblayer_private/ExternalIntentInIncognitoCallbackProxy.java",
  128. "org/chromium/weblayer_private/ExternalNavigationDelegateImpl.java",
  129. "org/chromium/weblayer_private/FaviconCallbackProxy.java",
  130. "org/chromium/weblayer_private/FragmentAndroidPermissionDelegate.java",
  131. "org/chromium/weblayer_private/FragmentHostingRemoteFragmentImpl.java",
  132. "org/chromium/weblayer_private/FragmentWindowAndroid.java",
  133. "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
  134. "org/chromium/weblayer_private/FullscreenToast.java",
  135. "org/chromium/weblayer_private/GoogleAccountAccessTokenFetcherProxy.java",
  136. "org/chromium/weblayer_private/GoogleAccountsCallbackProxy.java",
  137. "org/chromium/weblayer_private/HttpAuthHandlerImpl.java",
  138. "org/chromium/weblayer_private/InfoBarContainer.java",
  139. "org/chromium/weblayer_private/InfoBarContainerView.java",
  140. "org/chromium/weblayer_private/InstalledAppProviderFactory.java",
  141. "org/chromium/weblayer_private/IntentUtils.java",
  142. "org/chromium/weblayer_private/InterceptNavigationDelegateClientImpl.java",
  143. "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
  144. "org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
  145. "org/chromium/weblayer_private/NavigationControllerImpl.java",
  146. "org/chromium/weblayer_private/NavigationImpl.java",
  147. "org/chromium/weblayer_private/NewTabCallbackProxy.java",
  148. "org/chromium/weblayer_private/PageImpl.java",
  149. "org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java",
  150. "org/chromium/weblayer_private/PrerenderControllerImpl.java",
  151. "org/chromium/weblayer_private/ProfileImpl.java",
  152. "org/chromium/weblayer_private/ProfileManager.java",
  153. "org/chromium/weblayer_private/RemoteFragmentImpl.java",
  154. "org/chromium/weblayer_private/TabCallbackProxy.java",
  155. "org/chromium/weblayer_private/TabImpl.java",
  156. "org/chromium/weblayer_private/TranslateCompactInfoBar.java",
  157. "org/chromium/weblayer_private/UrlBarControllerImpl.java",
  158. "org/chromium/weblayer_private/WebApkInstallSchedulerBridge.java",
  159. "org/chromium/weblayer_private/WebApkInstallSchedulerClient.java",
  160. "org/chromium/weblayer_private/WebApkServiceConnection.java",
  161. "org/chromium/weblayer_private/WebContentsGestureStateTracker.java",
  162. "org/chromium/weblayer_private/WebLayerAccessibilityUtil.java",
  163. "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
  164. "org/chromium/weblayer_private/WebLayerFactoryImpl.java",
  165. "org/chromium/weblayer_private/WebLayerImpl.java",
  166. "org/chromium/weblayer_private/WebLayerNotificationChannels.java",
  167. "org/chromium/weblayer_private/WebLayerNotificationWrapperBuilder.java",
  168. "org/chromium/weblayer_private/WebLayerTabModalPresenter.java",
  169. "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
  170. "org/chromium/weblayer_private/WebShareServiceFactory.java",
  171. "org/chromium/weblayer_private/WebappsHelper.java",
  172. "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantBrowserControls.java",
  173. "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantDependencies.java",
  174. "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java",
  175. "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantTabChangeObserver.java",
  176. "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothChooserAndroidDelegate.java",
  177. "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothScanningPromptAndroidDelegate.java",
  178. "org/chromium/weblayer_private/media/MediaRouteDialogFragmentImpl.java",
  179. "org/chromium/weblayer_private/media/MediaRouterClientImpl.java",
  180. "org/chromium/weblayer_private/media/MediaSessionManager.java",
  181. "org/chromium/weblayer_private/media/MediaSessionNotificationHelper.java",
  182. "org/chromium/weblayer_private/media/MediaStreamManager.java",
  183. "org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
  184. "org/chromium/weblayer_private/metrics/UmaUtils.java",
  185. "org/chromium/weblayer_private/payments/WebLayerPaymentRequestFactory.java",
  186. "org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java",
  187. "org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
  188. "org/chromium/weblayer_private/resources/ResourceMapper.java",
  189. "org/chromium/weblayer_private/settings/SettingsFragmentImpl.java",
  190. "org/chromium/weblayer_private/settings/WebLayerAccessibilitySettingsDelegate.java",
  191. "org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java",
  192. _bundle_utils_output,
  193. ]
  194. resources_package = "org.chromium.weblayer_private"
  195. deps = [
  196. ":base_module_interfaces_java",
  197. ":base_module_java",
  198. ":gms_bridge_java",
  199. ":interfaces_java",
  200. ":weblayer_bundle_utils",
  201. ":weblayer_resources",
  202. "//base:base_java",
  203. "//base:jni_java",
  204. "//build/android:build_java",
  205. "//cc:cc_java",
  206. "//components/android_autofill/browser:java",
  207. "//components/autofill_assistant/android:public_dependencies_java",
  208. "//components/browser_ui/accessibility/android:java",
  209. "//components/browser_ui/banners/android:java",
  210. "//components/browser_ui/bottomsheet/android:factory_java",
  211. "//components/browser_ui/bottomsheet/android:java",
  212. "//components/browser_ui/bottomsheet/android:manager_java",
  213. "//components/browser_ui/bottomsheet/android/internal:java",
  214. "//components/browser_ui/client_certificate/android:java",
  215. "//components/browser_ui/contacts_picker/android:java",
  216. "//components/browser_ui/display_cutout/android:java",
  217. "//components/browser_ui/http_auth/android:java",
  218. "//components/browser_ui/media/android:java",
  219. "//components/browser_ui/modaldialog/android:java",
  220. "//components/browser_ui/notifications/android:java",
  221. "//components/browser_ui/photo_picker/android:java",
  222. "//components/browser_ui/settings/android:java",
  223. "//components/browser_ui/share/android:java",
  224. "//components/browser_ui/site_settings/android:java",
  225. "//components/browser_ui/sms/android:java",
  226. "//components/browser_ui/styles/android:java",
  227. "//components/browser_ui/util/android:java",
  228. "//components/browser_ui/webshare/android:java",
  229. "//components/browser_ui/widget/android:java",
  230. "//components/component_updater/android:embedded_component_loader_java",
  231. "//components/content_capture/android:java",
  232. "//components/content_settings/android:content_settings_enums_java",
  233. "//components/content_settings/android:java",
  234. "//components/crash/android:handler_java",
  235. "//components/crash/android:java",
  236. "//components/download/internal/background_service:internal_java",
  237. "//components/download/internal/common:internal_java",
  238. "//components/download/network:network_java",
  239. "//components/embedder_support/android:application_java",
  240. "//components/embedder_support/android:content_view_java",
  241. "//components/embedder_support/android:context_menu_java",
  242. "//components/embedder_support/android:simple_factory_key_java",
  243. "//components/embedder_support/android:util_java",
  244. "//components/embedder_support/android:web_contents_delegate_java",
  245. "//components/embedder_support/android/metrics:java",
  246. "//components/external_intents/android:java",
  247. "//components/favicon/android:java",
  248. "//components/find_in_page/android:java",
  249. "//components/image_fetcher:java",
  250. "//components/infobars/android:infobar_android_enums_java",
  251. "//components/infobars/android:java",
  252. "//components/infobars/core:infobar_enums_java",
  253. "//components/installedapp/android:java",
  254. "//components/javascript_dialogs/android:java",
  255. "//components/location/android:settings_java",
  256. "//components/media_router/browser/android:cast_options_provider_java",
  257. "//components/media_router/browser/android:java",
  258. "//components/metrics:metrics_java",
  259. "//components/minidump_uploader:minidump_uploader_java",
  260. "//components/navigation_interception/android:navigation_interception_java",
  261. "//components/omnibox/browser:browser_java",
  262. "//components/page_info/android:java",
  263. "//components/payments/content/android:java",
  264. "//components/payments/content/android:service_java",
  265. "//components/payments/mojom:mojom_java",
  266. "//components/permissions/android:java",
  267. "//components/prefs/android:java",
  268. "//components/safe_browsing/android:safe_browsing_java",
  269. "//components/security_interstitials/content/android:java",
  270. "//components/security_state/core:security_state_enums_java",
  271. "//components/signin/core/browser:signin_enums_java",
  272. "//components/spellcheck/browser/android:java",
  273. "//components/translate/content/android:java",
  274. "//components/translate/content/android:translate_android_enums_java",
  275. "//components/translate/core/common:translate_infobar_event_enum_java",
  276. "//components/url_formatter/android:url_formatter_java",
  277. "//components/user_prefs/android:java",
  278. "//components/variations/android:variations_java",
  279. "//components/version_info/android:version_constants_java",
  280. "//components/webapk/android/libs/client:java",
  281. "//components/webapps/browser/android:java",
  282. "//components/webapps/common/android:webapk_install_java",
  283. "//components/webauthn/android:java",
  284. "//components/webrtc/android:java",
  285. "//content/public/android:content_java",
  286. "//mojo/public/java:bindings_java",
  287. "//mojo/public/java:system_java",
  288. "//net/android:net_java",
  289. "//services/data_decoder/public/cpp/android:safe_json_java",
  290. "//services/network/public/mojom:cookies_mojom_java",
  291. "//services/network/public/mojom:mojom_java",
  292. "//services/network/public/mojom:url_loader_base_java",
  293. "//services/service_manager/public/java:service_manager_java",
  294. "//third_party/android_deps:material_design_java",
  295. "//third_party/androidx:androidx_annotation_annotation_java",
  296. "//third_party/androidx:androidx_appcompat_appcompat_java",
  297. "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
  298. "//third_party/androidx:androidx_core_core_java",
  299. "//third_party/androidx:androidx_fragment_fragment_java",
  300. "//third_party/androidx:androidx_media_media_java",
  301. "//third_party/androidx:androidx_mediarouter_mediarouter_java",
  302. "//third_party/androidx:androidx_preference_preference_java",
  303. "//third_party/blink/public/mojom:android_mojo_bindings_java",
  304. "//ui/android:ui_full_java",
  305. "//ui/android:ui_java",
  306. "//url:gurl_java",
  307. "//url:origin_java",
  308. ]
  309. if (enable_arcore) {
  310. sources += [
  311. "org/chromium/weblayer_private/ArCompositorDelegateImpl.java",
  312. "org/chromium/weblayer_private/ArCompositorDelegateProviderImpl.java",
  313. "org/chromium/weblayer_private/ArCoreVersionUtils.java",
  314. ]
  315. deps += [
  316. "//components/webxr/android:ar_java",
  317. "//components/webxr/android:ar_java_interfaces",
  318. ]
  319. }
  320. srcjar_deps = [
  321. ":generated_enums",
  322. ":resource_id_javagen",
  323. ":weblayer_product_config",
  324. ]
  325. jar_excluded_patterns = [ "*/ProductConfig.class" ]
  326. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  327. # Needed for android.webkit.WebView(Delegate|Factory)
  328. alternative_android_sdk_dep =
  329. "//third_party/android_sdk:public_framework_system_java"
  330. }
  331. java_group("upstream_java") {
  332. deps = [
  333. ":gms_bridge_upstream_impl_java",
  334. "//components/externalauth/android:google_delegate_public_impl_java",
  335. ]
  336. }
  337. generate_jni_registration("weblayer_jni_registration") {
  338. targets = [ ":java" ]
  339. header_output = "$target_gen_dir/$target_name.h"
  340. namespace = "weblayer"
  341. }
  342. android_resources("weblayer_test_resources") {
  343. sources = [
  344. "res_test/layout/test_layout.xml",
  345. "res_test/values/values.xml",
  346. ]
  347. }
  348. android_library("test_java") {
  349. testonly = true
  350. sources = [
  351. "org/chromium/weblayer_private/test/TestAutofillManagerWrapper.java",
  352. "org/chromium/weblayer_private/test/TestContentCaptureConsumer.java",
  353. "org/chromium/weblayer_private/test/TestInfoBar.java",
  354. "org/chromium/weblayer_private/test/TestWebLayerImpl.java",
  355. ]
  356. resources_package = "org.chromium.weblayer_private.test"
  357. deps = [
  358. ":base_module_interfaces_java",
  359. ":interfaces_java",
  360. ":java",
  361. ":test_interfaces_java",
  362. ":weblayer_test_resources",
  363. "//base:jni_java",
  364. "//build/android:build_java",
  365. "//components/android_autofill/browser:java",
  366. "//components/android_autofill/browser/test_support:component_autofill_provider_java_test_support",
  367. "//components/browser_ui/accessibility/android:java",
  368. "//components/content_capture/android:java",
  369. "//components/infobars/android:java",
  370. "//components/location/android:location_java",
  371. "//components/media_router/browser/android:java",
  372. "//components/media_router/browser/android:test_support_java",
  373. "//components/permissions/android:java",
  374. "//components/webauthn/android:java",
  375. "//components/webauthn/android:test_support_java",
  376. "//content/public/test/android:content_java_test_support",
  377. "//net/android:net_java",
  378. "//services/device/public/java:geolocation_java",
  379. "//services/device/public/java:geolocation_java_test_support",
  380. "//third_party/androidx:androidx_annotation_annotation_java",
  381. "//third_party/blink/public/mojom:android_mojo_bindings_java",
  382. "//ui/android:ui_full_java",
  383. "//url:origin_java",
  384. ]
  385. srcjar_deps = [ ":test_aidl" ]
  386. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  387. }
  388. robolectric_library("junit_test_support") {
  389. deps = [
  390. ":java",
  391. "//components/payments/content/android:java",
  392. "//components/payments/content/android:junit_test_support",
  393. "//components/payments/content/android:service_java",
  394. "//components/payments/mojom:mojom_java",
  395. "//content/public/android:content_java",
  396. "//mojo/public/java:bindings_java",
  397. "//mojo/public/java:system_java",
  398. "//third_party/androidx:androidx_annotation_annotation_java",
  399. "//third_party/blink/public/mojom:android_mojo_bindings_java",
  400. "//third_party/mockito:mockito_java",
  401. "//ui/android:ui_no_recycler_view_java",
  402. "//url:gurl_java",
  403. "//url:gurl_junit_test_support",
  404. "//url:origin_java",
  405. ]
  406. sources = [ "org/chromium/weblayer_private/payments/test_support/WebLayerPaymentRequestBuilder.java" ]
  407. }
  408. robolectric_binary("weblayer_junit_tests") {
  409. testonly = true
  410. sources = [ "org/chromium/weblayer_private/payments/WebLayerPaymentRequestServiceTest.java" ]
  411. resources_package = "org.chromium.weblayer_private.test"
  412. deps = [
  413. ":java",
  414. ":junit_test_support",
  415. "//base:base_java_test_support",
  416. "//base:base_junit_test_support",
  417. "//components/payments/content/android:java",
  418. "//components/payments/content/android:junit_test_support",
  419. "//components/payments/content/android:service_java",
  420. "//components/payments/mojom:mojom_java",
  421. "//components/security_state/core:security_state_enums_java",
  422. "//content/public/android:content_java",
  423. "//mojo/public/java:bindings_java",
  424. "//mojo/public/java:system_java",
  425. "//services/service_manager/public/java:service_manager_java",
  426. "//third_party/android_deps:robolectric_all_java",
  427. "//third_party/blink/public/mojom:android_mojo_bindings_java",
  428. "//third_party/junit",
  429. "//third_party/mockito:mockito_java",
  430. "//ui/android:ui_no_recycler_view_java",
  431. ]
  432. }
  433. generate_jni_registration("test_weblayer_jni_registration") {
  434. testonly = true
  435. targets = [ ":test_java" ]
  436. header_output = "$target_gen_dir/$target_name.h"
  437. namespace = "weblayer_test"
  438. }
  439. generate_jni("test_jni") {
  440. testonly = true
  441. sources = [
  442. "org/chromium/weblayer_private/test/TestInfoBar.java",
  443. "org/chromium/weblayer_private/test/TestWebLayerImpl.java",
  444. ]
  445. }
  446. generate_jni("jni") {
  447. sources = [
  448. "org/chromium/weblayer_private/ApplicationInfoHelper.java",
  449. "org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
  450. "org/chromium/weblayer_private/BrowserControlsContainerView.java",
  451. "org/chromium/weblayer_private/BrowserImpl.java",
  452. "org/chromium/weblayer_private/BrowserList.java",
  453. "org/chromium/weblayer_private/ContentViewRenderView.java",
  454. "org/chromium/weblayer_private/CookieManagerImpl.java",
  455. "org/chromium/weblayer_private/DownloadCallbackProxy.java",
  456. "org/chromium/weblayer_private/DownloadImpl.java",
  457. "org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
  458. "org/chromium/weblayer_private/FaviconCallbackProxy.java",
  459. "org/chromium/weblayer_private/FullscreenCallbackProxy.java",
  460. "org/chromium/weblayer_private/GoogleAccountAccessTokenFetcherProxy.java",
  461. "org/chromium/weblayer_private/GoogleAccountsCallbackProxy.java",
  462. "org/chromium/weblayer_private/HttpAuthHandlerImpl.java",
  463. "org/chromium/weblayer_private/InfoBarContainer.java",
  464. "org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
  465. "org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
  466. "org/chromium/weblayer_private/NavigationControllerImpl.java",
  467. "org/chromium/weblayer_private/NavigationImpl.java",
  468. "org/chromium/weblayer_private/NewTabCallbackProxy.java",
  469. "org/chromium/weblayer_private/PageImpl.java",
  470. "org/chromium/weblayer_private/PrerenderControllerImpl.java",
  471. "org/chromium/weblayer_private/ProfileImpl.java",
  472. "org/chromium/weblayer_private/TabCallbackProxy.java",
  473. "org/chromium/weblayer_private/TabImpl.java",
  474. "org/chromium/weblayer_private/TranslateCompactInfoBar.java",
  475. "org/chromium/weblayer_private/UrlBarControllerImpl.java",
  476. "org/chromium/weblayer_private/WebApkInstallSchedulerBridge.java",
  477. "org/chromium/weblayer_private/WebLayerExceptionFilter.java",
  478. "org/chromium/weblayer_private/WebLayerFactoryImpl.java",
  479. "org/chromium/weblayer_private/WebLayerImpl.java",
  480. "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
  481. "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java",
  482. "org/chromium/weblayer_private/WebappsHelper.java",
  483. "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java",
  484. "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothChooserAndroidDelegate.java",
  485. "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothScanningPromptAndroidDelegate.java",
  486. "org/chromium/weblayer_private/media/MediaRouterClientImpl.java",
  487. "org/chromium/weblayer_private/media/MediaStreamManager.java",
  488. "org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
  489. "org/chromium/weblayer_private/metrics/UmaUtils.java",
  490. "org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
  491. "org/chromium/weblayer_private/resources/ResourceMapper.java",
  492. ]
  493. if (enable_arcore) {
  494. sources += [
  495. "org/chromium/weblayer_private/ArCompositorDelegateProviderImpl.java",
  496. "org/chromium/weblayer_private/ArCoreVersionUtils.java",
  497. ]
  498. }
  499. }
  500. android_library("base_module_interfaces_java") {
  501. sources = [
  502. "org/chromium/weblayer_private/interfaces/ObjectWrapper.java",
  503. "org/chromium/weblayer_private/interfaces/StrictModeWorkaround.java",
  504. ]
  505. srcjar_deps = [ ":base_module_aidl" ]
  506. }
  507. android_library("interfaces_java") {
  508. sources = [
  509. "org/chromium/weblayer_private/interfaces/APICallException.java",
  510. "org/chromium/weblayer_private/interfaces/ActionModeItemType.java",
  511. "org/chromium/weblayer_private/interfaces/BrowserEmbeddabilityMode.java",
  512. "org/chromium/weblayer_private/interfaces/BrowserFragmentArgs.java",
  513. "org/chromium/weblayer_private/interfaces/BrowsingDataType.java",
  514. "org/chromium/weblayer_private/interfaces/CookieChangeCause.java",
  515. "org/chromium/weblayer_private/interfaces/DarkModeStrategy.java",
  516. "org/chromium/weblayer_private/interfaces/DownloadError.java",
  517. "org/chromium/weblayer_private/interfaces/DownloadState.java",
  518. "org/chromium/weblayer_private/interfaces/ExternalIntentInIncognitoUserDecision.java",
  519. "org/chromium/weblayer_private/interfaces/GoogleAccountServiceType.java",
  520. "org/chromium/weblayer_private/interfaces/LoadError.java",
  521. "org/chromium/weblayer_private/interfaces/NavigateParams.java",
  522. "org/chromium/weblayer_private/interfaces/NavigationState.java",
  523. "org/chromium/weblayer_private/interfaces/NewTabType.java",
  524. "org/chromium/weblayer_private/interfaces/RemoteMediaServiceConstants.java",
  525. "org/chromium/weblayer_private/interfaces/ScrollNotificationType.java",
  526. "org/chromium/weblayer_private/interfaces/SettingType.java",
  527. "org/chromium/weblayer_private/interfaces/SettingsFragmentArgs.java",
  528. "org/chromium/weblayer_private/interfaces/SettingsIntentHelper.java",
  529. "org/chromium/weblayer_private/interfaces/UrlBarOptionsKeys.java",
  530. "org/chromium/weblayer_private/interfaces/WebLayerVersionConstants.java",
  531. ]
  532. deps = [
  533. ":base_module_interfaces_java",
  534. "//third_party/androidx:androidx_annotation_annotation_java",
  535. ]
  536. srcjar_deps = [ ":aidl" ]
  537. }
  538. android_library("test_interfaces_java") {
  539. sources =
  540. [ "org/chromium/weblayer_private/test_interfaces/AutofillEventType.java" ]
  541. deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
  542. }
  543. # Separate target to allow for a dependency on GmsCore without pulling in all of
  544. # java classes. It compiles the abstract class; implementations are compiled
  545. # separately.
  546. android_library("gms_bridge_java") {
  547. sources = [
  548. "org/chromium/weblayer_private/GmsBridge.java",
  549. "org/chromium/weblayer_private/GmsBridgeImpl.java",
  550. ]
  551. deps = [
  552. "//base:base_java",
  553. "//components/embedder_support/android/metrics:java",
  554. "//third_party/androidx:androidx_annotation_annotation_java",
  555. ]
  556. # The appropriate .class file will be loaded via a dependency to a library
  557. # like :gms_bridge_upstream_impl_java below.
  558. jar_excluded_patterns = [ "*/GmsBridgeImpl.class" ]
  559. }
  560. # This target compiles the implementation of GmsBridge for public targets.
  561. android_library("gms_bridge_upstream_impl_java") {
  562. sources = [ "org/chromium/weblayer_private/GmsBridgeImpl.java" ]
  563. deps = [ ":gms_bridge_java" ]
  564. }
  565. android_aidl("base_module_aidl") {
  566. import_include = [ "." ]
  567. sources = [
  568. "org/chromium/weblayer_private/interfaces/IChildProcessService.aidl",
  569. "org/chromium/weblayer_private/interfaces/IObjectWrapper.aidl",
  570. ]
  571. }
  572. android_aidl("aidl") {
  573. import_include = [ "." ]
  574. sources = [
  575. "org/chromium/weblayer_private/interfaces/IBrowser.aidl",
  576. "org/chromium/weblayer_private/interfaces/IBrowserClient.aidl",
  577. "org/chromium/weblayer_private/interfaces/IBrowserFragment.aidl",
  578. "org/chromium/weblayer_private/interfaces/IClientDownload.aidl",
  579. "org/chromium/weblayer_private/interfaces/IClientNavigation.aidl",
  580. "org/chromium/weblayer_private/interfaces/IClientPage.aidl",
  581. "org/chromium/weblayer_private/interfaces/IContextMenuParams.aidl",
  582. "org/chromium/weblayer_private/interfaces/ICookieChangedCallbackClient.aidl",
  583. "org/chromium/weblayer_private/interfaces/ICookieManager.aidl",
  584. "org/chromium/weblayer_private/interfaces/ICrashReporterController.aidl",
  585. "org/chromium/weblayer_private/interfaces/ICrashReporterControllerClient.aidl",
  586. "org/chromium/weblayer_private/interfaces/IDownload.aidl",
  587. "org/chromium/weblayer_private/interfaces/IDownloadCallbackClient.aidl",
  588. "org/chromium/weblayer_private/interfaces/IErrorPageCallbackClient.aidl",
  589. "org/chromium/weblayer_private/interfaces/IExternalIntentInIncognitoCallbackClient.aidl",
  590. "org/chromium/weblayer_private/interfaces/IFaviconFetcher.aidl",
  591. "org/chromium/weblayer_private/interfaces/IFaviconFetcherClient.aidl",
  592. "org/chromium/weblayer_private/interfaces/IFindInPageCallbackClient.aidl",
  593. "org/chromium/weblayer_private/interfaces/IFullscreenCallbackClient.aidl",
  594. "org/chromium/weblayer_private/interfaces/IGoogleAccountAccessTokenFetcherClient.aidl",
  595. "org/chromium/weblayer_private/interfaces/IGoogleAccountsCallbackClient.aidl",
  596. "org/chromium/weblayer_private/interfaces/IMediaCaptureCallbackClient.aidl",
  597. "org/chromium/weblayer_private/interfaces/IMediaRouteDialogFragment.aidl",
  598. "org/chromium/weblayer_private/interfaces/INavigateParams.aidl",
  599. "org/chromium/weblayer_private/interfaces/INavigation.aidl",
  600. "org/chromium/weblayer_private/interfaces/INavigationController.aidl",
  601. "org/chromium/weblayer_private/interfaces/INavigationControllerClient.aidl",
  602. "org/chromium/weblayer_private/interfaces/IOpenUrlCallbackClient.aidl",
  603. "org/chromium/weblayer_private/interfaces/IPrerenderController.aidl",
  604. "org/chromium/weblayer_private/interfaces/IProfile.aidl",
  605. "org/chromium/weblayer_private/interfaces/IProfileClient.aidl",
  606. "org/chromium/weblayer_private/interfaces/IRemoteFragment.aidl",
  607. "org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl",
  608. "org/chromium/weblayer_private/interfaces/ISettingsFragment.aidl",
  609. "org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl",
  610. "org/chromium/weblayer_private/interfaces/ITab.aidl",
  611. "org/chromium/weblayer_private/interfaces/ITabClient.aidl",
  612. "org/chromium/weblayer_private/interfaces/IUrlBarController.aidl",
  613. "org/chromium/weblayer_private/interfaces/IUserIdentityCallbackClient.aidl",
  614. "org/chromium/weblayer_private/interfaces/IWebLayer.aidl",
  615. "org/chromium/weblayer_private/interfaces/IWebLayerClient.aidl",
  616. "org/chromium/weblayer_private/interfaces/IWebLayerFactory.aidl",
  617. "org/chromium/weblayer_private/interfaces/IWebMessageCallbackClient.aidl",
  618. "org/chromium/weblayer_private/interfaces/IWebMessageReplyProxy.aidl",
  619. ]
  620. }
  621. android_aidl("test_aidl") {
  622. import_include = [ "." ]
  623. testonly = true
  624. sources =
  625. [ "org/chromium/weblayer_private/test_interfaces/ITestWebLayer.aidl" ]
  626. }