• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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/plugin_installer_infobar_delegate.h"
6 
7 #include "content/browser/renderer_host/render_view_host.h"
8 #include "content/browser/tab_contents/tab_contents.h"
9 #include "grit/generated_resources.h"
10 #include "grit/locale_settings.h"
11 #include "grit/theme_resources.h"
12 #include "ui/base/l10n/l10n_util.h"
13 #include "ui/base/resource/resource_bundle.h"
14 
PluginInstallerInfoBarDelegate(TabContents * tab_contents)15 PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate(
16     TabContents* tab_contents)
17     : ConfirmInfoBarDelegate(tab_contents),
18       tab_contents_(tab_contents) {
19 }
20 
~PluginInstallerInfoBarDelegate()21 PluginInstallerInfoBarDelegate::~PluginInstallerInfoBarDelegate() {
22 }
23 
GetIcon() const24 SkBitmap* PluginInstallerInfoBarDelegate::GetIcon() const {
25   return ResourceBundle::GetSharedInstance().GetBitmapNamed(
26       IDR_INFOBAR_PLUGIN_INSTALL);
27 }
28 
29 PluginInstallerInfoBarDelegate*
AsPluginInstallerInfoBarDelegate()30     PluginInstallerInfoBarDelegate::AsPluginInstallerInfoBarDelegate() {
31   return this;
32 }
33 
GetMessageText() const34 string16 PluginInstallerInfoBarDelegate::GetMessageText() const {
35   return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_MISSINGPLUGIN_PROMPT);
36 }
37 
GetButtons() const38 int PluginInstallerInfoBarDelegate::GetButtons() const {
39   return BUTTON_OK;
40 }
41 
GetButtonLabel(InfoBarButton button) const42 string16 PluginInstallerInfoBarDelegate::GetButtonLabel(
43     InfoBarButton button) const {
44   DCHECK_EQ(BUTTON_OK, button);
45   return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_INSTALLPLUGIN_BUTTON);
46 }
47 
Accept()48 bool PluginInstallerInfoBarDelegate::Accept() {
49   tab_contents_->render_view_host()->InstallMissingPlugin();
50   return true;
51 }
52 
GetLinkText()53 string16 PluginInstallerInfoBarDelegate::GetLinkText() {
54   return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_PROBLEMSINSTALLING);
55 }
56 
LinkClicked(WindowOpenDisposition disposition)57 bool PluginInstallerInfoBarDelegate::LinkClicked(
58     WindowOpenDisposition disposition) {
59   // Ignore the click dispostion and always open in a new top level tab.
60   static const char kLearnMorePluginInstallerUrl[] = "http://www.google.com/"
61       "support/chrome/bin/answer.py?answer=95697&topic=14687";
62   tab_contents_->OpenURL(GURL(kLearnMorePluginInstallerUrl), GURL(),
63                          NEW_FOREGROUND_TAB, PageTransition::LINK);
64   return false;
65 }
66