702220a0a225f866c4a1cba78555c1f5a3d1f6c7
[platform/framework/web/crosswalk.git] / src / chrome / browser / services / gcm / push_messaging_infobar_delegate.h
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_SERVICES_GCM_PUSH_MESSAGING_INFOBAR_DELEGATE_H_
6 #define CHROME_BROWSER_SERVICES_GCM_PUSH_MESSAGING_INFOBAR_DELEGATE_H_
7
8 #include "chrome/browser/content_settings/permission_infobar_delegate.h"
9 #include "components/content_settings/core/common/content_settings_types.h"
10
11 class GURL;
12 class InfoBarService;
13
14 namespace gcm {
15
16 // Delegate to allow GCM push messages registration.
17 class PushMessagingInfoBarDelegate : public PermissionInfobarDelegate {
18  public:
19
20   // Creates a Push Permission infobar and delegate and adds the infobar to
21   // |infobar_service|.  Returns the infobar if it was successfully added.
22   static infobars::InfoBar* Create(InfoBarService* infobar_service,
23                                    PermissionQueueController* controller,
24                                    const PermissionRequestID& id,
25                                    const GURL& requesting_frame,
26                                    const std::string& display_languages,
27                                    ContentSettingsType type);
28
29  private:
30   PushMessagingInfoBarDelegate(PermissionQueueController* controller,
31                                const PermissionRequestID& id,
32                                const GURL& requesting_frame,
33                                const std::string& display_languages,
34                                ContentSettingsType type);
35   ~PushMessagingInfoBarDelegate() override;
36
37   // ConfirmInfoBarDelegate:
38   base::string16 GetMessageText() const override;
39   int GetIconID() const override;
40
41   const GURL requesting_origin_;
42   const std::string display_languages_;
43
44   DISALLOW_COPY_AND_ASSIGN(PushMessagingInfoBarDelegate);
45 };
46
47 }  // namespace gcm
48 #endif  // CHROME_BROWSER_SERVICES_GCM_PUSH_MESSAGING_INFOBAR_DELEGATE_H_
49