gin_enable_disable_v8_platform.patch 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Cheng Zhao <[email protected]>
  3. Date: Thu, 20 Sep 2018 17:47:44 -0700
  4. Subject: gin_enable_disable_v8_platform.patch
  5. We don't use gin to create the V8 platform, because we need to inject Node
  6. things.
  7. diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
  8. index 570a23af3c0fb4839b063c742d1d345a27799cd0..ece381bb1ce22bc65c3d8e428354adeb4b6fe4c1 100644
  9. --- a/gin/isolate_holder.cc
  10. +++ b/gin/isolate_holder.cc
  11. @@ -103,9 +103,10 @@ IsolateHolder::~IsolateHolder() {
  12. // static
  13. void IsolateHolder::Initialize(ScriptMode mode,
  14. v8::ArrayBuffer::Allocator* allocator,
  15. - const intptr_t* reference_table) {
  16. + const intptr_t* reference_table,
  17. + bool create_v8_platform) {
  18. CHECK(allocator);
  19. - V8Initializer::Initialize(mode);
  20. + V8Initializer::Initialize(mode, create_v8_platform);
  21. g_array_buffer_allocator = allocator;
  22. g_reference_table = reference_table;
  23. }
  24. diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h
  25. index f23af2d9738f3aa76e3a49301e1c3216ee4a64b4..ede178acabc63c3c33d6ce93efd5632bec50ba89 100644
  26. --- a/gin/public/isolate_holder.h
  27. +++ b/gin/public/isolate_holder.h
  28. @@ -88,7 +88,8 @@ class GIN_EXPORT IsolateHolder {
  29. // reference pointers. Otherwise, it can be nullptr.
  30. static void Initialize(ScriptMode mode,
  31. v8::ArrayBuffer::Allocator* allocator,
  32. - const intptr_t* reference_table = nullptr);
  33. + const intptr_t* reference_table = nullptr,
  34. + bool create_v8_platform = true);
  35. v8::Isolate* isolate() { return isolate_; }
  36. diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
  37. index 630814e5af46abc3d035a8ec12a83016a94fc323..00e24954441630d45ba42759755ee432c3e80cde 100644
  38. --- a/gin/v8_initializer.cc
  39. +++ b/gin/v8_initializer.cc
  40. @@ -191,12 +191,14 @@ enum LoadV8FileResult {
  41. } // namespace
  42. // static
  43. -void V8Initializer::Initialize(IsolateHolder::ScriptMode mode) {
  44. +void V8Initializer::Initialize(IsolateHolder::ScriptMode mode,
  45. + bool create_v8_platform) {
  46. static bool v8_is_initialized = false;
  47. if (v8_is_initialized)
  48. return;
  49. - v8::V8::InitializePlatform(V8Platform::Get());
  50. + if (create_v8_platform)
  51. + v8::V8::InitializePlatform(V8Platform::Get());
  52. if (!base::FeatureList::IsEnabled(features::kV8OptimizeJavascript)) {
  53. // We avoid explicitly passing --opt if kV8OptimizeJavascript is enabled
  54. diff --git a/gin/v8_initializer.h b/gin/v8_initializer.h
  55. index 2918c6235688ee4eb7c43387296e6d24145c14aa..069c2c96d5067f0444dac3c6ce6d83f75e770129 100644
  56. --- a/gin/v8_initializer.h
  57. +++ b/gin/v8_initializer.h
  58. @@ -20,7 +20,8 @@ namespace gin {
  59. class GIN_EXPORT V8Initializer {
  60. public:
  61. // This should be called by IsolateHolder::Initialize().
  62. - static void Initialize(IsolateHolder::ScriptMode mode);
  63. + static void Initialize(IsolateHolder::ScriptMode mode,
  64. + bool create_v8_platform = true);
  65. // Get address and size information for currently loaded snapshot.
  66. // If no snapshot is loaded, the return values are null for addresses