// Copyright (c) 2019 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #include "shell/common/process_util.h" #include "base/command_line.h" #include "content/public/common/content_switches.h" #include "gin/dictionary.h" #include "shell/common/gin_converters/callback_converter.h" #include "shell/common/node_includes.h" namespace electron { void EmitWarning(node::Environment* env, const std::string& warning_msg, const std::string& warning_type) { v8::HandleScope scope(env->isolate()); gin::Dictionary process(env->isolate(), env->process_object()); base::RepeatingCallback emit_warning; process.Get("emitWarning", &emit_warning); emit_warning.Run(warning_msg, warning_type, ""); } bool IsBrowserProcess() { auto* command_line = base::CommandLine::ForCurrentProcess(); std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); return process_type.empty(); } bool IsRendererProcess() { auto* command_line = base::CommandLine::ForCurrentProcess(); std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); return process_type == switches::kRendererProcess; } } // namespace electron