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 11class GURL; 12class InfoBarService; 13 14namespace gcm { 15 16// Delegate to allow GCM push messages registration. 17class 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