1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/services/gcm/push_messaging_infobar_delegate.h" 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/grit/generated_resources.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/infobars/core/infobar.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "grit/theme_resources.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "net/base/net_util.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/base/l10n/l10n_util.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace gcm { 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// static 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochinfobars::InfoBar* PushMessagingInfoBarDelegate::Create( 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch InfoBarService* infobar_service, 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch PermissionQueueController* controller, 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const PermissionRequestID& id, 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const GURL& requesting_frame, 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& display_languages, 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ContentSettingsType type) { 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DCHECK(infobar_service); 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DCHECK(controller); 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<ConfirmInfoBarDelegate>(new PushMessagingInfoBarDelegate( 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch controller, id, requesting_frame, display_languages, type)))); 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 30116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPushMessagingInfoBarDelegate::PushMessagingInfoBarDelegate( 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch PermissionQueueController* controller, 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const PermissionRequestID& id, 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const GURL& requesting_frame, 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& display_languages, 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ContentSettingsType type) 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch : PermissionInfobarDelegate(controller, id, requesting_frame, type), 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch requesting_origin_(requesting_frame.GetOrigin()), 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch display_languages_(display_languages) { 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 41116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPushMessagingInfoBarDelegate::~PushMessagingInfoBarDelegate() { 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbase::string16 PushMessagingInfoBarDelegate::GetMessageText() const { 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return l10n_util::GetStringFUTF16( 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch IDS_PUSH_MESSAGES_PERMISSION_QUESTION, 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch net::FormatUrl(requesting_origin_, display_languages_, 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch net::kFormatUrlOmitUsernamePassword | 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch net::kFormatUrlOmitTrailingSlashOnBareHostname, 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch net::UnescapeRule::SPACES, NULL, NULL, NULL)); 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint PushMessagingInfoBarDelegate::GetIconID() const { 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // TODO(miguelg): change once we have an icon 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return IDR_INFOBAR_WARNING; 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace gcm 59