| 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 0491cfb0794e3e3b497d048ce104a8d52b42f3e6..fc9d0b721ac8189fefdd5b355564beaddc12c644 100644
|
| --- a/content/browser/frame_host/navigation_controller_impl.cc
|
| +++ b/content/browser/frame_host/navigation_controller_impl.cc
|
| @@ -387,7 +387,7 @@ NavigationEntryImpl* NavigationControllerImpl::GetEntryWithPageID(
|
| bool NavigationControllerImpl::HasCommittedRealLoad(
|
| FrameTreeNode* frame_tree_node) const {
|
| NavigationEntryImpl* last_committed = GetLastCommittedEntry();
|
| - return last_committed && last_committed->HasFrameEntry(frame_tree_node);
|
| + return last_committed && last_committed->GetFrameEntry(frame_tree_node);
|
| }
|
|
|
| void NavigationControllerImpl::LoadEntry(NavigationEntryImpl* entry) {
|
| @@ -1223,6 +1223,12 @@ void NavigationControllerImpl::RendererDidNavigateToNewPage(
|
| new_entry->SetOriginalRequestURL(params.original_request_url);
|
| new_entry->SetIsOverridingUserAgent(params.is_overriding_user_agent);
|
|
|
| + // Update the FrameNavigationEntry for new main frame commits.
|
| + FrameNavigationEntry* frame_entry =
|
| + new_entry->GetFrameEntry(rfh->frame_tree_node());
|
| + frame_entry->set_item_sequence_number(params.item_sequence_number);
|
| + frame_entry->set_document_sequence_number(params.document_sequence_number);
|
| +
|
| // history.pushState() is classified as a navigation to a new page, but
|
| // sets was_within_same_page to true. In this case, we already have the
|
| // title and favicon available, so set them immediately.
|
| @@ -1399,8 +1405,9 @@ void NavigationControllerImpl::RendererDidNavigateNewSubframe(
|
| switches::kSitePerProcess)) {
|
| // Make sure new_entry takes ownership of frame_entry in a scoped_refptr.
|
| FrameNavigationEntry* frame_entry = new FrameNavigationEntry(
|
| - rfh->frame_tree_node()->frame_tree_node_id(), rfh->GetSiteInstance(),
|
| - params.url, params.referrer);
|
| + rfh->frame_tree_node()->frame_tree_node_id(),
|
| + params.item_sequence_number, params.document_sequence_number,
|
| + rfh->GetSiteInstance(), params.url, params.referrer);
|
| new_entry = GetLastCommittedEntry()->CloneAndReplace(rfh->frame_tree_node(),
|
| frame_entry);
|
| CHECK(frame_entry->HasOneRef());
|
| @@ -1455,9 +1462,10 @@ bool NavigationControllerImpl::RendererDidNavigateAutoSubframe(
|
| // This may be a "new auto" case where we add a new FrameNavigationEntry, or
|
| // it may be a "history auto" case where we update an existing one.
|
| NavigationEntryImpl* last_committed = GetLastCommittedEntry();
|
| - last_committed->AddOrUpdateFrameEntry(rfh->frame_tree_node(),
|
| - rfh->GetSiteInstance(), params.url,
|
| - params.referrer, params.page_state);
|
| + last_committed->AddOrUpdateFrameEntry(
|
| + rfh->frame_tree_node(), params.item_sequence_number,
|
| + params.document_sequence_number, rfh->GetSiteInstance(), params.url,
|
| + params.referrer, params.page_state);
|
|
|
| // Cross-process subframe navigations may leave a pending entry around.
|
| // Clear it if it's actually for the subframe.
|
|
|