Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1730)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java

Issue 1084423002: Split Camera and Mic into two permissions on the Site Details page (under Site Settings). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Polish Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e21bd4f682afa14e2b12cbd8afa20da36d34a2c1..b25dc322781d40ae0c70c382f2a5e358450efcc8 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
@@ -62,8 +62,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
"protected_media_identifier_permission_list";
public static final String PREF_PUSH_NOTIFICATIONS_PERMISSION =
"push_notifications_list";
- public static final String PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION =
- "voice_and_video_capture_permission_list";
+ public static final String PREF_VIDEO_CAPTURE_PERMISSION = "video_capture_permission_list";
+ public static final String PREF_VOICE_CAPTURE_PERMISSION = "voice_capture_permission_list";
// All permissions from the permissions preference category must be listed here.
// TODO(mvanouwerkerk): Use this array in more places to reduce verbosity.
@@ -76,7 +76,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
PREF_POPUP_PERMISSION,
PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION,
PREF_PUSH_NOTIFICATIONS_PERMISSION,
- PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION
+ PREF_VIDEO_CAPTURE_PERMISSION,
+ PREF_VOICE_CAPTURE_PERMISSION,
};
// The website this page is displaying details about.
@@ -273,8 +274,10 @@ public class SingleWebsitePreferences extends PreferenceFragment
setUpListPreference(preference, mSite.getProtectedMediaIdentifierPermission());
} else if (PREF_PUSH_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) {
setUpListPreference(preference, mSite.getPushNotificationPermission());
- } else if (PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
- configureVoiceAndVideoPreference(preference);
+ } else if (PREF_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
+ setUpListPreference(preference, mSite.getVideoCapturePermission());
+ } else if (PREF_VOICE_CAPTURE_PERMISSION.equals(preference.getKey())) {
+ setUpListPreference(preference, mSite.getVoiceCapturePermission());
}
}
@@ -358,53 +361,15 @@ public class SingleWebsitePreferences extends PreferenceFragment
return ContentSettingsType.CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER;
case PREF_PUSH_NOTIFICATIONS_PERMISSION:
return ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS;
- case PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION:
- return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM;
+ case PREF_VIDEO_CAPTURE_PERMISSION:
+ return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA;
+ case PREF_VOICE_CAPTURE_PERMISSION:
+ return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC;
default:
return 0;
}
}
- /**
- * Based on the type of media allowed or denied for this website, the title and summary
- * of the CheckBoxPreference will change. If this website has no media related permission, then
- * the preference will be removed.
- * @param preference CheckboxPreference whose title and summary will be set.
- */
- private void configureVoiceAndVideoPreference(Preference preference) {
- ContentSetting voice = mSite.getVoiceCapturePermission();
- ContentSetting video = mSite.getVideoCapturePermission();
- if (voice == null && video == null) {
- getPreferenceScreen().removePreference(preference);
- return;
- }
-
- int mediaAccessType = mSite.getMediaAccessType();
- switch (mediaAccessType) {
- case Website.CAMERA_ACCESS_ALLOWED:
- case Website.CAMERA_ACCESS_DENIED:
- preference.setTitle(R.string.video_permission_title);
- break;
- case Website.MICROPHONE_ACCESS_ALLOWED:
- case Website.MICROPHONE_ACCESS_DENIED:
- preference.setTitle(R.string.voice_permission_title);
- break;
- case Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED:
- case Website.MICROPHONE_AND_CAMERA_ACCESS_DENIED:
- preference.setTitle(R.string.voice_and_video_permission_title);
- break;
- case Website.INVALID_CAMERA_OR_MICROPHONE_ACCESS:
- default:
- getPreferenceScreen().removePreference(preference);
- }
- setUpListPreference(
- preference, mediaAccessType == Website.CAMERA_ACCESS_ALLOWED
- || mediaAccessType == Website.MICROPHONE_ACCESS_ALLOWED
- || mediaAccessType == Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED
- ? ContentSetting.ALLOW :
- ContentSetting.BLOCK);
- }
-
@Override
public void onClick(DialogInterface dialog, int which) {
clearStoredData();
@@ -433,41 +398,6 @@ public class SingleWebsitePreferences extends PreferenceFragment
}
}
- private void setVoiceAndVideoCaptureSetting(ContentSetting value) {
- int mediaAccessType = mSite.getMediaAccessType();
- if (value == ContentSetting.ALLOW) {
- switch (mediaAccessType) {
- case Website.CAMERA_ACCESS_DENIED:
- mSite.setVideoCapturePermission(ContentSetting.ALLOW);
- break;
- case Website.MICROPHONE_ACCESS_DENIED:
- mSite.setVoiceCapturePermission(ContentSetting.ALLOW);
- break;
- case Website.MICROPHONE_AND_CAMERA_ACCESS_DENIED:
- mSite.setVideoCapturePermission(ContentSetting.ALLOW);
- mSite.setVoiceCapturePermission(ContentSetting.ALLOW);
- break;
- default:
- assert false;
- }
- } else {
- switch (mediaAccessType) {
- case Website.CAMERA_ACCESS_ALLOWED:
- mSite.setVideoCapturePermission(ContentSetting.BLOCK);
- break;
- case Website.MICROPHONE_ACCESS_ALLOWED:
- mSite.setVoiceCapturePermission(ContentSetting.BLOCK);
- break;
- case Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED:
- mSite.setVideoCapturePermission(ContentSetting.BLOCK);
- mSite.setVoiceCapturePermission(ContentSetting.BLOCK);
- break;
- default:
- assert false;
- }
- }
- }
-
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentSetting permission =
@@ -488,8 +418,10 @@ public class SingleWebsitePreferences extends PreferenceFragment
mSite.setProtectedMediaIdentifierPermission(permission);
} else if (PREF_PUSH_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) {
mSite.setPushNotificationPermission(permission);
- } else if (PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
- setVoiceAndVideoCaptureSetting(permission);
+ } else if (PREF_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
+ mSite.setVideoCapturePermission(permission);
+ } else if (PREF_VOICE_CAPTURE_PERMISSION.equals(preference.getKey())) {
+ mSite.setVoiceCapturePermission(permission);
} else {
return true;
}

Powered by Google App Engine
This is Rietveld 408576698