1 // Copyright 2021 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ 6 #define BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ 7 8 #include "base/android/application_status_listener.h" 9 #include "base/base_export.h" 10 #include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.h" 11 12 #define TRACE_APPLICATION_STATE(state) \ 13 TRACE_EVENT_INSTANT( \ 14 "Java", "ApplicationState", perfetto::Track::Global(0), \ 15 [state](perfetto::EventContext ctx) { \ 16 ctx.event() \ 17 ->set_chrome_application_state_info() \ 18 ->set_application_state( \ 19 base::trace_event::ApplicationStateToTraceEnum(state)); \ 20 }); 21 22 namespace base { 23 namespace trace_event { 24 25 BASE_EXPORT 26 perfetto::protos::pbzero::ChromeApplicationStateInfo::ChromeApplicationState 27 ApplicationStateToTraceEnum(base::android::ApplicationState state); 28 29 } // namespace trace_event 30 } // namespace base 31 32 #endif // BASE_TRACE_EVENT_APPLICATION_STATE_PROTO_ANDROID_H_ 33