| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
|
| index 0384b7424b0ee91e6151b3a9a2b42d54d083f35d..5a09619fd8c38c0e6e33f0487edbe7d3018c7944 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
|
| @@ -4,6 +4,8 @@
|
|
|
| package org.chromium.chrome.browser.preferences.website;
|
|
|
| +import org.chromium.chrome.browser.ContentSettingsType;
|
| +
|
| import java.util.ArrayList;
|
| import java.util.HashMap;
|
| import java.util.HashSet;
|
| @@ -61,6 +63,8 @@ public class WebsitePermissionsFetcher {
|
| queue.add(new CookieInfoFetcher());
|
| // Fullscreen are stored per-origin.
|
| queue.add(new FullscreenInfoFetcher());
|
| + // Images exceptions are host-based patterns.
|
| + queue.add(new ImagesExceptionInfoFetcher());
|
| // Local storage info is per-origin.
|
| queue.add(new LocalStorageInfoFetcher());
|
| // Website storage is per-host.
|
| @@ -121,6 +125,9 @@ public class WebsitePermissionsFetcher {
|
| } else if (filterHelper.showPushNotificationsSites(filter)) {
|
| // Push notification permission is per-origin and per-embedder.
|
| queue.add(new PushNotificationInfoFetcher());
|
| + } else if (filterHelper.showImagesSites(filter)) {
|
| + // Images exceptions are host-based patterns.
|
| + queue.add(new ImagesExceptionInfoFetcher());
|
| }
|
| queue.add(new PermissionsAvailableCallbackRunner());
|
| queue.next();
|
| @@ -200,7 +207,9 @@ public class WebsitePermissionsFetcher {
|
| private class PopupExceptionInfoFetcher implements Task {
|
| @Override
|
| public void run(TaskQueue queue) {
|
| - for (PopupExceptionInfo info : WebsitePreferenceBridge.getPopupExceptionInfo()) {
|
| + for (ContentSettingExceptionInfo info :
|
| + WebsitePreferenceBridge.getContentSettingsExceptionInfo(
|
| + ContentSettingsType.CONTENT_SETTINGS_TYPE_POPUPS)) {
|
| // The pattern "*" represents the default setting, not a
|
| // specific website.
|
| if (info.getPattern().equals("*")) continue;
|
| @@ -218,8 +227,9 @@ public class WebsitePermissionsFetcher {
|
| private class JavaScriptExceptionInfoFetcher implements Task {
|
| @Override
|
| public void run(TaskQueue queue) {
|
| - for (JavaScriptExceptionInfo info
|
| - : WebsitePreferenceBridge.getJavaScriptExceptionInfo()) {
|
| + for (ContentSettingExceptionInfo info
|
| + : WebsitePreferenceBridge.getContentSettingsExceptionInfo(
|
| + ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT)) {
|
| // The pattern "*" represents the default setting, not a specific website.
|
| if (info.getPattern().equals("*")) continue;
|
| WebsiteAddress address = WebsiteAddress.create(info.getPattern());
|
| @@ -260,6 +270,28 @@ public class WebsitePermissionsFetcher {
|
| }
|
| }
|
|
|
| + /**
|
| + * Class for fetching the images information.
|
| + */
|
| + private class ImagesExceptionInfoFetcher implements Task {
|
| + @Override
|
| + public void run(TaskQueue queue) {
|
| + for (ContentSettingExceptionInfo info
|
| + : WebsitePreferenceBridge.getContentSettingsExceptionInfo(
|
| + ContentSettingsType.CONTENT_SETTINGS_TYPE_IMAGES)) {
|
| + // The pattern "*" represents the default setting, not a specific website.
|
| + if (info.getPattern().equals("*")) continue;
|
| + WebsiteAddress address = WebsiteAddress.create(info.getPattern());
|
| + if (address == null) continue;
|
| + Set<Website> sites = findOrCreateSitesByHost(address);
|
| + for (Website site : sites) {
|
| + site.setImagesInfo(info);
|
| + }
|
| + }
|
| + queue.next();
|
| + }
|
| + }
|
| +
|
| private class LocalStorageInfoFetcher implements Task {
|
| @Override
|
| public void run(final TaskQueue queue) {
|
|
|