Chromium Code Reviews| Index: content/app/content_main_runner.cc |
| diff --git a/content/app/content_main_runner.cc b/content/app/content_main_runner.cc |
| index a677c9d2c6df30e78614b09d396372db33dff781..77efd83eaecbd68adc6a22cf9f31c6fc5aa709e9 100644 |
| --- a/content/app/content_main_runner.cc |
| +++ b/content/app/content_main_runner.cc |
| @@ -54,6 +54,7 @@ |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/main_function_params.h" |
| #include "content/public/common/sandbox_init.h" |
| +#include "gin/v8_initializer.h" |
| #include "ipc/ipc_descriptors.h" |
| #include "media/base/media.h" |
| #include "ppapi/features/features.h" |
| @@ -61,11 +62,6 @@ |
| #include "ui/base/ui_base_paths.h" |
| #include "ui/base/ui_base_switches.h" |
| -#if defined(V8_USE_EXTERNAL_STARTUP_DATA) && \ |
| - !defined(CHROME_MULTIPLE_DLL_BROWSER) |
| -#include "gin/v8_initializer.h" |
| -#endif |
| - |
| #if defined(OS_WIN) |
| #include <malloc.h> |
| #include <cstring> |
| @@ -188,34 +184,50 @@ void InitializeV8IfNeeded( |
| if (process_type == switches::kGpuProcess) |
| return; |
| -#if defined(V8_USE_EXTERNAL_STARTUP_DATA) |
| #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| base::FileDescriptorStore& file_descriptor_store = |
| base::FileDescriptorStore::GetInstance(); |
| base::MemoryMappedFile::Region region; |
| +#endif |
| + |
| +#if defined(V8_USE_EXTERNAL_STARTUP_DATA) |
| +#if defined(OS_POSIX) && !defined(OS_MACOSX) |
| base::ScopedFD v8_snapshot_fd = |
| file_descriptor_store.MaybeTakeFD(kV8SnapshotDataDescriptor, ®ion); |
| if (v8_snapshot_fd.is_valid()) { |
| gin::V8Initializer::LoadV8SnapshotFromFD(v8_snapshot_fd.get(), |
| region.offset, region.size); |
| - } else { |
| - gin::V8Initializer::LoadV8Snapshot(); |
| - } |
| - base::ScopedFD v8_natives_fd = |
| - file_descriptor_store.MaybeTakeFD(kV8NativesDataDescriptor, ®ion); |
| - if (v8_natives_fd.is_valid()) { |
| - gin::V8Initializer::LoadV8NativesFromFD(v8_natives_fd.get(), |
| - region.offset, region.size); |
| - } else { |
| - gin::V8Initializer::LoadV8Natives(); |
| - } |
| -#else |
| -#if !defined(CHROME_MULTIPLE_DLL_BROWSER) |
| + } else { |
| gin::V8Initializer::LoadV8Snapshot(); |
| + } |
| + base::ScopedFD v8_natives_fd = |
| + file_descriptor_store.MaybeTakeFD(kV8NativesDataDescriptor, ®ion); |
| + if (v8_natives_fd.is_valid()) { |
| + gin::V8Initializer::LoadV8NativesFromFD(v8_natives_fd.get(), region.offset, |
| + region.size); |
| + } else { |
| gin::V8Initializer::LoadV8Natives(); |
| + } |
| +#else |
| +#if !defined(CHROME_MULTIPLE_DLL_BROWSER) |
| + gin::V8Initializer::LoadV8Snapshot(); |
| + gin::V8Initializer::LoadV8Natives(); |
| #endif // !CHROME_MULTIPLE_DLL_BROWSER |
| #endif // OS_POSIX && !OS_MACOSX |
| #endif // V8_USE_EXTERNAL_STARTUP_DATA |
| + |
| +#if defined(OS_POSIX) && !defined(OS_MACOSX) |
| + base::ScopedFD v8_context_fd = |
| + file_descriptor_store.MaybeTakeFD(kV8ContextDataDescriptor, ®ion); |
| + if (v8_context_fd.is_valid()) { |
| + gin::V8Initializer::LoadV8ContextFromFD(v8_context_fd.get(), region.offset, |
| + region.size); |
| + } else { |
| + gin::V8Initializer::LoadV8Context(); |
| + } |
| +#elif !defined(CHROME_MULTIPLE_DLL_BROWSER) |
|
Yuki
2017/05/30 14:35:56
Why is this not |#else|?
Is it okay to not run Loa
peria
2017/06/20 10:20:14
it seems we can't use V8initializer on MULTIPLE_DL
|
| + gin::V8Initializer::LoadV8Context(); |
| +#endif // OS |
| } |
| } // namespace |