| Index: third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
|
| diff --git a/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js b/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
|
| index 4252de322b03d5a9cde97d13b5442a8196a44a5e..4315317fc1c11b9a541cec7e0b1cade0710a50bf 100644
|
| --- a/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
|
| +++ b/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
|
| @@ -112,16 +112,20 @@ function sensor_mocks(mojo) {
|
| reset() {
|
| if (this.sensor_reading_timer_id_) {
|
| window.clearTimeout(this.sensor_reading_timer_id_);
|
| + this.sensor_reading_timer_id_ = null;
|
| }
|
|
|
| this.start_should_fail_ = false;
|
| - this.sensor_reading_timer_id_ = null;
|
| + this.update_reading_function_ = null;
|
| this.active_sensor_configurations_ = [];
|
| this.suspend_called_ = null;
|
| this.resume_called_ = null;
|
| this.add_configuration_called_ = null;
|
| this.remove_configuration_called_ = null;
|
| this.resetBuffer();
|
| + core.unmapBuffer(this.buffer_array_);
|
| + this.buffer_array_ = null;
|
| + bindings.StubBindings(this.stub_).close();
|
| }
|
|
|
| // Zeroes shared buffer.
|
| @@ -257,6 +261,7 @@ function sensor_mocks(mojo) {
|
| reset() {
|
| if (this.active_sensor_ != null) {
|
| this.active_sensor_.reset();
|
| + this.active_sensor_ = null;
|
| }
|
|
|
| this.get_sensor_should_fail_ = false;
|
| @@ -301,8 +306,19 @@ function sensor_mocks(mojo) {
|
|
|
| function sensor_test(func, name, properties) {
|
| mojo_test(mojo => sensor_mocks(mojo).then(sensor => {
|
| - let result = Promise.resolve(func(sensor));
|
| - let cleanUp = () => { sensor.mockSensorProvider.reset(); };
|
| - return result.then(cleanUp, cleanUp);
|
| + // Clean up and reset mock sensor stubs asynchronously, so that the blink
|
| + // side closes its proxies and notifies JS sensor objects before new test is
|
| + // started.
|
| + let onSuccess = () => {
|
| + sensor.mockSensorProvider.reset();
|
| + return new Promise((resolve, reject) => { setTimeout(resolve, 0); });
|
| + };
|
| +
|
| + let onFailure = () => {
|
| + sensor.mockSensorProvider.reset();
|
| + return new Promise((resolve, reject) => { setTimeout(reject, 0); });
|
| + };
|
| +
|
| + return Promise.resolve(func(sensor)).then(onSuccess, onFailure);
|
| }), name, properties);
|
| }
|
|
|