Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "content/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 159 // the BeginMainFrame interval. | 159 // the BeginMainFrame interval. |
| 160 // 4166us will allow 1/4 of a 60Hz interval or 1/2 of a 120Hz interval to | 160 // 4166us will allow 1/4 of a 60Hz interval or 1/2 of a 120Hz interval to |
| 161 // be spent in input hanlders before input starts getting throttled. | 161 // be spent in input hanlders before input starts getting throttled. |
| 162 const int kInputHandlingTimeThrottlingThresholdMicroseconds = 4166; | 162 const int kInputHandlingTimeThrottlingThresholdMicroseconds = 4166; |
| 163 | 163 |
| 164 int64 GetEventLatencyMicros(const WebInputEvent& event, base::TimeTicks now) { | 164 int64 GetEventLatencyMicros(const WebInputEvent& event, base::TimeTicks now) { |
| 165 return (now - base::TimeDelta::FromSecondsD(event.timeStampSeconds)) | 165 return (now - base::TimeDelta::FromSecondsD(event.timeStampSeconds)) |
| 166 .ToInternalValue(); | 166 .ToInternalValue(); |
| 167 } | 167 } |
| 168 | 168 |
| 169 // TODO(sataya.m): Remove this api once http://crbug.com/499743 is fixed. | |
| 170 gfx::Vector2dF ToClientScrollIncrement(const blink::WebFloatSize& increment) { | |
|
jdduke (slow)
2015/06/12 14:53:16
Let's just inline this function and the comment, I
MuVen
2015/06/12 15:08:04
Done.
| |
| 171 return gfx::Vector2dF(-increment.width, -increment.height); | |
| 172 } | |
| 173 | |
| 169 void LogInputEventLatencyUma(const WebInputEvent& event, base::TimeTicks now) { | 174 void LogInputEventLatencyUma(const WebInputEvent& event, base::TimeTicks now) { |
| 170 UMA_HISTOGRAM_CUSTOM_COUNTS( | 175 UMA_HISTOGRAM_CUSTOM_COUNTS( |
| 171 "Event.AggregatedLatency.Renderer2", | 176 "Event.AggregatedLatency.Renderer2", |
| 172 GetEventLatencyMicros(event, now), | 177 GetEventLatencyMicros(event, now), |
| 173 1, | 178 1, |
| 174 10000000, | 179 10000000, |
| 175 100); | 180 100); |
| 176 | 181 |
| 177 #define CASE_TYPE(t) \ | 182 #define CASE_TYPE(t) \ |
| 178 case WebInputEvent::t: \ | 183 case WebInputEvent::t: \ |
| (...skipping 2042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2221 const blink::WebFloatSize& accumulatedRootOverScroll, | 2226 const blink::WebFloatSize& accumulatedRootOverScroll, |
| 2222 const blink::WebFloatPoint& position, | 2227 const blink::WebFloatPoint& position, |
| 2223 const blink::WebFloatSize& velocity) { | 2228 const blink::WebFloatSize& velocity) { |
| 2224 DidOverscrollParams params; | 2229 DidOverscrollParams params; |
| 2225 // TODO(jdduke): Consider bundling the overscroll with the input event ack to | 2230 // TODO(jdduke): Consider bundling the overscroll with the input event ack to |
| 2226 // save an IPC. | 2231 // save an IPC. |
| 2227 params.accumulated_overscroll = gfx::Vector2dF( | 2232 params.accumulated_overscroll = gfx::Vector2dF( |
| 2228 accumulatedRootOverScroll.width, accumulatedRootOverScroll.height); | 2233 accumulatedRootOverScroll.width, accumulatedRootOverScroll.height); |
| 2229 params.latest_overscroll_delta = | 2234 params.latest_overscroll_delta = |
| 2230 gfx::Vector2dF(unusedDelta.width, unusedDelta.height); | 2235 gfx::Vector2dF(unusedDelta.width, unusedDelta.height); |
| 2231 params.current_fling_velocity = | 2236 params.current_fling_velocity = ToClientScrollIncrement(velocity); |
| 2232 gfx::Vector2dF(velocity.width, velocity.height); | |
| 2233 params.causal_event_viewport_point = gfx::PointF(position.x, position.y); | 2237 params.causal_event_viewport_point = gfx::PointF(position.x, position.y); |
| 2234 Send(new InputHostMsg_DidOverscroll(routing_id_, params)); | 2238 Send(new InputHostMsg_DidOverscroll(routing_id_, params)); |
| 2235 } | 2239 } |
| 2236 | 2240 |
| 2237 void RenderWidget::StartCompositor() { | 2241 void RenderWidget::StartCompositor() { |
| 2238 // For widgets that are never visible, we don't need the compositor to run | 2242 // For widgets that are never visible, we don't need the compositor to run |
| 2239 // at all. | 2243 // at all. |
| 2240 if (never_visible_) | 2244 if (never_visible_) |
| 2241 return; | 2245 return; |
| 2242 // In tests without a RenderThreadImpl, don't set ready as this kicks | 2246 // In tests without a RenderThreadImpl, don't set ready as this kicks |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2454 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2458 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2455 video_hole_frames_.AddObserver(frame); | 2459 video_hole_frames_.AddObserver(frame); |
| 2456 } | 2460 } |
| 2457 | 2461 |
| 2458 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2462 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
| 2459 video_hole_frames_.RemoveObserver(frame); | 2463 video_hole_frames_.RemoveObserver(frame); |
| 2460 } | 2464 } |
| 2461 #endif // defined(VIDEO_HOLE) | 2465 #endif // defined(VIDEO_HOLE) |
| 2462 | 2466 |
| 2463 } // namespace content | 2467 } // namespace content |
| OLD | NEW |