From 4ff6f96821ede7ed39cb54124884a7c9ec9ba78a Mon Sep 17 00:00:00 2001 From: Zac Walker Date: Thu, 2 Aug 2018 16:51:31 +0200 Subject: [PATCH] fix: extending tracing startRecording API to take a full tracing config This allows memory-infra to be traced correctly. Fixes #12506. --- atom/browser/api/atom_api_content_tracing.cc | 25 +++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/atom/browser/api/atom_api_content_tracing.cc b/atom/browser/api/atom_api_content_tracing.cc index d340b167a5f35..f460ffddbe41a 100644 --- a/atom/browser/api/atom_api_content_tracing.cc +++ b/atom/browser/api/atom_api_content_tracing.cc @@ -7,6 +7,7 @@ #include "atom/common/native_mate_converters/callback.h" #include "atom/common/native_mate_converters/file_path_converter.h" +#include "atom/common/native_mate_converters/value_converter.h" #include "base/bind.h" #include "base/files/file_util.h" #include "content/public/browser/tracing_controller.h" @@ -24,14 +25,22 @@ struct Converter { v8::Local val, base::trace_event::TraceConfig* out) { Dictionary options; - if (!ConvertFromV8(isolate, val, &options)) - return false; - std::string category_filter, trace_options; - if (!options.Get("categoryFilter", &category_filter) || - !options.Get("traceOptions", &trace_options)) - return false; - *out = base::trace_event::TraceConfig(category_filter, trace_options); - return true; + if (ConvertFromV8(isolate, val, &options)) { + std::string category_filter, trace_options; + if (options.Get("categoryFilter", &category_filter) && + options.Get("traceOptions", &trace_options)) { + *out = base::trace_event::TraceConfig(category_filter, trace_options); + return true; + } + } + + base::DictionaryValue memory_dump_config; + if (ConvertFromV8(isolate, val, &memory_dump_config)) { + *out = base::trace_event::TraceConfig(memory_dump_config); + return true; + } + + return false; } };