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

Side by Side Diff: blimp/net/input_message_processor.cc

Issue 1426993008: Serialize a subset of WebInputEvents to protobufs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed unused type enum Created 5 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 2015 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 "blimp/net/input_message_processor.h"
6
7 #include "base/logging.h"
8 #include "blimp/common/proto/input.pb.h"
9 #include "third_party/WebKit/public/platform/WebGestureDevice.h"
10 #include "third_party/WebKit/public/web/WebInputEvent.h"
11
12 namespace blimp {
13 namespace {
14
15 void ProtoToBaseWebGesture(const GestureBaseProperties& proto,
16 blink::WebGestureEvent* event) {
17 event->x = proto.x();
18 event->y = proto.y();
19 event->globalX = proto.global_x();
20 event->globalY = proto.global_y();
21 event->sourceDevice = blink::WebGestureDevice::WebGestureDeviceTouchscreen;
22 }
23
24 scoped_ptr<blink::WebInputEvent> ProtoToGestureScrollBegin(
25 const InputMessage& proto) {
26 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
nyquist 2015/11/24 08:12:43 Optional nit: Did you investigate if the code was
David Trainor- moved to gerrit 2015/11/24 20:08:28 Done.
27 event->type = blink::WebInputEvent::Type::GestureScrollBegin;
28 event->timeStampSeconds = proto.timestamp_seconds();
29
30 const GestureScrollBegin& details = proto.gesture_scroll_begin();
31 ProtoToBaseWebGesture(details.base(), event.get());
32 event->data.scrollBegin.deltaXHint = details.delta_x_hint();
33 event->data.scrollBegin.deltaYHint = details.delta_y_hint();
34 event->data.scrollBegin.targetViewport = details.target_viewport();
35
36 return event.Pass();
37 }
38
39 scoped_ptr<blink::WebInputEvent> ProtoToGestureScrollEnd(
40 const InputMessage& proto) {
41 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
42 event->type = blink::WebInputEvent::Type::GestureScrollEnd;
43 event->timeStampSeconds = proto.timestamp_seconds();
44
45 const GestureScrollEnd& details = proto.gesture_scroll_end();
46 ProtoToBaseWebGesture(details.base(), event.get());
47
48 return event.Pass();
49 }
50
51 scoped_ptr<blink::WebInputEvent> ProtoToGestureScrollUpdate(
52 const InputMessage& proto) {
53 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
54 event->type = blink::WebInputEvent::Type::GestureScrollUpdate;
55 event->timeStampSeconds = proto.timestamp_seconds();
56
57 const GestureScrollUpdate& details = proto.gesture_scroll_update();
58 ProtoToBaseWebGesture(details.base(), event.get());
59 event->data.scrollUpdate.deltaX = details.delta_x();
60 event->data.scrollUpdate.deltaY = details.delta_y();
61 event->data.scrollUpdate.velocityX = details.velocity_x();
62 event->data.scrollUpdate.velocityY = details.velocity_y();
63 event->data.scrollUpdate.previousUpdateInSequencePrevented =
64 details.previous_update_in_sequence_prevented();
65 event->data.scrollUpdate.preventPropagation = details.prevent_propagation();
66 event->data.scrollUpdate.inertial = details.inertial();
67
68 return event.Pass();
69 }
70
71 scoped_ptr<blink::WebInputEvent> ProtoToGestureFlingStart(
72 const InputMessage& proto) {
73 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
74 event->type = blink::WebInputEvent::Type::GestureFlingStart;
75 event->timeStampSeconds = proto.timestamp_seconds();
76
77 const GestureFlingStart& details = proto.gesture_fling_start();
78 ProtoToBaseWebGesture(details.base(), event.get());
79 event->data.flingStart.velocityX = details.velocity_x();
80 event->data.flingStart.velocityY = details.velocity_y();
81 event->data.flingStart.targetViewport = details.target_viewport();
82
83 return event.Pass();
84 }
85
86 scoped_ptr<blink::WebInputEvent> ProtoToGestureFlingCancel(
87 const InputMessage& proto) {
88 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
89 event->type = blink::WebInputEvent::Type::GestureFlingCancel;
90 event->timeStampSeconds = proto.timestamp_seconds();
91
92 const GestureFlingCancel& details = proto.gesture_fling_cancel();
93 ProtoToBaseWebGesture(details.base(), event.get());
94 event->data.flingCancel.preventBoosting = details.prevent_boosting();
95
96 return event.Pass();
97 }
98
99 scoped_ptr<blink::WebInputEvent> ProtoToGestureTap(
100 const InputMessage& proto) {
101 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
102 event->type = blink::WebInputEvent::Type::GestureTap;
103 event->timeStampSeconds = proto.timestamp_seconds();
104
105 const GestureTap& details = proto.gesture_tap();
106 ProtoToBaseWebGesture(details.base(), event.get());
107 event->data.tap.tapCount = details.tap_count();
108 event->data.tap.width = details.width();
109 event->data.tap.height = details.height();
110
111 return event.Pass();
112 }
113
114 scoped_ptr<blink::WebInputEvent> ProtoToGesturePinchBegin(
115 const InputMessage& proto) {
116 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
117 event->type = blink::WebInputEvent::Type::GesturePinchBegin;
118 event->timeStampSeconds = proto.timestamp_seconds();
119
120 const GesturePinchBegin& details = proto.gesture_pinch_begin();
121 ProtoToBaseWebGesture(details.base(), event.get());
122
123 return event.Pass();
124 }
125
126 scoped_ptr<blink::WebInputEvent> ProtoToGesturePinchEnd(
127 const InputMessage& proto) {
128 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
129 event->type = blink::WebInputEvent::Type::GesturePinchEnd;
130 event->timeStampSeconds = proto.timestamp_seconds();
131
132 const GesturePinchEnd& details = proto.gesture_pinch_end();
133 ProtoToBaseWebGesture(details.base(), event.get());
134
135 return event.Pass();
136 }
137
138 scoped_ptr<blink::WebInputEvent> ProtoToGesturePinchUpdate(
139 const InputMessage& proto) {
140 scoped_ptr<blink::WebGestureEvent> event(new blink::WebGestureEvent);
141 event->type = blink::WebInputEvent::Type::GesturePinchUpdate;
142 event->timeStampSeconds = proto.timestamp_seconds();
143
144 const GesturePinchUpdate& details = proto.gesture_pinch_update();
145 ProtoToBaseWebGesture(details.base(), event.get());
146 event->data.pinchUpdate.zoomDisabled = details.zoom_disabled();
147 event->data.pinchUpdate.scale = details.scale();
148
149 return event.Pass();
150 }
151
152 } // namespace
153
154 InputMessageProcessor::InputMessageProcessor() {}
155
156 InputMessageProcessor::~InputMessageProcessor() {}
157
158 scoped_ptr<blink::WebInputEvent> InputMessageProcessor::ProcessMessage(
159 const InputMessage& message) {
160 scoped_ptr<blink::WebInputEvent> event;
161
162 switch (message.type()) {
163 case InputMessage::Type_GestureScrollBegin:
164 event = ProtoToGestureScrollBegin(message).Pass();
165 break;
166 case InputMessage::Type_GestureScrollEnd:
167 event = ProtoToGestureScrollEnd(message).Pass();
168 break;
169 case InputMessage::Type_GestureScrollUpdate:
170 event = ProtoToGestureScrollUpdate(message).Pass();
171 break;
172 case InputMessage::Type_GestureFlingStart:
173 event = ProtoToGestureFlingStart(message).Pass();
174 break;
175 case InputMessage::Type_GestureFlingCancel:
176 event = ProtoToGestureFlingCancel(message).Pass();
177 break;
178 case InputMessage::Type_GestureTap:
179 event = ProtoToGestureTap(message).Pass();
180 break;
181 case InputMessage::Type_GesturePinchBegin:
182 event = ProtoToGesturePinchBegin(message).Pass();
183 break;
184 case InputMessage::Type_GesturePinchEnd:
185 event = ProtoToGesturePinchEnd(message).Pass();
186 break;
187 case InputMessage::Type_GesturePinchUpdate:
188 event = ProtoToGesturePinchUpdate(message).Pass();
189 break;
190 default:
191 // Unsupported WebInputEvent.
Wez 2015/11/23 22:41:41 Now that the UNKNOWN enum value CL has landed, let
David Trainor- moved to gerrit 2015/11/24 20:08:28 Done.
192 return nullptr;
193 }
194
195 return event;
196 }
197
198 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698