| 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);
|
|
|