| Index: content/browser/frame_host/navigation_request.cc
|
| diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
|
| index bf8c9444a5cb7d18aedb5713730a2206ede76713..3a566023cd1a3326df8abffdadd7f9cc47582299 100644
|
| --- a/content/browser/frame_host/navigation_request.cc
|
| +++ b/content/browser/frame_host/navigation_request.cc
|
| @@ -201,16 +201,18 @@ std::unique_ptr<NavigationRequest> NavigationRequest::CreateBrowserInitiated(
|
| request_body = frame_entry.GetPostData();
|
|
|
| std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest(
|
| - frame_tree_node, entry.ConstructCommonNavigationParams(
|
| - frame_entry, request_body, dest_url, dest_referrer,
|
| - navigation_type, lofi_state, navigation_start),
|
| + frame_tree_node,
|
| + entry.ConstructCommonNavigationParams(frame_entry, request_body, dest_url,
|
| + dest_referrer, navigation_type,
|
| + lofi_state, navigation_start),
|
| BeginNavigationParams(entry.extra_headers(), net::LOAD_NORMAL,
|
| false, // has_user_gestures
|
| false, // skip_service_worker
|
| REQUEST_CONTEXT_TYPE_LOCATION),
|
| entry.ConstructRequestNavigationParams(
|
| - frame_entry, is_same_document_history_load,
|
| - is_history_navigation_in_new_child,
|
| + frame_entry, net::AreURLsInPageNavigation(
|
| + frame_tree_node->current_url(), dest_url),
|
| + 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,
|
| @@ -240,6 +242,7 @@ std::unique_ptr<NavigationRequest> NavigationRequest::CreateRendererInitiated(
|
| false, // can_load_local_resources
|
| PageState(), // page_state
|
| 0, // nav_entry_id
|
| + false, // is_same_document_navigation
|
| false, // is_same_document_history_load
|
| false, // is_history_navigation_in_new_child
|
| std::map<std::string, bool>(), // subframe_unique_names
|
| @@ -316,7 +319,8 @@ void NavigationRequest::BeginNavigation() {
|
| state_ = STARTED;
|
| RenderFrameDevToolsAgentHost::OnBeforeNavigation(navigation_handle_.get());
|
|
|
| - if (ShouldMakeNetworkRequestForURL(common_params_.url)) {
|
| + if (ShouldMakeNetworkRequestForURL(common_params_.url) &&
|
| + !request_params_.is_same_document_navigation) {
|
| // It's safe to use base::Unretained because this NavigationRequest owns
|
| // the NavigationHandle where the callback will be stored.
|
| // TODO(clamy): pass the real value for |is_external_protocol| if needed.
|
| @@ -643,7 +647,8 @@ void NavigationRequest::OnWillProcessResponseChecksComplete(
|
| }
|
|
|
| void NavigationRequest::CommitNavigation() {
|
| - DCHECK(response_ || !ShouldMakeNetworkRequestForURL(common_params_.url));
|
| + DCHECK(response_ || !ShouldMakeNetworkRequestForURL(common_params_.url) ||
|
| + request_params_.is_same_document_navigation);
|
| DCHECK(!common_params_.url.SchemeIs(url::kJavaScriptScheme));
|
|
|
| // Retrieve the RenderFrameHost that needs to commit the navigation.
|
|
|