Index: ios/chrome/browser/tabs/tab.mm |
diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm |
index cbb5b929db6b79f71b55cd06c8d6b8ae95b76f53..bca7ffb2322290a0b6a81cf53a28835708c0c823 100644 |
--- a/ios/chrome/browser/tabs/tab.mm |
+++ b/ios/chrome/browser/tabs/tab.mm |
@@ -873,10 +873,12 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
return self.webController.viewForPrinting; |
} |
-- (NavigationManagerImpl*)navigationManager { |
- if (!webStateImpl_) |
- return nil; |
- return &(webStateImpl_->GetNavigationManagerImpl()); |
+- (web::NavigationManager*)navigationManager { |
+ return webStateImpl_ ? webStateImpl_->GetNavigationManager() : nullptr; |
+} |
+ |
+- (web::NavigationManagerImpl*)navigationManagerImpl { |
+ return webStateImpl_ ? &(webStateImpl_->GetNavigationManagerImpl()) : nullptr; |
} |
- (id<StoreKitLauncher>)storeKitLauncher { |
@@ -896,8 +898,8 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
currentIndex:(NSInteger)currentIndex { |
std::vector<std::unique_ptr<web::NavigationItem>> items = |
sessions::IOSSerializedNavigationBuilder::ToNavigationItems(navigations); |
- [self navigationManager]->ReplaceSessionHistory(std::move(items), |
- currentIndex); |
+ [self navigationManagerImpl]->ReplaceSessionHistory(std::move(items), |
+ currentIndex); |
[self didReplaceSessionHistory]; |
[self.webController loadCurrentURL]; |
@@ -1274,7 +1276,7 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
- (web::NavigationItem*)currentNavigationItem { |
if (![self navigationManager]) |
return nil; |
- return [[self navigationManager]->GetSessionController() currentItem]; |
+ return [[self navigationManagerImpl]->GetSessionController() currentItem]; |
} |
- (void)setShouldObserveInfoBarManager:(BOOL)shouldObserveInfoBarManager { |
@@ -1325,7 +1327,7 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
if (self.navigationManager) { |
CRWSessionController* sessionController = |
- self.navigationManager->GetSessionController(); |
+ [self navigationManagerImpl]->GetSessionController(); |
NSInteger itemIndex = [sessionController indexOfItem:item]; |
DCHECK_NE(itemIndex, NSNotFound); |
self.navigationManager->GoToIndex(itemIndex); |
@@ -1375,7 +1377,7 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
// Clears pending navigation history after successfully launching the |
// external app. |
DCHECK([self navigationManager]); |
- [[self navigationManager]->GetSessionController() discardNonCommittedItems]; |
+ [self navigationManager]->DiscardNonCommittedItems(); |
// Ensure the UI reflects the current entry, not the just-discarded pending |
// entry. |
[parentTabModel_ notifyTabChanged:self]; |
@@ -1601,7 +1603,7 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT); |
DCHECK([self navigationManager]); |
CRWSessionController* sessionController = |
- [self navigationManager]->GetSessionController(); |
+ [self navigationManagerImpl]->GetSessionController(); |
web::NavigationItem* lastUserItem = [sessionController lastUserItem]; |
if (!lastUserItem) |
return; |
@@ -1640,7 +1642,7 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
- (void)webPageOrderedClose { |
// Only allow a web page to close itself if it was opened by DOM, or if there |
// are no navigation items. |
- DCHECK([[self navigationManager]->GetSessionController() isOpenedByDOM] || |
+ DCHECK([[self navigationManagerImpl]->GetSessionController() isOpenedByDOM] || |
![self navigationManager]->GetItemCount()); |
[self closeThisTab]; |
} |
@@ -1875,15 +1877,15 @@ void TabInfoBarObserver::OnInfoBarReplaced(infobars::InfoBar* old_infobar, |
- (double)lastVisitedTimestamp { |
DCHECK([self navigationManager]); |
- return |
- [[self navigationManager]->GetSessionController() lastVisitedTimestamp]; |
+ return [[self navigationManagerImpl]->GetSessionController() |
+ lastVisitedTimestamp]; |
} |
- (void)updateLastVisitedTimestamp { |
// Stores this information in self.history and it will be written into disc |
// with other information when needed. |
DCHECK([self navigationManager]); |
- [[self navigationManager]->GetSessionController() |
+ [[self navigationManagerImpl]->GetSessionController() |
setLastVisitedTimestamp:[[NSDate date] timeIntervalSince1970]]; |
} |