| Index: content/browser/frame_host/render_frame_host_manager.cc
|
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
|
| index a027d934f79c79b4d49711136289bdfe78d19f9f..3642a35173dffe61c1cd8f42f3f5b4c68c701b67 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -18,6 +18,7 @@
|
| #include "content/browser/frame_host/navigation_before_commit_info.h"
|
| #include "content/browser/frame_host/navigation_controller_impl.h"
|
| #include "content/browser/frame_host/navigation_entry_impl.h"
|
| +#include "content/browser/frame_host/navigation_parameters.h"
|
| #include "content/browser/frame_host/navigation_request.h"
|
| #include "content/browser/frame_host/navigation_request_info.h"
|
| #include "content/browser/frame_host/navigator.h"
|
| @@ -45,36 +46,6 @@
|
|
|
| namespace content {
|
|
|
| -namespace {
|
| -
|
| -// PlzNavigate
|
| -// Simulates a renderer response to a navigation request when there is no live
|
| -// renderer.
|
| -FrameHostMsg_BeginNavigation_Params BeginNavigationFromNavigate(
|
| - const FrameMsg_Navigate_Params& navigate_params) {
|
| - FrameHostMsg_BeginNavigation_Params begin_navigation_params;
|
| - begin_navigation_params.method = navigate_params.is_post ? "POST" : "GET";
|
| - begin_navigation_params.url = navigate_params.url;
|
| - begin_navigation_params.referrer =
|
| - Referrer(navigate_params.referrer.url, navigate_params.referrer.policy);
|
| -
|
| - // TODO(clamy): This should be modified to take into account caching policy
|
| - // requirements (eg for POST reloads).
|
| - begin_navigation_params.load_flags = net::LOAD_NORMAL;
|
| -
|
| - // TODO(clamy): Post data from the browser should be put in the request body.
|
| -
|
| - begin_navigation_params.has_user_gesture = false;
|
| - begin_navigation_params.transition_type = navigate_params.transition;
|
| - begin_navigation_params.should_replace_current_entry =
|
| - navigate_params.should_replace_current_entry;
|
| - begin_navigation_params.allow_download =
|
| - navigate_params.allow_download;
|
| - return begin_navigation_params;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| bool RenderFrameHostManager::ClearRFHsPendingShutdown(FrameTreeNode* node) {
|
| node->render_manager()->pending_delete_hosts_.clear();
|
| return true;
|
| @@ -548,10 +519,10 @@ void RenderFrameHostManager::ResetProxyHosts() {
|
|
|
| // PlzNavigate
|
| bool RenderFrameHostManager::RequestNavigation(
|
| - const NavigationEntryImpl& entry,
|
| - const FrameMsg_Navigate_Params& navigate_params) {
|
| + scoped_ptr<NavigationParameters> navigation_parameters) {
|
| CHECK(CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableBrowserSideNavigation));
|
| + navigation_parameters_ = navigation_parameters.Pass();
|
| // TODO(clamy): replace RenderViewHost::IsRenderViewLive by
|
| // RenderFrameHost::IsLive.
|
| if (render_frame_host_->render_view_host()->IsRenderViewLive())
|
| @@ -559,7 +530,7 @@ bool RenderFrameHostManager::RequestNavigation(
|
| return true;
|
|
|
| // The navigation request is sent directly to the IO thread.
|
| - OnBeginNavigation(BeginNavigationFromNavigate(navigate_params));
|
| + OnBeginNavigation(navigation_parameters_->SimulateRendererResponse());
|
| return true;
|
| }
|
|
|
| @@ -568,6 +539,8 @@ void RenderFrameHostManager::OnBeginNavigation(
|
| const FrameHostMsg_BeginNavigation_Params& params) {
|
| CHECK(CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kEnableBrowserSideNavigation));
|
| + DCHECK(navigation_parameters_.get());
|
| + navigation_parameters_->UpdateFromBeginNavigationParams(params);
|
| // TODO(clamy): Check if navigations are blocked and if so, return
|
| // immediately.
|
| NavigationRequestInfo info(params);
|
| @@ -578,6 +551,7 @@ void RenderFrameHostManager::OnBeginNavigation(
|
| info.parent_is_main_frame = !frame_tree_node_->parent() ?
|
| false : frame_tree_node_->parent()->IsMainFrame();
|
| info.is_showing = GetRenderWidgetHostView()->IsShowing();
|
| + info.allow_download = navigation_parameters_->allow_download();
|
|
|
| // TODO(clamy): Check if the current RFH should be initialized (in case it has
|
| // crashed) not to display a sad tab while navigating.
|
| @@ -632,8 +606,11 @@ void RenderFrameHostManager::CommitNavigation(
|
| }
|
| }
|
|
|
| + DCHECK(navigation_parameters_.get());
|
| + navigation_parameters_->UpdateFromCommitInfo(info);
|
| frame_tree_node_->navigator()->CommitNavigation(
|
| - render_frame_host_.get(), info);
|
| + render_frame_host_.get(),
|
| + navigation_parameters_->MakeCommitNavigationParams());
|
| }
|
|
|
| void RenderFrameHostManager::Observe(
|
|
|