Index: chrome/android/BUILD.gn |
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn |
index 9bdf03faec931bd9c0bba129bc6250ec30f09a36..ca5addba80a428e227d48e35757a382d765a6961 100644 |
--- a/chrome/android/BUILD.gn |
+++ b/chrome/android/BUILD.gn |
@@ -41,6 +41,10 @@ app_hooks_impl = "java/src/org/chromium/chrome/browser/AppHooksImpl.java" |
if (enable_resource_whitelist_generation) { |
monochrome_resource_whitelist = |
"$target_gen_dir/monochrome_resource_whitelist.txt" |
+ system_webview_locale_resource_id_list = |
+ "$target_gen_dir/system_webview_locale_resource_id_list.txt" |
+ monochrome_locale_whitelist = |
+ "$target_gen_dir/monochrome_locale_whitelist.txt" |
} |
jinja_template("chrome_public_android_manifest") { |
@@ -730,9 +734,66 @@ if (current_toolchain == default_toolchain) { |
"/libmonochrome$shlib_extension.whitelist" |
output = monochrome_resource_whitelist |
} |
+ |
+ # Use custom resource ID list instead of android_webview's compiler |
+ # resource whitelist because //android_webview: generate_webui_resources |
+ # and //android_webview: generate_components_resources use hand-written |
+ # resource whitelists. |
+ action("system_webview_locale_resource_id_list") { |
+ script = "//tools/grit/pak_util.py" |
+ |
+ _system_webview_en_US_locale_pak = |
+ "$root_out_dir/android_webview/locales/en-US.pak" |
+ |
+ inputs = [ |
+ _system_webview_en_US_locale_pak, |
+ ] |
+ |
+ outputs = [ |
+ system_webview_locale_resource_id_list, |
+ ] |
+ |
+ deps = [ |
+ "//android_webview:repack_locales", |
+ ] |
+ |
+ args = [ |
+ "list-id", |
+ "--output", |
+ rebase_path(system_webview_locale_resource_id_list, root_build_dir), |
+ rebase_path(_system_webview_en_US_locale_pak, root_build_dir), |
+ ] |
+ } |
+ |
+ action("monochrome_locale_whitelist") { |
+ script = "//tools/resources/filter_resource_whitelist.py" |
+ |
+ inputs = [ |
+ monochrome_resource_whitelist, |
+ system_webview_locale_resource_id_list, |
+ ] |
+ |
+ outputs = [ |
+ monochrome_locale_whitelist, |
+ ] |
+ |
+ deps = [ |
+ ":monochrome_resource_whitelist", |
+ ":system_webview_locale_resource_id_list", |
+ "//android_webview:system_webview_pak_whitelist", |
+ ] |
+ |
+ args = [ |
+ "--input", |
+ rebase_path(monochrome_resource_whitelist, root_build_dir), |
+ "--filter", |
+ rebase_path(system_webview_locale_resource_id_list, root_build_dir), |
+ "--output", |
+ rebase_path(monochrome_locale_whitelist, root_build_dir), |
+ ] |
+ } |
} |
- # This target does not output locale paks. |
chrome_paks("monochrome_paks") { |
output_dir = "$target_gen_dir/$target_name" |
@@ -741,12 +802,25 @@ if (current_toolchain == default_toolchain) { |
"//android_webview:generate_aw_resources", |
] |
- exclude_locale_paks = true |
- |
if (enable_resource_whitelist_generation) { |
repack_whitelist = monochrome_resource_whitelist |
deps += [ ":monochrome_resource_whitelist" ] |
+ locale_whitelist = monochrome_locale_whitelist |
+ deps += [ ":monochrome_locale_whitelist" ] |
+ } |
+ } |
+ |
+ # This target is separate from monochrome_pak_assets because it does not |
+ # disable compression. |
+ android_assets("monochrome_locale_pak_assets") { |
+ sources = [] |
+ foreach(_locale, locales - android_chrome_omitted_locales) { |
+ sources += [ "$target_gen_dir/monochrome_paks/locales/$_locale.pak" ] |
} |
+ |
+ deps = [ |
+ ":monochrome_paks", |
+ ] |
} |
# This target explicitly includes locale paks via deps. |
@@ -758,7 +832,7 @@ if (current_toolchain == default_toolchain) { |
disable_compression = true |
deps = [ |
- ":chrome_public_locale_pak_assets", |
+ ":monochrome_locale_pak_assets", |
":monochrome_paks", |
"//android_webview:locale_pak_assets", |
] |