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.
4
5#ifndef CHROME_BROWSER_NOTIFICATIONS_DESKTOP_NOTIFICATION_INFOBAR_DELEGATE_H_
6#define CHROME_BROWSER_NOTIFICATIONS_DESKTOP_NOTIFICATION_INFOBAR_DELEGATE_H_
7
8#include <string>
9
10#include "chrome/browser/content_settings/permission_infobar_delegate.h"
11
12class DesktopNotificationInfoBarDelegate : public PermissionInfobarDelegate {
13 public:
14  // Creates a Notification permission infobar and delegate and adds the
15  // infobar to |infobar_service|.
16  // Returns the infobar if it was successfully added.
17  static infobars::InfoBar* Create(InfoBarService* infobar_service,
18                                   PermissionQueueController* controller,
19                                   const PermissionRequestID& id,
20                                   const GURL& requesting_frame,
21                                   const std::string& display_languages);
22 private:
23  DesktopNotificationInfoBarDelegate(PermissionQueueController* controller,
24                                     const PermissionRequestID& id,
25                                     const GURL& requesting_frame,
26                                     int contents_unique_id,
27                                     const std::string& display_languages);
28  virtual ~DesktopNotificationInfoBarDelegate();
29
30  // PermissionInfoBarDelegate:
31  virtual base::string16 GetMessageText() const OVERRIDE;
32  virtual int GetIconID() const OVERRIDE;
33
34  GURL requesting_frame_;
35  std::string display_languages_;
36
37  DISALLOW_COPY_AND_ASSIGN(DesktopNotificationInfoBarDelegate);
38};
39
40#endif  // CHROME_BROWSER_NOTIFICATIONS_DESKTOP_NOTIFICATION_INFOBAR_DELEGATE_H_
41