Chromium Code Reviews| Index: chrome/browser/android/preferences/website_preference_bridge.cc |
| diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc |
| index d21bf9ddf2ee2c587b376588a6be7dde8ab82462..793d7d2e448b29ea7298a15614707dbc684c1443 100644 |
| --- a/chrome/browser/android/preferences/website_preference_bridge.cc |
| +++ b/chrome/browser/android/preferences/website_preference_bridge.cc |
| @@ -15,6 +15,7 @@ |
| #include "chrome/browser/browsing_data/cookies_tree_model.h" |
| #include "chrome/browser/browsing_data/local_data_container.h" |
| #include "chrome/browser/content_settings/cookie_settings.h" |
| +#include "chrome/browser/notifications/desktop_notification_profile_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "components/content_settings/core/browser/host_content_settings_map.h" |
| @@ -190,15 +191,32 @@ static void GetPushNotificationOrigins(JNIEnv* env, |
| static jint GetPushNotificationSettingForOrigin(JNIEnv* env, jclass clazz, |
| jstring origin, jstring embedder) { |
| - return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| - origin, embedder); |
| + return DesktopNotificationProfileUtil::GetContentSetting( |
| + ProfileManager::GetActiveUserProfile(), |
| + GURL(ConvertJavaStringToUTF8(env, origin))); |
| } |
| static void SetPushNotificationSettingForOrigin(JNIEnv* env, jclass clazz, |
| jstring origin, jstring embedder, jint value) { |
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); |
| - SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| - origin, ContentSettingsPattern::FromURLNoWildcard(embedder_url), value); |
| + // TODO(peter): Web Notification permission behaves differently from all other |
| + // permission types. See https://crbug.com/416894. |
| + Profile* profile = ProfileManager::GetActiveUserProfile(); |
| + GURL url = GURL(ConvertJavaStringToUTF8(env, origin)); |
| + |
| + switch (value) { |
| + case -1: |
| + DesktopNotificationProfileUtil::ClearSetting( |
| + profile, ContentSettingsPattern::FromURLNoWildcard(url)); |
| + break; |
| + case 1: |
| + DesktopNotificationProfileUtil::GrantPermission(profile, url); |
| + break; |
| + case 2: |
| + DesktopNotificationProfileUtil::DenyPermission(profile, url); |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
|
Finnur
2015/02/13 14:58:46
I was going to point out that this breaks the Site
|
| } |
| static void GetVoiceAndVideoCaptureOrigins(JNIEnv* env, |