| 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..9d1a6bfb421b1fd72832044152a7b607ab025501 100644
|
| --- a/ios/chrome/browser/ui/browser_view_controller.mm
|
| +++ b/ios/chrome/browser/ui/browser_view_controller.mm
|
| @@ -3678,15 +3678,15 @@ - (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];
|
| + [newHistory copyStateFromSessionControllerAndPrune:oldHistory];
|
| [[newTab nativeAppNavigationController]
|
| copyStateFrom:[oldTab nativeAppNavigationController]];
|
| [_model replaceTab:oldTab withTab:newTab];
|
|
|