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 2f6328478cefc7fae6cc7cc061fd83eab5053205..2401af8c88cab3bffd62487006aa353b21bb6e2f 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -77,80 +77,6 @@ RenderFrameHostManager* GetRenderManager(RenderFrameHostImpl* rfh) { |
return rfh->frame_tree_node()->frame_tree()->root()->render_manager(); |
} |
-HistoryNavigationParams MakeHistoryParams( |
- const NavigationEntryImpl& entry, |
- NavigationControllerImpl* controller) { |
- int pending_history_list_offset = controller->GetIndexOfEntry(&entry); |
- int current_history_list_offset = controller->GetLastCommittedEntryIndex(); |
- int current_history_list_length = controller->GetEntryCount(); |
- if (entry.should_clear_history_list()) { |
- // Set the history list related parameters to the same values a |
- // NavigationController would return before its first navigation. This will |
- // fully clear the RenderView's view of the session history. |
- pending_history_list_offset = -1; |
- current_history_list_offset = -1; |
- current_history_list_length = 0; |
- } |
- return HistoryNavigationParams( |
- entry.GetPageState(), entry.GetPageID(), pending_history_list_offset, |
- current_history_list_offset, current_history_list_length, |
- entry.should_clear_history_list()); |
-} |
- |
-void MakeNavigateParams(const NavigationEntryImpl& entry, |
- NavigationControllerImpl* controller, |
- NavigationController::ReloadType reload_type, |
- base::TimeTicks navigation_start, |
- FrameMsg_Navigate_Params* params) { |
- FrameMsg_UILoadMetricsReportType::Value report_type = |
- FrameMsg_UILoadMetricsReportType::NO_REPORT; |
- base::TimeTicks ui_timestamp = base::TimeTicks(); |
-#if defined(OS_ANDROID) |
- if (!entry.intent_received_timestamp().is_null()) |
- report_type = FrameMsg_UILoadMetricsReportType::REPORT_INTENT; |
- ui_timestamp = entry.intent_received_timestamp(); |
-#endif |
- |
- params->common_params = CommonNavigationParams( |
- entry.GetURL(), entry.GetReferrer(), entry.GetTransitionType(), |
- GetNavigationType(controller->GetBrowserContext(), entry, reload_type), |
- !entry.IsViewSourceMode(), ui_timestamp, report_type, |
- entry.GetBaseURLForDataURL(), entry.GetHistoryURLForDataURL()); |
- params->commit_params = CommitNavigationParams( |
- entry.GetIsOverridingUserAgent(), navigation_start); |
- params->history_params = MakeHistoryParams(entry, controller); |
- |
- params->is_post = entry.GetHasPostData(); |
- params->extra_headers = entry.extra_headers(); |
- if (entry.GetBrowserInitiatedPostData()) { |
- params->browser_initiated_post_data.assign( |
- entry.GetBrowserInitiatedPostData()->front(), |
- entry.GetBrowserInitiatedPostData()->front() + |
- entry.GetBrowserInitiatedPostData()->size()); |
- } |
- |
- params->should_replace_current_entry = entry.should_replace_entry(); |
- // This is used by the old performance infrastructure to set up DocumentState |
- // associated with the RenderView. |
- // TODO(ppi): make it go away. |
- params->request_time = base::Time::Now(); |
- params->transferred_request_child_id = |
- entry.transferred_global_request_id().child_id; |
- params->transferred_request_request_id = |
- entry.transferred_global_request_id().request_id; |
- |
- // Set the redirect chain to the navigation's redirects, unless we are |
- // returning to a completed navigation (whose previous redirects don't apply). |
- if (ui::PageTransitionIsNewNavigation(params->common_params.transition)) { |
- params->redirects = entry.GetRedirectChain(); |
- } else { |
- params->redirects.clear(); |
- } |
- |
- params->can_load_local_resources = entry.GetCanLoadLocalResources(); |
- params->frame_to_navigate = entry.GetFrameToNavigate(); |
-} |
- |
} // namespace |
struct NavigatorImpl::NavigationMetricsData { |
@@ -372,30 +298,31 @@ bool NavigatorImpl::NavigateToEntry( |
dest_render_frame_host); |
} |
- // Create the navigation parameters. |
- // TODO(vitalybuka): Move this before AboutToNavigateRenderFrame once |
- // http://crbug.com/408684 is fixed. |
- FrameMsg_Navigate_Params navigate_params; |
- MakeNavigateParams( |
- entry, controller_, reload_type, navigation_start, &navigate_params); |
- |
// 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 |
// been issued. In that case, simply resume the response. |
bool is_transfer_to_same = |
- navigate_params.transferred_request_child_id != -1 && |
- navigate_params.transferred_request_child_id == |
+ entry.transferred_global_request_id().child_id != -1 && |
+ entry.transferred_global_request_id().child_id == |
dest_render_frame_host->GetProcess()->GetID(); |
if (!is_transfer_to_same) { |
navigation_data_.reset(new NavigationMetricsData( |
navigation_start, entry.GetURL(), entry.restore_type())); |
- dest_render_frame_host->Navigate(navigate_params); |
+ // Create the navigation parameters. |
+ // TODO(vitalybuka): Move this before AboutToNavigateRenderFrame once |
+ // http://crbug.com/408684 is fixed. |
+ FrameMsg_Navigate_Type::Value navigation_type = |
+ GetNavigationType(controller_->GetBrowserContext(), entry, reload_type); |
+ dest_render_frame_host->Navigate( |
+ entry.MakeCommonNavigationParams(navigation_type), |
+ entry.MakeStartNavigationParams(), |
+ entry.MakeCommitNavigationParams(navigation_start), |
+ entry.MakeHistoryNavigationParams(controller_)); |
} else { |
// No need to navigate again. Just resume the deferred request. |
dest_render_frame_host->GetProcess()->ResumeDeferredNavigation( |
- GlobalRequestID(navigate_params.transferred_request_child_id, |
- navigate_params.transferred_request_request_id)); |
+ entry.transferred_global_request_id()); |
} |
// Make sure no code called via RFH::Navigate clears the pending entry. |
@@ -848,9 +775,9 @@ void NavigatorImpl::RequestNavigation( |
FrameMsg_Navigate_Type::Value navigation_type = |
GetNavigationType(controller_->GetBrowserContext(), entry, reload_type); |
scoped_ptr<NavigationRequest> navigation_request = |
- NavigationRequest::CreateBrowserInitiated( |
- frame_tree_node, entry, navigation_type, navigation_start, |
- MakeHistoryParams(entry, controller_)); |
+ NavigationRequest::CreateBrowserInitiated(frame_tree_node, entry, |
+ navigation_type, |
+ navigation_start, controller_); |
// TODO(clamy): Check if navigations are blocked and if so store the |
// parameters. |