BUILD.gn 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. # Copyright 2017 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("//android_webview/system_webview_apk_tmpl.gni")
  5. import("//android_webview/variables.gni")
  6. import("//build/config/android/rules.gni")
  7. generate_jni("nonembedded_jni_headers") {
  8. sources = [
  9. "java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java",
  10. "java/src/org/chromium/android_webview/nonembedded/NetworkFetcherTask.java",
  11. "java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java",
  12. "java/src/org/chromium/android_webview/services/ComponentsProviderPathUtil.java",
  13. ]
  14. }
  15. # Contains classes needed by the webview apk, but not used when loading the apk
  16. # as a library.
  17. android_library("nonembedded_java") {
  18. sources = [
  19. "java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java",
  20. "java/src/org/chromium/android_webview/nonembedded/AwNonembeddedUmaRecorder.java",
  21. "java/src/org/chromium/android_webview/nonembedded/AwPureJavaExceptionReporter.java",
  22. "java/src/org/chromium/android_webview/nonembedded/ComponentUpdaterResetSafeModeAction.java",
  23. "java/src/org/chromium/android_webview/nonembedded/LicenseActivity.java",
  24. "java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java",
  25. "java/src/org/chromium/android_webview/nonembedded/NetworkFetcherTask.java",
  26. "java/src/org/chromium/android_webview/nonembedded/NonembeddedSafeModeActionsList.java",
  27. "java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java",
  28. ]
  29. deps = [
  30. ":devui_java",
  31. ":services_java",
  32. ":util_java",
  33. "//android_webview:android_webview_product_config_java",
  34. "//android_webview:common_aidl_java",
  35. "//android_webview:common_crash_java",
  36. "//android_webview:common_java",
  37. "//android_webview:common_platform_services_java",
  38. "//android_webview/glue:glue_java",
  39. "//android_webview/proto:metrics_bridge_records_proto_java",
  40. "//base:base_java",
  41. "//base:jni_java",
  42. "//build/android:build_java",
  43. "//components/about_ui/android:aboutui_java",
  44. "//components/crash/android:java",
  45. "//components/embedder_support/android:application_java",
  46. "//components/minidump_uploader:minidump_uploader_java",
  47. "//components/version_info/android:version_constants_java",
  48. "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
  49. "//third_party/android_deps:protobuf_lite_runtime_java",
  50. "//third_party/androidx:androidx_annotation_annotation_java",
  51. "//ui/android:ui_no_recycler_view_java",
  52. "//url:gurl_java",
  53. ]
  54. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  55. }
  56. android_library("devui_java") {
  57. sources = [
  58. "java/src/org/chromium/android_webview/devui/ComponentsListFragment.java",
  59. "java/src/org/chromium/android_webview/devui/CrashesListFragment.java",
  60. "java/src/org/chromium/android_webview/devui/DevUiBaseFragment.java",
  61. "java/src/org/chromium/android_webview/devui/FlagsFragment.java",
  62. "java/src/org/chromium/android_webview/devui/HomeFragment.java",
  63. "java/src/org/chromium/android_webview/devui/MainActivity.java",
  64. "java/src/org/chromium/android_webview/devui/PersistentErrorView.java",
  65. "java/src/org/chromium/android_webview/devui/WebViewPackageError.java",
  66. "java/src/org/chromium/android_webview/devui/util/ComponentInfo.java",
  67. "java/src/org/chromium/android_webview/devui/util/ComponentsInfoLoader.java",
  68. "java/src/org/chromium/android_webview/devui/util/CrashBugUrlFactory.java",
  69. "java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java",
  70. "java/src/org/chromium/android_webview/devui/util/SafeIntentUtils.java",
  71. "java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java",
  72. "java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java",
  73. "java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java",
  74. "java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java",
  75. ]
  76. deps = [
  77. ":devui_resources",
  78. ":services_java",
  79. ":system_webview_manifest",
  80. ":util_java",
  81. "//android_webview:common_aidl_java",
  82. "//android_webview:common_crash_java",
  83. "//android_webview:common_java",
  84. "//android_webview:common_platform_services_java",
  85. "//base:base_java",
  86. "//components/minidump_uploader:minidump_uploader_java",
  87. "//components/version_info/android:version_constants_java",
  88. "//third_party/androidx:androidx_activity_activity_java",
  89. "//third_party/androidx:androidx_annotation_annotation_java",
  90. "//third_party/androidx:androidx_core_core_java",
  91. "//third_party/androidx:androidx_fragment_fragment_java",
  92. "//third_party/androidx:androidx_lifecycle_lifecycle_common_java",
  93. "//third_party/androidx:androidx_lifecycle_lifecycle_viewmodel_java",
  94. "//third_party/androidx:androidx_savedstate_savedstate_java",
  95. "//ui/android:ui_no_recycler_view_java",
  96. ]
  97. resources_package = "org.chromium.android_webview.devui"
  98. }
  99. android_library("services_java") {
  100. sources = [
  101. "java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java",
  102. "java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java",
  103. "java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java",
  104. "java/src/org/chromium/android_webview/services/ComponentUpdaterSafeModeUtils.java",
  105. "java/src/org/chromium/android_webview/services/ComponentsProviderPathUtil.java",
  106. "java/src/org/chromium/android_webview/services/ComponentsProviderService.java",
  107. "java/src/org/chromium/android_webview/services/CrashReceiverService.java",
  108. "java/src/org/chromium/android_webview/services/DeveloperModeContentProvider.java",
  109. "java/src/org/chromium/android_webview/services/DeveloperUiService.java",
  110. "java/src/org/chromium/android_webview/services/MetricsBridgeService.java",
  111. "java/src/org/chromium/android_webview/services/MetricsUploadService.java",
  112. "java/src/org/chromium/android_webview/services/SafeModeContentProvider.java",
  113. "java/src/org/chromium/android_webview/services/SafeModeService.java",
  114. "java/src/org/chromium/android_webview/services/ServicesStatsHelper.java",
  115. "java/src/org/chromium/android_webview/services/VariationsSeedHolder.java",
  116. "java/src/org/chromium/android_webview/services/VariationsSeedServer.java",
  117. ]
  118. deps = [
  119. ":devui_resources",
  120. ":system_webview_manifest",
  121. "//android_webview:common_aidl_java",
  122. "//android_webview:common_crash_java",
  123. "//android_webview:common_java",
  124. "//android_webview:common_platform_services_java",
  125. "//android_webview:common_variations_java",
  126. "//android_webview/proto:metrics_bridge_records_proto_java",
  127. "//base:base_java",
  128. "//base:jni_java",
  129. "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
  130. "//components/component_updater/android:component_provider_service_aidl_java",
  131. "//components/minidump_uploader:minidump_uploader_java",
  132. "//components/variations/android:variations_java",
  133. "//components/version_info/android:version_constants_java",
  134. "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
  135. "//third_party/android_deps:protobuf_lite_runtime_java",
  136. "//third_party/androidx:androidx_annotation_annotation_java",
  137. ]
  138. resources_package = "org.chromium.android_webview.devui"
  139. }
  140. android_library("util_java") {
  141. sources = [ "java/src/org/chromium/android_webview/nonembedded_util/WebViewPackageHelper.java" ]
  142. deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
  143. }
  144. source_set("nonembedded") {
  145. sources = [
  146. "component_updater/aw_component_installer_policy.cc",
  147. "component_updater/aw_component_installer_policy.h",
  148. "component_updater/aw_component_installer_policy_shim.cc",
  149. "component_updater/aw_component_installer_policy_shim.h",
  150. "component_updater/aw_component_update_service.cc",
  151. "component_updater/aw_component_update_service.h",
  152. "component_updater/aw_component_updater_configurator.cc",
  153. "component_updater/aw_component_updater_configurator.h",
  154. "component_updater/installer_policies/aw_package_names_allowlist_component_installer_policy.cc",
  155. "component_updater/installer_policies/aw_package_names_allowlist_component_installer_policy.h",
  156. "component_updater/registration.cc",
  157. "component_updater/registration.h",
  158. "net/network_fetcher_task.cc",
  159. "net/network_fetcher_task.h",
  160. "net/network_impl.cc",
  161. "net/network_impl.h",
  162. "webview_apk_application.cc",
  163. "webview_apk_process.cc",
  164. "webview_apk_process.h",
  165. ]
  166. deps = [
  167. ":nonembedded_jni_headers",
  168. "//android_webview/common",
  169. "//base",
  170. "//components/component_updater",
  171. "//components/component_updater/installer_policies:installer_policies_no_content_deps",
  172. "//components/prefs",
  173. "//components/update_client",
  174. "//components/update_client:in_process_patcher",
  175. "//components/update_client:in_process_unzipper",
  176. "//components/version_info",
  177. "//components/version_info/android:channel_getter",
  178. "//url",
  179. "//url:gurl_android",
  180. # Called via JNI by LicenseContentProvider in :nonembedded_java.
  181. "//components/about_ui:about_ui_android",
  182. ]
  183. # Disallow depending on content.
  184. assert_no_deps = [ "//content/public" ]
  185. }
  186. # WebView icon used by upstream SystemWebView and Trichrome.
  187. android_resources("icon_resources") {
  188. sources = [
  189. "java/res_icon/drawable-hdpi/icon_webview.png",
  190. "java/res_icon/drawable-mdpi/icon_webview.png",
  191. "java/res_icon/drawable-xhdpi/icon_webview.png",
  192. "java/res_icon/drawable-xxhdpi/icon_webview.png",
  193. ]
  194. }
  195. android_resources("devui_resources") {
  196. sources = [
  197. "java/res_devui/drawable/blue_circle.xml",
  198. "java/res_devui/drawable/ic_action_home.xml",
  199. "java/res_devui/drawable/ic_alert_error.xml",
  200. "java/res_devui/drawable/ic_clear_text.xml",
  201. "java/res_devui/drawable/ic_delete.xml",
  202. "java/res_devui/drawable/ic_devui_search.xml",
  203. "java/res_devui/drawable/ic_flag.xml",
  204. "java/res_devui/layout/activity_main.xml",
  205. "java/res_devui/layout/components_list_item.xml",
  206. "java/res_devui/layout/crashes_list_item_body.xml",
  207. "java/res_devui/layout/crashes_list_item_header.xml",
  208. "java/res_devui/layout/flag_states.xml",
  209. "java/res_devui/layout/flag_ui_warning.xml",
  210. "java/res_devui/layout/fragment_components_list.xml",
  211. "java/res_devui/layout/fragment_crashes_list.xml",
  212. "java/res_devui/layout/fragment_flags.xml",
  213. "java/res_devui/layout/fragment_home.xml",
  214. "java/res_devui/layout/persistent_error_message.xml",
  215. "java/res_devui/layout/toggleable_flag.xml",
  216. "java/res_devui/layout/two_line_list_item.xml",
  217. "java/res_devui/layout/two_line_sublist_item.xml",
  218. "java/res_devui/menu/components_options_menu.xml",
  219. "java/res_devui/menu/crashes_options_menu.xml",
  220. "java/res_devui/menu/options_menu.xml",
  221. "java/res_devui/values-night/colors.xml",
  222. "java/res_devui/values-night/styles.xml",
  223. "java/res_devui/values/colors.xml",
  224. "java/res_devui/values/strings.xml",
  225. "java/res_devui/values/styles.xml",
  226. ]
  227. }
  228. android_resources("devui_launcher_icon_resources") {
  229. sources = []
  230. android_manifest = "java/DeveloperUiLauncherManifest.xml"
  231. }
  232. android_resources("monochrome_devui_launcher_icon_resources") {
  233. sources = []
  234. android_manifest = "java/MonochromeDeveloperUiLauncherManifest.xml"
  235. }
  236. _webview_jinja_variables = [ "manifest_package=$system_webview_package_name" ] +
  237. webview_jinja_variables
  238. jinja_template("system_webview_manifest") {
  239. input = "java/AndroidManifest.xml"
  240. output = system_webview_android_manifest
  241. variables = _webview_jinja_variables
  242. }
  243. jinja_template("trichrome_webview_manifest") {
  244. input = "java/AndroidManifest.xml"
  245. output = trichrome_webview_android_manifest
  246. variables = trichrome_jinja_variables + _webview_jinja_variables + [
  247. "trichrome_version=$trichrome_version_code",
  248. "library=libmonochrome.so",
  249. ]
  250. }
  251. if (android_64bit_target_cpu) {
  252. jinja_template("system_webview_64_manifest") {
  253. input = "java/AndroidManifest.xml"
  254. output = system_webview_64_android_manifest
  255. variables = _webview_jinja_variables + [ "use32bitAbi=" ]
  256. }
  257. jinja_template("trichrome_webview_64_manifest") {
  258. input = "java/AndroidManifest.xml"
  259. output = trichrome_webview_64_android_manifest
  260. variables = trichrome_jinja_variables + _webview_jinja_variables + [
  261. "use32bitAbi=",
  262. "trichrome_version=$trichrome_64_version_code",
  263. "library=libmonochrome_64.so",
  264. ]
  265. }
  266. jinja_template("trichrome_webview_64_32_manifest") {
  267. input = "java/AndroidManifest.xml"
  268. output = trichrome_webview_64_32_android_manifest
  269. variables = trichrome_jinja_variables + _webview_jinja_variables + [
  270. "use32bitAbi=",
  271. "trichrome_version=$trichrome_64_32_version_code",
  272. "library=libmonochrome_64.so",
  273. ]
  274. }
  275. jinja_template("trichrome_webview_32_manifest") {
  276. input = "java/AndroidManifest.xml"
  277. output = trichrome_webview_32_android_manifest
  278. variables = trichrome_jinja_variables + _webview_jinja_variables + [
  279. "trichrome_version=$trichrome_32_version_code",
  280. "library=libmonochrome.so",
  281. ]
  282. }
  283. }