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

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

Issue 1465363002: [Storage] Android - ManageSpace UI, Important Origins, and CBD Dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android Java Hookup Created 4 years, 10 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 5fb19fb20e97e8bb4d2edd92bc3e06dcb4d9bb6a..4f4728d8fd2803f86649ba8379edca02096a9fe5 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
@@ -10,6 +10,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -23,8 +24,8 @@ public class WebsitePermissionsFetcher {
* website permissions have been fetched.
*/
public interface WebsitePermissionsCallback {
- void onWebsitePermissionsAvailable(
- Map<String, Set<Website>> sitesByOrigin, Map<String, Set<Website>> sitesByHost);
+ void onWebsitePermissionsAvailable(Map<String, Set<Website>> sitesByOrigin,
+ Map<String, Set<Website>> sitesByHost, List<String> importantOrigins);
}
// This is a 1 <--> 1..N mapping between origin and Website.
@@ -32,6 +33,8 @@ public class WebsitePermissionsFetcher {
// a HashSet is really confusing to readers of this code. There is no deduplication at all.
private final Map<String, Set<Website>> mSitesByOrigin = new HashMap<>();
+ private final List<String> mImportantOrigins = new ArrayList<>();
Finnur 2016/03/03 14:15:44 Nit: Document.
dmurph 2016/04/26 21:43:13 Removed.
+
// This is a 1 <--> 1..N mapping between host and Website.
// TODO(mvanouwerkerk): The Website class has no equals or hashCode methods so storing them in
// a HashSet is really confusing to readers of this code. There is no deduplication at all.
@@ -48,6 +51,13 @@ public class WebsitePermissionsFetcher {
}
/**
+ * @return the mImportantOrigins
Finnur 2016/03/03 14:15:44 nit: This doesn't really add anything to what you
dmurph 2016/04/26 21:43:13 Removed
+ */
+ public List<String> getImportantOrigins() {
+ return mImportantOrigins;
+ }
+
+ /**
* Fetches preferences for all sites that have them.
* TODO(mvanouwerkerk): Add an argument |url| to only fetch permissions for
* sites from the same origin as that of |url| - https://crbug.com/459222.
@@ -69,6 +79,8 @@ public class WebsitePermissionsFetcher {
queue.add(new LocalStorageInfoFetcher());
// Website storage is per-host.
queue.add(new WebStorageInfoFetcher());
+ // Important sites
+ queue.add(new ImportantOriginInfoFetcher());
// Popup exceptions are host-based patterns (unless we start
// synchronizing popup exceptions with desktop Chrome.)
queue.add(new PopupExceptionInfoFetcher());
@@ -110,6 +122,8 @@ public class WebsitePermissionsFetcher {
queue.add(new LocalStorageInfoFetcher());
// Website storage is per-host.
queue.add(new WebStorageInfoFetcher());
+ // Important sites
Finnur 2016/03/03 14:15:44 nit: End with period.
dmurph 2016/04/26 21:43:13 Removed.
+ queue.add(new ImportantOriginInfoFetcher());
} else if (category.showFullscreenSites()) {
// Full screen is per-origin.
queue.add(new FullscreenInfoFetcher());
@@ -286,6 +300,22 @@ public class WebsitePermissionsFetcher {
}
}
+ private class ImportantOriginInfoFetcher extends Task {
+ @Override
+ public void runAsync(final TaskQueue queue) {
+ WebsitePreferenceBridge.fetchImportantOriginInfo(
+ new WebsitePreferenceBridge.ImportantOriginsReadyCallback() {
+ @SuppressWarnings("unchecked")
+ @Override
+ public void onImportantOriginsReady(ArrayList sortedOrigins, HashMap map) {
+ mImportantOrigins.clear();
+ mImportantOrigins.addAll((ArrayList<String>) sortedOrigins);
+ queue.next();
+ }
+ });
+ }
+ }
+
private class LocalStorageInfoFetcher extends Task {
@Override
public void runAsync(final TaskQueue queue) {
@@ -381,7 +411,8 @@ public class WebsitePermissionsFetcher {
private class PermissionsAvailableCallbackRunner extends Task {
@Override
public void run() {
- mCallback.onWebsitePermissionsAvailable(mSitesByOrigin, mSitesByHost);
+ mCallback.onWebsitePermissionsAvailable(
+ mSitesByOrigin, mSitesByHost, mImportantOrigins);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698