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 virtual ~PushMessagingInfoBarDelegate(); 36 37 // ConfirmInfoBarDelegate: 38 virtual base::string16 GetMessageText() const OVERRIDE; 39 virtual 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 50