Index: ui/latency/latency_tracker.h |
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h b/ui/latency/latency_tracker.h |
similarity index 10% |
copy from content/browser/renderer_host/input/render_widget_host_latency_tracker.h |
copy to ui/latency/latency_tracker.h |
index 520e7ee9d100287283a7d754e89a884ecadaa938..df75a7c17512d84733b8dc4f05a758673ec39f73 100644 |
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h |
+++ b/ui/latency/latency_tracker.h |
@@ -1,95 +1,45 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_RENDER_WIDGET_HOST_LATENCY_TRACKER_H_ |
-#define CONTENT_BROWSER_RENDERER_HOST_INPUT_RENDER_WIDGET_HOST_LATENCY_TRACKER_H_ |
+#ifndef UI_LATENCY_LATENCY_TRACKER_H_ |
+#define UI_LATENCY_LATENCY_TRACKER_H_ |
#include <stdint.h> |
#include <vector> |
#include "base/macros.h" |
-#include "content/browser/renderer_host/event_with_latency_info.h" |
-#include "content/common/content_export.h" |
-#include "content/common/input/input_event_ack_state.h" |
#include "ui/latency/latency_info.h" |
-namespace content { |
+namespace ui { |
-class RenderWidgetHostDelegate; |
- |
-// Utility class for tracking the latency of events passing through |
-// a given RenderWidgetHost. |
-class CONTENT_EXPORT RenderWidgetHostLatencyTracker { |
+// Utility class for tracking the latency of events. |
+class LatencyTracker { |
public: |
- explicit RenderWidgetHostLatencyTracker(); |
- ~RenderWidgetHostLatencyTracker(); |
- |
- // Associates the latency tracker with a given route and process. |
- // Called once after the RenderWidgetHost is fully initialized. |
- void Initialize(int routing_id, int process_id); |
- |
- void ComputeInputLatencyHistograms(blink::WebInputEvent::Type type, |
- int64_t latency_component_id, |
- const ui::LatencyInfo& latency, |
- InputEventAckState ack_result); |
- |
- // Populates the LatencyInfo with relevant entries for latency tracking. |
- // Called when an event is received by the RenderWidgetHost, prior to |
- // that event being forwarded to the renderer (via the InputRouter). |
- void OnInputEvent(const blink::WebInputEvent& event, |
- ui::LatencyInfo* latency); |
- |
- // Populates the LatencyInfo with relevant entries for latency tracking, also |
- // terminating latency tracking for events that did not trigger rendering and |
- // performing relevant UMA latency reporting. Called when an event is ack'ed |
- // to the RenderWidgetHost (from the InputRouter). |
- void OnInputEventAck(const blink::WebInputEvent& event, |
- ui::LatencyInfo* latency, |
- InputEventAckState ack_result); |
- |
- // Populates renderer-created LatencyInfo entries with the appropriate latency |
- // component id. Called when the RenderWidgetHost receives a compositor swap |
- // update from the renderer. |
- void OnSwapCompositorFrame(std::vector<ui::LatencyInfo>* latencies); |
+ LatencyTracker() = default; |
+ ~LatencyTracker() = default; |
// Terminates latency tracking for events that triggered rendering, also |
// performing relevant UMA latency reporting. |
- // Called when the RenderWidgetHost receives a swap update from the GPU. |
- void OnGpuSwapBuffersCompleted(const ui::LatencyInfo& latency); |
- |
- // WebInputEvent coordinates are in DPIs, while LatencyInfo expects |
- // coordinates in device pixels. |
- void set_device_scale_factor(float device_scale_factor) { |
- device_scale_factor_ = device_scale_factor; |
- } |
+ // Called when GPU buffers swap completes. |
+ void OnGpuSwapBuffersCompleted(const LatencyInfo& latency); |
- // Returns the ID that uniquely describes this component to the latency |
- // subsystem. |
- int64_t latency_component_id() const { return latency_component_id_; } |
- |
- // A delegate is used to get the url to be stored in Rappor Sample. |
- // If delegate is null no Rappor sample will be reported. |
- void SetDelegate(RenderWidgetHostDelegate*); |
+ protected: |
+ virtual void ReportRapporScrollLatency( |
+ const std::string& name, |
+ const LatencyInfo::LatencyComponent& start_component, |
+ const LatencyInfo::LatencyComponent& end_component); |
private: |
- int64_t last_event_id_; |
- int64_t latency_component_id_; |
- float device_scale_factor_; |
- bool has_seen_first_gesture_scroll_update_; |
- // Whether the current stream of touch events includes more than one active |
- // touch point. This is set in OnInputEvent, and cleared in OnInputEventAck. |
- bool active_multi_finger_gesture_; |
- // Whether the touch start for the current stream of touch events had its |
- // default action prevented. Only valid for single finger gestures. |
- bool touch_start_default_prevented_; |
- |
- RenderWidgetHostDelegate* render_widget_host_delegate_; |
+ void ComputeTouchAndWheelScrollLatencyHistograms( |
+ const LatencyInfo::LatencyComponent& gpu_swap_begin_component, |
+ const LatencyInfo::LatencyComponent& gpu_swap_end_component, |
+ const LatencyInfo& latency); |
- DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostLatencyTracker); |
+ DISALLOW_COPY_AND_ASSIGN(LatencyTracker); |
}; |
-} // namespace content |
+} // namespace latency |
-#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_RENDER_WIDGET_HOST_LATENCY_TRACKER_H_ |
+#endif // UI_LATENCY_LATENCY_TRACKER_H_ |