| Index: content/browser/frame_host/navigator_impl.cc
|
| diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
|
| index 09d7ed98c8fd17451c99e81d4af0b1bcba6a6be1..63fa8111c1a2ffef5a4e8d6ff64522322d676386 100644
|
| --- a/content/browser/frame_host/navigator_impl.cc
|
| +++ b/content/browser/frame_host/navigator_impl.cc
|
| @@ -46,6 +46,7 @@
|
| #include "content/public/common/content_constants.h"
|
| #include "content/public/common/resource_response.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/url_util.h"
|
| #include "url/gurl.h"
|
|
|
| namespace content {
|
| @@ -402,6 +403,12 @@ bool NavigatorImpl::NavigateToEntry(
|
| if (is_pending_entry && controller_->GetPendingEntryIndex() != -1)
|
| DCHECK(frame_entry.page_state().IsValid());
|
|
|
| + bool is_history_navigation = frame_entry.page_state().IsValid();
|
| + bool is_same_document_fragment_change =
|
| + net::IsFragmentAddedOrUpdated(frame_tree_node->current_url(),
|
| + dest_url) &&
|
| + !is_history_navigation;
|
| +
|
| // Navigate in the desired RenderFrameHost.
|
| // We can skip this step in the rare case that this is a transfer navigation
|
| // which began in the chosen RenderFrameHost, since the request has already
|
| @@ -422,8 +429,8 @@ bool NavigatorImpl::NavigateToEntry(
|
| previews_state, navigation_start),
|
| entry.ConstructStartNavigationParams(),
|
| entry.ConstructRequestNavigationParams(
|
| - frame_entry, is_same_document_history_load,
|
| - is_history_navigation_in_new_child,
|
| + frame_entry, is_same_document_fragment_change,
|
| + is_same_document_history_load, is_history_navigation_in_new_child,
|
| entry.GetSubframeUniqueNames(frame_tree_node),
|
| frame_tree_node->has_committed_real_load(),
|
| controller_->GetPendingEntryIndex() == -1,
|
|
|