| 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 b4858eae51b1ce11ad612fb3a39c8fe3bcf6bdf3..3898dab8d7b72ddef0f6d7a458e00772071d48a4 100644
|
| --- a/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| +++ b/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
|
| @@ -24,6 +24,12 @@ void SensorProviderProxy::InitializeIfNeeded(LocalFrame* frame) {
|
| sensor_provider_.set_connection_error_handler(ConvertToBaseCallback(
|
| WTF::Bind(&SensorProviderProxy::OnSensorProviderConnectionError,
|
| WrapWeakPersistent(this))));
|
| + // Get permission service.
|
| + frame->GetInterfaceProvider()->GetInterface(
|
| + mojo::MakeRequest(&permission_service_));
|
| + permission_service_.set_connection_error_handler(ConvertToBaseCallback(
|
| + WTF::Bind(&SensorProviderProxy::OnSensorProviderConnectionError,
|
| + WrapWeakPersistent(this))));
|
| }
|
|
|
| const char* SensorProviderProxy::SupplementName() {
|
| @@ -45,6 +51,10 @@ SensorProviderProxy* SensorProviderProxy::From(LocalFrame* frame) {
|
|
|
| SensorProviderProxy::~SensorProviderProxy() {}
|
|
|
| +void SensorProviderProxy::resetPermissionService() {
|
| + permission_service_.reset();
|
| +}
|
| +
|
| DEFINE_TRACE(SensorProviderProxy) {
|
| visitor->Trace(sensor_proxies_);
|
| Supplement<LocalFrame>::Trace(visitor);
|
| @@ -52,10 +62,11 @@ DEFINE_TRACE(SensorProviderProxy) {
|
|
|
| SensorProxy* SensorProviderProxy::CreateSensorProxy(
|
| device::mojom::blink::SensorType type,
|
| - Page* page) {
|
| + Page* page,
|
| + RefPtr<SecurityOrigin> origin) {
|
| DCHECK(!GetSensorProxy(type));
|
|
|
| - SensorProxy* sensor = new SensorProxy(type, this, page);
|
| + SensorProxy* sensor = new SensorProxy(type, std::move(origin), this, page);
|
| sensor_proxies_.insert(sensor);
|
|
|
| return sensor;
|
| @@ -73,6 +84,7 @@ SensorProxy* SensorProviderProxy::GetSensorProxy(
|
| }
|
|
|
| void SensorProviderProxy::OnSensorProviderConnectionError() {
|
| + permission_service_.reset();
|
| sensor_provider_.reset();
|
| for (SensorProxy* sensor : sensor_proxies_)
|
| sensor->HandleSensorError();
|
|
|