Chromium Code Reviews| 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 cd4fdb59d899e1bf27d177abf429ce44cbad55ff..87ac836011bf41c91e2264e2f8fed63939d1e81f 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 |
| @@ -32,7 +32,10 @@ import org.chromium.chrome.browser.preferences.LocationSettings; |
| import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; |
| import org.chromium.chrome.browser.preferences.ManagedPreferencesUtils; |
| import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| +import org.chromium.chrome.browser.preferences.ProtectedContentResetCredentialConfirmDialogFragment; |
| import org.chromium.chrome.browser.widget.TintedDrawable; |
| +import org.chromium.content.browser.MediaDrmCredentialManager; |
| +import org.chromium.content.browser.MediaDrmCredentialManager.MediaDrmCredentialManagerCallback; |
| import org.chromium.ui.text.SpanApplier; |
| import org.chromium.ui.text.SpanApplier.SpanInfo; |
| @@ -50,7 +53,8 @@ import java.util.Set; |
| */ |
| public class WebsitePreferences extends PreferenceFragment |
| implements OnPreferenceChangeListener, OnPreferenceClickListener, |
| - AddExceptionPreference.SiteAddedCallback { |
| + AddExceptionPreference.SiteAddedCallback, |
| + ProtectedContentResetCredentialConfirmDialogFragment.Listener { |
| // The key to use to pass which category this preference should display, |
| // e.g. Location/Popups/All sites (if blank). |
| public static final String EXTRA_CATEGORY = "category"; |
| @@ -81,6 +85,7 @@ public class WebsitePreferences extends PreferenceFragment |
| // Keys for individual preferences. |
| public static final String READ_WRITE_TOGGLE_KEY = "read_write_toggle"; |
| public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_cookies"; |
| + public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more"; |
| private static final String ADD_EXCEPTION_KEY = "add_exception"; |
| // Keys for Allowed/Blocked preference groups/headers. |
| private static final String ALLOWED_GROUP = "allowed_group"; |
| @@ -217,6 +222,8 @@ public class WebsitePreferences extends PreferenceFragment |
| return website.site().getPopupPermission() == ContentSetting.BLOCK; |
| } else if (mFilter.showPushNotificationsSites(mCategoryFilter)) { |
| return website.site().getPushNotificationPermission() == ContentSetting.BLOCK; |
| + } else if (mFilter.showProtectedMediaSites(mCategoryFilter)) { |
| + return website.site().getProtectedMediaIdentifierPermission() == ContentSetting.BLOCK; |
| } |
| return false; |
| @@ -298,7 +305,6 @@ public class WebsitePreferences extends PreferenceFragment |
| MenuItem searchItem = menu.findItem(R.id.search); |
| mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem); |
| mSearchView.setImeOptions(EditorInfo.IME_FLAG_NO_FULLSCREEN); |
| - |
| SearchView.OnQueryTextListener queryTextListener = |
| new SearchView.OnQueryTextListener() { |
| @Override |
| @@ -316,6 +322,19 @@ public class WebsitePreferences extends PreferenceFragment |
| } |
| }; |
| mSearchView.setOnQueryTextListener(queryTextListener); |
| + |
| + if (!mFilter.showProtectedMediaSites(mCategoryFilter)) return; |
|
newt (away)
2015/04/30 00:31:59
Early returns are dangerous. Other developers may
knn
2015/04/30 16:00:36
Looks really nasty, Done. Thanks for the explanati
|
| + // Add a menu item to reset protected media identifier device credentials. |
| + MenuItem resetMenu = |
| + menu.add(Menu.NONE, Menu.NONE, Menu.FIRST, R.string.reset_device_credentials); |
| + resetMenu.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { |
| + @Override |
| + public boolean onMenuItemClick(MenuItem menuItem) { |
| + new ProtectedContentResetCredentialConfirmDialogFragment(WebsitePreferences.this) |
| + .show(getFragmentManager(), null); |
| + return true; |
| + } |
| + }); |
| } |
| @Override |
| @@ -367,6 +386,9 @@ public class WebsitePreferences extends PreferenceFragment |
| PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean) newValue); |
| } else if (mFilter.showPushNotificationsSites(mCategoryFilter)) { |
| PrefServiceBridge.getInstance().setPushNotificationsEnabled((boolean) newValue); |
| + } else if (mFilter.showProtectedMediaSites(mCategoryFilter)) { |
| + PrefServiceBridge.getInstance().setProtectedMediaIdentifierEnabled( |
| + (boolean) newValue); |
| } |
| // Categories that support adding exceptions also manage the 'Add site' preference. |
| @@ -499,10 +521,9 @@ public class WebsitePreferences extends PreferenceFragment |
| ChromeSwitchPreference globalToggle = (ChromeSwitchPreference) |
| getPreferenceScreen().findPreference(READ_WRITE_TOGGLE_KEY); |
| + // Configure/hide the third-party cookie toggle, as needed. |
| Preference thirdPartyCookies = getPreferenceScreen().findPreference( |
| THIRD_PARTY_COOKIES_TOGGLE_KEY); |
| - |
| - // Configure/hide the third-party cookie toggle, as needed. |
| if (mFilter.showCookiesSites(mCategoryFilter)) { |
| thirdPartyCookies.setOnPreferenceChangeListener(this); |
| updateThirdPartyCookiesCheckBox(); |
| @@ -510,6 +531,14 @@ public class WebsitePreferences extends PreferenceFragment |
| getPreferenceScreen().removePreference(thirdPartyCookies); |
| } |
| + // Show/hide the link that explains protected media settings, as needed. |
| + if (mFilter.showProtectedMediaSites(mCategoryFilter)) { |
| + globalToggle.setDrawDivider(false); |
|
newt (away)
2015/04/30 00:31:59
I think we should keep the divider, i.e. remove th
knn
2015/04/30 16:00:36
Done.
|
| + } else { |
| + getPreferenceScreen().removePreference( |
| + getPreferenceScreen().findPreference(EXPLAIN_PROTECTED_MEDIA_KEY)); |
| + } |
| + |
| if (mFilter.showAllSites(mCategoryFilter) |
| || mFilter.showStorageSites(mCategoryFilter)) { |
| getPreferenceScreen().removePreference(globalToggle); |
| @@ -591,6 +620,9 @@ public class WebsitePreferences extends PreferenceFragment |
| } else if (mFilter.showPushNotificationsSites(mCategoryFilter)) { |
| globalToggle.setChecked( |
| PrefServiceBridge.getInstance().isPushNotificationsEnabled()); |
| + } else if (mFilter.showProtectedMediaSites(mCategoryFilter)) { |
| + globalToggle.setChecked( |
| + PrefServiceBridge.getInstance().isProtectedMediaIdentifierEnabled()); |
| } |
| } |
| } |
| @@ -615,4 +647,16 @@ public class WebsitePreferences extends PreferenceFragment |
| ManagedPreferencesUtils.showManagedByAdministratorToast(getActivity()); |
| } |
| } |
| + |
| + @Override |
|
newt (away)
2015/04/30 00:31:59
add
// ProtectedContentResetCredentialConfirm
knn
2015/04/30 16:00:36
Done.
|
| + public void resetDeviceCredential() { |
| + MediaDrmCredentialManager.resetCredentials(new MediaDrmCredentialManagerCallback() { |
| + @Override |
| + public void onCredentialResetFinished(boolean succeeded) { |
| + if (succeeded) return; |
| + String message = getString(R.string.protected_content_reset_failed); |
| + Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show(); |
| + } |
| + }); |
| + } |
| } |