ipc/chromium/src/chrome/common/debug_flags.cc

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:e7294fcea1ee
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/common/debug_flags.h"
6
7 #include "base/base_switches.h"
8 #include "base/command_line.h"
9 #include "chrome/common/chrome_switches.h"
10
11 bool DebugFlags::ProcessDebugFlags(CommandLine* command_line,
12 ChildProcessInfo::ProcessType type,
13 bool is_in_sandbox) {
14 bool should_help_child = false;
15 const CommandLine& current_cmd_line = *CommandLine::ForCurrentProcess();
16 if (current_cmd_line.HasSwitch(switches::kDebugChildren)) {
17 // Look to pass-on the kDebugOnStart flag.
18 std::wstring value;
19 value = current_cmd_line.GetSwitchValue(switches::kDebugChildren);
20 if (value.empty() ||
21 (type == ChildProcessInfo::RENDER_PROCESS &&
22 value == switches::kRendererProcess) ||
23 (type == ChildProcessInfo::PLUGIN_PROCESS &&
24 value == switches::kPluginProcess)) {
25 command_line->AppendSwitch(switches::kDebugOnStart);
26 should_help_child = true;
27 }
28 command_line->AppendSwitchWithValue(switches::kDebugChildren, value);
29 } else if (current_cmd_line.HasSwitch(switches::kWaitForDebuggerChildren)) {
30 // Look to pass-on the kWaitForDebugger flag.
31 std::wstring value;
32 value = current_cmd_line.GetSwitchValue(switches::kWaitForDebuggerChildren);
33 if (value.empty() ||
34 (type == ChildProcessInfo::RENDER_PROCESS &&
35 value == switches::kRendererProcess) ||
36 (type == ChildProcessInfo::PLUGIN_PROCESS &&
37 value == switches::kPluginProcess)) {
38 command_line->AppendSwitch(switches::kWaitForDebugger);
39 }
40 command_line->AppendSwitchWithValue(switches::kWaitForDebuggerChildren,
41 value);
42 }
43 return should_help_child;
44 }

mercurial