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

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

Issue 2776393004: Revert of Avoid calling strlen() where possible in base/trace_config (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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_event_etw_export_win.h" 5 #include "base/trace_event/trace_event_etw_export_win.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 void TraceEventETWExport::AddCompleteEndEvent(const char* name) { 341 void TraceEventETWExport::AddCompleteEndEvent(const char* name) {
342 auto* instance = GetInstance(); 342 auto* instance = GetInstance();
343 if (!instance || !instance->etw_export_enabled_ || !EventEnabledChromeEvent()) 343 if (!instance || !instance->etw_export_enabled_ || !EventEnabledChromeEvent())
344 return; 344 return;
345 345
346 EventWriteChromeEvent(name, "Complete End", "", "", "", "", "", ""); 346 EventWriteChromeEvent(name, "Complete End", "", "", "", "", "", "");
347 } 347 }
348 348
349 // static 349 // static
350 bool TraceEventETWExport::IsCategoryGroupEnabled( 350 bool TraceEventETWExport::IsCategoryGroupEnabled(
351 StringPiece category_group_name) { 351 const char* category_group_name) {
352 DCHECK(!category_group_name.empty()); 352 DCHECK(category_group_name);
353 auto* instance = GetInstance(); 353 auto* instance = GetInstance();
354 if (instance == nullptr) 354 if (instance == nullptr)
355 return false; 355 return false;
356 356
357 if (!instance->IsETWExportEnabled()) 357 if (!instance->IsETWExportEnabled())
358 return false; 358 return false;
359 359
360 CStringTokenizer category_group_tokens(category_group_name.begin(), 360 CStringTokenizer category_group_tokens(
361 category_group_name.end(), ","); 361 category_group_name, category_group_name + strlen(category_group_name),
362 ",");
362 while (category_group_tokens.GetNext()) { 363 while (category_group_tokens.GetNext()) {
363 StringPiece category_group_token = category_group_tokens.token_piece(); 364 std::string category_group_token = category_group_tokens.token();
364 if (instance->IsCategoryEnabled(category_group_token)) { 365 if (instance->IsCategoryEnabled(category_group_token.c_str())) {
365 return true; 366 return true;
366 } 367 }
367 } 368 }
368 return false; 369 return false;
369 } 370 }
370 371
371 bool TraceEventETWExport::UpdateEnabledCategories() { 372 bool TraceEventETWExport::UpdateEnabledCategories() {
372 if (etw_match_any_keyword_ == CHROME_Context.MatchAnyKeyword) 373 if (etw_match_any_keyword_ == CHROME_Context.MatchAnyKeyword)
373 return false; 374 return false;
374 375
(...skipping 23 matching lines...) Expand all
398 } 399 }
399 400
400 DCHECK_EQ(kNumberOfCategories, categories_status_.size()); 401 DCHECK_EQ(kNumberOfCategories, categories_status_.size());
401 402
402 // Update the categories in TraceLog. 403 // Update the categories in TraceLog.
403 TraceLog::GetInstance()->UpdateETWCategoryGroupEnabledFlags(); 404 TraceLog::GetInstance()->UpdateETWCategoryGroupEnabledFlags();
404 405
405 return true; 406 return true;
406 } 407 }
407 408
408 bool TraceEventETWExport::IsCategoryEnabled(StringPiece category_name) const { 409 bool TraceEventETWExport::IsCategoryEnabled(const char* category_name) const {
409 DCHECK_EQ(kNumberOfCategories, categories_status_.size()); 410 DCHECK_EQ(kNumberOfCategories, categories_status_.size());
410 // Try to find the category and return its status if found 411 // Try to find the category and return its status if found
411 auto it = categories_status_.find(category_name); 412 auto it = categories_status_.find(category_name);
412 if (it != categories_status_.end()) 413 if (it != categories_status_.end())
413 return it->second; 414 return it->second;
414 415
415 // Otherwise return the corresponding default status by first checking if the 416 // Otherwise return the corresponding default status by first checking if the
416 // category is disabled by default. 417 // category is disabled by default.
417 if (category_name.starts_with("disabled-by-default")) { 418 if (StringPiece(category_name).starts_with("disabled-by-default")) {
418 DCHECK(categories_status_.find(kDisabledOtherEventsGroupName) != 419 DCHECK(categories_status_.find(kDisabledOtherEventsGroupName) !=
419 categories_status_.end()); 420 categories_status_.end());
420 return categories_status_.find(kDisabledOtherEventsGroupName)->second; 421 return categories_status_.find(kDisabledOtherEventsGroupName)->second;
421 } else { 422 } else {
422 DCHECK(categories_status_.find(kOtherEventsGroupName) != 423 DCHECK(categories_status_.find(kOtherEventsGroupName) !=
423 categories_status_.end()); 424 categories_status_.end());
424 return categories_status_.find(kOtherEventsGroupName)->second; 425 return categories_status_.find(kOtherEventsGroupName)->second;
425 } 426 }
426 } 427 }
427 428
428 // static 429 // static
429 void TraceEventETWExport::UpdateETWKeyword() { 430 void TraceEventETWExport::UpdateETWKeyword() {
430 if (!IsETWExportEnabled()) 431 if (!IsETWExportEnabled())
431 return; 432 return;
432 auto* instance = GetInstance(); 433 auto* instance = GetInstance();
433 DCHECK(instance); 434 DCHECK(instance);
434 instance->UpdateEnabledCategories(); 435 instance->UpdateEnabledCategories();
435 } 436 }
436 } // namespace trace_event 437 } // namespace trace_event
437 } // namespace base 438 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/trace_event_etw_export_win.h ('k') | chrome/browser/chromeos/arc/tracing/arc_tracing_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698