| Index: third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| diff --git a/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp b/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| index 243c8f567abd3b83ac192d914e82462333631f7b..18571ba2a5b6bca2e784e21c631b88a452942d02 100644
|
| --- a/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| +++ b/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| @@ -18,6 +18,13 @@ SensorProviderProxy::SensorProviderProxy(LocalFrame* frame) {
|
| m_sensorProvider.set_connection_error_handler(convertToBaseCallback(
|
| WTF::bind(&SensorProviderProxy::onSensorProviderConnectionError,
|
| wrapWeakPersistent(this))));
|
| +
|
| + // Get permission service.
|
| + frame->interfaceProvider()->getInterface(
|
| + mojo::GetProxy(&m_permissionService));
|
| + m_permissionService.set_connection_error_handler(convertToBaseCallback(
|
| + WTF::bind(&SensorProviderProxy::onSensorProviderConnectionError,
|
| + wrapWeakPersistent(this))));
|
| }
|
|
|
| const char* SensorProviderProxy::supplementName() {
|
| @@ -37,6 +44,10 @@ SensorProviderProxy* SensorProviderProxy::from(LocalFrame* frame) {
|
|
|
| SensorProviderProxy::~SensorProviderProxy() {}
|
|
|
| +void SensorProviderProxy::resetPermissionService() {
|
| + m_permissionService.reset();
|
| +}
|
| +
|
| DEFINE_TRACE(SensorProviderProxy) {
|
| visitor->trace(m_sensors);
|
| Supplement<LocalFrame>::trace(visitor);
|
| @@ -44,12 +55,14 @@ DEFINE_TRACE(SensorProviderProxy) {
|
|
|
| SensorProxy* SensorProviderProxy::createSensor(
|
| device::mojom::blink::SensorType type,
|
| + RefPtr<SecurityOrigin> origin,
|
| std::unique_ptr<SensorReadingFactory> readingFactory) {
|
| DCHECK(!getSensor(type));
|
|
|
| - SensorProxy* sensor = new SensorProxy(type, this, std::move(readingFactory));
|
| + SensorProxy* sensor =
|
| + new SensorProxy(type, m_permissionService.get(), std::move(origin), this,
|
| + std::move(readingFactory));
|
| m_sensors.add(sensor);
|
| -
|
| return sensor;
|
| }
|
|
|
| @@ -70,6 +83,7 @@ void SensorProviderProxy::onSensorProviderConnectionError() {
|
| return;
|
| }
|
|
|
| + m_permissionService.reset();
|
| m_sensorProvider.reset();
|
| for (SensorProxy* sensor : m_sensors)
|
| sensor->handleSensorError();
|
|
|