Index: content/browser/frame_host/navigation_controller_impl.cc |
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc |
index 01da9c130f57d116b8f931aa1b342e906fe7d8d5..884ff89d2985219784488fdb6645fc7c3c767810 100644 |
--- a/content/browser/frame_host/navigation_controller_impl.cc |
+++ b/content/browser/frame_host/navigation_controller_impl.cc |
@@ -813,10 +813,14 @@ bool NavigationControllerImpl::RendererDidNavigate( |
details->previous_entry_index = -1; |
} |
- // If we have a pending entry at this point, it should have a SiteInstance. |
- // Restored entries start out with a null SiteInstance, but we should have |
- // assigned one in NavigateToPendingEntry. |
- DCHECK(pending_entry_index_ == -1 || pending_entry_->site_instance()); |
+ // If there is a pending entry at this point, it should have a SiteInstance, |
+ // except for restored entries. |
+ DCHECK(pending_entry_index_ == -1 || |
+ pending_entry_->site_instance() || |
+ pending_entry_->restore_type() != NavigationEntryImpl::RESTORE_NONE); |
+ if (pending_entry_ && |
+ pending_entry_->restore_type() != NavigationEntryImpl::RESTORE_NONE) |
+ pending_entry_->set_restore_type(NavigationEntryImpl::RESTORE_NONE); |
// If we are doing a cross-site reload, we need to replace the existing |
// navigation entry, not add another entry to the history. This has the side |
@@ -1157,7 +1161,7 @@ void NavigationControllerImpl::RendererDidNavigateToExistingPage( |
// The site instance will normally be the same except during session restore, |
// when no site instance will be assigned. |
- DCHECK(entry->site_instance() == NULL || |
+ DCHECK(entry->site_instance() == nullptr || |
entry->site_instance() == rfh->GetSiteInstance()); |
entry->set_site_instance( |
static_cast<SiteInstanceImpl*>(rfh->GetSiteInstance())); |
@@ -1723,15 +1727,6 @@ void NavigationControllerImpl::NavigateToPendingEntry(ReloadType reload_type) { |
if (!success) |
DiscardNonCommittedEntries(); |
- |
- // If the entry is being restored and doesn't have a SiteInstance yet, fill |
- // it in now that we know. This allows us to find the entry when it commits. |
- if (pending_entry_ && !pending_entry_->site_instance() && |
- pending_entry_->restore_type() != NavigationEntryImpl::RESTORE_NONE) { |
- pending_entry_->set_site_instance(static_cast<SiteInstanceImpl*>( |
- delegate_->GetPendingSiteInstance())); |
- pending_entry_->set_restore_type(NavigationEntryImpl::RESTORE_NONE); |
- } |
} |
bool NavigationControllerImpl::NavigateToPendingEntryInternal( |