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

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

Issue 2698083007: Port device_generic_sensor to be hosted in Device Service. (Closed)
Patch Set: code rebase Created 3 years, 8 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 '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(e); 10 reject_func(e);
11 } 11 }
12 } 12 }
13 } 13 }
14 14
15 get callback() { 15 get callback() {
16 return this.wrapper_func_; 16 return this.wrapper_func_;
17 } 17 }
18 } 18 }
19 19
20 function sensor_mocks(mojo) { 20 function sensor_mocks(mojo) {
21 return define('Generic Sensor API mocks', [ 21 return define('Generic Sensor API mocks', [
22 'mojo/public/js/core', 22 'mojo/public/js/core',
23 'mojo/public/js/bindings', 23 'mojo/public/js/bindings',
24 'device/generic_sensor/public/interfaces/sensor_provider.mojom', 24 'device/generic_sensor/public/interfaces/sensor_provider.mojom',
25 'device/generic_sensor/public/interfaces/sensor.mojom', 25 'device/generic_sensor/public/interfaces/sensor.mojom',
26 ], (core, bindings, sensor_provider, sensor) => { 26 'services/device/public/interfaces/constants.mojom',
27 ], (core, bindings, sensor_provider, sensor, deviceConstants) => {
27 28
28 // Helper function that returns resolved promise with result. 29 // Helper function that returns resolved promise with result.
29 function sensorResponse(success) { 30 function sensorResponse(success) {
30 return Promise.resolve({success}); 31 return Promise.resolve({success});
31 } 32 }
32 33
33 // Class that mocks Sensor interface defined in sensor.mojom 34 // Class that mocks Sensor interface defined in sensor.mojom
34 class MockSensor { 35 class MockSensor {
35 constructor(sensorRequest, handle, offset, size, reportingMode) { 36 constructor(sensorRequest, handle, offset, size, reportingMode) {
36 this.client_ = null; 37 this.client_ = null;
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 this.max_frequency_ = frequency; 344 this.max_frequency_ = frequency;
344 } 345 }
345 346
346 // Sets the minimum frequency for a concrete sensor. 347 // Sets the minimum frequency for a concrete sensor.
347 setMinimumSupportedFrequency(frequency) { 348 setMinimumSupportedFrequency(frequency) {
348 this.min_frequency_ = frequency; 349 this.min_frequency_ = frequency;
349 } 350 }
350 } 351 }
351 352
352 let mockSensorProvider = new MockSensorProvider; 353 let mockSensorProvider = new MockSensorProvider;
353 mojo.frameInterfaces.addInterfaceOverrideForTesting( 354 mojo.connector.addInterfaceOverrideForTesting(
355 deviceConstants.kServiceName,
354 sensor_provider.SensorProvider.name, 356 sensor_provider.SensorProvider.name,
355 pipe => { 357 pipe => {
356 mockSensorProvider.bindToPipe(pipe); 358 mockSensorProvider.bindToPipe(pipe);
357 }); 359 });
358 360
359 return Promise.resolve({ 361 return Promise.resolve({
360 mockSensorProvider: mockSensorProvider, 362 mockSensorProvider: mockSensorProvider,
361 }); 363 });
362 }); 364 });
363 } 365 }
364 366
365 function sensor_test(func, name, properties) { 367 function sensor_test(func, name, properties) {
366 mojo_test(mojo => sensor_mocks(mojo).then(sensor => { 368 mojo_test(mojo => sensor_mocks(mojo).then(sensor => {
367 // Clean up and reset mock sensor stubs asynchronously, so that the blink 369 // Clean up and reset mock sensor stubs asynchronously, so that the blink
368 // side closes its proxies and notifies JS sensor objects before new test is 370 // side closes its proxies and notifies JS sensor objects before new test is
369 // started. 371 // started.
370 let onSuccess = () => { 372 let onSuccess = () => {
371 sensor.mockSensorProvider.reset(); 373 sensor.mockSensorProvider.reset();
372 return new Promise((resolve, reject) => { setTimeout(resolve, 0); }); 374 return new Promise((resolve, reject) => { setTimeout(resolve, 0); });
373 }; 375 };
374 376
375 let onFailure = error => { 377 let onFailure = error => {
376 sensor.mockSensorProvider.reset(); 378 sensor.mockSensorProvider.reset();
377 return new Promise((resolve, reject) => { setTimeout(() => {reject(error); }, 0); }); 379 return new Promise((resolve, reject) => { setTimeout(() => {reject(error); }, 0); });
378 }; 380 };
379 381
380 return Promise.resolve(func(sensor)).then(onSuccess, onFailure); 382 return Promise.resolve(func(sensor)).then(onSuccess, onFailure);
381 }), name, properties); 383 }), name, properties);
382 } 384 }
OLDNEW
« no previous file with comments | « services/device/public/cpp/device_features.cc ('k') | third_party/WebKit/Source/modules/sensor/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698