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

Unified Diff: third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp

Issue 2458453002: [sensors] Add Permission guard to the generic sensor apis.
Patch Set: rebase + blink reformat 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 side-by-side diff with in-line comments
Download patch
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();
« no previous file with comments | « third_party/WebKit/Source/modules/sensor/SensorProviderProxy.h ('k') | third_party/WebKit/Source/modules/sensor/SensorProxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698