| 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 6f7126c3ec6c22ecb78e574af5a04456cf920c99..59a1465798a14451406ee90f5b662f94504874c5 100644
|
| --- a/content/browser/frame_host/navigation_controller_impl.cc
|
| +++ b/content/browser/frame_host/navigation_controller_impl.cc
|
| @@ -888,7 +888,12 @@ bool NavigationControllerImpl::RendererDidNavigate(
|
| navigation_handle);
|
| break;
|
| case NAVIGATION_TYPE_EXISTING_PAGE:
|
| - details->did_replace_entry = details->is_same_document;
|
| + // In-page navigations always replace the previous entry. This is the
|
| + // case for history.replaceState(), as well as back and forward across
|
| + // fragment entries and history.pushState() entries.
|
| + if (details->is_same_document)
|
| + details->did_replace_entry = true;
|
| +
|
| RendererDidNavigateToExistingPage(rfh, params, details->is_same_document,
|
| was_restored, navigation_handle);
|
| break;
|
|
|