| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ |
| #define BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ |
| |
| #include "base/android/application_status_listener.h" |
| #include "base/base_export.h" |
| #include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.h" |
| |
| #define TRACE_APPLICATION_STATE(state) \ |
| TRACE_EVENT_INSTANT( \ |
| "Java", "ApplicationState", perfetto::Track::Global(0), \ |
| [state](perfetto::EventContext ctx) { \ |
| ctx.event() \ |
| ->set_chrome_application_state_info() \ |
| ->set_application_state( \ |
| base::trace_event::ApplicationStateToTraceEnum(state)); \ |
| }); |
| |
| namespace base { |
| namespace trace_event { |
| |
| BASE_EXPORT |
| perfetto::protos::pbzero::ChromeApplicationStateInfo::ChromeApplicationState |
| ApplicationStateToTraceEnum(base::android::ApplicationState state); |
| |
| } // namespace trace_event |
| } // namespace base |
| |
| #endif // BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ |