Index: third_party/WebKit/Source/modules/permissions/Permissions.cpp |
diff --git a/third_party/WebKit/Source/modules/permissions/Permissions.cpp b/third_party/WebKit/Source/modules/permissions/Permissions.cpp |
index f9a49940254a69240cbb17a52e311b23c9a8f6cb..00f20a8b87859f028cced4cd71b39a81d3efd80b 100644 |
--- a/third_party/WebKit/Source/modules/permissions/Permissions.cpp |
+++ b/third_party/WebKit/Source/modules/permissions/Permissions.cpp |
@@ -20,6 +20,7 @@ |
#include "modules/permissions/PermissionDescriptor.h" |
#include "modules/permissions/PermissionStatus.h" |
#include "modules/permissions/PermissionUtils.h" |
+#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/UserGestureIndicator.h" |
#include "platform/wtf/Functional.h" |
#include "platform/wtf/NotFound.h" |
@@ -35,6 +36,14 @@ using mojom::blink::PermissionService; |
namespace { |
+bool IsSensorRuntimeFlagEnabled(ExceptionState& exception_state) { |
+ if (!RuntimeEnabledFeatures::sensorEnabled()) { |
+ exception_state.ThrowTypeError("GenericSensor flag is not enabled."); |
+ return false; |
+ } |
+ return true; |
+} |
+ |
// Parses the raw permission dictionary and returns the Mojo |
// PermissionDescriptor if parsing was successful. If an exception occurs, it |
// will be stored in |exceptionState| and null will be returned. Therefore, the |
@@ -91,6 +100,17 @@ PermissionDescriptorPtr ParsePermission(ScriptState* script_state, |
} |
if (name == "background-sync") |
return CreatePermissionDescriptor(PermissionName::BACKGROUND_SYNC); |
+ // TODO(riju): Remove runtime flag check when Generic Sensor feature is |
+ // stable. |
+ if (name == "ambient-light-sensor" && |
+ IsSensorRuntimeFlagEnabled(exception_state)) |
mlamouri (slow - plz ping)
2017/04/20 13:26:32
Instead of checking for the flag N times, could yo
riju_
2017/07/19 06:56:46
Done.
|
+ return CreatePermissionDescriptor(PermissionName::AMBIENT_LIGHT_SENSOR); |
+ if (name == "accelerometer" && IsSensorRuntimeFlagEnabled(exception_state)) |
+ return CreatePermissionDescriptor(PermissionName::ACCELEROMETER); |
+ if (name == "gyroscope" && IsSensorRuntimeFlagEnabled(exception_state)) |
+ return CreatePermissionDescriptor(PermissionName::GYROSCOPE); |
+ if (name == "magnetometer" && IsSensorRuntimeFlagEnabled(exception_state)) |
+ return CreatePermissionDescriptor(PermissionName::MAGNETOMETER); |
return nullptr; |
} |