| 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 663fb569c7f2824615ce95f97387aaf4d5193304..69838585f1d1665877cc4135a586064f8a17b92e 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
|
| @@ -72,6 +72,8 @@ public class WebsitePermissionsFetcher {
|
| queue.add(new PopupExceptionInfoFetcher());
|
| // JavaScript exceptions are host-based patterns.
|
| queue.add(new JavaScriptExceptionInfoFetcher());
|
| + // Keygen exceptions are host-based patterns.
|
| + queue.add(new KeygenExceptionInfoFetcher());
|
| // Protected media identifier permission is per-origin and per-embedder.
|
| queue.add(new ProtectedMediaIdentifierInfoFetcher());
|
| // Push notification permission is per-origin and per-embedder.
|
| @@ -124,6 +126,9 @@ public class WebsitePermissionsFetcher {
|
| } else if (category.showJavaScriptSites()) {
|
| // JavaScript exceptions are host-based patterns.
|
| queue.add(new JavaScriptExceptionInfoFetcher());
|
| + } else if (category.showKeygenSites()) {
|
| + // Keygen exceptions are host-based patterns.
|
| + queue.add(new KeygenExceptionInfoFetcher());
|
| } else if (category.showNotificationsSites()) {
|
| // Push notification permission is per-origin and per-embedder.
|
| queue.add(new PushNotificationInfoFetcher());
|
| @@ -245,6 +250,25 @@ public class WebsitePermissionsFetcher {
|
| }
|
| }
|
|
|
| + private class KeygenExceptionInfoFetcher implements Task {
|
| + @Override
|
| + public void run(TaskQueue queue) {
|
| + for (ContentSettingException exception :
|
| + WebsitePreferenceBridge.getContentSettingsExceptions(
|
| + ContentSettingsType.CONTENT_SETTINGS_TYPE_KEYGEN)) {
|
| + // The pattern "*" represents the default setting, not a specific website.
|
| + if (exception.getPattern().equals("*")) continue;
|
| + WebsiteAddress address = WebsiteAddress.create(exception.getPattern());
|
| + if (address == null) continue;
|
| + Set<Website> sites = findOrCreateSitesByHost(address);
|
| + for (Website site : sites) {
|
| + site.setKeygenException(exception);
|
| + }
|
| + }
|
| + queue.next();
|
| + }
|
| + }
|
| +
|
| private class CookieInfoFetcher implements Task {
|
| @Override
|
| public void run(TaskQueue queue) {
|
|
|