Skip to content

Commit

Permalink
Name V8 snapshot according to target architecture (32/64 bit).
Browse files Browse the repository at this point in the history
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}
  • Loading branch information
gsennton authored and Commit bot committed Feb 9, 2015
1 parent 283a060 commit 0ae506b
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 38 deletions.
44 changes: 44 additions & 0 deletions android_webview/android_webview.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -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)',
],
},
],
}],
],
},
{
Expand Down
41 changes: 17 additions & 24 deletions android_webview/android_webview_tests.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -18,36 +18,34 @@
'native_lib_target': 'libstandalonelibwebviewchromium',
'resource_dir': 'test/shell/res',
'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)'],
'snapshot_copy_files': '<(snapshot_copy_files)',
'additional_input_paths': [
'<(PRODUCT_DIR)/android_webview_apk/assets/webviewchromium.pak',
'<(PRODUCT_DIR)/android_webview_apk/assets/en-US.pak',
'<(PRODUCT_DIR)/android_webview_apk/assets/asset_file.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/cookie_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/asset_icon.png',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video.js',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/full_screen_video_inside_div_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/multiple_videos_test.html',
'<(PRODUCT_DIR)/android_webview_apk/assets/video.mp4',
'<(asset_location)/webviewchromium.pak',
'<(asset_location)/en-US.pak',
'<(asset_location)/asset_file.html',
'<(asset_location)/cookie_test.html',
'<(asset_location)/asset_icon.png',
'<(asset_location)/full_screen_video.js',
'<(asset_location)/full_screen_video_test.html',
'<(asset_location)/full_screen_video_inside_div_test.html',
'<(asset_location)/multiple_videos_test.html',
'<(asset_location)/video.mp4',
'<@(snapshot_additional_input_paths)',
],
'conditions': [
['icu_use_data_file_flag==1', {
'additional_input_paths': [
'<(PRODUCT_DIR)/icudtl.dat',
],
}],
['v8_use_external_startup_data==1', {
'additional_input_paths': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
'<(asset_location)/icudtl.dat',
],
}],
],
'includes': [ 'snapshot_copying.gypi' ],
},
'copies': [
{
'destination': '<(PRODUCT_DIR)/android_webview_apk/assets',
'destination': '<(asset_location)',
'files': [
'<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak',
'<(PRODUCT_DIR)/android_webview_assets/locales/en-US.pak',
Expand All @@ -59,19 +57,14 @@
'<(java_in_dir)/assets/full_screen_video_inside_div_test.html',
'<(java_in_dir)/assets/multiple_videos_test.html',
'<(java_in_dir)/assets/video.mp4',
'<@(snapshot_copy_files)',
],
'conditions': [
['icu_use_data_file_flag==1', {
'files': [
'<(PRODUCT_DIR)/icudtl.dat',
],
}],
['v8_use_external_startup_data==1', {
'files': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
],
}],
],
},
],
Expand Down
18 changes: 6 additions & 12 deletions android_webview/apk/system_webview_apk_common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
'R_package_relpath': 'com/android/webview/chromium',
'extensions_to_not_compress': 'pak,bin,dat',
'asset_location': '<(INTERMEDIATE_DIR)/assets/',
'snapshot_copy_files': '<(snapshot_copy_files)',
# TODO: crbug.com/442348 Update proguard.flags and re-enable.
'proguard_enabled': 'false',
'proguard_flags_paths': ['<(DEPTH)/android_webview/apk/java/proguard.flags'],
Expand All @@ -26,19 +27,17 @@
'<@(webview_locales_output_paks)',
'<(asset_location)/webviewchromium.pak',
'<(asset_location)/webview_licenses.notice',
'<@(snapshot_additional_input_paths)',
],
'includes': [
'../snapshot_copying.gypi',
],
'conditions': [
['icu_use_data_file_flag==1', {
'additional_input_paths': [
'<(asset_location)/icudtl.dat',
],
}],
['v8_use_external_startup_data==1', {
'additional_input_paths': [
'<(asset_location)/natives_blob.bin',
'<(asset_location)/snapshot_blob.bin',
],
}],
],
},
'copies': [
Expand All @@ -47,19 +46,14 @@
'files': [
'<@(webview_locales_input_paks)',
'<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak',
'<@(snapshot_copy_files)',
],
'conditions': [
['icu_use_data_file_flag==1', {
'files': [
'<(PRODUCT_DIR)/icudtl.dat',
],
}],
['v8_use_external_startup_data==1', {
'files': [
'<(PRODUCT_DIR)/natives_blob.bin',
'<(PRODUCT_DIR)/snapshot_blob.bin',
],
}],
],
},
],
Expand Down
14 changes: 12 additions & 2 deletions android_webview/lib/main/aw_main_delegate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,20 @@ bool AwMainDelegate::BasicStartupComplete(int* exit_code) {
// In multi-process mode this code would live in
// AwContentBrowserClient::GetAdditionalMappedFilesForChildProcess.
#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(
kV8NativesDataDescriptor, gin::IsolateHolder::kNativesFileName));
kV8NativesDataDescriptor, kNativesFileName));
CHECK(AwAssets::RegisterAssetWithGlobalDescriptors(
kV8SnapshotDataDescriptor, gin::IsolateHolder::kSnapshotFileName));
kV8SnapshotDataDescriptor, kSnapshotFileName));
#endif
// TODO(mkosiba): make this CHECK when the android_webview_build uses an asset
// from the .apk too.
Expand Down
28 changes: 28 additions & 0 deletions android_webview/snapshot_copying.gypi
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
'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',
],
}],
],
},
}

0 comments on commit 0ae506b

Please sign in to comment.