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)15PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate( 16 TabContents* tab_contents) 17 : ConfirmInfoBarDelegate(tab_contents), 18 tab_contents_(tab_contents) { 19 } 20 ~PluginInstallerInfoBarDelegate()21PluginInstallerInfoBarDelegate::~PluginInstallerInfoBarDelegate() { 22 } 23 GetIcon() const24SkBitmap* 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() const34string16 PluginInstallerInfoBarDelegate::GetMessageText() const { 35 return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_MISSINGPLUGIN_PROMPT); 36 } 37 GetButtons() const38int PluginInstallerInfoBarDelegate::GetButtons() const { 39 return BUTTON_OK; 40 } 41 GetButtonLabel(InfoBarButton button) const42string16 PluginInstallerInfoBarDelegate::GetButtonLabel( 43 InfoBarButton button) const { 44 DCHECK_EQ(BUTTON_OK, button); 45 return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_INSTALLPLUGIN_BUTTON); 46 } 47 Accept()48bool PluginInstallerInfoBarDelegate::Accept() { 49 tab_contents_->render_view_host()->InstallMissingPlugin(); 50 return true; 51 } 52 GetLinkText()53string16 PluginInstallerInfoBarDelegate::GetLinkText() { 54 return l10n_util::GetStringUTF16(IDS_PLUGININSTALLER_PROBLEMSINSTALLING); 55 } 56 LinkClicked(WindowOpenDisposition disposition)57bool 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