Index: chrome/browser/notifications/desktop_notification_service.cc |
=================================================================== |
--- chrome/browser/notifications/desktop_notification_service.cc (revision 175396) |
+++ chrome/browser/notifications/desktop_notification_service.cc (working copy) |
@@ -59,6 +59,17 @@ |
// permissions. |
class NotificationPermissionInfoBarDelegate : public ConfirmInfoBarDelegate { |
public: |
+ // Creates a notification permission delegate and adds it to |
+ // |infobar_service|. |
+ static void Create(InfoBarService* infobar_service, |
+ DesktopNotificationService* notification_service, |
+ const GURL& origin, |
+ const string16& display_name, |
+ int process_id, |
+ int route_id, |
+ int callback_context); |
+ |
+ private: |
NotificationPermissionInfoBarDelegate( |
InfoBarService* infobar_service, |
DesktopNotificationService* notification_service, |
@@ -67,8 +78,6 @@ |
int process_id, |
int route_id, |
int callback_context); |
- |
- private: |
virtual ~NotificationPermissionInfoBarDelegate(); |
// ConfirmInfoBarDelegate: |
@@ -101,6 +110,21 @@ |
DISALLOW_COPY_AND_ASSIGN(NotificationPermissionInfoBarDelegate); |
}; |
+// static |
+void NotificationPermissionInfoBarDelegate::Create( |
+ InfoBarService* infobar_service, |
+ DesktopNotificationService* notification_service, |
+ const GURL& origin, |
+ const string16& display_name, |
+ int process_id, |
+ int route_id, |
+ int callback_context) { |
+ infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
+ new NotificationPermissionInfoBarDelegate( |
+ infobar_service, notification_service, origin, display_name, |
+ process_id, route_id, callback_context))); |
+} |
+ |
NotificationPermissionInfoBarDelegate::NotificationPermissionInfoBarDelegate( |
InfoBarService* infobar_service, |
DesktopNotificationService* notification_service, |
@@ -416,7 +440,7 @@ |
// browser action popup, extension background page, or any HTML that runs |
// outside of a tab. |
if (infobar_service) { |
- infobar_service->AddInfoBar(new NotificationPermissionInfoBarDelegate( |
+ NotificationPermissionInfoBarDelegate::Create( |
infobar_service, |
DesktopNotificationServiceFactory::GetForProfile( |
Profile::FromBrowserContext(contents->GetBrowserContext())), |
@@ -424,7 +448,7 @@ |
DisplayNameForOrigin(origin), |
process_id, |
route_id, |
- callback_context)); |
+ callback_context); |
return; |
} |
} |