Prerender: Add Prerendering State to NavigationRequest and
RenderFrameHostImpl

This CL adds a new param is_prerendering to LoadURLParams struct, the
param indicates if the created navigation is a prerendering one.
NavigationRequest stores the flag and shares the flag with
RenderFrameHostImpl when committing a navigation to it.

Please note that for now only the main frame of the page knows the
prerendering state. More changes will be made in follow-up CLs.

Bug: 1142658
Change-Id: Ib351172dadfcf1c46d08276bd3ef527e61a65a8e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2583677
Commit-Queue: Matt Falkenhagen <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Reviewed-by: Hiroki Nakagawa <[email protected]>
Cr-Commit-Position: refs/heads/master@{#839543}
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
index 6fe6df67..c559302 100644
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -3492,7 +3492,7 @@
 
   auto navigation_request = NavigationRequest::CreateBrowserInitiated(
       node, std::move(common_params), std::move(commit_params),
-      !params.is_renderer_initiated,
+      !params.is_renderer_initiated, params.is_prerendering,
       params.initiator_frame_token.has_value()
           ? &(params.initiator_frame_token.value())
           : nullptr,
@@ -3613,7 +3613,8 @@
 
   return NavigationRequest::CreateBrowserInitiated(
       frame_tree_node, std::move(common_params), std::move(commit_params),
-      !entry->is_renderer_initiated(), nullptr /* initiator_frame_token */,
+      !entry->is_renderer_initiated(), false /* is_prerendering */,
+      nullptr /* initiator_frame_token */,
       ChildProcessHost::kInvalidUniqueID /* initiator_process_id */,
       entry->extra_headers(), frame_entry, entry, request_body,
       nullptr /* navigation_ui_data */, base::nullopt /* impression */);
@@ -3714,7 +3715,8 @@
   std::unique_ptr<NavigationRequest> navigation_request =
       NavigationRequest::CreateBrowserInitiated(
           node, std::move(common_params), std::move(commit_params),
-          true /* browser_initiated */, nullptr /* initiator_frame_token */,
+          true /* browser_initiated */, false /* is_prerendering */,
+          nullptr /* initiator_frame_token */,
           ChildProcessHost::kInvalidUniqueID /* initiator_process_id */,
           "" /* extra_headers */, nullptr /* frame_entry */,
           nullptr /* entry */, nullptr /* post_body */,