Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / services / gcm / push_messaging_infobar_delegate.cc
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
13 namespace gcm {
14
15 // static
16 infobars::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
30 PushMessagingInfoBarDelegate::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
41 PushMessagingInfoBarDelegate::~PushMessagingInfoBarDelegate() {
42 }
43
44 base::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
53 int PushMessagingInfoBarDelegate::GetIconID() const {
54   // TODO(miguelg): change once we have an icon
55   return IDR_INFOBAR_WARNING;
56 }
57
58 }  // namespace gcm