Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java |
index df376b27c439f6e3489deacfba999d65115f36da..d0a7c4064fe9f0006d59525b7a4b14ff2b2ee7c1 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser.preferences.website; |
+import org.chromium.chrome.browser.ContentSettingsType; |
import org.chromium.chrome.browser.util.MathUtils; |
import java.io.Serializable; |
@@ -375,9 +376,15 @@ public class Website implements Serializable { |
* Sets the Subresource Filter permission. |
*/ |
public void setSubresourceFilterPermission(ContentSetting value) { |
- if (mSubresourceFilterException != null) { |
- mSubresourceFilterException.setContentSetting(value); |
+ // It is possible to set the permission without having an existing exception, because we can |
+ // show the BLOCK state even when this permission is set to the default. In that case, just |
+ // set an exception now to BLOCK to enable changing the permission. |
+ if (mSubresourceFilterException == null) { |
+ setSubresourceFilterException(new ContentSettingException( |
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, |
+ getAddress().getOrigin(), ContentSetting.BLOCK, "")); |
} |
+ mSubresourceFilterException.setContentSetting(value); |
} |
/** |