Index: chrome/common/trace_event_args_whitelist.cc |
diff --git a/chrome/common/trace_event_args_whitelist.cc b/chrome/common/trace_event_args_whitelist.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9d04c6062280a2c7992f353ac6bf9b805c27db5 |
--- /dev/null |
+++ b/chrome/common/trace_event_args_whitelist.cc |
@@ -0,0 +1,41 @@ |
+// Copyright 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 "chrome/common/trace_event_args_whitelist.h" |
+ |
+#include "base/strings/string_tokenizer.h" |
+#include "base/strings/string_util.h" |
+ |
+namespace chrome { |
+ |
+namespace { |
+ |
+const char* const kEventArgsWhitelist[][2] = {{"toplevel", "*"}, |
+ {"__metadata", "thread_name"}, |
+ {NULL, NULL}}; |
+ |
+} // namespace |
+ |
+bool IsTraceEventArgsWhitelisted(const char* category_group_name, |
+ const char* event_name) { |
+ base::CStringTokenizer category_group_tokens( |
+ category_group_name, category_group_name + strlen(category_group_name), |
+ ","); |
+ while (category_group_tokens.GetNext()) { |
+ const std::string& category_group_token = category_group_tokens.token(); |
+ for (int i = 0; kEventArgsWhitelist[i][0] != NULL; ++i) { |
+ DCHECK(kEventArgsWhitelist[i][1]); |
+ |
+ if (MatchPattern(category_group_token.c_str(), |
+ kEventArgsWhitelist[i][0]) && |
+ MatchPattern(event_name, kEventArgsWhitelist[i][1])) { |
+ return true; |
+ } |
+ } |
+ } |
+ |
+ return false; |
+} |
+ |
+} // namespace chrome |