| 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..2769d3b05ba73f48fc9cc90b679bb2b9d1c76017 100644
|
| --- a/chrome/browser/plugins/plugin_infobar_delegates.cc
|
| +++ b/chrome/browser/plugins/plugin_infobar_delegates.cc
|
| @@ -57,7 +57,9 @@ PluginInfoBarDelegate::~PluginInfoBarDelegate() {
|
| }
|
|
|
| bool PluginInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
|
| - web_contents()->OpenURL(content::OpenURLParams(
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| + web_contents->OpenURL(content::OpenURLParams(
|
| GURL(GetLearnMoreURL()), content::Referrer(),
|
| (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
|
| content::PAGE_TRANSITION_LINK, false));
|
| @@ -65,8 +67,10 @@ bool PluginInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
|
| }
|
|
|
| void PluginInfoBarDelegate::LoadBlockedPlugins() {
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
|
| - web_contents(), true, identifier_);
|
| + web_contents, true, identifier_);
|
| }
|
|
|
| int PluginInfoBarDelegate::GetIconID() const {
|
| @@ -145,7 +149,7 @@ bool UnauthorizedPluginInfoBarDelegate::Accept() {
|
|
|
| bool UnauthorizedPluginInfoBarDelegate::Cancel() {
|
| content::RecordAction(UserMetricsAction("BlockedPluginInfobar.AlwaysAllow"));
|
| - const GURL& url = web_contents()->GetURL();
|
| + const GURL& url = InfoBarService::WebContentsFromInfoBar(infobar())->GetURL();
|
| content_settings_->AddExceptionForURL(url, url, CONTENT_SETTINGS_TYPE_PLUGINS,
|
| CONTENT_SETTING_ALLOW);
|
| LoadBlockedPlugins();
|
| @@ -238,10 +242,12 @@ bool OutdatedPluginInfoBarDelegate::Accept() {
|
| // result in deleting ourselves. Accordingly, we make sure to
|
| // not pass a reference to an object that can go away.
|
| GURL plugin_url(plugin_metadata_->plugin_url());
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| if (plugin_metadata_->url_for_display())
|
| - installer()->OpenDownloadURL(plugin_url, web_contents());
|
| + installer()->OpenDownloadURL(plugin_url, web_contents);
|
| else
|
| - installer()->StartInstalling(plugin_url, web_contents());
|
| + installer()->StartInstalling(plugin_url, web_contents);
|
| return false;
|
| }
|
|
|
| @@ -392,7 +398,10 @@ bool PluginInstallerInfoBarDelegate::LinkClicked(
|
| url = google_util::AppendGoogleLocaleParam(GURL(
|
| "https://www.google.com/support/chrome/bin/answer.py?answer=142064"));
|
| }
|
| - web_contents()->OpenURL(content::OpenURLParams(
|
| +
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| + web_contents->OpenURL(content::OpenURLParams(
|
| url, content::Referrer(),
|
| (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
|
| content::PAGE_TRANSITION_LINK, false));
|
| @@ -515,7 +524,9 @@ bool PluginMetroModeInfoBarDelegate::LinkClicked(
|
| // TODO(shrikant): We may need to change language a little at following
|
| // support URLs. With new approach we will just restart for both missing
|
| // and not missing mode.
|
| - web_contents()->OpenURL(content::OpenURLParams(
|
| + content::WebContents* web_contents =
|
| + InfoBarService::WebContentsFromInfoBar(infobar());
|
| + web_contents->OpenURL(content::OpenURLParams(
|
| GURL((mode_ == MISSING_PLUGIN) ?
|
| "https://support.google.com/chrome/?p=ib_display_in_desktop" :
|
| "https://support.google.com/chrome/?p=ib_redirect_to_desktop"),
|
|
|