Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / components / infobars / core / 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 "components/infobars/core/infobar_delegate.h"
6
7 #include "base/logging.h"
8 #include "build/build_config.h"
9 #include "components/infobars/core/infobar.h"
10 #include "components/infobars/core/infobar_manager.h"
11 #include "ui/base/resource/resource_bundle.h"
12
13 namespace infobars {
14
15 const int InfoBarDelegate::kNoIconID = 0;
16
17 InfoBarDelegate::~InfoBarDelegate() {
18 }
19
20 InfoBarDelegate::InfoBarAutomationType
21     InfoBarDelegate::GetInfoBarAutomationType() const {
22   return UNKNOWN_INFOBAR;
23 }
24
25 bool InfoBarDelegate::EqualsDelegate(InfoBarDelegate* delegate) const {
26   return false;
27 }
28
29 bool InfoBarDelegate::ShouldExpire(const NavigationDetails& details) const {
30   if (!details.is_navigation_to_different_page)
31     return false;
32
33   return ShouldExpireInternal(details);
34 }
35
36 void InfoBarDelegate::InfoBarDismissed() {
37 }
38
39 int InfoBarDelegate::GetIconID() const {
40   return kNoIconID;
41 }
42
43 InfoBarDelegate::Type InfoBarDelegate::GetInfoBarType() const {
44   return WARNING_TYPE;
45 }
46
47 AutoLoginInfoBarDelegate* InfoBarDelegate::AsAutoLoginInfoBarDelegate() {
48   return NULL;
49 }
50
51 ConfirmInfoBarDelegate* InfoBarDelegate::AsConfirmInfoBarDelegate() {
52   return NULL;
53 }
54
55 ExtensionInfoBarDelegate* InfoBarDelegate::AsExtensionInfoBarDelegate() {
56   return NULL;
57 }
58
59 InsecureContentInfoBarDelegate*
60     InfoBarDelegate::AsInsecureContentInfoBarDelegate() {
61   return NULL;
62 }
63
64 MediaStreamInfoBarDelegate* InfoBarDelegate::AsMediaStreamInfoBarDelegate() {
65   return NULL;
66 }
67
68 PopupBlockedInfoBarDelegate* InfoBarDelegate::AsPopupBlockedInfoBarDelegate() {
69   return NULL;
70 }
71
72 RegisterProtocolHandlerInfoBarDelegate*
73     InfoBarDelegate::AsRegisterProtocolHandlerInfoBarDelegate() {
74   return NULL;
75 }
76
77 ScreenCaptureInfoBarDelegate*
78     InfoBarDelegate::AsScreenCaptureInfoBarDelegate() {
79   return NULL;
80 }
81
82 ThemeInstalledInfoBarDelegate*
83     InfoBarDelegate::AsThemePreviewInfobarDelegate() {
84   return NULL;
85 }
86
87 translate::TranslateInfoBarDelegate*
88 InfoBarDelegate::AsTranslateInfoBarDelegate() {
89   return NULL;
90 }
91
92 void InfoBarDelegate::StoreActiveEntryUniqueID() {
93   contents_unique_id_ = infobar()->owner()->GetActiveEntryID();
94 }
95
96 gfx::Image InfoBarDelegate::GetIcon() const {
97   int icon_id = GetIconID();
98   return (icon_id == kNoIconID) ? gfx::Image() :
99       ResourceBundle::GetSharedInstance().GetNativeImageNamed(icon_id);
100 }
101
102 InfoBarDelegate::InfoBarDelegate() : contents_unique_id_(0) {
103 }
104
105 bool InfoBarDelegate::ShouldExpireInternal(
106     const NavigationDetails& details) const {
107   // NOTE: If you change this, be sure to check and adjust the behavior of
108   // anyone who overrides this as necessary!
109   return (contents_unique_id_ != details.entry_id) || details.is_reload;
110 }
111
112 }  // namespace infobars