| 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 6cd00bb5d679c59148a9c294825fa814e863d2b7..842ad75a34ae0a5121e7bf5a2b6b0efb35fdd906 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 | 
| @@ -53,6 +53,8 @@ public class WebsitePermissionsFetcher { | 
| queue.add(new GeolocationInfoFetcher()); | 
| // Midi sysex access permission is per-origin and per-embedder. | 
| queue.add(new MidiInfoFetcher()); | 
| +        // Sensor access permission is per-origin and per-embedder. | 
| +        queue.add(new SensorInfoFetcher()); | 
| // Cookies are stored per-host. | 
| queue.add(new CookieExceptionInfoFetcher()); | 
| // Keygen permissions are per-origin. | 
| @@ -248,6 +250,18 @@ public class WebsitePermissionsFetcher { | 
| } | 
| } | 
|  | 
| +    private class SensorInfoFetcher extends Task { | 
| +        @Override | 
| +        public void run() { | 
| +            for (SensorInfo info : WebsitePreferenceBridge.getSensorInfo()) { | 
| +                WebsiteAddress origin = WebsiteAddress.create(info.getOrigin()); | 
| +                if (origin == null) continue; | 
| +                WebsiteAddress embedder = WebsiteAddress.create(info.getEmbedder()); | 
| +                findOrCreateSite(origin, embedder).setSensorInfo(info); | 
| +            } | 
| +        } | 
| +    } | 
| + | 
| private class PopupExceptionInfoFetcher extends Task { | 
| @Override | 
| public void run() { | 
|  |