Index: chrome/browser/permissions/permission_manager.cc |
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc |
index 19f9eb7d7ee10d2ef07758622f5bdc48b665ad2b..e04567ee62974898fe4dfefad27888e58408db6f 100644 |
--- a/chrome/browser/permissions/permission_manager.cc |
+++ b/chrome/browser/permissions/permission_manager.cc |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/permissions/permission_result.h" |
#include "chrome/browser/permissions/permission_uma_util.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/sensor/sensor_permission_context.h" |
#include "chrome/browser/storage/durable_storage_permission_context.h" |
#include "chrome/browser/tab_contents/tab_util.h" |
#include "chrome/common/features.h" |
@@ -76,6 +77,18 @@ ContentSettingsType PermissionTypeToContentSetting(PermissionType permission) { |
switch (permission) { |
case PermissionType::MIDI: |
return CONTENT_SETTINGS_TYPE_MIDI; |
+ case PermissionType::SENSORS: |
+ return CONTENT_SETTINGS_TYPE_SENSORS; |
+ case PermissionType::AMBIENT_LIGHT_SENSOR: |
+ return CONTENT_SETTINGS_TYPE_AMBIENT_LIGHT_SENSOR; |
+ case PermissionType::MAGNETOMETER: |
+ return CONTENT_SETTINGS_TYPE_MAGNETOMETER; |
+ case PermissionType::ACCELEROMETER: |
+ return CONTENT_SETTINGS_TYPE_ACCELEROMETER; |
+ case PermissionType::GYROSCOPE: |
+ return CONTENT_SETTINGS_TYPE_GYROSCOPE; |
+ case PermissionType::ORIENTATION_SENSOR: |
+ return CONTENT_SETTINGS_TYPE_ORIENTATION_SENSOR; |
case PermissionType::MIDI_SYSEX: |
return CONTENT_SETTINGS_TYPE_MIDI_SYSEX; |
case PermissionType::PUSH_MESSAGING: |
@@ -116,7 +129,9 @@ ContentSettingsType PermissionTypeToContentSetting(PermissionType permission) { |
// The ContentSettingsTypes for which true is returned will also return nullptr |
// in PermissionManager::GetPermissionContext since they don't have a context. |
bool IsConstantPermission(ContentSettingsType type) { |
- return type == CONTENT_SETTINGS_TYPE_MIDI; |
+ return (type == CONTENT_SETTINGS_TYPE_MIDI || |
+ type == CONTENT_SETTINGS_TYPE_ACCELEROMETER || |
+ type == CONTENT_SETTINGS_TYPE_GYROSCOPE); |
} |
void SubscriptionCallbackWrapper( |
@@ -160,6 +175,8 @@ ContentSetting GetContentSettingForConstantPermission( |
switch (type) { |
case CONTENT_SETTINGS_TYPE_MIDI: |
return CONTENT_SETTING_ALLOW; |
+ case CONTENT_SETTINGS_TYPE_AMBIENT_LIGHT_SENSOR: |
+ return CONTENT_SETTING_ALLOW; |
default: |
return CONTENT_SETTING_BLOCK; |
} |
@@ -232,6 +249,8 @@ PermissionManager::PermissionManager(Profile* profile) |
weak_ptr_factory_(this) { |
permission_contexts_[CONTENT_SETTINGS_TYPE_MIDI_SYSEX] = |
base::MakeUnique<MidiPermissionContext>(profile); |
+ permission_contexts_[CONTENT_SETTINGS_TYPE_SENSORS] = |
+ base::MakeUnique<SensorPermissionContext>(profile); |
permission_contexts_[CONTENT_SETTINGS_TYPE_PUSH_MESSAGING] = |
base::MakeUnique<NotificationPermissionContext>( |
profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); |
@@ -259,6 +278,8 @@ PermissionManager::PermissionManager(Profile* profile) |
profile, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
permission_contexts_[CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC] = |
base::MakeUnique<BackgroundSyncPermissionContext>(profile); |
+ permission_contexts_[CONTENT_SETTINGS_TYPE_SENSORS] = |
+ base::MakeUnique<SensorPermissionContext>(profile); |
#if BUILDFLAG(ENABLE_PLUGINS) |
permission_contexts_[CONTENT_SETTINGS_TYPE_PLUGINS] = |
base::MakeUnique<FlashPermissionContext>(profile); |