| Index: ios/chrome/browser/tabs/tab.mm
|
| diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm
|
| index f1119e3b5c359f7f6e39d7bb94e7a6fbd2aff8ab..3237a500f3476466dc7b9f038a7faf5a93ead662 100644
|
| --- a/ios/chrome/browser/tabs/tab.mm
|
| +++ b/ios/chrome/browser/tabs/tab.mm
|
| @@ -202,8 +202,7 @@ enum class RendererTerminationTabState {
|
| };
|
| } // namespace
|
|
|
| -@interface Tab ()<BlockedPopupHandlerDelegate,
|
| - CRWWebStateObserver,
|
| +@interface Tab ()<CRWWebStateObserver,
|
| CRWWebUserInterfaceDelegate,
|
| FindInPageControllerDelegate,
|
| ReaderModeControllerDelegate> {
|
| @@ -281,9 +280,6 @@ enum class RendererTerminationTabState {
|
| // Handles autofill.
|
| base::scoped_nsobject<AutofillController> autofillController_;
|
|
|
| - // The popup blocker to show blocked popup to the user.
|
| - std::unique_ptr<BlockedPopupHandler> popupHandler_;
|
| -
|
| // Handles find on page.
|
| base::scoped_nsobject<FindInPageController> findInPageController_;
|
|
|
| @@ -367,9 +363,6 @@ enum class RendererTerminationTabState {
|
| // Saves the current title to the history database.
|
| - (void)saveTitleToHistoryDB;
|
|
|
| -// Returns a lazily instantiated popup handler.
|
| -- (BlockedPopupHandler*)popupHandler;
|
| -
|
| // Adds the current session entry to this history database.
|
| - (void)addCurrentEntryToHistoryDB;
|
|
|
| @@ -580,6 +573,7 @@ void AddNetworkClientFactoryOnIOThread(
|
| [self initNativeAppNavigationController];
|
| // IOSChromeSessionTabHelper comes first because it sets up the tab ID, and
|
| // other helpers may rely on that.
|
| + BlockedPopupHandler::CreateForWebState(self.webState);
|
| IOSChromeSessionTabHelper::CreateForWebState(self.webState);
|
| NetworkActivityIndicatorTabHelper::CreateForWebState(self.webState,
|
| self.tabId);
|
| @@ -671,6 +665,9 @@ void AddNetworkClientFactoryOnIOThread(
|
| // Allow the embedder to attach tab helpers.
|
| ios::GetChromeBrowserProvider()->AttachTabHelpers(self.webState, self);
|
|
|
| + // Allow tab helpers to initialize themselves, if necessary.
|
| + BlockedPopupHandler::FromWebState(self.webState)->Initialize();
|
| +
|
| [[NSNotificationCenter defaultCenter]
|
| addObserver:self
|
| selector:@selector(applicationDidBecomeActive)
|
| @@ -1661,14 +1658,6 @@ void AddNetworkClientFactoryOnIOThread(
|
| snapshotOverlayProvider_.reset(snapshotOverlayProvider);
|
| }
|
|
|
| -- (BlockedPopupHandler*)popupHandler {
|
| - if (!popupHandler_.get()) {
|
| - popupHandler_.reset(new BlockedPopupHandler(self.browserState));
|
| - popupHandler_->SetDelegate(self);
|
| - }
|
| - return popupHandler_.get();
|
| -}
|
| -
|
| - (void)evaluateU2FResultFromURL:(const GURL&)URL {
|
| DCHECK(U2FController_);
|
| [U2FController_ evaluateU2FResultFromU2FURL:URL webState:self.webState];
|
| @@ -2138,7 +2127,8 @@ void AddNetworkClientFactoryOnIOThread(
|
|
|
| - (void)webController:(CRWWebController*)webController
|
| didBlockPopup:(const web::BlockedPopupInfo&)blockedPopupInfo {
|
| - [self popupHandler]->HandlePopup(blockedPopupInfo);
|
| + BlockedPopupHandler::FromWebState(self.webState)
|
| + ->HandlePopup(blockedPopupInfo);
|
| }
|
|
|
| - (CGFloat)headerHeightForWebController:(CRWWebController*)webController {
|
|
|