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#include "chrome/browser/services/gcm/push_messaging_infobar_delegate.h" 6 7#include "chrome/grit/generated_resources.h" 8#include "components/infobars/core/infobar.h" 9#include "grit/theme_resources.h" 10#include "net/base/net_util.h" 11#include "ui/base/l10n/l10n_util.h" 12 13namespace gcm { 14 15// static 16infobars::InfoBar* PushMessagingInfoBarDelegate::Create( 17 InfoBarService* infobar_service, 18 PermissionQueueController* controller, 19 const PermissionRequestID& id, 20 const GURL& requesting_frame, 21 const std::string& display_languages, 22 ContentSettingsType type) { 23 DCHECK(infobar_service); 24 DCHECK(controller); 25 return infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( 26 scoped_ptr<ConfirmInfoBarDelegate>(new PushMessagingInfoBarDelegate( 27 controller, id, requesting_frame, display_languages, type)))); 28} 29 30PushMessagingInfoBarDelegate::PushMessagingInfoBarDelegate( 31 PermissionQueueController* controller, 32 const PermissionRequestID& id, 33 const GURL& requesting_frame, 34 const std::string& display_languages, 35 ContentSettingsType type) 36 : PermissionInfobarDelegate(controller, id, requesting_frame, type), 37 requesting_origin_(requesting_frame.GetOrigin()), 38 display_languages_(display_languages) { 39} 40 41PushMessagingInfoBarDelegate::~PushMessagingInfoBarDelegate() { 42} 43 44base::string16 PushMessagingInfoBarDelegate::GetMessageText() const { 45 return l10n_util::GetStringFUTF16( 46 IDS_PUSH_MESSAGES_PERMISSION_QUESTION, 47 net::FormatUrl(requesting_origin_, display_languages_, 48 net::kFormatUrlOmitUsernamePassword | 49 net::kFormatUrlOmitTrailingSlashOnBareHostname, 50 net::UnescapeRule::SPACES, NULL, NULL, NULL)); 51} 52 53int PushMessagingInfoBarDelegate::GetIconID() const { 54 // TODO(miguelg): change once we have an icon 55 return IDR_INFOBAR_WARNING; 56} 57 58} // namespace gcm 59