Browse Source

fix: handle no env in externsion world set up (#19105)

Previously when GetEnvironment returned null this extension setup
crashed.
trop[bot] 5 years ago
parent
commit
1c2b8f8d9a
1 changed files with 9 additions and 2 deletions
  1. 9 2
      atom/renderer/atom_renderer_client.cc

+ 9 - 2
atom/renderer/atom_renderer_client.cc

@@ -200,8 +200,11 @@ void AtomRendererClient::SetupMainWorldOverrides(
       node::FIXED_ONE_BYTE_STRING(isolate, "nodeProcess"),
       node::FIXED_ONE_BYTE_STRING(isolate, "isolatedWorld")};
 
+  auto* env = GetEnvironment(render_frame);
+  DCHECK(env);
+
   std::vector<v8::Local<v8::Value>> isolated_bundle_args = {
-      GetEnvironment(render_frame)->process_object(),
+      env->process_object(),
       GetContext(render_frame->GetWebFrame(), isolate)->Global()};
 
   node::per_process::native_module_loader.CompileAndCall(
@@ -220,8 +223,12 @@ void AtomRendererClient::SetupExtensionWorldOverrides(
       node::FIXED_ONE_BYTE_STRING(isolate, "isolatedWorld"),
       node::FIXED_ONE_BYTE_STRING(isolate, "worldId")};
 
+  auto* env = GetEnvironment(render_frame);
+  if (!env)
+    return;
+
   std::vector<v8::Local<v8::Value>> isolated_bundle_args = {
-      GetEnvironment(render_frame)->process_object(),
+      env->process_object(),
       GetContext(render_frame->GetWebFrame(), isolate)->Global(),
       v8::Integer::New(isolate, world_id)};