| # Copyright 2015 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("//android_webview/system_webview_apk_tmpl.gni") |
| import("//android_webview/system_webview_bundle.gni") |
| import("//android_webview/variables.gni") |
| import("//android_webview/webview_repack_locales.gni") |
| import("//build/android/resource_sizes.gni") |
| import("//build/config/android/channel.gni") |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//build/config/locales.gni") |
| import("//chrome/android/chrome_common_shared_library.gni") |
| import("//chrome/android/chrome_public_apk_tmpl.gni") |
| import("//chrome/android/trichrome.gni") |
| import("//components/spellcheck/spellcheck_build_features.gni") |
| import("//tools/grit/repack.gni") |
| import("//tools/resources/generate_resource_allowlist.gni") |
| import("//tools/v8_context_snapshot/v8_context_snapshot.gni") |
| import("//weblayer/variables.gni") |
| |
| if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { |
| assert(current_toolchain != android_secondary_abi_toolchain) |
| } |
| |
| if (enable_resource_allowlist_generation) { |
| system_webview_pak_allowlist = |
| "$target_gen_dir/system_webview_pak_allowlist.txt" |
| } |
| |
| # Having //clank present causes different flags because of how play services |
| # is wired up. |
| # The channel is required because manifest entries vary based on channel. |
| _verify_android_configuration = |
| !is_java_debug && !enable_chrome_android_internal && |
| android_channel == "stable" |
| |
| template("standalone_system_webview_apk_tmpl") { |
| system_webview_apk_or_module_tmpl(target_name) { |
| forward_variables_from(invoker, "*") |
| deps = upstream_only_webview_deps |
| min_sdk_version = default_min_sdk_version |
| if (android_64bit_target_cpu && defined(include_32_bit_webview) && |
| !include_32_bit_webview) { |
| android_manifest = system_webview_64_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:system_webview_64_manifest" |
| } else { |
| android_manifest = system_webview_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:system_webview_manifest" |
| } |
| } |
| } |
| |
| # Standalone WebView APK. |
| if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { |
| group("system_webview_apk") { |
| deps = [ ":system_webview_64_apk" ] |
| } |
| } else { |
| standalone_system_webview_apk_tmpl("system_webview_apk") { |
| apk_name = "SystemWebView" |
| } |
| } |
| |
| # This version of the WebView APK doesn't include WebLayer java and resources. |
| # It's used to define the allowlist of resources to be pulled out of language |
| # splits. See |shared_resources_allowlist_target|. |
| standalone_system_webview_apk_tmpl("system_webview_no_weblayer_apk") { |
| exclude_weblayer_java = true |
| apk_name = "SystemWebViewNoWebLayer" |
| |
| include_32_bit_webview = false |
| include_64_bit_webview = false |
| |
| # Adding deps on recycler view in the base WebView APK will end up keeping the |
| # Java in the base APK instead of the WebLayer DFM, even though it is not |
| # needed in the base APK. |
| # |
| # If you hit this check and are adding a dep to //ui/android:ui_java, use |
| # //ui/android:ui_no_recycler_view instead. If you hit this check because you |
| # are adding //third_party/android_deps:android_support_*, use the androidx |
| # version of the dep instead. |
| # TODO(b/165810905): Use per-feature -keep rules in R8 once supported, then |
| # this can be removed. |
| assert_no_deps = |
| [ "//third_party/androidx:androidx_recyclerview_recyclerview_java" ] |
| } |
| |
| if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { |
| group("system_webview_bundle") { |
| deps = [ ":system_webview_64_bundle" ] |
| } |
| } else { |
| if (enable_webview_bundles) { |
| standalone_system_webview_apk_tmpl("system_webview_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":system_webview_bundle" |
| |
| if (_verify_android_configuration) { |
| expected_android_manifest = |
| "expectations/system_webview_bundle.AndroidManifest.expected" |
| } |
| } |
| |
| system_webview_bundle("system_webview_bundle") { |
| base_module_target = ":system_webview_base_bundle_module" |
| bundle_name = "SystemWebView" |
| min_sdk_version = default_min_sdk_version |
| compress_shared_libraries = true |
| } |
| |
| if (is_official_build) { |
| # Used for binary size monitoring. |
| create_app_bundle_minimal_apks("system_webview_minimal_apks") { |
| deps = [ ":system_webview_bundle" ] |
| bundle_path = "$root_build_dir/apks/SystemWebView.aab" |
| } |
| |
| android_resource_sizes_test("resource_sizes_system_webview_bundle") { |
| file_path = "$root_build_dir/apks/SystemWebView.minimal.apks" |
| data_deps = [ ":system_webview_minimal_apks" ] |
| } |
| } |
| } |
| } |
| |
| if (android_64bit_target_cpu) { |
| standalone_system_webview_apk_tmpl("system_webview_64_apk") { |
| apk_name = "SystemWebView64" |
| include_32_bit_webview = false |
| include_64_bit_webview = true |
| } |
| |
| if (enable_webview_bundles) { |
| standalone_system_webview_apk_tmpl("system_webview_64_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":system_webview_64_bundle" |
| include_32_bit_webview = false |
| } |
| |
| system_webview_bundle("system_webview_64_bundle") { |
| base_module_target = ":system_webview_64_base_bundle_module" |
| bundle_name = "SystemWebView64" |
| min_sdk_version = default_min_sdk_version |
| compress_shared_libraries = true |
| include_32_bit_webview = false |
| } |
| } |
| if (!skip_secondary_abi_for_cq) { |
| # These targets builds a 32-bit only Webview on a 64-bit config, analogous |
| # to what's built on a 32-bit config. This lets all Webviews build on a |
| # single configuration. |
| standalone_system_webview_apk_tmpl("system_webview_32_apk") { |
| apk_name = "SystemWebView32" |
| include_64_bit_webview = false |
| } |
| |
| if (enable_webview_bundles) { |
| standalone_system_webview_apk_tmpl( |
| "system_webview_32_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| include_64_bit_webview = false |
| is_base_module = true |
| bundle_target = ":system_webview_32_bundle" |
| } |
| |
| system_webview_bundle("system_webview_32_bundle") { |
| base_module_target = ":system_webview_32_base_bundle_module" |
| bundle_name = "SystemWebView32" |
| include_64_bit_webview = false |
| min_sdk_version = default_min_sdk_version |
| compress_shared_libraries = true |
| } |
| } |
| } |
| } |
| |
| # Trichrome WebView APK. |
| template("trichrome_webview_tmpl") { |
| system_webview_apk_or_module_tmpl(target_name) { |
| forward_variables_from(invoker, "*") |
| min_sdk_version = 29 |
| |
| deps = upstream_only_webview_deps |
| use_trichrome_library = true |
| } |
| } |
| |
| if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { |
| group("trichrome_webview_apk") { |
| deps = [ ":trichrome_webview_64_apk" ] |
| } |
| } else { |
| trichrome_webview_tmpl("trichrome_webview_apk") { |
| apk_name = "TrichromeWebView" |
| uncompress_dex = true |
| if (!is_java_debug) { |
| static_library_synchronized_proguard = trichrome_synchronized_proguard |
| } |
| if (android_64bit_target_cpu) { |
| is_64_bit_browser = false |
| include_64_bit_webview = true |
| } |
| android_manifest = trichrome_webview_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_manifest" |
| static_library_provider = "//chrome/android:trichrome_library_apk" |
| } |
| } |
| |
| if (android_64bit_target_cpu) { |
| trichrome_webview_tmpl("trichrome_webview_64_apk") { |
| apk_name = "TrichromeWebView64" |
| uncompress_dex = true |
| if (!is_java_debug) { |
| static_library_synchronized_proguard = trichrome_synchronized_proguard |
| } |
| is_64_bit_browser = true |
| include_32_bit_webview = false |
| android_manifest = trichrome_webview_64_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_64_manifest" |
| static_library_provider = "//chrome/android:trichrome_library_64_apk" |
| } |
| } |
| |
| if (enable_webview_bundles) { |
| if (android_64bit_target_cpu && skip_secondary_abi_for_cq) { |
| group("trichrome_webview_bundle") { |
| deps = [ ":trichrome_webview_64_bundle" ] |
| } |
| } else { |
| trichrome_webview_tmpl("trichrome_webview_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":trichrome_webview_bundle" |
| if (android_64bit_target_cpu) { |
| is_64_bit_browser = false |
| include_64_bit_webview = true |
| } |
| |
| android_manifest = trichrome_webview_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_manifest" |
| |
| if (_verify_android_configuration) { |
| expected_android_manifest = |
| "expectations/trichrome_webview_bundle.AndroidManifest.expected" |
| } |
| static_library_provider = "//chrome/android:trichrome_library_apk" |
| } |
| |
| system_webview_bundle("trichrome_webview_bundle") { |
| base_module_target = ":trichrome_webview_base_bundle_module" |
| bundle_name = "TrichromeWebView" |
| uncompress_dex = true |
| min_sdk_version = 29 |
| static_library_provider = "//chrome/android:trichrome_library_apk" |
| } |
| } |
| |
| if (android_64bit_target_cpu) { |
| system_webview_bundle("trichrome_webview_64_bundle") { |
| base_module_target = ":trichrome_webview_64_base_bundle_module" |
| bundle_name = "TrichromeWebView64" |
| uncompress_dex = true |
| min_sdk_version = 29 |
| static_library_provider = "//chrome/android:trichrome_library_64_apk" |
| } |
| |
| trichrome_webview_tmpl("trichrome_webview_64_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":trichrome_webview_64_bundle" |
| is_64_bit_browser = true |
| include_32_bit_webview = false |
| android_manifest = trichrome_webview_64_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_64_manifest" |
| static_library_provider = "//chrome/android:trichrome_library_64_apk" |
| } |
| } |
| |
| if (is_official_build) { |
| # Used for binary size monitoring. |
| create_app_bundle_minimal_apks("trichrome_webview_minimal_apks") { |
| deps = [ ":trichrome_webview_bundle" ] |
| bundle_path = "$root_build_dir/apks/TrichromeWebView.aab" |
| } |
| |
| android_resource_sizes_test("resource_sizes_trichrome_webview_bundle") { |
| file_path = "$root_build_dir/apks/TrichromeWebView.minimal.apks" |
| data_deps = [ ":trichrome_webview_minimal_apks" ] |
| } |
| } |
| } |
| |
| # Trichrome WebView APK for a 64-bit Chrome. |
| if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { |
| template("trichrome_webview_64_32_tmpl") { |
| system_webview_apk_or_module_tmpl(target_name) { |
| forward_variables_from(invoker, "*") |
| android_manifest = trichrome_webview_64_32_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_64_32_manifest" |
| use_trichrome_library = true |
| is_64_bit_browser = true |
| include_32_bit_webview = true |
| |
| min_sdk_version = 29 |
| |
| deps = upstream_only_webview_deps |
| static_library_provider = "//chrome/android:trichrome_library_64_32_apk" |
| } |
| } |
| |
| trichrome_webview_64_32_tmpl("trichrome_webview_64_32_apk") { |
| apk_name = "TrichromeWebView6432" |
| uncompress_dex = true |
| } |
| |
| if (enable_webview_bundles) { |
| trichrome_webview_64_32_tmpl("trichrome_webview_64_32_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":trichrome_webview_64_32_bundle" |
| } |
| |
| system_webview_bundle("trichrome_webview_64_32_bundle") { |
| base_module_target = ":trichrome_webview_64_32_base_bundle_module" |
| bundle_name = "TrichromeWebView6432" |
| uncompress_dex = true |
| min_sdk_version = 29 |
| static_library_provider = "//chrome/android:trichrome_library_64_32_apk" |
| } |
| } |
| |
| template("trichrome_webview_32_tmpl") { |
| system_webview_apk_or_module_tmpl(target_name) { |
| forward_variables_from(invoker, "*") |
| android_manifest = trichrome_webview_32_android_manifest |
| android_manifest_dep = |
| "//android_webview/nonembedded:trichrome_webview_32_manifest" |
| use_trichrome_library = true |
| is_64_bit_browser = false |
| include_64_bit_webview = false |
| |
| min_sdk_version = 29 |
| |
| deps = upstream_only_webview_deps |
| static_library_provider = "//chrome/android:trichrome_library_32_apk" |
| } |
| } |
| |
| trichrome_webview_32_tmpl("trichrome_webview_32_apk") { |
| apk_name = "TrichromeWebView32" |
| uncompress_dex = true |
| } |
| |
| if (enable_webview_bundles) { |
| trichrome_webview_32_tmpl("trichrome_webview_32_base_bundle_module") { |
| target_type = "android_app_bundle_module" |
| is_base_module = true |
| bundle_target = ":trichrome_webview_32_bundle" |
| } |
| |
| system_webview_bundle("trichrome_webview_32_bundle") { |
| base_module_target = ":trichrome_webview_32_base_bundle_module" |
| bundle_name = "TrichromeWebView32" |
| uncompress_dex = true |
| min_sdk_version = 29 |
| static_library_provider = "//chrome/android:trichrome_library_32_apk" |
| } |
| } |
| } |
| |
| # The shared library used by standalone WebView. |
| template("libwebviewchromium_tmpl") { |
| shared_library(target_name) { |
| forward_variables_from(invoker, "*") |
| deps = [ |
| "//android_webview/lib", |
| "//android_webview/lib:webview_entry_point", |
| "//android_webview/nonembedded", |
| "//third_party/blink/public:blink", |
| ] |
| configs -= [ "//build/config/android:hide_all_but_jni_onload" ] |
| configs += [ |
| "//build/config/android:hide_all_but_jni", |
| "//build/config/compiler:chrome_orderfile_config", |
| ] |
| } |
| } |
| |
| libwebviewchromium_tmpl("libwebviewchromium") { |
| } |
| |
| # This template is used to define WebView's alternate-ABI libraries, which are |
| # used by Monochrome and Trichrome on 64-bit devices which support both 32 and |
| # 64-bit ABIs. WebView's browser process must use the same ABI as the embedding |
| # app (renderer processes used the ABI defined in the WebView APK manifest), |
| # which requires us to have two copies of the library available, one for each |
| # ABI. The primary library is the one shared with Chrome, and the alternate is |
| # a WebView-specific library defined here for whichever ABI isn't used by |
| # Chrome. |
| # |
| # Note that this library does also include code needed for the embedded usecase, |
| # because even though it's not used in normal circumstances, it is required on |
| # a 64-bit-only device where the nonembedded process will also be 64-bit. |
| template("webview_alternate_library") { |
| chrome_common_shared_library(target_name) { |
| forward_variables_from(invoker, "*") |
| deps = [ |
| "//android_webview/lib", |
| "//android_webview/lib:webview_entry_point", |
| "//android_webview/nonembedded", |
| ] |
| is_webview = true |
| } |
| } |
| |
| if (defined(android_secondary_abi_toolchain)) { |
| # Note here that on a given system, the webview-only library needs the same |
| # library name as the browser library, since the system webview factory will |
| # differentiate only by ABI. |
| if (current_toolchain == android_secondary_abi_toolchain) { |
| # This target is the 32-bit WebView library that pairs with a 64-bit |
| # browser. It is suffixed with _64 because its name must match the 64-bit |
| # browser library. |
| webview_alternate_library("monochrome_64") { |
| } |
| } else { |
| # Inverse of above, for the original 32-bit case. |
| webview_alternate_library("monochrome") { |
| } |
| } |
| } else { |
| # 32-bit WebView library used in 32-bit only builds of 64/32 targets. |
| webview_alternate_library("monochrome_64") { |
| } |
| } |
| |
| java_group("android_webview_no_weblayer_java") { |
| deps = [ |
| ":browser_java", |
| "//android_webview/js_sandbox:js_sandbox_service_java", |
| |
| # This includes AwResource, which may be called via JNI. We're including it |
| # here because there's currently no good way to enforce that it gets included |
| # when it's depended on via JNI. |
| ":common_java", |
| "//android_webview/glue:glue_java", |
| "//android_webview/nonembedded:nonembedded_java", |
| "//android_webview/support_library:support_lib_glue_java", |
| ] |
| |
| # If the T SDK isn't public yet, include the downstream code to support T. |
| if (!public_android_sdk && android_sdk_release == "t") { |
| deps += [ "//clank/android_webview/next:t_sdk_java" ] |
| } |
| } |
| |
| # Contains all Java dependencies used by WebView. |
| java_group("android_webview_java") { |
| deps = [ ":android_webview_no_weblayer_java" ] |
| |
| if (webview_includes_weblayer) { |
| deps += [ "//weblayer/browser/java" ] |
| } |
| } |
| |
| # An empty group included in //BUILD.gn to make this and other WebView build |
| # files reachable by GN. |
| group("empty_group") { |
| } |
| |
| generate_jni("common_jni_headers") { |
| sources = [ |
| "java/src/org/chromium/android_webview/common/AwResource.java", |
| "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java", |
| ] |
| } |
| |
| generate_jni("browser_jni_headers") { |
| sources = [ |
| "java/src/org/chromium/android_webview/AndroidProtocolHandler.java", |
| "java/src/org/chromium/android_webview/AwAutofillClient.java", |
| "java/src/org/chromium/android_webview/AwBrowserContext.java", |
| "java/src/org/chromium/android_webview/AwBrowserProcess.java", |
| "java/src/org/chromium/android_webview/AwContents.java", |
| "java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java", |
| "java/src/org/chromium/android_webview/AwContentsClientBridge.java", |
| "java/src/org/chromium/android_webview/AwContentsIoThreadClient.java", |
| "java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java", |
| "java/src/org/chromium/android_webview/AwContentsStatics.java", |
| "java/src/org/chromium/android_webview/AwCookieManager.java", |
| "java/src/org/chromium/android_webview/AwDarkMode.java", |
| "java/src/org/chromium/android_webview/AwDebug.java", |
| "java/src/org/chromium/android_webview/AwDevToolsServer.java", |
| "java/src/org/chromium/android_webview/AwFeatureList.java", |
| "java/src/org/chromium/android_webview/AwFormDatabase.java", |
| "java/src/org/chromium/android_webview/AwHttpAuthHandler.java", |
| "java/src/org/chromium/android_webview/AwPacProcessor.java", |
| "java/src/org/chromium/android_webview/AwPdfExporter.java", |
| "java/src/org/chromium/android_webview/AwProxyController.java", |
| "java/src/org/chromium/android_webview/AwQuotaManagerBridge.java", |
| "java/src/org/chromium/android_webview/AwRenderProcess.java", |
| "java/src/org/chromium/android_webview/AwSettings.java", |
| "java/src/org/chromium/android_webview/AwTracingController.java", |
| "java/src/org/chromium/android_webview/AwWebContentsDelegate.java", |
| "java/src/org/chromium/android_webview/AwWebResourceInterceptResponse.java", |
| "java/src/org/chromium/android_webview/JsReplyProxy.java", |
| "java/src/org/chromium/android_webview/PopupTouchHandleDrawable.java", |
| "java/src/org/chromium/android_webview/WebMessageListenerHolder.java", |
| "java/src/org/chromium/android_webview/WebMessageListenerInfo.java", |
| "java/src/org/chromium/android_webview/gfx/AwDrawFnImpl.java", |
| "java/src/org/chromium/android_webview/gfx/AwGLFunctor.java", |
| "java/src/org/chromium/android_webview/gfx/AwPicture.java", |
| "java/src/org/chromium/android_webview/gfx/JavaBrowserViewRendererHelper.java", |
| "java/src/org/chromium/android_webview/gfx/RootBeginFrameSourceWebView.java", |
| "java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java", |
| "java/src/org/chromium/android_webview/permission/AwPermissionRequest.java", |
| "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConfigHelper.java", |
| "java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java", |
| ] |
| |
| deps = [ ":cancellation_signal_android_jar_jni_headers" ] |
| } |
| |
| generate_jar_jni("cancellation_signal_android_jar_jni_headers") { |
| classes = [ "android/os/CancellationSignal.class" ] |
| } |
| |
| android_library("browser_java") { |
| sources = [ |
| "java/src/org/chromium/android_webview/AndroidProtocolHandler.java", |
| "java/src/org/chromium/android_webview/AwActionModeCallback.java", |
| "java/src/org/chromium/android_webview/AwAutofillClient.java", |
| "java/src/org/chromium/android_webview/AwBrowserContext.java", |
| "java/src/org/chromium/android_webview/AwBrowserProcess.java", |
| "java/src/org/chromium/android_webview/AwConsoleMessage.java", |
| "java/src/org/chromium/android_webview/AwContents.java", |
| "java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java", |
| "java/src/org/chromium/android_webview/AwContentsClient.java", |
| "java/src/org/chromium/android_webview/AwContentsClientBridge.java", |
| "java/src/org/chromium/android_webview/AwContentsClientCallbackHelper.java", |
| "java/src/org/chromium/android_webview/AwContentsIoThreadClient.java", |
| "java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java", |
| "java/src/org/chromium/android_webview/AwContentsStatics.java", |
| "java/src/org/chromium/android_webview/AwCookieManager.java", |
| "java/src/org/chromium/android_webview/AwDarkMode.java", |
| "java/src/org/chromium/android_webview/AwDataDirLock.java", |
| "java/src/org/chromium/android_webview/AwDebug.java", |
| "java/src/org/chromium/android_webview/AwDevToolsServer.java", |
| "java/src/org/chromium/android_webview/AwDisplayCutoutController.java", |
| "java/src/org/chromium/android_webview/AwDisplayModeController.java", |
| "java/src/org/chromium/android_webview/AwFeatureList.java", |
| "java/src/org/chromium/android_webview/AwFormDatabase.java", |
| "java/src/org/chromium/android_webview/AwGeolocationPermissions.java", |
| "java/src/org/chromium/android_webview/AwHistogramRecorder.java", |
| "java/src/org/chromium/android_webview/AwHttpAuthHandler.java", |
| "java/src/org/chromium/android_webview/AwLayoutSizer.java", |
| "java/src/org/chromium/android_webview/AwNetworkChangeNotifierRegistrationPolicy.java", |
| "java/src/org/chromium/android_webview/AwPacProcessor.java", |
| "java/src/org/chromium/android_webview/AwPdfExporter.java", |
| "java/src/org/chromium/android_webview/AwPrintDocumentAdapter.java", |
| "java/src/org/chromium/android_webview/AwProxyController.java", |
| "java/src/org/chromium/android_webview/AwQuotaManagerBridge.java", |
| "java/src/org/chromium/android_webview/AwRenderProcess.java", |
| "java/src/org/chromium/android_webview/AwRenderProcessGoneDetail.java", |
| "java/src/org/chromium/android_webview/AwScrollOffsetManager.java", |
| "java/src/org/chromium/android_webview/AwServiceWorkerClient.java", |
| "java/src/org/chromium/android_webview/AwServiceWorkerController.java", |
| "java/src/org/chromium/android_webview/AwServiceWorkerSettings.java", |
| "java/src/org/chromium/android_webview/AwSettings.java", |
| "java/src/org/chromium/android_webview/AwSupportLibIsomorphic.java", |
| "java/src/org/chromium/android_webview/AwThreadUtils.java", |
| "java/src/org/chromium/android_webview/AwTracingController.java", |
| "java/src/org/chromium/android_webview/AwViewAndroidDelegate.java", |
| "java/src/org/chromium/android_webview/AwViewMethods.java", |
| "java/src/org/chromium/android_webview/AwWebContentsDelegate.java", |
| "java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java", |
| "java/src/org/chromium/android_webview/AwWebContentsMetricsRecorder.java", |
| "java/src/org/chromium/android_webview/AwWebContentsObserver.java", |
| "java/src/org/chromium/android_webview/AwWebResourceInterceptResponse.java", |
| "java/src/org/chromium/android_webview/AwZoomControls.java", |
| "java/src/org/chromium/android_webview/BrowserSafeModeActionList.java", |
| "java/src/org/chromium/android_webview/CleanupReference.java", |
| "java/src/org/chromium/android_webview/ClientCertLookupTable.java", |
| "java/src/org/chromium/android_webview/DarkModeHelper.java", |
| "java/src/org/chromium/android_webview/DefaultVideoPosterRequestHandler.java", |
| "java/src/org/chromium/android_webview/ErrorCodeConversionHelper.java", |
| "java/src/org/chromium/android_webview/FileModeConversionHelper.java", |
| "java/src/org/chromium/android_webview/FindAddress.java", |
| "java/src/org/chromium/android_webview/FullScreenView.java", |
| "java/src/org/chromium/android_webview/HttpAuthDatabase.java", |
| "java/src/org/chromium/android_webview/JsPromptResultReceiver.java", |
| "java/src/org/chromium/android_webview/JsReplyProxy.java", |
| "java/src/org/chromium/android_webview/JsResultHandler.java", |
| "java/src/org/chromium/android_webview/JsResultReceiver.java", |
| "java/src/org/chromium/android_webview/NullAwViewMethods.java", |
| "java/src/org/chromium/android_webview/OverScrollGlow.java", |
| "java/src/org/chromium/android_webview/PopupTouchHandleDrawable.java", |
| "java/src/org/chromium/android_webview/ScriptHandler.java", |
| "java/src/org/chromium/android_webview/ScrollAccessibilityHelper.java", |
| "java/src/org/chromium/android_webview/SslUtil.java", |
| "java/src/org/chromium/android_webview/ViewPositionObserver.java", |
| "java/src/org/chromium/android_webview/WebAddressParser.java", |
| "java/src/org/chromium/android_webview/WebMessageListener.java", |
| "java/src/org/chromium/android_webview/WebMessageListenerHolder.java", |
| "java/src/org/chromium/android_webview/WebMessageListenerInfo.java", |
| "java/src/org/chromium/android_webview/WebViewChromiumRunQueue.java", |
| "java/src/org/chromium/android_webview/WebviewErrorCode.java", |
| "java/src/org/chromium/android_webview/gfx/AwDrawFnImpl.java", |
| "java/src/org/chromium/android_webview/gfx/AwFunctor.java", |
| "java/src/org/chromium/android_webview/gfx/AwGLFunctor.java", |
| "java/src/org/chromium/android_webview/gfx/AwPicture.java", |
| "java/src/org/chromium/android_webview/gfx/JavaBrowserViewRendererHelper.java", |
| "java/src/org/chromium/android_webview/gfx/RectUtils.java", |
| "java/src/org/chromium/android_webview/gfx/RootBeginFrameSourceWebView.java", |
| "java/src/org/chromium/android_webview/metrics/AwMetricsLogUploader.java", |
| "java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java", |
| "java/src/org/chromium/android_webview/metrics/AwNonembeddedUmaReplayer.java", |
| "java/src/org/chromium/android_webview/permission/AwGeolocationCallback.java", |
| "java/src/org/chromium/android_webview/permission/AwPermissionRequest.java", |
| "java/src/org/chromium/android_webview/policy/AwPolicyProvider.java", |
| "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConfigHelper.java", |
| "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConversionHelper.java", |
| "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingResponse.java", |
| "java/src/org/chromium/android_webview/variations/VariationsSeedLoader.java", |
| "java/src/org/chromium/android_webview/variations/VariationsSeedSafeModeAction.java", |
| ] |
| deps = [ |
| ":common_aidl_java", |
| ":common_crash_java", |
| ":common_java", |
| ":common_platform_services_java", |
| ":common_variations_java", |
| ":resources", |
| "//android_webview:common_platform_services_java", |
| "//android_webview/nonembedded:system_webview_manifest", |
| "//android_webview/proto:metrics_bridge_records_proto_java", |
| "//base:base_java", |
| "//components/android_autofill/browser:java", |
| "//components/autofill/android:autofill_java", |
| "//components/background_task_scheduler:background_task_scheduler_task_ids_java", |
| "//components/component_updater/android:embedded_component_loader_java", |
| "//components/content_capture/android:java", |
| "//components/crash/android:handler_java", |
| "//components/crash/android:java", |
| "//components/embedder_support/android:util_java", |
| "//components/embedder_support/android:web_contents_delegate_java", |
| "//components/embedder_support/android/metrics:java", |
| "//components/minidump_uploader:minidump_uploader_java", |
| "//components/navigation_interception/android:navigation_interception_java", |
| "//components/policy/android:policy_java", |
| "//components/safe_browsing/android:safe_browsing_java", |
| "//components/url_formatter/android:url_formatter_java", |
| "//components/variations:variations_java", |
| "//components/variations/android:variations_java", |
| "//components/version_info/android:version_constants_java", |
| "//components/viz/common:common_java", |
| "//components/viz/service:service_java", |
| "//content/public/android:content_java", |
| "//device/gamepad:java", |
| "//mojo/public/java:system_java", |
| "//mojo/public/java/system:system_impl_java", |
| "//net/android:net_java", |
| "//services/network/public/mojom:mojom_java", |
| "//services/network/public/mojom:url_loader_base_java", |
| "//third_party/android_deps:protobuf_lite_runtime_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/androidx:androidx_core_core_java", |
| "//third_party/blink/public:blink_headers_java", |
| "//third_party/blink/public/common:common_java", |
| "//third_party/blink/public/mojom:mojom_platform_java", |
| "//ui/android:ui_no_recycler_view_java", |
| "//url:gurl_java", |
| ] |
| annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] |
| |
| if (enable_spellcheck) { |
| deps += [ "//components/spellcheck/browser/android:java" ] |
| } |
| |
| srcjar_deps = [ |
| "//android_webview/browser:browser_enums", |
| "//components/safe_browsing/core/browser/db:sb_threat_values", |
| ] |
| |
| resources_package = "org.chromium.android_webview" |
| } |
| |
| android_library("common_variations_java") { |
| sources = [ |
| "java/src/org/chromium/android_webview/common/variations/VariationsServiceMetricsHelper.java", |
| "java/src/org/chromium/android_webview/common/variations/VariationsUtils.java", |
| ] |
| deps = [ |
| "//android_webview/proto:aw_variations_seed_proto_java", |
| "//base:base_java", |
| "//components/variations/android:variations_java", |
| "//third_party/android_deps:protobuf_lite_runtime_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| ] |
| } |
| |
| # Separate target to allow for a dependency on GmsCore without pulling in all of |
| # android_webview_java. It compiles the abstract class; implementations are |
| # compiled separately. |
| android_library("common_platform_services_java") { |
| sources = [ |
| "java/src/org/chromium/android_webview/common/PlatformServiceBridge.java", |
| "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java", |
| ] |
| |
| deps = [ |
| "//base:base_java", |
| "//components/embedder_support/android/metrics:java", |
| "//content/public/android:content_full_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| ] |
| |
| # The appropriate .class file will be loaded via a dependency to a library |
| # like :platform_service_bridge_upstream_implementation_java below. We only include the |
| # .java file because other files in the target depend on it. |
| jar_excluded_patterns = [ "*/PlatformServiceBridgeImpl.class" ] |
| } |
| |
| # This target compiles the implementation of PlatformServiceBridge for AOSP targets. |
| android_library("platform_service_bridge_upstream_implementation_java") { |
| sources = [ "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java" ] |
| deps = [ ":common_platform_services_java" ] |
| } |
| |
| android_library("common_crash_java") { |
| sources = [ |
| "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java", |
| "java/src/org/chromium/android_webview/common/crash/CrashInfo.java", |
| "java/src/org/chromium/android_webview/common/crash/CrashUploadUtil.java", |
| "java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java", |
| ] |
| |
| deps = [ |
| ":common_java", |
| "//base:base_java", |
| "//components/background_task_scheduler:background_task_scheduler_task_ids_java", |
| "//components/minidump_uploader:minidump_uploader_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| ] |
| annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] |
| } |
| |
| java_cpp_strings("common_java_switches_srcjar") { |
| # External code should depend on "common_java" instead. |
| visibility = [ ":*" ] |
| sources = [ "common/aw_switches.cc" ] |
| template = "java/src/org/chromium/android_webview/common/AwSwitches.java.tmpl" |
| } |
| |
| java_cpp_features("common_java_features_srcjar") { |
| # External code should depend on "common_java" instead. |
| visibility = [ ":*" ] |
| sources = [ "common/aw_features.cc" ] |
| template = "java/src/org/chromium/android_webview/common/AwFeatures.java.tmpl" |
| } |
| |
| android_library("common_java") { |
| sources = [ |
| "java/src/org/chromium/android_webview/common/AwResource.java", |
| "java/src/org/chromium/android_webview/common/CommandLineUtil.java", |
| "java/src/org/chromium/android_webview/common/DeveloperModeUtils.java", |
| "java/src/org/chromium/android_webview/common/Flag.java", |
| "java/src/org/chromium/android_webview/common/FlagOverrideHelper.java", |
| "java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java", |
| "java/src/org/chromium/android_webview/common/SafeModeAction.java", |
| "java/src/org/chromium/android_webview/common/SafeModeController.java", |
| "java/src/org/chromium/android_webview/common/services/ServiceNames.java", |
| ] |
| deps = [ |
| "//base:base_java", |
| "//cc/base:cc_base_java", |
| "//components/autofill/android:autofill_features_java", |
| "//components/feature_engagement/public:public_java", |
| "//components/metrics:metrics_java", |
| "//components/network_session_configurator/android:network_session_configurator_java", |
| "//components/variations:variations_java", |
| "//components/viz:viz_java", |
| "//components/webrtc:components_webrtc_java", |
| "//content/public/android:content_java", |
| "//content/public/common:common_java", |
| "//gpu/config:config_java", |
| "//services/network/public:features_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/blink/public/common:common_java", |
| "//third_party/webrtc_overrides:webrtc_overrides_java", |
| ] |
| srcjar_deps = [ |
| ":common_java_features_srcjar", |
| ":common_java_switches_srcjar", |
| ] |
| } |
| |
| android_aidl("common_aidl") { |
| import_include = [ "java/src" ] |
| sources = [ |
| "java/src/org/chromium/android_webview/common/services/ICrashReceiverService.aidl", |
| "java/src/org/chromium/android_webview/common/services/IDeveloperUiService.aidl", |
| "java/src/org/chromium/android_webview/common/services/IMetricsBridgeService.aidl", |
| "java/src/org/chromium/android_webview/common/services/IMetricsUploadService.aidl", |
| "java/src/org/chromium/android_webview/common/services/ISafeModeService.aidl", |
| "java/src/org/chromium/android_webview/common/services/IVariationsSeedServer.aidl", |
| "java/src/org/chromium/android_webview/common/services/IVariationsSeedServerCallback.aidl", |
| ] |
| } |
| |
| android_library("common_aidl_java") { |
| srcjar_deps = [ ":common_aidl" ] |
| } |
| |
| # Generate ProductConfig.java so that android_webview_product_config_java's |
| # compile step works. |
| generate_product_config_srcjar("webview_product_config") { |
| java_package = webview_product_config_java_package |
| } |
| |
| # ProductConfig.java is excluded from the generated .jar |
| # (via. jar_excluded_patterns) and the final version is inserted at the APK |
| # level - with the list of pak locales populated by looking at the assets that |
| # are listed in the final APK's .build_config.json. |
| android_library("android_webview_product_config_java") { |
| sources = [ "java/src/org/chromium/android_webview/AwLocaleConfig.java" ] |
| srcjar_deps = [ ":webview_product_config" ] |
| jar_excluded_patterns = [ "*/ProductConfig.class" ] |
| } |
| |
| if (enable_resource_allowlist_generation) { |
| libwebviewchromium_tmpl("system_webview_pak_allowlist_inputs") { |
| ldflags = [ "--collect-inputs-only" ] |
| } |
| generate_resource_allowlist("system_webview_pak_allowlist") { |
| deps = [ ":system_webview_pak_allowlist_inputs" ] |
| inputs = [ "$root_out_dir/lib.unstripped/libsystem_webview_pak_allowlist_inputs$shlib_extension" ] |
| output = system_webview_pak_allowlist |
| } |
| } |
| |
| webview_repack_locales("repack_locales") { |
| input_locales = platform_pak_locales |
| output_locales = platform_pak_locales |
| |
| if (enable_resource_allowlist_generation) { |
| repack_allowlist = system_webview_pak_allowlist |
| deps = [ ":system_webview_pak_allowlist" ] |
| } |
| } |
| |
| android_assets("locale_pak_assets") { |
| disable_compression = true |
| renaming_sources = [] |
| renaming_destinations = [] |
| foreach(_locale, platform_pak_locales) { |
| renaming_sources += [ "$root_out_dir/android_webview/locales/$_locale.pak" ] |
| renaming_destinations += [ "stored-locales/$_locale.pak" ] |
| } |
| treat_as_locale_paks = true |
| deps = [ ":repack_locales" ] |
| } |
| |
| repack("repack_pack") { |
| sources = [ |
| "$root_gen_dir/content/content_resources.pak", |
| "$root_gen_dir/net/net_resources.pak", |
| "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", |
| "$target_gen_dir/aw_resources.pak", |
| "$target_gen_dir/components_resources.pak", |
| "$target_gen_dir/mojo_bindings_resources.pak", |
| "$target_gen_dir/webui_generated_resources.pak", |
| ] |
| deps = [ |
| ":generate_aw_resources", |
| ":generate_components_resources", |
| ":generate_mojo_resources", |
| ":generate_webui_resources", |
| "//content:content_resources", |
| "//net:net_resources", |
| "//third_party/blink/public:resources", |
| ] |
| output = "$target_gen_dir/resources.pak" |
| |
| if (enable_resource_allowlist_generation) { |
| repack_allowlist = system_webview_pak_allowlist |
| deps += [ ":system_webview_pak_allowlist" ] |
| } |
| |
| if (webview_includes_weblayer) { |
| sources += [ "$root_gen_dir/weblayer/weblayer_resources.pak" ] |
| deps += [ "//weblayer:resources" ] |
| |
| # These resources are primarily useful for developers. To avoid increasing |
| # the size of WebView they are only included in non-stable channels. |
| if (android_channel != "stable") { |
| sources += [ "$root_gen_dir/content/dev_ui_content_resources.pak" ] |
| deps += [ "//content:dev_ui_content_resources" ] |
| } |
| } |
| } |
| |
| repack("repack_100_percent") { |
| sources = [ |
| "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", |
| "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak", |
| "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", |
| ] |
| deps = [ |
| "//content/app/resources", |
| "//third_party/blink/public:scaled_resources_100_percent", |
| "//ui/resources", |
| ] |
| output = "$target_gen_dir/chrome_100_percent.pak" |
| |
| if (enable_resource_allowlist_generation) { |
| repack_allowlist = system_webview_pak_allowlist |
| deps += [ ":system_webview_pak_allowlist" ] |
| } |
| if (webview_includes_weblayer) { |
| sources += [ "$target_gen_dir/components_resources_100_percent.pak" ] |
| deps += [ ":generate_components_scaled_resources" ] |
| } |
| } |
| |
| android_assets("pak_file_assets") { |
| sources = [ |
| "$target_gen_dir/chrome_100_percent.pak", |
| "$target_gen_dir/resources.pak", |
| ] |
| deps = [ |
| ":repack_100_percent", |
| ":repack_pack", |
| ] |
| disable_compression = true |
| } |
| |
| if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { |
| android_assets("v8_snapshot_secondary_abi_assets") { |
| assert(android_64bit_target_cpu, |
| "32-bit targets shouldn't have secondary abi") |
| arch_suffix = "32" |
| renaming_sources = [] |
| renaming_destinations = [] |
| if (use_v8_context_snapshot) { |
| renaming_sources += [ "$root_out_dir/v8_context_snapshot_32.bin" ] |
| renaming_destinations += [ "v8_context_snapshot_$arch_suffix.bin" ] |
| } else { |
| _secondary_abi_out_dir = |
| get_label_info("//v8($android_secondary_abi_toolchain)", |
| "root_out_dir") |
| renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ] |
| renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ] |
| } |
| disable_compression = true |
| deps = [ |
| "//tools/v8_context_snapshot($android_secondary_abi_toolchain)", |
| "//v8($android_secondary_abi_toolchain)", |
| ] |
| } |
| } |
| |
| android_assets("webview_primary_abi_assets") { |
| deps = [] |
| if (use_v8_context_snapshot) { |
| deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] |
| } else { |
| deps += [ "//v8:v8_external_startup_data_assets" ] |
| } |
| } |
| |
| android_assets("monochrome_webview_primary_abi_assets") { |
| deps = [ "//third_party/icu:icu_assets" ] |
| if (use_v8_context_snapshot) { |
| deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] |
| } else { |
| deps += [ "//v8:v8_external_startup_data_assets" ] |
| } |
| } |
| |
| if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { |
| android_assets("webview_secondary_abi_assets") { |
| deps = [ ":v8_snapshot_secondary_abi_assets" ] |
| } |
| |
| android_assets("monochrome_webview_secondary_abi_assets") { |
| deps = [ "//third_party/icu:icu_assets" ] |
| deps += [ ":v8_snapshot_secondary_abi_assets" ] |
| } |
| } |
| |
| android_assets("weblayer_webview_assets") { |
| deps = [ |
| ":webview_primary_abi_assets", |
| "//third_party/icu:icu_assets", |
| ] |
| if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) { |
| deps += [ ":webview_secondary_abi_assets" ] |
| } |
| } |
| |
| android_assets("stub_assets") { |
| renaming_sources = [ "$root_gen_dir/components/resources/about_credits.html" ] |
| renaming_destinations = [ "webview_licenses.notice" ] |
| deps = [ "//components/resources:about_credits" ] |
| } |
| |
| android_resources("resources") { |
| sources = [ |
| "java/res/drawable-hdpi/ic_play_circle_outline_black_48dp.png", |
| "java/res/drawable-mdpi/ic_play_circle_outline_black_48dp.png", |
| "java/res/drawable-xhdpi/ic_play_circle_outline_black_48dp.png", |
| "java/res/drawable-xxhdpi/ic_play_circle_outline_black_48dp.png", |
| "java/res/drawable-xxxhdpi/ic_play_circle_outline_black_48dp.png", |
| ] |
| deps = [ ":strings_grd" ] |
| } |
| |
| grit("generate_aw_resources") { |
| source = "ui/aw_resources.grd" |
| outputs = [ |
| "grit/aw_resources.h", |
| "aw_resources.pak", |
| ] |
| } |
| |
| grit("generate_aw_strings") { |
| source = "ui/aw_strings.grd" |
| outputs = [ "grit/aw_strings.h" ] |
| foreach(_locale, all_chrome_locales) { |
| outputs += [ "aw_strings_${_locale}.pak" ] |
| } |
| } |
| |
| grit("generate_webui_resources") { |
| enable_input_discovery_for_gn_analyze = false |
| defines = |
| [ "SHARED_INTERMEDIATE_DIR=" + rebase_path(root_gen_dir, root_build_dir) ] |
| source = "$root_gen_dir/ui/webui/resources/webui_generated_resources.grd" |
| deps = [ "//ui/webui/resources:build_grd" ] |
| |
| outputs = [ |
| "grit/webui_generated_resources.h", |
| "grit/webui_generated_resources_map.cc", |
| "grit/webui_generated_resources_map.h", |
| "webui_generated_resources.pak", |
| ] |
| |
| # webui/resources has way too many resources. The allowlist is trim this down |
| # to a reasonable size |
| _allowlist = "ui/grit_resources_allowlist.txt" |
| inputs = [ _allowlist ] |
| grit_flags = [ |
| "-w", |
| rebase_path(_allowlist, root_build_dir), |
| "-E", |
| "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), |
| "-E", |
| "root_src_dir=" + rebase_path("//", root_build_dir), |
| ] |
| } |
| |
| grit("generate_mojo_resources") { |
| source = "../mojo/public/js/mojo_bindings_resources.grd" |
| |
| # See :generate_webui_resources for an explanation of the allowlist |
| _allowlist = "ui/grit_resources_allowlist.txt" |
| inputs = [ _allowlist ] |
| grit_flags = [ |
| "-w", |
| rebase_path(_allowlist, root_build_dir), |
| ] |
| outputs = [ |
| "grit/mojo_bindings_resources.h", |
| "grit/mojo_bindings_resources_map.cc", |
| "grit/mojo_bindings_resources_map.h", |
| "mojo_bindings_resources.pak", |
| ] |
| deps = [ |
| "//mojo/public/js:bindings_lite", |
| "//mojo/public/js:bindings_module", |
| "//mojo/public/mojom/base:base_js", |
| ] |
| } |
| |
| action("concatenate_resources_allowlists") { |
| script = "//mojo/public/tools/bindings/concatenate-files.py" |
| inputs = [ "//android_webview/ui/grit_resources_allowlist.txt" ] |
| |
| if (webview_includes_weblayer) { |
| inputs += [ "//weblayer/grit_resources_allowlist.txt" ] |
| } |
| |
| outputs = [ "$target_gen_dir/grit_resources_allowlist.txt" ] |
| args = |
| rebase_path(inputs, root_build_dir) + rebase_path(outputs, root_build_dir) |
| } |
| |
| grit("generate_components_resources") { |
| # Note that dev_ui_components_resources.grd is Chrome-only, so excluded. |
| source = "../components/resources/components_resources.grd" |
| |
| use_brotli = true |
| |
| # See :generate_webui_resources for an explanation of the allowlist |
| _allowlist = rebase_path("$target_gen_dir/grit_resources_allowlist.txt", |
| root_build_dir) |
| _about_credits_file = get_label_info("//components/resources", |
| "target_gen_dir") + "/about_credits.html" |
| |
| grit_flags = [ |
| "-w", |
| _allowlist, |
| "-E", |
| "about_credits_file=" + rebase_path(_about_credits_file, root_build_dir), |
| ] |
| outputs = [ |
| "grit/components_resources.h", |
| "components_resources.pak", |
| ] |
| |
| deps = [ |
| ":concatenate_resources_allowlists", |
| "//components/resources:about_credits", |
| "//components/resources/ssl/ssl_error_assistant:make_ssl_error_assistant_protobuf", |
| ] |
| } |
| |
| grit("generate_components_scaled_resources") { |
| source = "../components/resources/components_scaled_resources.grd" |
| |
| # See :generate_webui_resources for an explanation of the allowlist |
| _allowlist = rebase_path("$target_gen_dir/grit_resources_allowlist.txt", |
| root_build_dir) |
| |
| grit_flags = [ |
| "-w", |
| _allowlist, |
| ] |
| outputs = [ |
| "grit/components_scaled_resources.h", |
| "grit/components_scaled_resources_map.cc", |
| "grit/components_scaled_resources_map.h", |
| "components_resources_100_percent.pak", |
| "components_resources_200_percent.pak", |
| "components_resources_300_percent.pak", |
| ] |
| |
| deps = [ ":concatenate_resources_allowlists" ] |
| } |
| |
| grit("generate_components_strings") { |
| source = "../components/components_strings.grd" |
| |
| # components_strings contains strings from all components. WebView |
| # will never display most of them, so we try to limit the included |
| # strings. This allowlist trims about 50% more than the compile-based |
| # allowlist generated by :system_webview_pak_allowlist. |
| _allowlist = rebase_path("ui/grit_strings_allowlist.txt", root_build_dir) |
| inputs = [ "//android_webview/ui/grit_strings_allowlist.txt" ] |
| grit_flags = [ |
| "-w", |
| _allowlist, |
| ] |
| outputs = |
| [ |
| "grit/components_strings.h", |
| "java/res/values/components_strings.xml", |
| ] + |
| process_file_template( |
| android_bundle_locales_as_resources, |
| [ "java/res/values-{{source_name_part}}/components_strings.xml" ]) + |
| process_file_template(all_chrome_locales, |
| [ "components_strings_{{source_name_part}}.pak" ]) |
| } |
| |
| java_strings_grd("strings_grd") { |
| grd_file = "java/strings/android_webview_strings.grd" |
| outputs = [ "values/android_webview_strings.xml" ] + |
| process_file_template( |
| android_bundle_locales_as_resources, |
| [ "values-{{source_name_part}}/android_webview_strings.xml" ]) |
| } |