Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Unified Diff: ios/chrome/browser/tabs/tab.mm

Issue 2640463002: [ios] Convert BlockedPopupHandler into a tab helper class. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {
« no previous file with comments | « no previous file | ios/chrome/browser/web/blocked_popup_handler.h » ('j') | ios/chrome/browser/web/blocked_popup_handler.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698