| 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_
|
|
|