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

Side by Side Diff: content/shell/renderer/test_runner/gamepad_controller.cc

Issue 304403002: Gamepad: add test support for page visibility behavior (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing override's Created 6 years, 6 months 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/shell/renderer/test_runner/gamepad_controller.h" 5 #include "content/shell/renderer/test_runner/gamepad_controller.h"
6 6
7 #include "content/shell/renderer/test_runner/TestInterfaces.h" 7 #include "content/shell/renderer/test_runner/TestInterfaces.h"
8 #include "content/shell/renderer/test_runner/WebTestDelegate.h" 8 #include "content/shell/renderer/test_runner/WebTestDelegate.h"
9 #include "gin/arguments.h" 9 #include "gin/arguments.h"
10 #include "gin/handle.h" 10 #include "gin/handle.h"
11 #include "gin/object_template_builder.h" 11 #include "gin/object_template_builder.h"
12 #include "gin/wrappable.h" 12 #include "gin/wrappable.h"
13 #include "third_party/WebKit/public/platform/WebGamepadListener.h"
13 #include "third_party/WebKit/public/web/WebFrame.h" 14 #include "third_party/WebKit/public/web/WebFrame.h"
14 #include "third_party/WebKit/public/web/WebKit.h" 15 #include "third_party/WebKit/public/web/WebKit.h"
15 #include "v8/include/v8.h" 16 #include "v8/include/v8.h"
16 17
17 using blink::WebFrame; 18 using blink::WebFrame;
18 using blink::WebGamepad; 19 using blink::WebGamepad;
19 using blink::WebGamepads; 20 using blink::WebGamepads;
20 21
21 namespace content { 22 namespace content {
22 23
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 void GamepadControllerBindings::SetAxisCount(int index, int axes) { 130 void GamepadControllerBindings::SetAxisCount(int index, int axes) {
130 if (controller_) 131 if (controller_)
131 controller_->SetAxisCount(index, axes); 132 controller_->SetAxisCount(index, axes);
132 } 133 }
133 134
134 void GamepadControllerBindings::SetAxisData(int index, int axis, double data) { 135 void GamepadControllerBindings::SetAxisData(int index, int axis, double data) {
135 if (controller_) 136 if (controller_)
136 controller_->SetAxisData(index, axis, data); 137 controller_->SetAxisData(index, axis, data);
137 } 138 }
138 139
139 GamepadController::GamepadController() : delegate_(NULL), weak_factory_(this) { 140 GamepadController::GamepadController()
141 : listener_(NULL),
142 weak_factory_(this) {
140 Reset(); 143 Reset();
141 } 144 }
142 145
143 GamepadController::~GamepadController() {} 146 GamepadController::~GamepadController() {}
144 147
145 void GamepadController::Reset() { 148 void GamepadController::Reset() {
146 memset(&gamepads_, 0, sizeof(gamepads_)); 149 memset(&gamepads_, 0, sizeof(gamepads_));
147 } 150 }
148 151
149 void GamepadController::Install(WebFrame* frame) { 152 void GamepadController::Install(WebFrame* frame) {
150 GamepadControllerBindings::Install(weak_factory_.GetWeakPtr(), frame); 153 GamepadControllerBindings::Install(weak_factory_.GetWeakPtr(), frame);
151 } 154 }
152 155
153 void GamepadController::SetDelegate(WebTestDelegate* delegate) { 156 void GamepadController::SetDelegate(WebTestDelegate* delegate) {
154 delegate_ = delegate; 157 delegate->setGamepadProvider(this);
158 }
159
160 void GamepadController::SampleGamepads(blink::WebGamepads& gamepads) {
161 memcpy(&gamepads, &gamepads_, sizeof(blink::WebGamepads));
162 }
163
164 void GamepadController::SetGamepadListener(
165 blink::WebGamepadListener* listener) {
166 listener_ = listener;
155 } 167 }
156 168
157 void GamepadController::Connect(int index) { 169 void GamepadController::Connect(int index) {
158 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 170 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
159 return; 171 return;
160 gamepads_.items[index].connected = true; 172 gamepads_.items[index].connected = true;
161 gamepads_.length = 0; 173 gamepads_.length = 0;
162 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) { 174 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) {
163 if (gamepads_.items[i].connected) 175 if (gamepads_.items[i].connected)
164 gamepads_.length = i + 1; 176 gamepads_.length = i + 1;
165 } 177 }
166 if (delegate_)
167 delegate_->setGamepadData(gamepads_);
168 } 178 }
169 179
170 void GamepadController::DispatchConnected(int index) { 180 void GamepadController::DispatchConnected(int index) {
171 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 181 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)
182 || !gamepads_.items[index].connected)
172 return; 183 return;
173 const WebGamepad& pad = gamepads_.items[index]; 184 const WebGamepad& pad = gamepads_.items[index];
174 if (pad.connected && delegate_) 185 if (listener_)
175 delegate_->didConnectGamepad(index, pad); 186 listener_->didConnectGamepad(index, pad);
176 } 187 }
177 188
178 void GamepadController::Disconnect(int index) { 189 void GamepadController::Disconnect(int index) {
179 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 190 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
180 return; 191 return;
181 WebGamepad& pad = gamepads_.items[index]; 192 WebGamepad& pad = gamepads_.items[index];
182 pad.connected = false; 193 pad.connected = false;
183 gamepads_.length = 0; 194 gamepads_.length = 0;
184 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) { 195 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) {
185 if (gamepads_.items[i].connected) 196 if (gamepads_.items[i].connected)
186 gamepads_.length = i + 1; 197 gamepads_.length = i + 1;
187 } 198 }
188 if (delegate_) { 199 if (listener_)
189 delegate_->setGamepadData(gamepads_); 200 listener_->didDisconnectGamepad(index, pad);
190 delegate_->didDisconnectGamepad(index, pad);
191 }
192 } 201 }
193 202
194 void GamepadController::SetId(int index, const std::string& src) { 203 void GamepadController::SetId(int index, const std::string& src) {
195 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 204 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
196 return; 205 return;
197 const char* p = src.c_str(); 206 const char* p = src.c_str();
198 memset(gamepads_.items[index].id, 0, sizeof(gamepads_.items[index].id)); 207 memset(gamepads_.items[index].id, 0, sizeof(gamepads_.items[index].id));
199 for (unsigned i = 0; *p && i < WebGamepad::idLengthCap - 1; ++i) 208 for (unsigned i = 0; *p && i < WebGamepad::idLengthCap - 1; ++i)
200 gamepads_.items[index].id[i] = *p++; 209 gamepads_.items[index].id[i] = *p++;
201 if (delegate_)
202 delegate_->setGamepadData(gamepads_);
203 } 210 }
204 211
205 void GamepadController::SetButtonCount(int index, int buttons) { 212 void GamepadController::SetButtonCount(int index, int buttons) {
206 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 213 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
207 return; 214 return;
208 if (buttons < 0 || buttons >= static_cast<int>(WebGamepad::buttonsLengthCap)) 215 if (buttons < 0 || buttons >= static_cast<int>(WebGamepad::buttonsLengthCap))
209 return; 216 return;
210 gamepads_.items[index].buttonsLength = buttons; 217 gamepads_.items[index].buttonsLength = buttons;
211 if (delegate_)
212 delegate_->setGamepadData(gamepads_);
213 } 218 }
214 219
215 void GamepadController::SetButtonData(int index, int button, double data) { 220 void GamepadController::SetButtonData(int index, int button, double data) {
216 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 221 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
217 return; 222 return;
218 if (button < 0 || button >= static_cast<int>(WebGamepad::buttonsLengthCap)) 223 if (button < 0 || button >= static_cast<int>(WebGamepad::buttonsLengthCap))
219 return; 224 return;
220 gamepads_.items[index].buttons[button].value = data; 225 gamepads_.items[index].buttons[button].value = data;
221 gamepads_.items[index].buttons[button].pressed = data > 0.1f; 226 gamepads_.items[index].buttons[button].pressed = data > 0.1f;
222 if (delegate_)
223 delegate_->setGamepadData(gamepads_);
224 } 227 }
225 228
226 void GamepadController::SetAxisCount(int index, int axes) { 229 void GamepadController::SetAxisCount(int index, int axes) {
227 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 230 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
228 return; 231 return;
229 if (axes < 0 || axes >= static_cast<int>(WebGamepad::axesLengthCap)) 232 if (axes < 0 || axes >= static_cast<int>(WebGamepad::axesLengthCap))
230 return; 233 return;
231 gamepads_.items[index].axesLength = axes; 234 gamepads_.items[index].axesLength = axes;
232 if (delegate_)
233 delegate_->setGamepadData(gamepads_);
234 } 235 }
235 236
236 void GamepadController::SetAxisData(int index, int axis, double data) { 237 void GamepadController::SetAxisData(int index, int axis, double data) {
237 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 238 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
238 return; 239 return;
239 if (axis < 0 || axis >= static_cast<int>(WebGamepad::axesLengthCap)) 240 if (axis < 0 || axis >= static_cast<int>(WebGamepad::axesLengthCap))
240 return; 241 return;
241 gamepads_.items[index].axes[axis] = data; 242 gamepads_.items[index].axes[axis] = data;
242 if (delegate_)
243 delegate_->setGamepadData(gamepads_);
244 } 243 }
245 244
246 } // namespace content 245 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/gamepad_controller.h ('k') | content/shell/renderer/webkit_test_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698