[Tracing] Fix --trace-to-console
My previous CL breaks --trace-to-console.
--trace-to-console should be treated as other startup
tracing flags. This CL fixes the issue.
Related previous CL: https://crrev.com/1410703007
TEST:
$./out/Debug/chrome --trace-to-console=blink
Then you should see the trace events printed to the screen.
BUG=566275, 542390
Review URL: https://codereview.chromium.org/1513403002
Cr-Commit-Position: refs/heads/master@{#364837}
diff --git a/components/tracing/trace_to_console.cc b/components/tracing/trace_to_console.cc
new file mode 100644
index 0000000..237bbe8c
--- /dev/null
+++ b/components/tracing/trace_to_console.cc
@@ -0,0 +1,35 @@
+// Copyright (c) 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/tracing/trace_to_console.h"
+
+#include <string>
+
+#include "base/command_line.h"
+#include "components/tracing/tracing_switches.h"
+
+namespace tracing {
+
+namespace {
+// These categories will cause deadlock when ECHO_TO_CONSOLE. crbug.com/325575.
+const char kEchoToConsoleCategoryFilter[] = "-ipc,-task";
+} // namespace
+
+base::trace_event::TraceConfig GetConfigForTraceToConsole() {
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+ DCHECK(command_line.HasSwitch(switches::kTraceToConsole));
+ std::string filter = command_line.GetSwitchValueASCII(
+ switches::kTraceToConsole);
+ if (filter.empty()) {
+ filter = kEchoToConsoleCategoryFilter;
+ } else {
+ filter.append(",");
+ filter.append(kEchoToConsoleCategoryFilter);
+ }
+ return base::trace_event::TraceConfig(
+ filter, base::trace_event::ECHO_TO_CONSOLE);
+}
+
+} // namespace tracing