Index: android_webview/BUILD.gn |
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn |
index 90949095041e38ff459b30d08fb080bca95e68b1..c2cbd8bbb238725f21e511c4e3f4a07815143491 100644 |
--- a/android_webview/BUILD.gn |
+++ b/android_webview/BUILD.gn |
@@ -6,6 +6,7 @@ import("//build/config/android/config.gni") |
import("//build/config/android/rules.gni") |
import("//build/config/locales.gni") |
import("//tools/grit/repack.gni") |
+import("//tools/resources/generate_resource_whitelist.gni") |
import("system_webview_apk_tmpl.gni") |
import("webview_repack_locales.gni") |
@@ -18,6 +19,11 @@ if (!defined(use_webview_internal_framework)) { |
use_webview_internal_framework = false |
} |
+if (enable_resource_whitelist_generation) { |
+ system_webview_pak_whitelist = |
+ "$target_gen_dir/system_webview_pak_whitelist.txt" |
+} |
+ |
system_webview_android_manifest = |
"$target_gen_dir/system_webview_apk/AndroidManifest.xml" |
@@ -38,6 +44,13 @@ jinja_template("system_webview_manifest") { |
webview_repack_locales("repack_locales") { |
input_locales = locales |
output_locales = locales |
+ |
+ if (enable_resource_whitelist_generation) { |
+ repack_whitelist = system_webview_pak_whitelist |
+ deps = [ |
+ ":system_webview_pak_whitelist", |
+ ] |
+ } |
} |
locale_pak_resources("locale_paks") { |
@@ -115,6 +128,11 @@ repack("repack_pack") { |
"//third_party/WebKit/public:resources", |
] |
output = "$target_gen_dir/resources.pak" |
+ |
+ if (enable_resource_whitelist_generation) { |
+ repack_whitelist = system_webview_pak_whitelist |
+ deps += [ ":system_webview_pak_whitelist" ] |
+ } |
} |
repack("repack_100_percent") { |
@@ -129,6 +147,11 @@ repack("repack_100_percent") { |
"//ui/resources", |
] |
output = "$target_gen_dir/chrome_100_percent.pak" |
+ |
+ if (enable_resource_whitelist_generation) { |
+ repack_whitelist = system_webview_pak_whitelist |
+ deps += [ ":system_webview_pak_whitelist" ] |
+ } |
} |
webview_license_path = "$target_gen_dir/webview_licenses.notice" |
@@ -267,7 +290,8 @@ grit("generate_components_strings") { |
# components_strings contains strings from all components. WebView |
# will never display most of them, so we try to limit the included |
- # strings |
+ # strings. This whitelist trims about 50% more than the compile-based |
+ # whitelist generated by :system_webview_pak_whitelist. |
whitelist = rebase_path("ui/grit_components_whitelist.txt") |
inputs = [ |
whitelist, |
@@ -404,6 +428,16 @@ if (android_64bit_target_cpu) { |
} |
} |
+if (enable_resource_whitelist_generation) { |
+ generate_resource_whitelist("system_webview_pak_whitelist") { |
+ deps = [ |
+ ":libwebviewchromium", |
+ ] |
+ input = "$root_out_dir/libwebviewchromium$shlib_extension.whitelist" |
+ output = system_webview_pak_whitelist |
+ } |
+} |
+ |
source_set("common") { |
sources = [ |
"browser/aw_browser_context.cc", |