gin_enable_disable_v8_platform.patch 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 b3416c90c9071d8d32d30ecf257b64f133b2ae07..8632f1c18b407bb7832900bcebadacb3707224ac 100644
  9. --- a/gin/isolate_holder.cc
  10. +++ b/gin/isolate_holder.cc
  11. @@ -162,11 +162,13 @@ void IsolateHolder::Initialize(ScriptMode mode,
  12. std::string js_command_line_flags,
  13. bool disallow_v8_feature_flag_overrides,
  14. v8::FatalErrorCallback fatal_error_callback,
  15. - v8::OOMErrorCallback oom_error_callback) {
  16. + v8::OOMErrorCallback oom_error_callback,
  17. + bool create_v8_platform) {
  18. CHECK(allocator);
  19. V8Initializer::Initialize(mode, js_command_line_flags,
  20. disallow_v8_feature_flag_overrides,
  21. - oom_error_callback);
  22. + oom_error_callback,
  23. + create_v8_platform);
  24. g_array_buffer_allocator = allocator;
  25. g_reference_table = reference_table;
  26. g_fatal_error_callback = fatal_error_callback;
  27. diff --git a/gin/public/isolate_holder.h b/gin/public/isolate_holder.h
  28. index ff42cfbb6a228e902317c7e3ab035d8437d5dd62..e27f177ce27e177abf6cee84cd466e7a8a829ee7 100644
  29. --- a/gin/public/isolate_holder.h
  30. +++ b/gin/public/isolate_holder.h
  31. @@ -119,7 +119,8 @@ class GIN_EXPORT IsolateHolder {
  32. std::string js_command_line_flags = {},
  33. bool disallow_v8_feature_flag_overrides = false,
  34. v8::FatalErrorCallback fatal_error_callback = nullptr,
  35. - v8::OOMErrorCallback oom_error_callback = nullptr);
  36. + v8::OOMErrorCallback oom_error_callback = nullptr,
  37. + bool create_v8_platform = true);
  38. // Returns whether `Initialize` has already been invoked in the process.
  39. // Initialization is a one-way operation (i.e., this method cannot return
  40. diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc
  41. index 51c8cd7cc3f44936e1e33d9dc937d5a68d737dd6..578e200a88d89b356e991b3317ff1e71f25ff75e 100644
  42. --- a/gin/v8_initializer.cc
  43. +++ b/gin/v8_initializer.cc
  44. @@ -555,7 +555,8 @@ void SetFeatureFlags() {
  45. void V8Initializer::Initialize(IsolateHolder::ScriptMode mode,
  46. const std::string& js_command_line_flags,
  47. bool disallow_v8_feature_flag_overrides,
  48. - v8::OOMErrorCallback oom_error_callback) {
  49. + v8::OOMErrorCallback oom_error_callback,
  50. + bool create_v8_platform) {
  51. static bool v8_is_initialized = false;
  52. if (v8_is_initialized)
  53. return;
  54. @@ -570,7 +571,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode,
  55. }
  56. SetFlags(mode, js_command_line_flags);
  57. - v8::V8::InitializePlatform(V8Platform::Get());
  58. + if (create_v8_platform)
  59. + v8::V8::InitializePlatform(V8Platform::Get());
  60. // Set this as early as possible in order to ensure OOM errors are reported
  61. // correctly.
  62. diff --git a/gin/v8_initializer.h b/gin/v8_initializer.h
  63. index 1341b77198431e1c426bff043bdb2bbcf202c8ca..ec64afd9dd91b292604ca834a91b9cfbd52eb853 100644
  64. --- a/gin/v8_initializer.h
  65. +++ b/gin/v8_initializer.h
  66. @@ -32,7 +32,8 @@ class GIN_EXPORT V8Initializer {
  67. static void Initialize(IsolateHolder::ScriptMode mode,
  68. const std::string& js_command_line_flags,
  69. bool disallow_v8_feature_flag_overrides,
  70. - v8::OOMErrorCallback oom_error_callback);
  71. + v8::OOMErrorCallback oom_error_callback,
  72. + bool create_v8_platform = true);
  73. // Get address and size information for currently loaded snapshot.
  74. // If no snapshot is loaded, the return values are null for addresses