| Index: ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm
|
| diff --git a/ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm
|
| index 99622659ad7d02ce70daae5aef1cc6e09e8c1c4b..502ca999b4879314f9fad173413e4af586913740 100644
|
| --- a/ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm
|
| +++ b/ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.mm
|
| @@ -50,7 +50,6 @@
|
| #import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h"
|
| #import "ios/web/public/navigation_manager.h"
|
| #include "ios/web/public/referrer.h"
|
| -#import "ios/web/web_state/ui/crw_web_controller.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
|
|
| @@ -843,56 +842,25 @@ enum class SnapshotViewOption {
|
| atIndex:(NSUInteger)position
|
| transition:(ui::PageTransition)transition
|
| tabModel:(TabModel*)tabModel {
|
| - web::NavigationManager::WebLoadParams params(URL);
|
| - params.referrer = web::Referrer();
|
| - params.transition_type = transition;
|
| + NSUInteger tabIndex = position;
|
| + if (position > tabModel.count)
|
| + tabIndex = tabModel.count;
|
|
|
| - DCHECK(tabModel.browserState);
|
| + web::NavigationManager::WebLoadParams loadParams(URL);
|
| + loadParams.transition_type = transition;
|
|
|
| - base::scoped_nsobject<Tab> tab([[Tab alloc]
|
| - initWithBrowserState:tabModel.browserState
|
| - opener:nil
|
| - openedByDOM:NO
|
| - model:tabModel]);
|
| - [tab webController].webUsageEnabled = tabModel.webUsageEnabled;
|
| + Tab* tab = [tabModel insertTabWithLoadParams:loadParams
|
| + opener:nil
|
| + openedByDOM:NO
|
| + atIndex:tabIndex
|
| + inBackground:NO];
|
|
|
| - ProceduralBlock dismissWithNewTab = ^{
|
| - NSUInteger tabIndex = position;
|
| - if (position > tabModel.count)
|
| - tabIndex = tabModel.count;
|
| - [tabModel insertTab:tab atIndex:tabIndex];
|
| -
|
| - if (tabModel.tabUsageRecorder)
|
| - tabModel.tabUsageRecorder->TabCreatedForSelection(tab);
|
| -
|
| - [[tab webController] loadWithParams:params];
|
| -
|
| - if (tabModel.webUsageEnabled) {
|
| - [tab setWebUsageEnabled:tabModel.webUsageEnabled];
|
| - [[tab webController] triggerPendingLoad];
|
| - }
|
| -
|
| - NSDictionary* userInfo = @{
|
| - kTabModelTabKey : tab,
|
| - kTabModelOpenInBackgroundKey : @(NO),
|
| - };
|
| -
|
| - [[NSNotificationCenter defaultCenter]
|
| - postNotificationName:kTabModelNewTabWillOpenNotification
|
| - object:self
|
| - userInfo:userInfo];
|
| -
|
| - [tabModel setCurrentTab:tab];
|
| -
|
| - [self
|
| - tabSwitcherDismissWithModel:tabModel
|
| + [self tabSwitcherDismissWithModel:tabModel
|
| animated:YES
|
| withCompletion:^{
|
| [self.delegate tabSwitcherDismissTransitionDidEnd:self];
|
| }];
|
| - };
|
|
|
| - dismissWithNewTab();
|
| return tab;
|
| }
|
|
|
| @@ -1242,7 +1210,13 @@ enum class SnapshotViewOption {
|
| DCHECK(tab);
|
| const TabSwitcherSessionType panelSessionType =
|
| tabSwitcherPanelController.sessionType;
|
| - [tab close];
|
| + TabModel* tabModel =
|
| + panelSessionType == TabSwitcherSessionType::OFF_THE_RECORD_SESSION
|
| + ? [_tabSwitcherModel otrTabModel]
|
| + : [_tabSwitcherModel mainTabModel];
|
| + DCHECK_NE(NSNotFound, static_cast<NSInteger>([tabModel indexOfTab:tab]));
|
| + [tabModel closeTab:tab];
|
| +
|
| if (panelSessionType == TabSwitcherSessionType::OFF_THE_RECORD_SESSION) {
|
| base::RecordAction(
|
| base::UserMetricsAction("MobileTabSwitcherCloseIncognitoTab"));
|
|
|