Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
index edad2354ef327539f6ed3196c05d72ee09c6728a..353b5da2a9f514459d93038dc7d2f6757a7e7455 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java |
@@ -77,6 +77,7 @@ public class SingleWebsitePreferences extends PreferenceFragment |
public static final String PREF_LOCATION_ACCESS = "location_access_list"; |
public static final String PREF_MIC_CAPTURE_PERMISSION = "microphone_permission_list"; |
public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permission_list"; |
+ public static final String PREF_SENSORS_PERMISSION = "sensors_permission_list"; |
public static final String PREF_NOTIFICATIONS_PERMISSION = "push_notifications_list"; |
public static final String PREF_POPUP_PERMISSION = "popup_permission_list"; |
public static final String PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION = |
@@ -85,18 +86,11 @@ public class SingleWebsitePreferences extends PreferenceFragment |
// All permissions from the permissions preference category must be listed here. |
// TODO(mvanouwerkerk): Use this array in more places to reduce verbosity. |
private static final String[] PERMISSION_PREFERENCE_KEYS = { |
- PREF_AUTOPLAY_PERMISSION, |
- PREF_BACKGROUND_SYNC_PERMISSION, |
- PREF_CAMERA_CAPTURE_PERMISSION, |
- PREF_COOKIES_PERMISSION, |
- PREF_JAVASCRIPT_PERMISSION, |
- PREF_KEYGEN_PERMISSION, |
- PREF_LOCATION_ACCESS, |
- PREF_MIC_CAPTURE_PERMISSION, |
- PREF_MIDI_SYSEX_PERMISSION, |
- PREF_NOTIFICATIONS_PERMISSION, |
- PREF_POPUP_PERMISSION, |
- PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, |
+ PREF_AUTOPLAY_PERMISSION, PREF_BACKGROUND_SYNC_PERMISSION, |
+ PREF_CAMERA_CAPTURE_PERMISSION, PREF_COOKIES_PERMISSION, PREF_JAVASCRIPT_PERMISSION, |
+ PREF_KEYGEN_PERMISSION, PREF_LOCATION_ACCESS, PREF_MIC_CAPTURE_PERMISSION, |
+ PREF_MIDI_SYSEX_PERMISSION, PREF_NOTIFICATIONS_PERMISSION, PREF_POPUP_PERMISSION, |
+ PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, PREF_SENSORS_PERMISSION, |
}; |
// The website this page is displaying details about. |
@@ -212,6 +206,10 @@ public class SingleWebsitePreferences extends PreferenceFragment |
&& permissionInfoIsForTopLevelOrigin(other.getMidiInfo(), origin)) { |
merged.setMidiInfo(other.getMidiInfo()); |
} |
+ if (merged.getSensorInfo() == null && other.getSensorInfo() != null |
+ && permissionInfoIsForTopLevelOrigin(other.getSensorInfo(), origin)) { |
+ merged.setSensorInfo(other.getSensorInfo()); |
+ } |
if (merged.getProtectedMediaIdentifierInfo() == null |
&& other.getProtectedMediaIdentifierInfo() != null |
&& permissionInfoIsForTopLevelOrigin( |
@@ -312,6 +310,8 @@ public class SingleWebsitePreferences extends PreferenceFragment |
setUpListPreference(preference, mSite.getMicrophonePermission()); |
} else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { |
setUpListPreference(preference, mSite.getMidiPermission()); |
+ } else if (PREF_SENSORS_PERMISSION.equals(preference.getKey())) { |
+ setUpListPreference(preference, mSite.getSensorsPermission()); |
} else if (PREF_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) { |
setUpListPreference(preference, mSite.getNotificationPermission()); |
} else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { |
@@ -545,6 +545,8 @@ public class SingleWebsitePreferences extends PreferenceFragment |
return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC; |
case PREF_MIDI_SYSEX_PERMISSION: |
return ContentSettingsType.CONTENT_SETTINGS_TYPE_MIDI_SYSEX; |
+ case PREF_SENSORS_PERMISSION: |
+ return ContentSettingsType.CONTENT_SETTINGS_TYPE_SENSORS; |
case PREF_NOTIFICATIONS_PERMISSION: |
return ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS; |
case PREF_POPUP_PERMISSION: |
@@ -607,6 +609,8 @@ public class SingleWebsitePreferences extends PreferenceFragment |
mSite.setMicrophonePermission(permission); |
} else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { |
mSite.setMidiPermission(permission); |
+ } else if (PREF_SENSORS_PERMISSION.equals(preference.getKey())) { |
+ mSite.setSensorsPermission(permission); |
} else if (PREF_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) { |
mSite.setNotificationPermission(permission); |
} else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { |
@@ -679,6 +683,7 @@ public class SingleWebsitePreferences extends PreferenceFragment |
mSite.setKeygenPermission(ContentSetting.DEFAULT); |
mSite.setMicrophonePermission(ContentSetting.DEFAULT); |
mSite.setMidiPermission(ContentSetting.DEFAULT); |
+ mSite.setSensorsPermission(ContentSetting.DEFAULT); |
mSite.setNotificationPermission(ContentSetting.DEFAULT); |
mSite.setPopupPermission(ContentSetting.DEFAULT); |
mSite.setProtectedMediaIdentifierPermission(ContentSetting.DEFAULT); |