| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| index dbb3d88e957119edf6c313e1e3bf16c624e7579e..c5cec17a566e46ee08b297d0c7b7d2d42281bdc7 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| @@ -32,8 +32,7 @@ import java.util.Set;
|
| * Shows a list of HTML5 settings for a single website.
|
| */
|
| public class SingleWebsitePreferences extends PreferenceFragment
|
| - implements DialogInterface.OnClickListener, OnPreferenceChangeListener,
|
| - OnPreferenceClickListener {
|
| + implements OnPreferenceChangeListener, OnPreferenceClickListener {
|
| // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or
|
| // EXTRA_ADDRESS (a WebsiteAddress) to be present (but not both). If
|
| // EXTRA_SITE is present, the fragment will display the permissions in that
|
| @@ -53,7 +52,7 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| public static final String PREF_RESET_SITE = "reset_site_button";
|
| // Website permissions (if adding new, see hasPermissionsPreferences and resetSite below):
|
| public static final String PREF_COOKIES_PERMISSION = "cookies_permission_list";
|
| - public static final String PREF_FULLSCREEN_PERMISSION = "fullscreen_permission_list";
|
| + public static final String PREF_FULLSCREEN_PERMISSION = "reset_fullscreen_permission";
|
| public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permission_list";
|
| public static final String PREF_LOCATION_ACCESS = "location_access_list";
|
| public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permission_list";
|
| @@ -107,6 +106,20 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| }
|
| }
|
|
|
| + private class ClearWebsiteStorageListener implements DialogInterface.OnClickListener {
|
| + @Override
|
| + public void onClick(DialogInterface dialog, int which) {
|
| + clearStoredData();
|
| + }
|
| + }
|
| +
|
| + private class ResetFullscreenPermissionListener implements DialogInterface.OnClickListener {
|
| + @Override
|
| + public void onClick(DialogInterface dialog, int which) {
|
| + resetFullscreenPermission();
|
| + }
|
| + }
|
| +
|
| /**
|
| * Creates a Bundle with the correct arguments for opening this fragment for
|
| * the website with the given url.
|
| @@ -251,7 +264,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| preference.setTitle(String.format(
|
| context.getString(R.string.origin_settings_storage_usage_brief),
|
| Formatter.formatShortFileSize(context, usage)));
|
| - ((ClearWebsiteStorage) preference).setConfirmationListener(this);
|
| + ((ClearWebsiteStorage) preference).setConfirmationListener(
|
| + new ClearWebsiteStorageListener());
|
| } else {
|
| getPreferenceScreen().removePreference(preference);
|
| }
|
| @@ -260,7 +274,7 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) {
|
| setUpListPreference(preference, mSite.getCookiePermission());
|
| } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) {
|
| - setUpListPreference(preference, mSite.getFullscreenPermission());
|
| + configureFullscreenPreference(preference, mSite.getFullscreenPermission());
|
| } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) {
|
| setUpListPreference(preference, mSite.getJavaScriptPermission());
|
| } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) {
|
| @@ -371,6 +385,19 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| return null;
|
| }
|
|
|
| + private void configureFullscreenPreference(Preference preference, ContentSetting value) {
|
| + if (value == null) {
|
| + getPreferenceScreen().removePreference(preference);
|
| + return;
|
| + }
|
| + Website.PermissionDataEntry entry = getPermissionDataEntry(preference.getKey());
|
| + preference.setTitle(entry.explanationResourceId);
|
| + preference.setIcon(entry.iconResourceId);
|
| + preference.setSummary(mListPreferenceSummaries[0]);
|
| + ((ResetFullscreenPermission) preference).setConfirmationListener(
|
| + new ResetFullscreenPermissionListener());
|
| + }
|
| +
|
| /**
|
| * Based on the type of media allowed or denied for this website, the title and summary
|
| * of the CheckBoxPreference will change. If this website has no media related permission, then
|
| @@ -411,11 +438,6 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| ContentSetting.BLOCK);
|
| }
|
|
|
| - @Override
|
| - public void onClick(DialogInterface dialog, int which) {
|
| - clearStoredData();
|
| - }
|
| -
|
| private void clearStoredData() {
|
| mSite.clearAllStoredData(
|
| new Website.StoredDataClearedCallback() {
|
| @@ -433,6 +455,13 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| });
|
| }
|
|
|
| + private void resetFullscreenPermission() {
|
| + mSite.setFullscreenPermission(null);
|
| + PreferenceScreen preferenceScreen = getPreferenceScreen();
|
| + preferenceScreen.removePreference(
|
| + preferenceScreen.findPreference(PREF_FULLSCREEN_PERMISSION));
|
| + }
|
| +
|
| private void popBackIfNoSettings() {
|
| if (!hasPermissionsPreferences() && !hasUsagePreferences()) {
|
| getActivity().finish();
|
|
|