xref: /aosp_15_r20/external/cronet/base/trace_event/application_state_proto_android.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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