| Index: ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
|
| diff --git a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
|
| index 104978959777a314246cb43c5cda533d5725bd58..e6bb12720a20c57866b994fc37fffa5489a2448a 100644
|
| --- a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
|
| +++ b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_coordinator.mm
|
| @@ -15,6 +15,8 @@
|
| #import "ios/clean/chrome/browser/ui/commands/tab_grid_commands.h"
|
| #import "ios/clean/chrome/browser/ui/commands/tools_menu_commands.h"
|
| #import "ios/clean/chrome/browser/ui/context_menu/context_menu_context_impl.h"
|
| +#import "ios/clean/chrome/browser/ui/overlay_service/browser_coordinator+overlay_support.h"
|
| +#import "ios/clean/chrome/browser/ui/overlay_service/overlay_service.h"
|
| #import "ios/clean/chrome/browser/ui/settings/settings_coordinator.h"
|
| #import "ios/clean/chrome/browser/ui/tab/tab_coordinator.h"
|
| #import "ios/clean/chrome/browser/ui/tab_grid/tab_grid_mediator.h"
|
| @@ -129,23 +131,25 @@ - (void)showSettings {
|
| [dispatcher startDispatchingToTarget:self
|
| forSelector:@selector(closeSettings)];
|
| SettingsCoordinator* settingsCoordinator = [[SettingsCoordinator alloc] init];
|
| - [self addOverlayCoordinator:settingsCoordinator];
|
| + self.overlayService->ShowOverlayForBrowser(settingsCoordinator, self,
|
| + self.browser);
|
| self.settingsCoordinator = settingsCoordinator;
|
| - [settingsCoordinator start];
|
| }
|
|
|
| - (void)closeSettings {
|
| CommandDispatcher* dispatcher = self.browser->dispatcher();
|
| [dispatcher stopDispatchingForSelector:@selector(closeSettings)];
|
| [self.settingsCoordinator stop];
|
| - [self.settingsCoordinator.parentCoordinator
|
| - removeChildCoordinator:self.settingsCoordinator];
|
| - // self.settingsCoordinator should be presumed to be nil after this point.
|
| + // Stopping an overlay added to the OverlayService removes it from the
|
| + // overlay queue and schedules the next overlay to be shown. Since
|
| + // self.settingsController is weak, it is presumed nil after this point.
|
| }
|
|
|
| #pragma mark - TabGridCommands
|
|
|
| - (void)showTabGridTabAtIndex:(int)index {
|
| + if (index == self.webStateList.active_index())
|
| + return;
|
| self.webStateList.ActivateWebStateAt(index);
|
| // PLACEHOLDER: The tab coordinator should be able to get the active webState
|
| // on its own.
|
| @@ -208,8 +212,7 @@ - (void)openURL:(NSURL*)URL {
|
| if (self.webStateList.active_index() == WebStateList::kInvalidIndex) {
|
| return;
|
| }
|
| - [self.overlayCoordinator stop];
|
| - [self removeOverlayCoordinator];
|
| + self.overlayService->CancelOverlays();
|
| web::WebState* activeWebState = self.webStateList.GetActiveWebState();
|
| web::NavigationManager::WebLoadParams params(net::GURLWithNSURL(URL));
|
| params.transition_type = ui::PAGE_TRANSITION_LINK;
|
| @@ -240,17 +243,9 @@ - (void)registerForSettingsCommands {
|
| }
|
|
|
| - (void)registerForTabGridCommands {
|
| - [self.browser->dispatcher() startDispatchingToTarget:self
|
| - forSelector:@selector(showTabGrid)];
|
| - [self.browser->dispatcher()
|
| - startDispatchingToTarget:self
|
| - forSelector:@selector(showTabGridTabAtIndex:)];
|
| - [self.browser->dispatcher()
|
| - startDispatchingToTarget:self
|
| - forSelector:@selector(closeTabGridTabAtIndex:)];
|
| [self.browser->dispatcher()
|
| startDispatchingToTarget:self
|
| - forSelector:@selector(createAndShowNewTabInTabGrid)];
|
| + forProtocol:@protocol(TabGridCommands)];
|
| }
|
|
|
| - (void)registerForToolsMenuCommands {
|
|
|