Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(419)

Side by Side Diff: content/browser/renderer_host/synthetic_gesture_controller.cc

Issue 62443007: Replace old with new synthetic gesture framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forward declare SyntheticGestureController. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/synthetic_gesture_controller.h"
6
7 #include "base/debug/trace_event.h"
8 #include "base/message_loop/message_loop.h"
9 #include "content/common/view_messages.h"
10 #include "content/port/browser/render_widget_host_view_port.h"
11 #include "content/port/browser/synthetic_gesture.h"
12 #include "content/public/browser/render_widget_host.h"
13
14 namespace content {
15
16 namespace {
17
18 // How many milliseconds apart synthetic scroll messages should be sent.
19 const int kSyntheticGestureMessageIntervalMs = 7;
20
21 } // namespace
22
23 SyntheticGestureController::SyntheticGestureController()
24 : rwh_(NULL) {
25 }
26
27 SyntheticGestureController::~SyntheticGestureController() {
28 }
29
30 void SyntheticGestureController::BeginSmoothScroll(
31 RenderWidgetHostViewPort* view,
32 const ViewHostMsg_BeginSmoothScroll_Params& params) {
33 if (pending_synthetic_gesture_.get())
34 return;
35
36 rwh_ = view->GetRenderWidgetHost();
37 pending_synthetic_gesture_ = view->CreateSmoothScrollGesture(
38 params.scroll_down,
39 params.pixels_to_scroll,
40 params.mouse_event_x,
41 params.mouse_event_y);
42
43 TRACE_EVENT_ASYNC_BEGIN0("benchmark", "SyntheticGestureController::running",
44 pending_synthetic_gesture_);
45 timer_.Start(FROM_HERE, GetSyntheticGestureMessageInterval(), this,
46 &SyntheticGestureController::OnTimer);
47 }
48
49 void SyntheticGestureController::BeginPinch(
50 RenderWidgetHostViewPort* view,
51 const ViewHostMsg_BeginPinch_Params& params) {
52 if (pending_synthetic_gesture_.get())
53 return;
54
55 rwh_ = view->GetRenderWidgetHost();
56 pending_synthetic_gesture_ = view->CreatePinchGesture(
57 params.zoom_in,
58 params.pixels_to_move,
59 params.anchor_x,
60 params.anchor_y);
61
62 TRACE_EVENT_ASYNC_BEGIN0("benchmark", "SyntheticGestureController::running",
63 pending_synthetic_gesture_);
64 timer_.Start(FROM_HERE, GetSyntheticGestureMessageInterval(), this,
65 &SyntheticGestureController::OnTimer);
66 }
67
68 base::TimeDelta
69 SyntheticGestureController::GetSyntheticGestureMessageInterval() const {
70 return base::TimeDelta::FromMilliseconds(kSyntheticGestureMessageIntervalMs);
71 }
72
73 void SyntheticGestureController::OnTimer() {
74 base::TimeTicks now = base::TimeTicks::Now();
75 if (!pending_synthetic_gesture_->ForwardInputEvents(now, rwh_)) {
76 timer_.Stop();
77 TRACE_EVENT_ASYNC_END0("benchmark", "SyntheticGestureController::running",
78 pending_synthetic_gesture_);
79 pending_synthetic_gesture_ = NULL;
80 rwh_->Send(new ViewMsg_SyntheticGestureCompleted(rwh_->GetRoutingID()));
81 }
82 }
83
84 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698