| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java | 
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java | 
| index b12bb5c92b73e05fc001f2623ceed95da392fbd2..71ea4df7deaf6b9bf8ee60a7cec7a391ce3b12a0 100644 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java | 
| @@ -81,6 +81,7 @@ | 
| // 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 NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate"; | 
| 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. | 
| @@ -418,6 +419,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { | 
| PrefServiceBridge.getInstance().setMicEnabled((boolean) newValue); | 
| } else if (mCategory.showNotificationsSites()) { | 
| PrefServiceBridge.getInstance().setNotificationsEnabled((boolean) newValue); | 
| +                updateNotificationsVibrateCheckBox(); | 
| } else if (mCategory.showPopupSites()) { | 
| PrefServiceBridge.getInstance().setAllowPopupsEnabled((boolean) newValue); | 
| } else if (mCategory.showProtectedMediaSites()) { | 
| @@ -448,6 +450,8 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { | 
| getInfoForOrigins(); | 
| } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { | 
| PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((boolean) newValue)); | 
| +        } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) { | 
| +            PrefServiceBridge.getInstance().setNotificationsVibrateEnabled((boolean) newValue); | 
| } | 
| return true; | 
| } | 
| @@ -538,6 +542,16 @@ private void configureGlobalToggles() { | 
| getPreferenceScreen().removePreference(thirdPartyCookies); | 
| } | 
|  | 
| +        // Configure/hide the notifications vibrate toggle, as needed. | 
| +        Preference notificationsVibrate = | 
| +                getPreferenceScreen().findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); | 
| +        if (mCategory.showNotificationsSites()) { | 
| +            notificationsVibrate.setOnPreferenceChangeListener(this); | 
| +            updateNotificationsVibrateCheckBox(); | 
| +        } else { | 
| +            getPreferenceScreen().removePreference(notificationsVibrate); | 
| +        } | 
| + | 
| // Show/hide the link that explains protected media settings, as needed. | 
| if (!mCategory.showProtectedMediaSites()) { | 
| getPreferenceScreen().removePreference( | 
| @@ -652,6 +666,13 @@ public boolean isPreferenceControlledByPolicy(Preference preference) { | 
| }); | 
| } | 
|  | 
| +    private void updateNotificationsVibrateCheckBox() { | 
| +        ChromeBaseCheckBoxPreference preference = | 
| +                (ChromeBaseCheckBoxPreference) getPreferenceScreen().findPreference( | 
| +                        NOTIFICATIONS_VIBRATE_TOGGLE_KEY); | 
| +        preference.setEnabled(PrefServiceBridge.getInstance().isNotificationsEnabled()); | 
| +    } | 
| + | 
| private void showManagedToast() { | 
| if (mCategory.isManagedByCustodian()) { | 
| ManagedPreferencesUtils.showManagedByParentToast(getActivity()); | 
|  |