Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: content/browser/frame_host/navigator_impl.cc

Issue 1999943002: Moving HTTP POST body from StartNavigationParams to CommonNavigationParams. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed CR feedback from clamy@. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/navigator_impl.h" 5 #include "content/browser/frame_host/navigator_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 is_transfer && 380 is_transfer &&
381 entry.transferred_global_request_id().child_id == 381 entry.transferred_global_request_id().child_id ==
382 dest_render_frame_host->GetProcess()->GetID(); 382 dest_render_frame_host->GetProcess()->GetID();
383 if (!is_transfer_to_same) { 383 if (!is_transfer_to_same) {
384 navigation_data_.reset(new NavigationMetricsData( 384 navigation_data_.reset(new NavigationMetricsData(
385 navigation_start, dest_url, entry.restore_type())); 385 navigation_start, dest_url, entry.restore_type()));
386 // Create the navigation parameters. 386 // Create the navigation parameters.
387 FrameMsg_Navigate_Type::Value navigation_type = GetNavigationType( 387 FrameMsg_Navigate_Type::Value navigation_type = GetNavigationType(
388 controller_->GetBrowserContext(), entry, reload_type); 388 controller_->GetBrowserContext(), entry, reload_type);
389 dest_render_frame_host->Navigate( 389 dest_render_frame_host->Navigate(
390 entry.ConstructCommonNavigationParams(frame_entry, dest_url, 390 entry.ConstructCommonNavigationParams(frame_entry, nullptr, dest_url,
391 dest_referrer, navigation_type, 391 dest_referrer, navigation_type,
392 lofi_state, navigation_start), 392 lofi_state, navigation_start),
393 entry.ConstructStartNavigationParams(), 393 entry.ConstructStartNavigationParams(),
394 entry.ConstructRequestNavigationParams( 394 entry.ConstructRequestNavigationParams(
395 frame_entry, is_same_document_history_load, 395 frame_entry, is_same_document_history_load,
396 frame_tree_node->has_committed_real_load(), 396 frame_tree_node->has_committed_real_load(),
397 controller_->GetPendingEntryIndex() == -1, 397 controller_->GetPendingEntryIndex() == -1,
398 controller_->GetIndexOfEntry(&entry), 398 controller_->GetIndexOfEntry(&entry),
399 controller_->GetLastCommittedEntryIndex(), 399 controller_->GetLastCommittedEntryIndex(),
400 controller_->GetEntryCount())); 400 controller_->GetEntryCount()));
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 if (proceed) 853 if (proceed)
854 navigation_request->BeginNavigation(); 854 navigation_request->BeginNavigation();
855 else 855 else
856 CancelNavigation(frame_tree_node); 856 CancelNavigation(frame_tree_node);
857 } 857 }
858 858
859 // PlzNavigate 859 // PlzNavigate
860 void NavigatorImpl::OnBeginNavigation( 860 void NavigatorImpl::OnBeginNavigation(
861 FrameTreeNode* frame_tree_node, 861 FrameTreeNode* frame_tree_node,
862 const CommonNavigationParams& common_params, 862 const CommonNavigationParams& common_params,
863 const BeginNavigationParams& begin_params, 863 const BeginNavigationParams& begin_params) {
864 scoped_refptr<ResourceRequestBody> body) {
865 // TODO(clamy): the url sent by the renderer should be validated with 864 // TODO(clamy): the url sent by the renderer should be validated with
866 // FilterURL. 865 // FilterURL.
867 // This is a renderer-initiated navigation. 866 // This is a renderer-initiated navigation.
868 CHECK(IsBrowserSideNavigationEnabled()); 867 CHECK(IsBrowserSideNavigationEnabled());
869 DCHECK(frame_tree_node); 868 DCHECK(frame_tree_node);
870 869
871 NavigationRequest* ongoing_navigation_request = 870 NavigationRequest* ongoing_navigation_request =
872 frame_tree_node->navigation_request(); 871 frame_tree_node->navigation_request();
873 872
874 // The renderer-initiated navigation request is ignored iff a) there is an 873 // The renderer-initiated navigation request is ignored iff a) there is an
875 // ongoing request b) which is browser or user-initiated and c) the renderer 874 // ongoing request b) which is browser or user-initiated and c) the renderer
876 // request is not user-initiated. 875 // request is not user-initiated.
877 if (ongoing_navigation_request && 876 if (ongoing_navigation_request &&
878 (ongoing_navigation_request->browser_initiated() || 877 (ongoing_navigation_request->browser_initiated() ||
879 ongoing_navigation_request->begin_params().has_user_gesture) && 878 ongoing_navigation_request->begin_params().has_user_gesture) &&
880 !begin_params.has_user_gesture) { 879 !begin_params.has_user_gesture) {
881 RenderFrameHost* current_frame_host = 880 RenderFrameHost* current_frame_host =
882 frame_tree_node->render_manager()->current_frame_host(); 881 frame_tree_node->render_manager()->current_frame_host();
883 current_frame_host->Send( 882 current_frame_host->Send(
884 new FrameMsg_Stop(current_frame_host->GetRoutingID())); 883 new FrameMsg_Stop(current_frame_host->GetRoutingID()));
885 return; 884 return;
886 } 885 }
887 886
888 // In all other cases the current navigation, if any, is canceled and a new 887 // In all other cases the current navigation, if any, is canceled and a new
889 // NavigationRequest is created for the node. 888 // NavigationRequest is created for the node.
890 frame_tree_node->CreatedNavigationRequest( 889 frame_tree_node->CreatedNavigationRequest(
891 NavigationRequest::CreateRendererInitiated( 890 NavigationRequest::CreateRendererInitiated(
892 frame_tree_node, common_params, begin_params, body, 891 frame_tree_node, common_params, begin_params,
893 controller_->GetLastCommittedEntryIndex(), 892 controller_->GetLastCommittedEntryIndex(),
894 controller_->GetEntryCount())); 893 controller_->GetEntryCount()));
895 NavigationRequest* navigation_request = frame_tree_node->navigation_request(); 894 NavigationRequest* navigation_request = frame_tree_node->navigation_request();
896 if (frame_tree_node->IsMainFrame()) { 895 if (frame_tree_node->IsMainFrame()) {
897 // Renderer-initiated main-frame navigations that need to swap processes 896 // Renderer-initiated main-frame navigations that need to swap processes
898 // will go to the browser via a OpenURL call, and then be handled by the 897 // will go to the browser via a OpenURL call, and then be handled by the
899 // same code path as browser-initiated navigations. For renderer-initiated 898 // same code path as browser-initiated navigations. For renderer-initiated
900 // main frame navigation that start via a BeginNavigation IPC, the 899 // main frame navigation that start via a BeginNavigation IPC, the
901 // RenderFrameHost will not be swapped. Therefore it is safe to call 900 // RenderFrameHost will not be swapped. Therefore it is safe to call
902 // DidStartMainFrameNavigation with the SiteInstance from the current 901 // DidStartMainFrameNavigation with the SiteInstance from the current
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 if (pending_entry != controller_->GetVisibleEntry() || 1163 if (pending_entry != controller_->GetVisibleEntry() ||
1165 !should_preserve_entry) { 1164 !should_preserve_entry) {
1166 controller_->DiscardPendingEntry(true); 1165 controller_->DiscardPendingEntry(true);
1167 1166
1168 // Also force the UI to refresh. 1167 // Also force the UI to refresh.
1169 controller_->delegate()->NotifyNavigationStateChanged(INVALIDATE_TYPE_URL); 1168 controller_->delegate()->NotifyNavigationStateChanged(INVALIDATE_TYPE_URL);
1170 } 1169 }
1171 } 1170 }
1172 1171
1173 } // namespace content 1172 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698