Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: base/trace_event/trace_config.cc

Issue 1226673003: Move MatchPattern to its own header and the base namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | base/trace_event/trace_event_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/trace_event/trace_config.h" 5 #include "base/trace_event/trace_config.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/strings/pattern.h"
9 #include "base/strings/string_split.h" 10 #include "base/strings/string_split.h"
10 #include "base/strings/string_tokenizer.h" 11 #include "base/strings/string_tokenizer.h"
11 #include "base/strings/stringprintf.h" 12 #include "base/strings/stringprintf.h"
12 #include "base/trace_event/trace_event.h" 13 #include "base/trace_event/trace_event.h"
13 14
14 namespace base { 15 namespace base {
15 namespace trace_event { 16 namespace trace_event {
16 17
17 namespace { 18 namespace {
18 19
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 ","); 141 ",");
141 while (category_group_tokens.GetNext()) { 142 while (category_group_tokens.GetNext()) {
142 std::string category_group_token = category_group_tokens.token(); 143 std::string category_group_token = category_group_tokens.token();
143 // Don't allow empty tokens, nor tokens with leading or trailing space. 144 // Don't allow empty tokens, nor tokens with leading or trailing space.
144 DCHECK(!TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 145 DCHECK(!TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
145 category_group_token)) 146 category_group_token))
146 << "Disallowed category string"; 147 << "Disallowed category string";
147 if (IsCategoryEnabled(category_group_token.c_str())) { 148 if (IsCategoryEnabled(category_group_token.c_str())) {
148 return true; 149 return true;
149 } 150 }
150 if (!MatchPattern(category_group_token.c_str(), 151 if (!base::MatchPattern(category_group_token.c_str(),
151 TRACE_DISABLED_BY_DEFAULT("*"))) 152 TRACE_DISABLED_BY_DEFAULT("*")))
152 had_enabled_by_default = true; 153 had_enabled_by_default = true;
153 } 154 }
154 // Do a second pass to check for explicitly disabled categories 155 // Do a second pass to check for explicitly disabled categories
155 // (those explicitly enabled have priority due to first pass). 156 // (those explicitly enabled have priority due to first pass).
156 category_group_tokens.Reset(); 157 category_group_tokens.Reset();
157 bool category_group_disabled = false; 158 bool category_group_disabled = false;
158 while (category_group_tokens.GetNext()) { 159 while (category_group_tokens.GetNext()) {
159 std::string category_group_token = category_group_tokens.token(); 160 std::string category_group_token = category_group_tokens.token();
160 for (StringList::const_iterator ci = excluded_categories_.begin(); 161 for (StringList::const_iterator ci = excluded_categories_.begin();
161 ci != excluded_categories_.end(); 162 ci != excluded_categories_.end();
162 ++ci) { 163 ++ci) {
163 if (MatchPattern(category_group_token.c_str(), ci->c_str())) { 164 if (base::MatchPattern(category_group_token.c_str(), ci->c_str())) {
164 // Current token of category_group_name is present in excluded_list. 165 // Current token of category_group_name is present in excluded_list.
165 // Flag the exclusion and proceed further to check if any of the 166 // Flag the exclusion and proceed further to check if any of the
166 // remaining categories of category_group_name is not present in the 167 // remaining categories of category_group_name is not present in the
167 // excluded_ list. 168 // excluded_ list.
168 category_group_disabled = true; 169 category_group_disabled = true;
169 break; 170 break;
170 } 171 }
171 // One of the category of category_group_name is not present in 172 // One of the category of category_group_name is not present in
172 // excluded_ list. So, it has to be included_ list. Enable the 173 // excluded_ list. So, it has to be included_ list. Enable the
173 // category_group_name for recording. 174 // category_group_name for recording.
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 } 509 }
509 510
510 bool TraceConfig::IsCategoryEnabled(const char* category_name) const { 511 bool TraceConfig::IsCategoryEnabled(const char* category_name) const {
511 StringList::const_iterator ci; 512 StringList::const_iterator ci;
512 513
513 // Check the disabled- filters and the disabled-* wildcard first so that a 514 // Check the disabled- filters and the disabled-* wildcard first so that a
514 // "*" filter does not include the disabled. 515 // "*" filter does not include the disabled.
515 for (ci = disabled_categories_.begin(); 516 for (ci = disabled_categories_.begin();
516 ci != disabled_categories_.end(); 517 ci != disabled_categories_.end();
517 ++ci) { 518 ++ci) {
518 if (MatchPattern(category_name, ci->c_str())) 519 if (base::MatchPattern(category_name, ci->c_str()))
519 return true; 520 return true;
520 } 521 }
521 522
522 if (MatchPattern(category_name, TRACE_DISABLED_BY_DEFAULT("*"))) 523 if (base::MatchPattern(category_name, TRACE_DISABLED_BY_DEFAULT("*")))
523 return false; 524 return false;
524 525
525 for (ci = included_categories_.begin(); 526 for (ci = included_categories_.begin();
526 ci != included_categories_.end(); 527 ci != included_categories_.end();
527 ++ci) { 528 ++ci) {
528 if (MatchPattern(category_name, ci->c_str())) 529 if (base::MatchPattern(category_name, ci->c_str()))
529 return true; 530 return true;
530 } 531 }
531 532
532 return false; 533 return false;
533 } 534 }
534 535
535 bool TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 536 bool TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
536 const std::string& str) { 537 const std::string& str) {
537 return str.empty() || 538 return str.empty() ||
538 str.at(0) == ' ' || 539 str.at(0) == ' ' ||
539 str.at(str.length() - 1) == ' '; 540 str.at(str.length() - 1) == ' ';
540 } 541 }
541 542
542 bool TraceConfig::HasIncludedPatterns() const { 543 bool TraceConfig::HasIncludedPatterns() const {
543 return !included_categories_.empty(); 544 return !included_categories_.empty();
544 } 545 }
545 546
546 } // namespace trace_event 547 } // namespace trace_event
547 } // namespace base 548 } // namespace base
OLDNEW
« no previous file with comments | « base/test/trace_event_analyzer.cc ('k') | base/trace_event/trace_event_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698