| Index: chrome/browser/ui/android/content_settings/popup_blocked_infobar_delegate.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/ui/android/content_settings/popup_blocked_infobar_delegate.cc	(revision 238220)
 | 
| +++ chrome/browser/ui/android/content_settings/popup_blocked_infobar_delegate.cc	(working copy)
 | 
| @@ -6,6 +6,7 @@
 | 
|  
 | 
|  #include "base/prefs/pref_service.h"
 | 
|  #include "chrome/browser/content_settings/host_content_settings_map.h"
 | 
| +#include "chrome/browser/infobars/infobar.h"
 | 
|  #include "chrome/browser/infobars/infobar_service.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
 | 
| @@ -18,8 +19,9 @@
 | 
|  // static
 | 
|  void PopupBlockedInfoBarDelegate::Create(InfoBarService* infobar_service,
 | 
|                                           int num_popups) {
 | 
| -  scoped_ptr<InfoBarDelegate> infobar(
 | 
| -      new PopupBlockedInfoBarDelegate(infobar_service, num_popups));
 | 
| +  scoped_ptr<InfoBar> infobar(ConfirmInfoBarDelegate::CreateInfoBar(
 | 
| +      scoped_ptr<ConfirmInfoBarDelegate>(
 | 
| +          new PopupBlockedInfoBarDelegate(num_popups))));
 | 
|  
 | 
|    // See if there is an existing popup infobar already.
 | 
|    // TODO(dfalcantara) When triggering more than one popup the infobar
 | 
| @@ -26,8 +28,8 @@
 | 
|    // will be shown once, then hide then be shown again.
 | 
|    // This will be fixed once we have an in place replace infobar mechanism.
 | 
|    for (size_t i = 0; i < infobar_service->infobar_count(); ++i) {
 | 
| -    InfoBarDelegate* existing_infobar = infobar_service->infobar_at(i);
 | 
| -    if (existing_infobar->AsPopupBlockedInfoBarDelegate()) {
 | 
| +    InfoBar* existing_infobar = infobar_service->infobar_at(i);
 | 
| +    if (existing_infobar->delegate()->AsPopupBlockedInfoBarDelegate()) {
 | 
|        infobar_service->ReplaceInfoBar(existing_infobar, infobar.Pass());
 | 
|        return;
 | 
|      }
 | 
| @@ -48,10 +50,8 @@
 | 
|    return this;
 | 
|  }
 | 
|  
 | 
| -PopupBlockedInfoBarDelegate::PopupBlockedInfoBarDelegate(
 | 
| -    InfoBarService* infobar_service,
 | 
| -    int num_popups)
 | 
| -    : ConfirmInfoBarDelegate(infobar_service),
 | 
| +PopupBlockedInfoBarDelegate::PopupBlockedInfoBarDelegate(int num_popups)
 | 
| +    : ConfirmInfoBarDelegate(),
 | 
|        num_popups_(num_popups) {
 | 
|  }
 | 
|  
 | 
| @@ -71,10 +71,9 @@
 | 
|  
 | 
|  bool PopupBlockedInfoBarDelegate::Accept() {
 | 
|    // Create exceptions.
 | 
| -  content::WebContents* web_contents =  owner()->web_contents();
 | 
| -  const GURL& url = web_contents->GetURL();
 | 
| +  const GURL& url = web_contents()->GetURL();
 | 
|    Profile* profile = Profile::FromBrowserContext(
 | 
| -      web_contents->GetBrowserContext());
 | 
| +      web_contents()->GetBrowserContext());
 | 
|    profile->GetHostContentSettingsMap()->AddExceptionForURL(
 | 
|        url, url, CONTENT_SETTINGS_TYPE_POPUPS, std::string(),
 | 
|        CONTENT_SETTING_ALLOW);
 | 
| @@ -81,7 +80,7 @@
 | 
|  
 | 
|    // Launch popups.
 | 
|    PopupBlockerTabHelper* popup_blocker_helper =
 | 
| -      PopupBlockerTabHelper::FromWebContents(web_contents);
 | 
| +      PopupBlockerTabHelper::FromWebContents(web_contents());
 | 
|    DCHECK(popup_blocker_helper);
 | 
|    PopupBlockerTabHelper::PopupIdMap blocked_popups =
 | 
|        popup_blocker_helper->GetBlockedPopupRequests();
 | 
| 
 |