| 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..c90ab64c1f647019033c9ee99ba4bf35e47c69cd 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
|
| @@ -61,6 +61,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 +123,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();
|
| @@ -260,6 +265,27 @@ public class WebsitePermissionsFetcher {
|
| }
|
| }
|
|
|
| + /**
|
| + * Class for fetching the images information.
|
| + */
|
| + private class ImagesExceptionInfoFetcher implements Task {
|
| + @Override
|
| + public void run(TaskQueue queue) {
|
| + for (ImagesExceptionInfo info
|
| + : WebsitePreferenceBridge.getImagesExceptionInfo()) {
|
| + // 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) {
|
|
|