// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_LATENCY_LATENCY_INFO_H_ #define UI_LATENCY_LATENCY_INFO_H_ #include <vector> #include "base/containers/flat_map.h" #include "base/time/time.h" #include "build/blink_buildflags.h" #include "build/build_config.h" #include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pbzero.h" #if BUILDFLAG(USE_BLINK) #include "ipc/ipc_param_traits.h" // nogncheck #include "mojo/public/cpp/bindings/struct_traits.h" // nogncheck #endif namespace ui { #if BUILDFLAG(USE_BLINK) namespace mojom { class LatencyInfoDataView; } #endif // When adding new components, or new metrics based on LatencyInfo, // please update latency_info.dot. // // When adding new components, please update // //third_party/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.proto // so both this and the internal versions can be kept up to date. Or reach out // to [email protected] so we can assist. enum LatencyComponentType { … }; class LatencyInfo { … }; // This is declared here for use in gtest-based unit tests, but is defined in // //ui/latency:test_support target. // Without this the default PrintTo template in gtest tries to pass LatencyInfo // by value, which leads to an alignment compile error on Windows. void PrintTo(const LatencyInfo& latency, ::std::ostream* os); } // namespace ui #endif // UI_LATENCY_LATENCY_INFO_H_