OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/notifications/desktop_notification_service.h" | 5 #include "chrome/browser/notifications/desktop_notification_service.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/prefs/scoped_user_pref_update.h" | 8 #include "base/prefs/scoped_user_pref_update.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/threading/thread.h" | 10 #include "base/threading/thread.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 NotificationPermissionRequest( | 70 NotificationPermissionRequest( |
71 DesktopNotificationService* notification_service, | 71 DesktopNotificationService* notification_service, |
72 const GURL& origin, | 72 const GURL& origin, |
73 base::string16 display_name, | 73 base::string16 display_name, |
74 int process_id, | 74 int process_id, |
75 int route_id, | 75 int route_id, |
76 int callback_context); | 76 int callback_context); |
77 virtual ~NotificationPermissionRequest(); | 77 virtual ~NotificationPermissionRequest(); |
78 | 78 |
79 // PermissionBubbleDelegate: | 79 // PermissionBubbleDelegate: |
| 80 virtual int GetIconID() const OVERRIDE; |
80 virtual base::string16 GetMessageText() const OVERRIDE; | 81 virtual base::string16 GetMessageText() const OVERRIDE; |
81 virtual base::string16 GetMessageTextFragment() const OVERRIDE; | 82 virtual base::string16 GetMessageTextFragment() const OVERRIDE; |
82 virtual base::string16 GetAlternateAcceptButtonText() const OVERRIDE; | 83 virtual bool HasUserGesture() const OVERRIDE; |
83 virtual base::string16 GetAlternateDenyButtonText() const OVERRIDE; | 84 virtual GURL GetRequestingHostname() const OVERRIDE; |
84 virtual void PermissionGranted() OVERRIDE; | 85 virtual void PermissionGranted() OVERRIDE; |
85 virtual void PermissionDenied() OVERRIDE; | 86 virtual void PermissionDenied() OVERRIDE; |
86 virtual void Cancelled() OVERRIDE; | 87 virtual void Cancelled() OVERRIDE; |
87 virtual void RequestFinished() OVERRIDE; | 88 virtual void RequestFinished() OVERRIDE; |
88 | 89 |
89 private: | 90 private: |
90 // The notification service to be used. | 91 // The notification service to be used. |
91 DesktopNotificationService* notification_service_; | 92 DesktopNotificationService* notification_service_; |
92 | 93 |
93 // The origin we are asking for permissions on. | 94 // The origin we are asking for permissions on. |
(...skipping 25 matching lines...) Expand all Loading... |
119 : notification_service_(notification_service), | 120 : notification_service_(notification_service), |
120 origin_(origin), | 121 origin_(origin), |
121 display_name_(display_name), | 122 display_name_(display_name), |
122 process_id_(process_id), | 123 process_id_(process_id), |
123 route_id_(route_id), | 124 route_id_(route_id), |
124 callback_context_(callback_context), | 125 callback_context_(callback_context), |
125 action_taken_(false) {} | 126 action_taken_(false) {} |
126 | 127 |
127 NotificationPermissionRequest::~NotificationPermissionRequest() {} | 128 NotificationPermissionRequest::~NotificationPermissionRequest() {} |
128 | 129 |
| 130 int NotificationPermissionRequest::GetIconID() const { |
| 131 return IDR_INFOBAR_DESKTOP_NOTIFICATIONS; |
| 132 } |
| 133 |
129 base::string16 NotificationPermissionRequest::GetMessageText() const { | 134 base::string16 NotificationPermissionRequest::GetMessageText() const { |
130 return l10n_util::GetStringFUTF16(IDS_NOTIFICATION_PERMISSIONS, | 135 return l10n_util::GetStringFUTF16(IDS_NOTIFICATION_PERMISSIONS, |
131 display_name_); | 136 display_name_); |
132 } | 137 } |
133 | 138 |
134 base::string16 | 139 base::string16 |
135 NotificationPermissionRequest::GetMessageTextFragment() const { | 140 NotificationPermissionRequest::GetMessageTextFragment() const { |
136 return l10n_util::GetStringUTF16(IDS_NOTIFICATION_PERMISSIONS_FRAGMENT); | 141 return l10n_util::GetStringUTF16(IDS_NOTIFICATION_PERMISSIONS_FRAGMENT); |
137 } | 142 } |
138 | 143 |
139 base::string16 | 144 bool NotificationPermissionRequest::HasUserGesture() const { |
140 NotificationPermissionRequest::GetAlternateAcceptButtonText() const { | 145 // Currently notification permission requests are only issued on |
141 return l10n_util::GetStringUTF16(IDS_NOTIFICATION_PERMISSION_YES); | 146 // user gesture. |
| 147 return true; |
142 } | 148 } |
143 | 149 |
144 base::string16 | 150 GURL NotificationPermissionRequest::GetRequestingHostname() const { |
145 NotificationPermissionRequest::GetAlternateDenyButtonText() const { | 151 return origin_; |
146 return l10n_util::GetStringUTF16(IDS_NOTIFICATION_PERMISSION_NO); | |
147 } | 152 } |
148 | 153 |
149 void NotificationPermissionRequest::PermissionGranted() { | 154 void NotificationPermissionRequest::PermissionGranted() { |
150 action_taken_ = true; | 155 action_taken_ = true; |
151 UMA_HISTOGRAM_COUNTS("NotificationPermissionRequest.Allowed", 1); | 156 UMA_HISTOGRAM_COUNTS("NotificationPermissionRequest.Allowed", 1); |
152 notification_service_->GrantPermission(origin_); | 157 notification_service_->GrantPermission(origin_); |
153 } | 158 } |
154 | 159 |
155 void NotificationPermissionRequest::PermissionDenied() { | 160 void NotificationPermissionRequest::PermissionDenied() { |
156 action_taken_ = true; | 161 action_taken_ = true; |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 // Tell the IO thread that this extension's permission for notifications | 811 // Tell the IO thread that this extension's permission for notifications |
807 // has changed. | 812 // has changed. |
808 extensions::InfoMap* extension_info_map = | 813 extensions::InfoMap* extension_info_map = |
809 extensions::ExtensionSystem::Get(profile_)->info_map(); | 814 extensions::ExtensionSystem::Get(profile_)->info_map(); |
810 BrowserThread::PostTask( | 815 BrowserThread::PostTask( |
811 BrowserThread::IO, FROM_HERE, | 816 BrowserThread::IO, FROM_HERE, |
812 base::Bind(&extensions::InfoMap::SetNotificationsDisabled, | 817 base::Bind(&extensions::InfoMap::SetNotificationsDisabled, |
813 extension_info_map, notifier_id.id, !enabled)); | 818 extension_info_map, notifier_id.id, !enabled)); |
814 | 819 |
815 } | 820 } |
OLD | NEW |