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..9ddcff99fabff358d9622af87921f608a714c974 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 |
@@ -57,6 +57,8 @@ public class WebsitePermissionsFetcher { |
// Populate features from more specific to less specific. |
// Geolocation lookup permission is per-origin and per-embedder. |
queue.add(new GeolocationInfoFetcher()); |
+ // Keygen permissions are per-origin. |
+ queue.add(new KeygenInfoFetcher()); |
// Midi sysex access permission is per-origin and per-embedder. |
queue.add(new MidiInfoFetcher()); |
// Cookies are stored per-origin. |
@@ -245,6 +247,18 @@ public class WebsitePermissionsFetcher { |
} |
} |
+ private class KeygenInfoFetcher implements Task { |
+ @Override |
+ public void run(TaskQueue queue) { |
+ for (KeygenInfo info : WebsitePreferenceBridge.getKeygenInfo()) { |
+ WebsiteAddress address = WebsiteAddress.create(info.getOrigin()); |
+ if (address == null) continue; |
+ createSiteByOriginAndHost(address).setKeygenInfo(info); |
+ } |
+ queue.next(); |
+ } |
+ } |
+ |
private class CookieInfoFetcher implements Task { |
@Override |
public void run(TaskQueue queue) { |