| Index: ios/chrome/browser/ui/ntp/google_landing_mediator.mm
|
| diff --git a/ios/chrome/browser/ui/ntp/google_landing_mediator.mm b/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
|
| index 70297c09b0cc80eb88085a480018b9b1c7aba6d3..5dfa2c379cae5256d8907e7b147f4b4517212b6a 100644
|
| --- a/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
|
| +++ b/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
|
| @@ -35,6 +35,7 @@
|
| #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h"
|
| #include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
|
| #include "ios/public/provider/chrome/browser/voice/voice_search_provider.h"
|
| +#include "ios/web/public/web_state/web_state.h"
|
|
|
| using base::UserMetricsAction;
|
|
|
| @@ -175,6 +176,12 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
|
| [_consumer
|
| setMaximumMostVisitedSitesShown:[GoogleLandingMediator maxSitesShown]];
|
| [_consumer setTabCount:self.webStateList->count()];
|
| + web::WebState* webState = _webStateList->GetActiveWebState();
|
| + if (webState) {
|
| + web::NavigationManager* nav = webState->GetNavigationManager();
|
| + [_consumer setCanGoForward:nav->CanGoForward()];
|
| + [_consumer setCanGoBack:nav->CanGoBack()];
|
| + }
|
|
|
| // Set up template URL service to listen for default search engine changes.
|
| _templateURLService =
|
| @@ -278,6 +285,22 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
|
| [self.consumer setTabCount:self.webStateList->count()];
|
| }
|
|
|
| +// If the actual webState associated with this mediator were passed in, this
|
| +// would not be necessary. However, since the active webstate can change when
|
| +// the new tab page is created (and animated in), listen for changes here and
|
| +// always display what's active.
|
| +- (void)webStateList:(WebStateList*)webStateList
|
| + didChangeActiveWebState:(web::WebState*)newWebState
|
| + oldWebState:(web::WebState*)oldWebState
|
| + atIndex:(int)atIndex
|
| + userAction:(BOOL)userAction {
|
| + if (newWebState) {
|
| + web::NavigationManager* nav = newWebState->GetNavigationManager();
|
| + [self.consumer setCanGoForward:nav->CanGoForward()];
|
| + [self.consumer setCanGoBack:nav->CanGoBack()];
|
| + }
|
| +}
|
| +
|
| #pragma mark - GoogleLandingDataSource
|
|
|
| - (void)addBlacklistedURL:(const GURL&)url {
|
| @@ -317,10 +340,6 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
|
| return IOSChromeLargeIconServiceFactory::GetForBrowserState(_browserState);
|
| }
|
|
|
| -- (id<WebToolbarDelegate>)toolbarDelegate {
|
| - return _webToolbarDelegate;
|
| -}
|
| -
|
| - (void)promoViewed {
|
| DCHECK(_notification_promo);
|
| _notification_promo->HandleViewed();
|
| @@ -350,6 +369,10 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
|
| NOTREACHED();
|
| }
|
|
|
| +- (void)prepareToEnterTabSwitcher:(id)sender {
|
| + [_webToolbarDelegate prepareToEnterTabSwitcher:sender];
|
| +}
|
| +
|
| #pragma mark - UrlLoader
|
|
|
| - (void)loadURL:(const GURL&)url
|
|
|