Update mojo surfaces bindings and mojo/cc/ glue
[chromium-blink-merge.git] / chrome / browser / notifications / desktop_notification_profile_util.cc
blob9026c1b47b0dc29e027a30ed740777f9109599d5
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/content_settings_provider.h"
8 #include "chrome/browser/content_settings/host_content_settings_map.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/content_settings_pattern.h"
12 void DesktopNotificationProfileUtil::ResetToDefaultContentSetting(
13 Profile* profile) {
14 profile->GetHostContentSettingsMap()->SetDefaultContentSetting(
15 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_DEFAULT);
18 // Clears the notifications setting for the given pattern.
19 void DesktopNotificationProfileUtil::ClearSetting(
20 Profile* profile, const ContentSettingsPattern& pattern) {
21 profile->GetHostContentSettingsMap()->SetContentSetting(
22 pattern,
23 ContentSettingsPattern::Wildcard(),
24 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
25 NO_RESOURCE_IDENTIFIER,
26 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 profile->GetHostContentSettingsMap()->SetContentSetting(
36 primary_pattern,
37 ContentSettingsPattern::Wildcard(),
38 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
39 NO_RESOURCE_IDENTIFIER,
40 CONTENT_SETTING_ALLOW);
43 void DesktopNotificationProfileUtil::DenyPermission(
44 Profile* profile, const GURL& origin) {
45 ContentSettingsPattern primary_pattern =
46 ContentSettingsPattern::FromURLNoWildcard(origin);
47 profile->GetHostContentSettingsMap()->SetContentSetting(
48 primary_pattern,
49 ContentSettingsPattern::Wildcard(),
50 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
51 NO_RESOURCE_IDENTIFIER,
52 CONTENT_SETTING_BLOCK);
55 void DesktopNotificationProfileUtil::GetNotificationsSettings(
56 Profile* profile, ContentSettingsForOneType* settings) {
57 profile->GetHostContentSettingsMap()->GetSettingsForOneType(
58 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
59 NO_RESOURCE_IDENTIFIER,
60 settings);
63 ContentSetting DesktopNotificationProfileUtil::GetContentSetting(
64 Profile* profile, const GURL& origin) {
65 return profile->GetHostContentSettingsMap()->GetContentSetting(
66 origin,
67 origin,
68 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
69 NO_RESOURCE_IDENTIFIER);
72 void DesktopNotificationProfileUtil::UsePermission(Profile* profile,
73 const GURL& origin) {
74 profile->GetHostContentSettingsMap()->UpdateLastUsageByPattern(
75 ContentSettingsPattern::FromURLNoWildcard(origin),
76 ContentSettingsPattern::Wildcard(),
77 CONTENT_SETTINGS_TYPE_NOTIFICATIONS);