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

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

Issue 1068223002: Implement Site Settings \ Images category. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync and fix merge conflict Created 5 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/WebsitePreferences.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferences.java
index 3dec96e141a1efdbc541fed8ee263bb35a199df9..cd4fdb59d899e1bf27d177abf429ce44cbad55ff 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferences.java
@@ -21,6 +21,7 @@ import android.view.MenuItem;
import android.view.inputmethod.EditorInfo;
import android.widget.ListView;
import android.widget.TextView;
+import android.widget.Toast;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
@@ -208,6 +209,8 @@ public class WebsitePreferences extends PreferenceFragment
return website.site().getFullscreenPermission() == ContentSetting.ASK;
} else if (mFilter.showGeolocationSites(mCategoryFilter)) {
return website.site().getGeolocationPermission() == ContentSetting.BLOCK;
+ } else if (mFilter.showImagesSites(mCategoryFilter)) {
+ return website.site().getImagesPermission() == ContentSetting.BLOCK;
} else if (mFilter.showJavaScriptSites(mCategoryFilter)) {
return website.site().getJavaScriptPermission() == ContentSetting.BLOCK;
} else if (mFilter.showPopupSites(mCategoryFilter)) {
@@ -356,20 +359,30 @@ public class WebsitePreferences extends PreferenceFragment
PrefServiceBridge.getInstance().setCameraMicEnabled((boolean) newValue);
} else if (mFilter.showFullscreenSites(mCategoryFilter)) {
PrefServiceBridge.getInstance().setFullscreenAllowed((boolean) newValue);
+ } else if (mFilter.showImagesSites(mCategoryFilter)) {
+ PrefServiceBridge.getInstance().setImagesEnabled((boolean) newValue);
} else if (mFilter.showJavaScriptSites(mCategoryFilter)) {
PrefServiceBridge.getInstance().setJavaScriptEnabled((boolean) newValue);
+ } else if (mFilter.showPopupSites(mCategoryFilter)) {
+ PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean) newValue);
+ } else if (mFilter.showPushNotificationsSites(mCategoryFilter)) {
+ PrefServiceBridge.getInstance().setPushNotificationsEnabled((boolean) newValue);
+ }
+
+ // Categories that support adding exceptions also manage the 'Add site' preference.
+ if (mFilter.showImagesSites(mCategoryFilter)
+ || mFilter.showJavaScriptSites(mCategoryFilter)) {
if ((boolean) newValue) {
Preference addException = getPreferenceScreen().findPreference(
ADD_EXCEPTION_KEY);
- getPreferenceScreen().removePreference(addException);
+ if (addException != null) { // Can be null in testing.
+ getPreferenceScreen().removePreference(addException);
+ }
} else {
getPreferenceScreen().addPreference(
- new AddExceptionPreference(getActivity(), ADD_EXCEPTION_KEY, this));
+ new AddExceptionPreference(getActivity(), ADD_EXCEPTION_KEY,
+ getAddExceptionDialogMessage(), this));
}
- } else if (mFilter.showPopupSites(mCategoryFilter)) {
- PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean) newValue);
- } else if (mFilter.showPushNotificationsSites(mCategoryFilter)) {
- PrefServiceBridge.getInstance().setPushNotificationsEnabled((boolean) newValue);
}
ChromeSwitchPreference globalToggle = (ChromeSwitchPreference)
@@ -381,6 +394,17 @@ public class WebsitePreferences extends PreferenceFragment
return true;
}
+ private String getAddExceptionDialogMessage() {
+ int resource = 0;
+ if (mFilter.showJavaScriptSites(mCategoryFilter)) {
+ resource = R.string.website_settings_add_site_description_javascript;
+ } else if (mFilter.showImagesSites(mCategoryFilter)) {
+ resource = R.string.website_settings_add_site_description_images;
+ }
+ assert resource > 0;
+ return getResources().getString(resource);
+ }
+
// OnPreferenceClickListener:
@Override
@@ -402,7 +426,17 @@ public class WebsitePreferences extends PreferenceFragment
}
@Override
- public void onSiteAdded() {
+ public void onAddSite(String hostname) {
+ PrefServiceBridge.getInstance().nativeSetContentSettingForPattern(
+ mFilter.toContentSettingsType(mCategoryFilter), hostname,
+ ContentSetting.ALLOW.toInt());
+
+ Toast.makeText(getActivity(),
+ String.format(getActivity().getString(
+ R.string.website_settings_add_site_toast),
+ hostname),
+ Toast.LENGTH_SHORT).show();
+
getInfoForOrigins();
}
@@ -418,6 +452,7 @@ public class WebsitePreferences extends PreferenceFragment
if (mFilter.showGeolocationSites(mCategoryFilter)) {
return !prefs.isAllowLocationUserModifiable();
}
+ if (mFilter.showImagesSites(mCategoryFilter)) return prefs.imagesManaged();
if (mFilter.showJavaScriptSites(mCategoryFilter)) return prefs.javaScriptManaged();
if (mFilter.showPopupSites(mCategoryFilter)) return prefs.isPopupsManaged();
return false;
@@ -449,10 +484,13 @@ public class WebsitePreferences extends PreferenceFragment
configureGlobalToggles();
- if (mFilter.showJavaScriptSites(mCategoryFilter)
- && !PrefServiceBridge.getInstance().javaScriptEnabled()) {
+ if ((mFilter.showJavaScriptSites(mCategoryFilter)
+ && !PrefServiceBridge.getInstance().javaScriptEnabled())
+ || (mFilter.showImagesSites(mCategoryFilter)
+ && !PrefServiceBridge.getInstance().imagesEnabled())) {
getPreferenceScreen().addPreference(
- new AddExceptionPreference(getActivity(), ADD_EXCEPTION_KEY, this));
+ new AddExceptionPreference(getActivity(), ADD_EXCEPTION_KEY,
+ getAddExceptionDialogMessage(), this));
}
}
@@ -543,6 +581,9 @@ public class WebsitePreferences extends PreferenceFragment
} else if (mFilter.showFullscreenSites(mCategoryFilter)) {
globalToggle.setChecked(
PrefServiceBridge.getInstance().isFullscreenAllowed());
+ } else if (mFilter.showImagesSites(mCategoryFilter)) {
+ globalToggle.setChecked(
+ PrefServiceBridge.getInstance().imagesEnabled());
} else if (mFilter.showJavaScriptSites(mCategoryFilter)) {
globalToggle.setChecked(PrefServiceBridge.getInstance().javaScriptEnabled());
} else if (mFilter.showPopupSites(mCategoryFilter)) {

Powered by Google App Engine
This is Rietveld 408576698