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 414676ef9509d6a3dd47416a6a6ccf486c51bc31..7fdff01cdd2ac7d8787dd267ad50779ce63ad1ca 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 |
@@ -80,6 +80,8 @@ public class WebsitePermissionsFetcher { |
queue.add(new BackgroundSyncExceptionInfoFetcher()); |
// Autoplay permission is per-origin. |
queue.add(new AutoplayExceptionInfoFetcher()); |
+ // USB device permission is per-origin and per-embedder. |
+ queue.add(new UsbInfoFetcher()); |
queue.add(new PermissionsAvailableCallbackRunner()); |
@@ -388,6 +390,18 @@ public class WebsitePermissionsFetcher { |
} |
} |
+ private class UsbInfoFetcher extends Task { |
+ @Override |
+ public void run() { |
+ for (UsbInfo info : WebsitePreferenceBridge.getUsbInfo()) { |
+ WebsiteAddress origin = WebsiteAddress.create(info.getOrigin()); |
+ if (origin == null) continue; |
+ WebsiteAddress embedder = WebsiteAddress.create(info.getEmbedder()); |
+ findOrCreateSite(origin, embedder).addUsbInfo(info); |
+ } |
+ } |
+ } |
+ |
private class PermissionsAvailableCallbackRunner extends Task { |
@Override |
public void run() { |