diff options
author | gsennton <gsennton@chromium.org> | 2015-02-10 02:32:14 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-10 10:33:27 +0000 |
commit | 48f415fdf3ad4eb52066f939455ab324f5381fb6 (patch) | |
tree | 0c31032603a314c456a109f6ea93cf3490e5e355 /android_webview | |
parent | 65527cf2bdbf381e4adec05a4e650cd2e2720fe2 (diff) | |
download | chromium_src-48f415fdf3ad4eb52066f939455ab324f5381fb6.zip chromium_src-48f415fdf3ad4eb52066f939455ab324f5381fb6.tar.gz chromium_src-48f415fdf3ad4eb52066f939455ab324f5381fb6.tar.bz2 |
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/881923003
Cr-Commit-Position: refs/heads/master@{#315533}
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/android_webview.gyp | 44 | ||||
-rw-r--r-- | android_webview/android_webview_tests.gypi | 41 | ||||
-rw-r--r-- | android_webview/apk/system_webview_apk_common.gypi | 18 | ||||
-rw-r--r-- | android_webview/lib/main/aw_main_delegate.cc | 14 | ||||
-rw-r--r-- | android_webview/snapshot_copying.gypi | 28 |
5 files changed, 107 insertions, 38 deletions
diff --git a/android_webview/android_webview.gyp b/android_webview/android_webview.gyp index 6302423..729283d 100644 --- a/android_webview/android_webview.gyp +++ b/android_webview/android_webview.gyp @@ -56,6 +56,50 @@ } ], }], + ['v8_use_external_startup_data==1', { + 'variables': { + 'conditions': [ + ['(target_arch=="arm" or target_arch=="ia32" or target_arch=="mipsel")', { + 'arch_suffix':'32' + }], + ['(target_arch=="arm64" or target_arch=="x64" or target_arch=="mips64el")', { + '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)', + ], + }, + ], + }], ], }, { diff --git a/android_webview/android_webview_tests.gypi b/android_webview/android_webview_tests.gypi index 817654f..aca7475 100644 --- a/android_webview/android_webview_tests.gypi +++ b/android_webview/android_webview_tests.gypi @@ -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', @@ -59,6 +57,7 @@ '<(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', { @@ -66,12 +65,6 @@ '<(PRODUCT_DIR)/icudtl.dat', ], }], - ['v8_use_external_startup_data==1', { - 'files': [ - '<(PRODUCT_DIR)/natives_blob.bin', - '<(PRODUCT_DIR)/snapshot_blob.bin', - ], - }], ], }, ], diff --git a/android_webview/apk/system_webview_apk_common.gypi b/android_webview/apk/system_webview_apk_common.gypi index a8f5b6c..b471352 100644 --- a/android_webview/apk/system_webview_apk_common.gypi +++ b/android_webview/apk/system_webview_apk_common.gypi @@ -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'], @@ -26,6 +27,10 @@ '<@(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', { @@ -33,12 +38,6 @@ '<(asset_location)/icudtl.dat', ], }], - ['v8_use_external_startup_data==1', { - 'additional_input_paths': [ - '<(asset_location)/natives_blob.bin', - '<(asset_location)/snapshot_blob.bin', - ], - }], ], }, 'copies': [ @@ -47,6 +46,7 @@ 'files': [ '<@(webview_locales_input_paks)', '<(PRODUCT_DIR)/android_webview_assets/webviewchromium.pak', + '<@(snapshot_copy_files)', ], 'conditions': [ ['icu_use_data_file_flag==1', { @@ -54,12 +54,6 @@ '<(PRODUCT_DIR)/icudtl.dat', ], }], - ['v8_use_external_startup_data==1', { - 'files': [ - '<(PRODUCT_DIR)/natives_blob.bin', - '<(PRODUCT_DIR)/snapshot_blob.bin', - ], - }], ], }, ], diff --git a/android_webview/lib/main/aw_main_delegate.cc b/android_webview/lib/main/aw_main_delegate.cc index 5ff728a..f8ea4a1 100644 --- a/android_webview/lib/main/aw_main_delegate.cc +++ b/android_webview/lib/main/aw_main_delegate.cc @@ -93,10 +93,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. diff --git a/android_webview/snapshot_copying.gypi b/android_webview/snapshot_copying.gypi new file mode 100644 index 0000000..0a23a8c --- /dev/null +++ b/android_webview/snapshot_copying.gypi @@ -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=="ia32" or target_arch=="mipsel")', { + '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=="x64" or target_arch=="mips64el")', { + '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', + ], + }], + ], + }, +} |