Index: chrome/browser/plugins/plugin_infobar_delegates.cc |
diff --git a/chrome/browser/plugins/plugin_infobar_delegates.cc b/chrome/browser/plugins/plugin_infobar_delegates.cc |
index 6530594b5241ec55bc25adab8779975837c71b8a..dc0d973f6a64c586c87ccc401ee283354b52a908 100644 |
--- a/chrome/browser/plugins/plugin_infobar_delegates.cc |
+++ b/chrome/browser/plugins/plugin_infobar_delegates.cc |
@@ -18,6 +18,7 @@ |
#include "chrome/browser/shell_integration.h" |
#include "chrome/browser/ui/browser_commands.h" |
#include "chrome/common/url_constants.h" |
+#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/user_metrics.h" |
@@ -48,10 +49,9 @@ using base::UserMetricsAction; |
// PluginInfoBarDelegate ------------------------------------------------------ |
-PluginInfoBarDelegate::PluginInfoBarDelegate(const std::string& identifier) |
- : ConfirmInfoBarDelegate(), |
- identifier_(identifier) { |
-} |
+PluginInfoBarDelegate::PluginInfoBarDelegate(content::WebContents* web_contents, |
+ const std::string& identifier) |
+ : ContentConfirmInfoBarDelegate(web_contents), identifier_(identifier) {} |
PluginInfoBarDelegate::~PluginInfoBarDelegate() { |
} |
@@ -86,9 +86,9 @@ void UnauthorizedPluginInfoBarDelegate::Create( |
HostContentSettingsMap* content_settings, |
const base::string16& name, |
const std::string& identifier) { |
- infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( |
- scoped_ptr<ConfirmInfoBarDelegate>(new UnauthorizedPluginInfoBarDelegate( |
- content_settings, name, identifier)))); |
+ infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(scoped_ptr< |
+ ConfirmInfoBarDelegate>(new UnauthorizedPluginInfoBarDelegate( |
+ infobar_service->web_contents(), content_settings, name, identifier)))); |
content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Shown")); |
std::string utf8_name(base::UTF16ToUTF8(name)); |
@@ -110,13 +110,13 @@ void UnauthorizedPluginInfoBarDelegate::Create( |
} |
UnauthorizedPluginInfoBarDelegate::UnauthorizedPluginInfoBarDelegate( |
+ content::WebContents* web_contents, |
HostContentSettingsMap* content_settings, |
const base::string16& name, |
const std::string& identifier) |
- : PluginInfoBarDelegate(identifier), |
+ : PluginInfoBarDelegate(web_contents, identifier), |
content_settings_(content_settings), |
- name_(name) { |
-} |
+ name_(name) {} |
UnauthorizedPluginInfoBarDelegate::~UnauthorizedPluginInfoBarDelegate() { |
content::RecordAction(UserMetricsAction("BlockedPluginInfobar.Closed")); |
@@ -176,17 +176,22 @@ void OutdatedPluginInfoBarDelegate::Create( |
base::string16 name(plugin_metadata->name()); |
infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( |
scoped_ptr<ConfirmInfoBarDelegate>(new OutdatedPluginInfoBarDelegate( |
- installer, plugin_metadata.Pass(), l10n_util::GetStringFUTF16( |
- (installer->state() == PluginInstaller::INSTALLER_STATE_IDLE) ? |
- IDS_PLUGIN_OUTDATED_PROMPT : IDS_PLUGIN_DOWNLOADING, |
+ infobar_service->web_contents(), |
+ installer, |
+ plugin_metadata.Pass(), |
+ l10n_util::GetStringFUTF16( |
+ (installer->state() == PluginInstaller::INSTALLER_STATE_IDLE) |
+ ? IDS_PLUGIN_OUTDATED_PROMPT |
+ : IDS_PLUGIN_DOWNLOADING, |
name))))); |
} |
OutdatedPluginInfoBarDelegate::OutdatedPluginInfoBarDelegate( |
+ content::WebContents* web_contents, |
PluginInstaller* installer, |
scoped_ptr<PluginMetadata> plugin_metadata, |
const base::string16& message) |
- : PluginInfoBarDelegate(plugin_metadata->identifier()), |
+ : PluginInfoBarDelegate(web_contents, plugin_metadata->identifier()), |
WeakPluginInstallerObserver(installer), |
plugin_metadata_(plugin_metadata.Pass()), |
message_(message) { |
@@ -293,8 +298,12 @@ void OutdatedPluginInfoBarDelegate::ReplaceWithInfoBar( |
// keep replacing infobar delegates infinitely). |
if ((message_ == message) || !infobar()->owner()) |
return; |
- PluginInstallerInfoBarDelegate::Replace( |
- infobar(), installer(), plugin_metadata_->Clone(), false, message); |
+ PluginInstallerInfoBarDelegate::Replace(web_contents(), |
+ infobar(), |
+ installer(), |
+ plugin_metadata_->Clone(), |
+ false, |
+ message); |
} |
@@ -315,43 +324,53 @@ void PluginInstallerInfoBarDelegate::Create( |
#endif |
infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( |
scoped_ptr<ConfirmInfoBarDelegate>(new PluginInstallerInfoBarDelegate( |
- installer, plugin_metadata.Pass(), callback, true, |
+ infobar_service->web_contents(), |
+ installer, |
+ plugin_metadata.Pass(), |
+ callback, |
+ true, |
l10n_util::GetStringFUTF16( |
- (installer->state() == PluginInstaller::INSTALLER_STATE_IDLE) ? |
- IDS_PLUGININSTALLER_INSTALLPLUGIN_PROMPT : |
- IDS_PLUGIN_DOWNLOADING, |
+ (installer->state() == PluginInstaller::INSTALLER_STATE_IDLE) |
+ ? IDS_PLUGININSTALLER_INSTALLPLUGIN_PROMPT |
+ : IDS_PLUGIN_DOWNLOADING, |
name))))); |
} |
- |
void PluginInstallerInfoBarDelegate::Replace( |
+ content::WebContents* web_contents, |
InfoBar* infobar, |
PluginInstaller* installer, |
scoped_ptr<PluginMetadata> plugin_metadata, |
bool new_install, |
const base::string16& message) { |
+ |
DCHECK(infobar->owner()); |
- infobar->owner()->ReplaceInfoBar(infobar, |
- ConfirmInfoBarDelegate::CreateInfoBar(scoped_ptr<ConfirmInfoBarDelegate>( |
- new PluginInstallerInfoBarDelegate( |
- installer, plugin_metadata.Pass(), |
- PluginInstallerInfoBarDelegate::InstallCallback(), new_install, |
- message)))); |
+ infobar->owner()->ReplaceInfoBar( |
+ infobar, |
+ ConfirmInfoBarDelegate::CreateInfoBar( |
+ scoped_ptr<ConfirmInfoBarDelegate>(new PluginInstallerInfoBarDelegate( |
+ web_contents, |
+ installer, |
+ plugin_metadata.Pass(), |
+ PluginInstallerInfoBarDelegate::InstallCallback(), |
+ new_install, |
+ message))), |
+ InfoBarService::GetActiveEntryID(web_contents)); |
} |
PluginInstallerInfoBarDelegate::PluginInstallerInfoBarDelegate( |
+ content::WebContents* web_contents, |
PluginInstaller* installer, |
scoped_ptr<PluginMetadata> plugin_metadata, |
const InstallCallback& callback, |
bool new_install, |
const base::string16& message) |
- : ConfirmInfoBarDelegate(), |
+ : ContentConfirmInfoBarDelegate(web_contents), |
WeakPluginInstallerObserver(installer), |
plugin_metadata_(plugin_metadata.Pass()), |
callback_(callback), |
new_install_(new_install), |
- message_(message) { |
-} |
+ message_(message) {} |
PluginInstallerInfoBarDelegate::~PluginInstallerInfoBarDelegate() { |
} |
@@ -432,7 +451,11 @@ void PluginInstallerInfoBarDelegate::ReplaceWithInfoBar( |
// keep replacing infobar delegates infinitely). |
if ((message_ == message) || !infobar()->owner()) |
return; |
- Replace(infobar(), installer(), plugin_metadata_->Clone(), new_install_, |
+ Replace(web_contents(), |
+ infobar(), |
+ installer(), |
+ plugin_metadata_->Clone(), |
+ new_install_, |
message); |
} |
@@ -447,17 +470,15 @@ void PluginMetroModeInfoBarDelegate::Create( |
PluginMetroModeInfoBarDelegate::Mode mode, |
const base::string16& name) { |
infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( |
- scoped_ptr<ConfirmInfoBarDelegate>( |
- new PluginMetroModeInfoBarDelegate(mode, name)))); |
+ scoped_ptr<ConfirmInfoBarDelegate>(new PluginMetroModeInfoBarDelegate( |
+ infobar_service->web_contents(), mode, name)))); |
} |
PluginMetroModeInfoBarDelegate::PluginMetroModeInfoBarDelegate( |
+ content::WebContents* web_contents, |
PluginMetroModeInfoBarDelegate::Mode mode, |
const base::string16& name) |
- : ConfirmInfoBarDelegate(), |
- mode_(mode), |
- name_(name) { |
-} |
+ : ContentConfirmInfoBarDelegate(web_contents), mode_(mode), name_(name) {} |
PluginMetroModeInfoBarDelegate::~PluginMetroModeInfoBarDelegate() { |
} |