OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_LATENCY_LATENCY_INFO_H_ | 5 #ifndef UI_LATENCY_LATENCY_INFO_H_ |
6 #define UI_LATENCY_LATENCY_INFO_H_ | 6 #define UI_LATENCY_LATENCY_INFO_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 | 188 |
189 // Returns true if the a component with |type| and |id| is found in | 189 // Returns true if the a component with |type| and |id| is found in |
190 // the latency_components and the component is stored to |output| if | 190 // the latency_components and the component is stored to |output| if |
191 // |output| is not NULL. Returns false if no such component is found. | 191 // |output| is not NULL. Returns false if no such component is found. |
192 bool FindLatency(LatencyComponentType type, | 192 bool FindLatency(LatencyComponentType type, |
193 int64_t id, | 193 int64_t id, |
194 LatencyComponent* output) const; | 194 LatencyComponent* output) const; |
195 | 195 |
196 void RemoveLatency(LatencyComponentType type); | 196 void RemoveLatency(LatencyComponentType type); |
197 | 197 |
198 // Returns true if there is still room for keeping the |input_coordinate|, | |
199 // false otherwise. | |
200 bool AddInputCoordinate(const gfx::PointF& input_coordinate); | |
201 | |
202 uint32_t input_coordinates_size() const { return input_coordinates_size_; } | |
203 const gfx::PointF* input_coordinates() const { return input_coordinates_; } | |
204 | |
205 const LatencyMap& latency_components() const { return latency_components_; } | 198 const LatencyMap& latency_components() const { return latency_components_; } |
206 | 199 |
207 const SourceEventType& source_event_type() const { | 200 const SourceEventType& source_event_type() const { |
208 return source_event_type_; | 201 return source_event_type_; |
209 } | 202 } |
210 void set_source_event_type(SourceEventType type) { | 203 void set_source_event_type(SourceEventType type) { |
211 source_event_type_ = type; | 204 source_event_type_ = type; |
212 } | 205 } |
213 | 206 |
214 bool terminated() const { return terminated_; } | 207 bool terminated() const { return terminated_; } |
215 void set_coalesced() { coalesced_ = true; } | 208 void set_coalesced() { coalesced_ = true; } |
216 bool coalesced() const { return coalesced_; } | 209 bool coalesced() const { return coalesced_; } |
217 int64_t trace_id() const { return trace_id_; } | 210 int64_t trace_id() const { return trace_id_; } |
218 | 211 |
219 private: | 212 private: |
220 void AddLatencyNumberWithTimestampImpl(LatencyComponentType component, | 213 void AddLatencyNumberWithTimestampImpl(LatencyComponentType component, |
221 int64_t id, | 214 int64_t id, |
222 int64_t component_sequence_number, | 215 int64_t component_sequence_number, |
223 base::TimeTicks time, | 216 base::TimeTicks time, |
224 uint32_t event_count, | 217 uint32_t event_count, |
225 const char* trace_name_str); | 218 const char* trace_name_str); |
226 | 219 |
227 // Converts latencyinfo into format that can be dumped into trace buffer. | 220 // Converts latencyinfo into format that can be dumped into trace buffer. |
228 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> | 221 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> |
229 AsTraceableData(); | 222 AsTraceableData(); |
230 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> | |
231 CoordinatesAsTraceableData(); | |
232 | 223 |
233 // Shown as part of the name of the trace event for this LatencyInfo. | 224 // Shown as part of the name of the trace event for this LatencyInfo. |
234 // String is empty if no tracing is enabled. | 225 // String is empty if no tracing is enabled. |
235 std::string trace_name_; | 226 std::string trace_name_; |
236 | 227 |
237 LatencyMap latency_components_; | 228 LatencyMap latency_components_; |
238 | 229 |
239 // These coordinates represent window coordinates of the original input event. | |
240 uint32_t input_coordinates_size_; | |
241 gfx::PointF input_coordinates_[kMaxInputCoordinates]; | |
242 | |
243 // The unique id for matching the ASYNC_BEGIN/END trace event. | 230 // The unique id for matching the ASYNC_BEGIN/END trace event. |
244 int64_t trace_id_; | 231 int64_t trace_id_; |
245 // Whether this event has been coalesced into another event. | 232 // Whether this event has been coalesced into another event. |
246 bool coalesced_; | 233 bool coalesced_; |
247 // Whether a terminal component has been added. | 234 // Whether a terminal component has been added. |
248 bool terminated_; | 235 bool terminated_; |
249 // Stores the type of the first source event. | 236 // Stores the type of the first source event. |
250 SourceEventType source_event_type_; | 237 SourceEventType source_event_type_; |
251 | 238 |
252 #if !defined(OS_IOS) | 239 #if !defined(OS_IOS) |
253 friend struct IPC::ParamTraits<ui::LatencyInfo>; | 240 friend struct IPC::ParamTraits<ui::LatencyInfo>; |
254 friend struct mojo::StructTraits<ui::mojom::LatencyInfoDataView, | 241 friend struct mojo::StructTraits<ui::mojom::LatencyInfoDataView, |
255 ui::LatencyInfo>; | 242 ui::LatencyInfo>; |
256 #endif | 243 #endif |
257 }; | 244 }; |
258 | 245 |
259 } // namespace ui | 246 } // namespace ui |
260 | 247 |
261 #endif // UI_LATENCY_LATENCY_INFO_H_ | 248 #endif // UI_LATENCY_LATENCY_INFO_H_ |
OLD | NEW |