Commit 0ae506b5 authored by gsennton's avatar gsennton Committed by Commit bot

Name V8 snapshot according to target architecture (32/64 bit).

Renaming webview copy of V8 snapshot to be able to differentiate
between snapshots for 32- and 64 bit architectures.
This is done so that snapshots for different architectures can be
repacked into the same APK.

BUG=455699

Review URL: https://codereview.chromium.org/903793002

Cr-Commit-Position: refs/heads/master@{#315314}
parent 283a0608
...@@ -56,6 +56,50 @@ ...@@ -56,6 +56,50 @@
} }
], ],
}], }],
['v8_use_external_startup_data==1', {
'variables': {
'conditions': [
['(target_arch=="arm" or target_arch=="x86" or target_arch=="mips")', {
'arch_suffix':'32'
}],
['(target_arch=="arm64" or target_arch=="x86_64" or target_arch=="mips64")', {
'arch_suffix':'64'
}],
],
},
'actions': [
{
'action_name': 'rename_snapshot_blob',
'inputs': [
'<(PRODUCT_DIR)/snapshot_blob.bin',
],
'outputs': [
'<(PRODUCT_DIR)/snapshot_blob_<(arch_suffix).bin',
],
'action': [
'python',
'<(DEPTH)/build/cp.py',
'<@(_inputs)',
'<@(_outputs)',
],
},
{
'action_name': 'rename_natives_blob',
'inputs': [
'<(PRODUCT_DIR)/natives_blob.bin',
],
'outputs': [
'<(PRODUCT_DIR)/natives_blob_<(arch_suffix).bin',
],
'action': [
'python',
'<(DEPTH)/build/cp.py',
'<@(_inputs)',
'<@(_outputs)',
],
},
],
}],
], ],
}, },
{ {
......
...@@ -18,36 +18,34 @@ ...@@ -18,36 +18,34 @@
'native_lib_target': 'libstandalonelibwebviewchromium', 'native_lib_target': 'libstandalonelibwebviewchromium',
'resource_dir': 'test/shell/res', 'resource_dir': 'test/shell/res',
'extensions_to_not_compress': 'pak,dat,bin', 'extensions_to_not_compress': 'pak,dat,bin',
'asset_location': '<(PRODUCT_DIR)/android_webview_apk/assets',
'extra_native_libs': ['<(SHARED_LIB_DIR)/libdrawgl.>(android_product_extension)'], 'extra_native_libs': ['<(SHARED_LIB_DIR)/libdrawgl.>(android_product_extension)'],
'snapshot_copy_files': '<(snapshot_copy_files)',
'additional_input_paths': [ 'additional_input_paths': [
'<(PRODUCT_DIR)/android_webview_apk/assets/webviewchromium.pak', '<(asset_location)/webviewchromium.pak',
'<(PRODUCT_DIR)/android_webview_apk/assets/en-US.pak', '<(asset_location)/en-US.pak',
'<(PRODUCT_DIR)/android_webview_apk/assets/asset_file.html', '<(asset_location)/asset_file.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/cookie_test.html', '<(asset_location)/cookie_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/asset_icon.png', '<(asset_location)/asset_icon.png',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video.js', '<(asset_location)/full_screen_video.js',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video_test.html', '<(asset_location)/full_screen_video_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video_inside_div_test.html', '<(asset_location)/full_screen_video_inside_div_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/multiple_videos_test.html', '<(asset_location)/multiple_videos_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/video.mp4', '<(asset_location)/video.mp4',
'<@(snapshot_additional_input_paths)',
], ],
'conditions': [ 'conditions': [
['icu_use_data_file_flag==1', { ['icu_use_data_file_flag==1', {
'additional_input_paths': [ 'additional_input_paths': [
'<(PRODUCT_DIR)/icudtl.dat', '<(asset_location)/icudtl.dat',
],
}],
['v8_use_external_startup_data==1', {
'additional_input_paths': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
], ],
}], }],
], ],
'includes': [ 'snapshot_copying.gypi' ],
}, },
'copies': [ 'copies': [
{ {
'destination': '<(PRODUCT_DIR)/android_webview_apk/assets', 'destination': '<(asset_location)',
'files': [ 'files': [
'<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak', '<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak',
'<(PRODUCT_DIR)/android_webview_assets/locales/en-US.pak', '<(PRODUCT_DIR)/android_webview_assets/locales/en-US.pak',
...@@ -59,6 +57,7 @@ ...@@ -59,6 +57,7 @@
'<(java_in_dir)/assets/full_screen_video_inside_div_test.html', '<(java_in_dir)/assets/full_screen_video_inside_div_test.html',
'<(java_in_dir)/assets/multiple_videos_test.html', '<(java_in_dir)/assets/multiple_videos_test.html',
'<(java_in_dir)/assets/video.mp4', '<(java_in_dir)/assets/video.mp4',
'<@(snapshot_copy_files)',
], ],
'conditions': [ 'conditions': [
['icu_use_data_file_flag==1', { ['icu_use_data_file_flag==1', {
...@@ -66,12 +65,6 @@ ...@@ -66,12 +65,6 @@
'<(PRODUCT_DIR)/icudtl.dat', '<(PRODUCT_DIR)/icudtl.dat',
], ],
}], }],
['v8_use_external_startup_data==1', {
'files': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
],
}],
], ],
}, },
], ],
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
'R_package_relpath': 'com/android/webview/chromium', 'R_package_relpath': 'com/android/webview/chromium',
'extensions_to_not_compress': 'pak,bin,dat', 'extensions_to_not_compress': 'pak,bin,dat',
'asset_location': '<(INTERMEDIATE_DIR)/assets/', 'asset_location': '<(INTERMEDIATE_DIR)/assets/',
'snapshot_copy_files': '<(snapshot_copy_files)',
# TODO: crbug.com/442348 Update proguard.flags and re-enable. # TODO: crbug.com/442348 Update proguard.flags and re-enable.
'proguard_enabled': 'false', 'proguard_enabled': 'false',
'proguard_flags_paths': ['<(DEPTH)/android_webview/apk/java/proguard.flags'], 'proguard_flags_paths': ['<(DEPTH)/android_webview/apk/java/proguard.flags'],
...@@ -26,6 +27,10 @@ ...@@ -26,6 +27,10 @@
'<@(webview_locales_output_paks)', '<@(webview_locales_output_paks)',
'<(asset_location)/webviewchromium.pak', '<(asset_location)/webviewchromium.pak',
'<(asset_location)/webview_licenses.notice', '<(asset_location)/webview_licenses.notice',
'<@(snapshot_additional_input_paths)',
],
'includes': [
'../snapshot_copying.gypi',
], ],
'conditions': [ 'conditions': [
['icu_use_data_file_flag==1', { ['icu_use_data_file_flag==1', {
...@@ -33,12 +38,6 @@ ...@@ -33,12 +38,6 @@
'<(asset_location)/icudtl.dat', '<(asset_location)/icudtl.dat',
], ],
}], }],
['v8_use_external_startup_data==1', {
'additional_input_paths': [
'<(asset_location)/natives_blob.bin',
'<(asset_location)/snapshot_blob.bin',
],
}],
], ],
}, },
'copies': [ 'copies': [
...@@ -47,6 +46,7 @@ ...@@ -47,6 +46,7 @@
'files': [ 'files': [
'<@(webview_locales_input_paks)', '<@(webview_locales_input_paks)',
'<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak', '<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak',
'<@(snapshot_copy_files)',
], ],
'conditions': [ 'conditions': [
['icu_use_data_file_flag==1', { ['icu_use_data_file_flag==1', {
...@@ -54,12 +54,6 @@ ...@@ -54,12 +54,6 @@
'<(PRODUCT_DIR)/icudtl.dat', '<(PRODUCT_DIR)/icudtl.dat',
], ],
}], }],
['v8_use_external_startup_data==1', {
'files': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
],
}],
], ],
}, },
], ],
......
...@@ -92,10 +92,20 @@ bool AwMainDelegate::BasicStartupComplete(int* exit_code) { ...@@ -92,10 +92,20 @@ bool AwMainDelegate::BasicStartupComplete(int* exit_code) {
// In multi-process mode this code would live in // In multi-process mode this code would live in
// AwContentBrowserClient::GetAdditionalMappedFilesForChildProcess. // AwContentBrowserClient::GetAdditionalMappedFilesForChildProcess.
#ifdef V8_USE_EXTERNAL_STARTUP_DATA #ifdef V8_USE_EXTERNAL_STARTUP_DATA
#ifdef __LP64__
const char kNativesFileName[] = "natives_blob_64.bin";
const char kSnapshotFileName[] = "snapshot_blob_64.bin";
#else
const char kNativesFileName[] = "natives_blob_32.bin";
const char kSnapshotFileName[] = "snapshot_blob_32.bin";
#endif // __LP64__
// TODO(gsennton) we should use
// gin::IsolateHolder::kNativesFileName/kSnapshotFileName
// here when those files have arch specific names http://crbug.com/455699
CHECK(AwAssets::RegisterAssetWithGlobalDescriptors( CHECK(AwAssets::RegisterAssetWithGlobalDescriptors(
kV8NativesDataDescriptor, gin::IsolateHolder::kNativesFileName)); kV8NativesDataDescriptor, kNativesFileName));
CHECK(AwAssets::RegisterAssetWithGlobalDescriptors( CHECK(AwAssets::RegisterAssetWithGlobalDescriptors(
kV8SnapshotDataDescriptor, gin::IsolateHolder::kSnapshotFileName)); kV8SnapshotDataDescriptor, kSnapshotFileName));
#endif #endif
// TODO(mkosiba): make this CHECK when the android_webview_build uses an asset // TODO(mkosiba): make this CHECK when the android_webview_build uses an asset
// from the .apk too. // from the .apk too.
......
{
'variables': {
'snapshot_additional_input_paths': [],
'snapshot_copy_files': [],
'conditions': [
['v8_use_external_startup_data==1 and (target_arch=="arm" or target_arch=="x86" or target_arch=="mips")', {
'snapshot_additional_input_paths': [
'<(asset_location)/natives_blob_32.bin',
'<(asset_location)/snapshot_blob_32.bin',
],
'snapshot_copy_files': [
'<(PRODUCT_DIR)/natives_blob_32.bin',
'<(PRODUCT_DIR)/snapshot_blob_32.bin',
],
}],
['v8_use_external_startup_data==1 and (target_arch=="arm64" or target_arch=="x86_64" or target_arch=="mips64")', {
'snapshot_additional_input_paths': [
'<(asset_location)/natives_blob_64.bin',
'<(asset_location)/snapshot_blob_64.bin',
],
'snapshot_copy_files': [
'<(PRODUCT_DIR)/natives_blob_64.bin',
'<(PRODUCT_DIR)/snapshot_blob_64.bin',
],
}],
],
},
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment