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 5c660be98775f72527417ead0ab6daca461a93d8..389c54b5ee5d7b1f8e24bcb218160f87f4ddbe12 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 = |
@@ -87,18 +88,12 @@ 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_LOCATION_ACCESS, |
- PREF_MIC_CAPTURE_PERMISSION, |
- PREF_MIDI_SYSEX_PERMISSION, |
- PREF_NOTIFICATIONS_PERMISSION, |
- PREF_POPUP_PERMISSION, |
- PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, |
- PREF_SUBRESOURCE_FILTER_PERMISSION, |
+ PREF_AUTOPLAY_PERMISSION, PREF_BACKGROUND_SYNC_PERMISSION, |
+ PREF_CAMERA_CAPTURE_PERMISSION, PREF_COOKIES_PERMISSION, PREF_JAVASCRIPT_PERMISSION, |
+ PREF_LOCATION_ACCESS, PREF_MIC_CAPTURE_PERMISSION, PREF_MIDI_SYSEX_PERMISSION, |
+ PREF_NOTIFICATIONS_PERMISSION, PREF_POPUP_PERMISSION, |
+ PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, PREF_SUBRESOURCE_FILTER_PERMISSION, |
+ PREF_SENSORS_PERMISSION, |
}; |
// The website this page is displaying details about. |
@@ -208,6 +203,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( |
@@ -306,6 +305,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())) { |
@@ -574,6 +575,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: |
@@ -636,6 +639,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())) { |
@@ -712,6 +717,7 @@ public class SingleWebsitePreferences extends PreferenceFragment |
mSite.setJavaScriptPermission(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); |