| Index: ios/chrome/browser/ui/browser_view_controller.mm
|
| diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
|
| index 6a4a6377932b8bb80bc74322b25a863d130bcf91..59a76ae81321b5afa2632fe4593f5a8bdbe20aed 100644
|
| --- a/ios/chrome/browser/ui/browser_view_controller.mm
|
| +++ b/ios/chrome/browser/ui/browser_view_controller.mm
|
| @@ -3678,15 +3678,12 @@ - (void)loadURL:(const GURL&)url
|
| Tab* newTab = [_preloadController releasePrerenderContents];
|
| DCHECK(oldTab);
|
| DCHECK(newTab);
|
| - if (oldTab && newTab) {
|
| + bool canPruneItems =
|
| + [newTab navigationManager]->CanPruneAllButLastCommittedItem();
|
| + if (oldTab && newTab && canPruneItems) {
|
| [oldTab recordStateInHistory];
|
| - DCHECK([newTab navigationManager]);
|
| - CRWSessionController* newHistory =
|
| - [newTab navigationManagerImpl]->GetSessionController();
|
| - DCHECK([oldTab navigationManager]);
|
| - CRWSessionController* oldHistory =
|
| - [oldTab navigationManagerImpl]->GetSessionController();
|
| - [newHistory insertStateFromSessionController:oldHistory];
|
| + [newTab navigationManager]->CopyStateFromAndPrune(
|
| + [oldTab navigationManager]);
|
| [[newTab nativeAppNavigationController]
|
| copyStateFrom:[oldTab nativeAppNavigationController]];
|
| [_model replaceTab:oldTab withTab:newTab];
|
|
|