Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8022)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java

Issue 1929983002: Site Settings: Add Autoplay as a permission. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync to head Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 bbe3824479f4a5f57ec8a6d151bc9c3b76e2d636..a4652725e699aa1b0748202661fe897c90c79031 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
@@ -84,6 +84,8 @@ public class WebsitePermissionsFetcher {
queue.add(new MicrophoneCaptureInfoFetcher());
// Background sync permission is per-origin.
queue.add(new BackgroundSyncExceptionInfoFetcher());
+ // Autoplay permission is per-origin.
+ queue.add(new AutoplayInfoFetcher());
queue.add(new PermissionsAvailableCallbackRunner());
@@ -139,6 +141,9 @@ public class WebsitePermissionsFetcher {
} else if (category.showProtectedMediaSites()) {
// Protected media identifier permission is per-origin and per-embedder.
queue.add(new ProtectedMediaIdentifierInfoFetcher());
+ } else if (category.showAutoplaySites()) {
+ // Autoplay permission is per-origin.
+ queue.add(new AutoplayInfoFetcher());
}
queue.add(new PermissionsAvailableCallbackRunner());
queue.next();
@@ -198,6 +203,24 @@ public class WebsitePermissionsFetcher {
}
}
+ private class AutoplayInfoFetcher extends Task {
+ @Override
+ public void run() {
+ for (ContentSettingException exception
+ : WebsitePreferenceBridge.getContentSettingsExceptions(
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_AUTOPLAY)) {
+ // 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.setAutoplayException(exception);
+ }
+ }
+ }
+ }
+
private class GeolocationInfoFetcher extends Task {
@Override
public void run() {

Powered by Google App Engine
This is Rietveld 408576698