application_state_proto_android.h 1.4 KB

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