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

Side by Side Diff: third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js

Issue 2465363004: [Sensors] Consider maximum supported frequency (Closed)
Patch Set: Comment from Tim Created 4 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
1 'use strict'; 1 'use strict';
2 2
3 // Wraps callback and calls reject_func if callback throws an error. 3 // Wraps callback and calls reject_func if callback throws an error.
4 class CallbackWrapper { 4 class CallbackWrapper {
5 constructor(callback, reject_func) { 5 constructor(callback, reject_func) {
6 this.wrapper_func_ = (args) => { 6 this.wrapper_func_ = (args) => {
7 try { 7 try {
8 callback(args); 8 callback(args);
9 } catch(e) { 9 } catch(e) {
10 reject_func(); 10 reject_func();
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 let rv = 210 let rv =
211 core.createSharedBuffer( 211 core.createSharedBuffer(
212 this.shared_buffer_size_in_bytes_, 212 this.shared_buffer_size_in_bytes_,
213 core.CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE); 213 core.CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE);
214 assert_equals(rv.result, core.RESULT_OK, "Failed to create buffer"); 214 assert_equals(rv.result, core.RESULT_OK, "Failed to create buffer");
215 this.shared_buffer_handle_ = rv.handle; 215 this.shared_buffer_handle_ = rv.handle;
216 this.active_sensor_ = null; 216 this.active_sensor_ = null;
217 this.get_sensor_should_fail_ = false; 217 this.get_sensor_should_fail_ = false;
218 this.resolve_func_ = null; 218 this.resolve_func_ = null;
219 this.is_continuous_ = false; 219 this.is_continuous_ = false;
220 this.max_frequency_ = 60;
220 } 221 }
221 222
222 // Returns initialized Sensor proxy to the client. 223 // Returns initialized Sensor proxy to the client.
223 getSensor(type, stub) { 224 getSensor(type, stub) {
224 if (this.get_sensor_should_fail_) { 225 if (this.get_sensor_should_fail_) {
225 return getSensorResponse(null, 226 return getSensorResponse(null,
226 connection.bindProxy(null, sensor.SensorClient)); 227 connection.bindProxy(null, sensor.SensorClient));
227 } 228 }
228 229
229 let offset = 230 let offset =
(...skipping 16 matching lines...) Expand all
246 247
247 assert_equals(rv.result, core.RESULT_OK); 248 assert_equals(rv.result, core.RESULT_OK);
248 249
249 let default_config = {frequency: 5}; 250 let default_config = {frequency: 5};
250 251
251 let init_params = 252 let init_params =
252 new sensor_provider.SensorInitParams( 253 new sensor_provider.SensorInitParams(
253 { memory: rv.handle, 254 { memory: rv.handle,
254 buffer_offset: offset, 255 buffer_offset: offset,
255 mode: reporting_mode, 256 mode: reporting_mode,
256 default_configuration: default_config }); 257 default_configuration: default_config,
258 maximum_frequency: this.max_frequency_});
257 259
258 if (this.resolve_func_ !== null) { 260 if (this.resolve_func_ !== null) {
259 this.resolve_func_(this.active_sensor_); 261 this.resolve_func_(this.active_sensor_);
260 } 262 }
261 263
262 var client_handle = connection.bindProxy(proxy => { 264 var client_handle = connection.bindProxy(proxy => {
263 this.active_sensor_.client_ = proxy; 265 this.active_sensor_.client_ = proxy;
264 }, sensor.SensorClient); 266 }, sensor.SensorClient);
265
266 return getSensorResponse(init_params, client_handle); 267 return getSensorResponse(init_params, client_handle);
267 } 268 }
268 269
269 // Binds object to mojo message pipe 270 // Binds object to mojo message pipe
270 bindToPipe(pipe) { 271 bindToPipe(pipe) {
271 this.stub_ = connection.bindHandleToStub( 272 this.stub_ = connection.bindHandleToStub(
272 pipe, sensor_provider.SensorProvider); 273 pipe, sensor_provider.SensorProvider);
273 bindings.StubBindings(this.stub_).delegate = this; 274 bindings.StubBindings(this.stub_).delegate = this;
274 } 275 }
275 276
276 // Mock functions 277 // Mock functions
277 278
278 // Resets state of mock SensorProvider between test runs. 279 // Resets state of mock SensorProvider between test runs.
279 reset() { 280 reset() {
280 if (this.active_sensor_ != null) { 281 if (this.active_sensor_ != null) {
281 this.active_sensor_.reset(); 282 this.active_sensor_.reset();
282 this.active_sensor_ = null; 283 this.active_sensor_ = null;
283 } 284 }
284 285
285 this.get_sensor_should_fail_ = false; 286 this.get_sensor_should_fail_ = false;
286 this.resolve_func_ = null; 287 this.resolve_func_ = null;
288 this.max_frequency_ = 60;
287 } 289 }
288 290
289 // Sets flag that forces mock SensorProvider to fail when getSensor() is 291 // Sets flag that forces mock SensorProvider to fail when getSensor() is
290 // invoked. 292 // invoked.
291 setGetSensorShouldFail(should_fail) { 293 setGetSensorShouldFail(should_fail) {
292 this.get_sensor_should_fail_ = should_fail; 294 this.get_sensor_should_fail_ = should_fail;
293 } 295 }
294 296
295 // Returns mock sensor that was created in getSensor to the layout test. 297 // Returns mock sensor that was created in getSensor to the layout test.
296 getCreatedSensor() { 298 getCreatedSensor() {
297 if (this.active_sensor_ != null) { 299 if (this.active_sensor_ != null) {
298 return Promise.resolve(this.active_sensor_); 300 return Promise.resolve(this.active_sensor_);
299 } 301 }
300 302
301 return new Promise((resolve, reject) => { 303 return new Promise((resolve, reject) => {
302 this.resolve_func_ = resolve; 304 this.resolve_func_ = resolve;
303 }); 305 });
304 } 306 }
305 307
306 // Forces sensor to use |reporting_mode| as an update mode. 308 // Forces sensor to use |reporting_mode| as an update mode.
307 setContinuousReportingMode(reporting_mode) { 309 setContinuousReportingMode(reporting_mode) {
308 this.is_continuous_ = reporting_mode; 310 this.is_continuous_ = reporting_mode;
309 } 311 }
312
313 // Sets the maximum frequency for a concrete sensor.
314 setMaximumSupportedFrequency(frequency) {
315 this.max_frequency_ = frequency;
316 }
310 } 317 }
311 318
312 let mockSensorProvider = new MockSensorProvider; 319 let mockSensorProvider = new MockSensorProvider;
313 mojo.frameInterfaces.addInterfaceOverrideForTesting( 320 mojo.frameInterfaces.addInterfaceOverrideForTesting(
314 sensor_provider.SensorProvider.name, 321 sensor_provider.SensorProvider.name,
315 pipe => { 322 pipe => {
316 mockSensorProvider.bindToPipe(pipe); 323 mockSensorProvider.bindToPipe(pipe);
317 }); 324 });
318 325
319 return Promise.resolve({ 326 return Promise.resolve({
(...skipping 13 matching lines...) Expand all
333 }; 340 };
334 341
335 let onFailure = () => { 342 let onFailure = () => {
336 sensor.mockSensorProvider.reset(); 343 sensor.mockSensorProvider.reset();
337 return new Promise((resolve, reject) => { setTimeout(reject, 0); }); 344 return new Promise((resolve, reject) => { setTimeout(reject, 0); });
338 }; 345 };
339 346
340 return Promise.resolve(func(sensor)).then(onSuccess, onFailure); 347 return Promise.resolve(func(sensor)).then(onSuccess, onFailure);
341 }), name, properties); 348 }), name, properties);
342 } 349 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698