| 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 a36ba24e83fe9ab1c436c79692c14e407b172b54..5c660be98775f72527417ead0ab6daca461a93d8 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
|
| @@ -81,6 +81,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| public static final String PREF_POPUP_PERMISSION = "popup_permission_list";
|
| public static final String PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION =
|
| "protected_media_identifier_permission_list";
|
| + public static final String PREF_SUBRESOURCE_FILTER_PERMISSION =
|
| + "subresource_filter_permission_list";
|
|
|
| // All permissions from the permissions preference category must be listed here.
|
| // TODO(mvanouwerkerk): Use this array in more places to reduce verbosity.
|
| @@ -96,6 +98,7 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| PREF_NOTIFICATIONS_PERMISSION,
|
| PREF_POPUP_PERMISSION,
|
| PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION,
|
| + PREF_SUBRESOURCE_FILTER_PERMISSION,
|
| };
|
|
|
| // The website this page is displaying details about.
|
| @@ -192,6 +195,11 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| // This loop looks expensive, but the amount of data is likely to be relatively small
|
| // because most sites have very few permissions.
|
| for (Website other : websites) {
|
| + if (merged.getSubresourceFilterException() == null
|
| + && other.getSubresourceFilterException() != null
|
| + && other.compareByAddressTo(merged) == 0) {
|
| + merged.setSubresourceFilterException(other.getSubresourceFilterException());
|
| + }
|
| if (merged.getGeolocationInfo() == null && other.getGeolocationInfo() != null
|
| && permissionInfoIsForTopLevelOrigin(other.getGeolocationInfo(), origin)) {
|
| merged.setGeolocationInfo(other.getGeolocationInfo());
|
| @@ -304,6 +312,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| setUpListPreference(preference, mSite.getPopupPermission());
|
| } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(preference.getKey())) {
|
| setUpListPreference(preference, mSite.getProtectedMediaIdentifierPermission());
|
| + } else if (PREF_SUBRESOURCE_FILTER_PERMISSION.equals(preference.getKey())) {
|
| + setUpListPreference(preference, mSite.getSubresourceFilterPermission());
|
| }
|
|
|
| if (permissionPreferenceKeys.contains(preference.getKey())) {
|
| @@ -570,6 +580,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| return ContentSettingsType.CONTENT_SETTINGS_TYPE_POPUPS;
|
| case PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION:
|
| return ContentSettingsType.CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER;
|
| + case PREF_SUBRESOURCE_FILTER_PERMISSION:
|
| + return ContentSettingsType.CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER;
|
| default:
|
| return 0;
|
| }
|
| @@ -630,6 +642,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| mSite.setPopupPermission(permission);
|
| } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(preference.getKey())) {
|
| mSite.setProtectedMediaIdentifierPermission(permission);
|
| + } else if (PREF_SUBRESOURCE_FILTER_PERMISSION.equals(preference.getKey())) {
|
| + mSite.setSubresourceFilterPermission(permission);
|
| }
|
|
|
| return true;
|
| @@ -701,6 +715,7 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| mSite.setNotificationPermission(ContentSetting.DEFAULT);
|
| mSite.setPopupPermission(ContentSetting.DEFAULT);
|
| mSite.setProtectedMediaIdentifierPermission(ContentSetting.DEFAULT);
|
| + mSite.setSubresourceFilterPermission(ContentSetting.DEFAULT);
|
|
|
| for (UsbInfo info : mSite.getUsbInfo()) info.revoke();
|
|
|
|
|