Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / notifications / desktop_notification_profile_util.cc
blob836b7ff3dcfd0c76ba5702835d2921085966d438
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/notifications/desktop_notification_profile_util.h"
7 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "components/content_settings/core/browser/host_content_settings_map.h"
10 #include "components/content_settings/core/common/content_settings_pattern.h"
12 void DesktopNotificationProfileUtil::ResetToDefaultContentSetting(
13 Profile* profile) {
14 HostContentSettingsMapFactory::GetForProfile(profile)
15 ->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
16 CONTENT_SETTING_DEFAULT);
19 // Clears the notifications setting for the given pattern.
20 void DesktopNotificationProfileUtil::ClearSetting(
21 Profile* profile, const ContentSettingsPattern& pattern) {
22 HostContentSettingsMapFactory::GetForProfile(profile)->SetContentSetting(
23 pattern,
24 ContentSettingsPattern::Wildcard(),
25 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
26 content_settings::ResourceIdentifier(),
27 CONTENT_SETTING_DEFAULT);
30 // Methods to setup and modify permission preferences.
31 void DesktopNotificationProfileUtil::GrantPermission(
32 Profile* profile, const GURL& origin) {
33 ContentSettingsPattern primary_pattern =
34 ContentSettingsPattern::FromURLNoWildcard(origin);
35 HostContentSettingsMapFactory::GetForProfile(profile)->SetContentSetting(
36 primary_pattern,
37 ContentSettingsPattern::Wildcard(),
38 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
39 content_settings::ResourceIdentifier(),
40 CONTENT_SETTING_ALLOW);
43 void DesktopNotificationProfileUtil::DenyPermission(
44 Profile* profile, const GURL& origin) {
45 ContentSettingsPattern primary_pattern =
46 ContentSettingsPattern::FromURLNoWildcard(origin);
47 HostContentSettingsMapFactory::GetForProfile(profile)->SetContentSetting(
48 primary_pattern,
49 ContentSettingsPattern::Wildcard(),
50 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
51 content_settings::ResourceIdentifier(),
52 CONTENT_SETTING_BLOCK);
55 void DesktopNotificationProfileUtil::GetNotificationsSettings(
56 Profile* profile, ContentSettingsForOneType* settings) {
57 HostContentSettingsMapFactory::GetForProfile(profile)
58 ->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
59 content_settings::ResourceIdentifier(),
60 settings);
63 ContentSetting DesktopNotificationProfileUtil::GetContentSetting(
64 Profile* profile, const GURL& origin) {
65 return HostContentSettingsMapFactory::GetForProfile(profile)
66 ->GetContentSetting(origin,
67 origin,
68 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
69 content_settings::ResourceIdentifier());