From 56c29314398703755729081c3b43435f1c115f59 Mon Sep 17 00:00:00 2001 From: Sajal Khandelwal Date: Wed, 24 Apr 2019 21:40:33 +0000 Subject: [PATCH] v8_platform.cc: Added AddTraceEventWithTimestamp This commit adds AddTraceEventWithTimestamp to the implementation gin::V8Platform::TracingControllerImpl. Bug: 953949 Change-Id: I73aa361feeaf74bcaaf2e6cfd00dce761227f5a5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1572583 Reviewed-by: Ross McIlroy Reviewed-by: Peter Marshall Commit-Queue: Ross McIlroy Cr-Commit-Position: refs/heads/master@{#653766} --- AUTHORS | 1 + gin/v8_platform.cc | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/AUTHORS b/AUTHORS index 43a25fb10efe29..596eaf3afb304e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -770,6 +770,7 @@ Ryan Sleevi Ryan Yoakum Ryuan Choi Saikrishna Arcot +Sajal Khandelwal Salvatore Iovene Sam Larison Sam McDonald diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc index 53263bf382e60f..ad86463673871b 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc @@ -321,6 +321,36 @@ class V8Platform::TracingControllerImpl : public v8::TracingController { memcpy(&result, &handle, sizeof(result)); return result; } + uint64_t AddTraceEventWithTimestamp( + char phase, + const uint8_t* category_enabled_flag, + const char* name, + const char* scope, + uint64_t id, + uint64_t bind_id, + int32_t num_args, + const char** arg_names, + const uint8_t* arg_types, + const uint64_t* arg_values, + std::unique_ptr* arg_convertables, + unsigned int flags, + int64_t timestampMicroseconds) override { + base::trace_event::TraceArguments args( + num_args, arg_names, arg_types, + reinterpret_cast(arg_values), + arg_convertables); + DCHECK_LE(num_args, 2); + base::TimeTicks timestamp = + base::TimeTicks() + + base::TimeDelta::FromMicroseconds(timestampMicroseconds); + base::trace_event::TraceEventHandle handle = + TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( + phase, category_enabled_flag, name, scope, id, bind_id, + TRACE_EVENT_API_CURRENT_THREAD_ID, timestamp, &args, flags); + uint64_t result; + memcpy(&result, &handle, sizeof(result)); + return result; + } void UpdateTraceEventDuration(const uint8_t* category_enabled_flag, const char* name, uint64_t handle) override {