Reland "Convert content::CommitNavigationParams to mojom."
This is a reland of f9763b52230da0420d0bcf051d643b45e6fd6dd0
Original change's description:
> Convert content::CommitNavigationParams to mojom.
>
> Bug: 984550
> Change-Id: Ic966c764e7fb52a9fb8d2ea44d9777bd8c1e4011
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1725096
> Reviewed-by: Avi Drissman <[email protected]>
> Reviewed-by: Scott Graham <[email protected]>
> Reviewed-by: Nasko Oskov <[email protected]>
> Commit-Queue: Lucas Gadani <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#682795}
Tbr: [email protected]
Bug: 984550
Change-Id: I3ec99e6c57e33cd85203125c250a26b4e50384a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1729921
Reviewed-by: Lucas Gadani <[email protected]>
Commit-Queue: Lucas Gadani <[email protected]>
Cr-Commit-Position: refs/heads/master@{#682950}
diff --git a/chrome/browser/media/unified_autoplay_browsertest.cc b/chrome/browser/media/unified_autoplay_browsertest.cc
index 893b99b..b391ecb 100644
--- a/chrome/browser/media/unified_autoplay_browsertest.cc
+++ b/chrome/browser/media/unified_autoplay_browsertest.cc
@@ -283,7 +283,7 @@
const GURL kTestPageUrl = embedded_test_server()->GetURL(kTestPagePath);
NavigateParams params(browser(), kTestPageUrl, ui::PAGE_TRANSITION_LINK);
- params.was_activated = content::WasActivatedOption::kYes;
+ params.was_activated = content::mojom::WasActivatedOption::kYes;
ui_test_utils::NavigateToURL(¶ms);
EXPECT_TRUE(AttemptPlay(GetWebContents()));
@@ -296,7 +296,7 @@
const GURL kTestPageUrl = embedded_test_server()->GetURL(kTestPagePath);
NavigateParams params(browser(), kRedirectPageUrl, ui::PAGE_TRANSITION_LINK);
- params.was_activated = content::WasActivatedOption::kYes;
+ params.was_activated = content::mojom::WasActivatedOption::kYes;
ui_test_utils::NavigateToURL(¶ms);
EXPECT_TRUE(NavigateInRenderer(GetWebContents(), kTestPageUrl));
@@ -326,7 +326,7 @@
embedded_test_server()->GetURL("foo.example.com", kTestPagePath);
NavigateParams params(browser(), kRedirectPageUrl, ui::PAGE_TRANSITION_LINK);
- params.was_activated = content::WasActivatedOption::kYes;
+ params.was_activated = content::mojom::WasActivatedOption::kYes;
ui_test_utils::NavigateToURL(¶ms);
EXPECT_TRUE(NavigateInRenderer(GetWebContents(), kTestPageUrl));
diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc
index 181f4c6..e49888c2 100644
--- a/chrome/browser/ui/ash/chrome_new_window_client.cc
+++ b/chrome/browser/ui/ash/chrome_new_window_client.cc
@@ -57,7 +57,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/common/service_manager_connection.h"
#include "content/public/common/user_agent.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/constants.h"
@@ -611,7 +611,7 @@
ui::PAGE_TRANSITION_FROM_API));
if (from_user_interaction)
- navigate_params.was_activated = content::WasActivatedOption::kYes;
+ navigate_params.was_activated = content::mojom::WasActivatedOption::kYes;
Navigate(&navigate_params);
diff --git a/chrome/browser/ui/browser_navigator_params.h b/chrome/browser/ui/browser_navigator_params.h
index d2954c8..042bc79 100644
--- a/chrome/browser/ui/browser_navigator_params.h
+++ b/chrome/browser/ui/browser_navigator_params.h
@@ -16,7 +16,7 @@
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/common/referrer.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "services/network/public/cpp/resource_request_body.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "ui/base/page_transition_types.h"
@@ -276,8 +276,8 @@
// outside of the page and pass it to the page as if it happened on a prior
// page. For example, if the assistant opens a page we should treat the
// user's interaction with the assistant as a previous user activation.
- content::WasActivatedOption was_activated =
- content::WasActivatedOption::kUnknown;
+ content::mojom::WasActivatedOption was_activated =
+ content::mojom::WasActivatedOption::kUnknown;
// If this navigation was initiated from a link that specified the
// hrefTranslate attribute, this contains the attribute's value (a BCP47
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
index 19dc104..76ddadd 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1581,7 +1581,8 @@
headers_dict->setString(net::HttpRequestHeaders::kReferer, referrer.spec());
std::unique_ptr<Network::Response> redirect_response;
- const CommitNavigationParams& commit_params = nav_request.commit_params();
+ const mojom::CommitNavigationParams& commit_params =
+ nav_request.commit_params();
if (!commit_params.redirect_response.empty()) {
redirect_response = BuildResponse(commit_params.redirects.back(),
commit_params.redirect_response.back());
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index 2b7c0c1a..a960d28 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -2271,7 +2271,7 @@
params.started_from_context_menu = false;
/* params.navigation_ui_data: skip */
/* params.input_start: skip */
- params.was_activated = WasActivatedOption::kUnknown;
+ params.was_activated = mojom::WasActivatedOption::kUnknown;
/* params.reload_type: skip */
std::unique_ptr<NavigationRequest> request =
@@ -3086,22 +3086,36 @@
false /* is_history_navigation_in_new_child_frame */,
params.input_start);
- CommitNavigationParams commit_params(
- frame_entry->committed_origin(), override_user_agent,
- params.redirect_chain, common_params->url, common_params->method,
- params.can_load_local_resources, frame_entry->page_state(),
- entry->GetUniqueID(), entry->GetSubframeUniqueNames(node),
- true /* intended_as_new_entry */, -1 /* pending_history_list_offset */,
- params.should_clear_history_list ? -1 : GetLastCommittedEntryIndex(),
- params.should_clear_history_list ? 0 : GetEntryCount(),
- is_view_source_mode, params.should_clear_history_list);
+ mojom::CommitNavigationParamsPtr commit_params =
+ mojom::CommitNavigationParams::New(
+ frame_entry->committed_origin(), override_user_agent,
+ params.redirect_chain, std::vector<network::ResourceResponseHead>(),
+ std::vector<net::RedirectInfo>(),
+ std::string() /* post_content_type */, common_params->url,
+ common_params->method, params.can_load_local_resources,
+ frame_entry->page_state(), entry->GetUniqueID(),
+ entry->GetSubframeUniqueNames(node), true /* intended_as_new_entry */,
+ -1 /* pending_history_list_offset */,
+ params.should_clear_history_list ? -1 : GetLastCommittedEntryIndex(),
+ params.should_clear_history_list ? 0 : GetEntryCount(),
+ false /* was_discarded */, is_view_source_mode,
+ params.should_clear_history_list, mojom::NavigationTiming::New(),
+ base::nullopt /* appcache_host_id */,
+ mojom::WasActivatedOption::kUnknown,
+ base::UnguessableToken::Create() /* navigation_token */,
+ std::vector<PrefetchedSignedExchangeInfo>(),
+#if defined(OS_ANDROID)
+ std::string(), /* data_url_as_string */
+#endif
+ false /* is_browser_initiated */
+ );
#if defined(OS_ANDROID)
if (ValidateDataURLAsString(params.data_url_as_string)) {
- commit_params.data_url_as_string = params.data_url_as_string->data();
+ commit_params->data_url_as_string = params.data_url_as_string->data();
}
#endif
- commit_params.was_activated = params.was_activated;
+ commit_params->was_activated = params.was_activated;
// A form submission may happen here if the navigation is a renderer-initiated
// form submission that took the OpenURL path.
@@ -3112,7 +3126,7 @@
base::ReplaceChars(params.extra_headers, "\n", "\r\n", &extra_headers_crlf);
auto navigation_request = NavigationRequest::CreateBrowserInitiated(
- node, std::move(common_params), commit_params,
+ node, std::move(common_params), std::move(commit_params),
!params.is_renderer_initiated, extra_headers_crlf, *frame_entry, entry,
request_body,
params.navigation_ui_data ? params.navigation_ui_data->Clone() : nullptr);
@@ -3212,15 +3226,17 @@
// TODO(clamy): |intended_as_new_entry| below should always be false once
// Reload no longer leads to this being called for a pending NavigationEntry
// of index -1.
- CommitNavigationParams commit_params = entry->ConstructCommitNavigationParams(
- *frame_entry, common_params->url, origin_to_commit, common_params->method,
- entry->GetSubframeUniqueNames(frame_tree_node),
- GetPendingEntryIndex() == -1 /* intended_as_new_entry */,
- GetIndexOfEntry(entry), GetLastCommittedEntryIndex(), GetEntryCount());
- commit_params.post_content_type = post_content_type;
+ mojom::CommitNavigationParamsPtr commit_params =
+ entry->ConstructCommitNavigationParams(
+ *frame_entry, common_params->url, origin_to_commit,
+ common_params->method, entry->GetSubframeUniqueNames(frame_tree_node),
+ GetPendingEntryIndex() == -1 /* intended_as_new_entry */,
+ GetIndexOfEntry(entry), GetLastCommittedEntryIndex(),
+ GetEntryCount());
+ commit_params->post_content_type = post_content_type;
return NavigationRequest::CreateBrowserInitiated(
- frame_tree_node, std::move(common_params), commit_params,
+ frame_tree_node, std::move(common_params), std::move(commit_params),
!entry->is_renderer_initiated(), entry->extra_headers(), *frame_entry,
entry, request_body, nullptr /* navigation_ui_data */);
}
diff --git a/content/browser/frame_host/navigation_controller_impl.h b/content/browser/frame_host/navigation_controller_impl.h
index 4af7438..03bee52 100644
--- a/content/browser/frame_host/navigation_controller_impl.h
+++ b/content/browser/frame_host/navigation_controller_impl.h
@@ -28,7 +28,6 @@
struct FrameHostMsg_DidCommitProvisionalLoad_Params;
namespace content {
-enum class WasActivatedOption;
class FrameTreeNode;
class RenderFrameHostImpl;
class SiteInstance;
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc
index beabe4c..02fbb2544 100644
--- a/content/browser/frame_host/navigation_entry_impl.cc
+++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -691,12 +691,13 @@
false /* is_history_navigation_in_new_child_frame */, input_start);
}
-CommitNavigationParams NavigationEntryImpl::ConstructCommitNavigationParams(
+mojom::CommitNavigationParamsPtr
+NavigationEntryImpl::ConstructCommitNavigationParams(
const FrameNavigationEntry& frame_entry,
const GURL& original_url,
const base::Optional<url::Origin>& origin_to_commit,
const std::string& original_method,
- const std::map<std::string, bool>& subframe_unique_names,
+ const base::flat_map<std::string, bool>& subframe_unique_names,
bool intended_as_new_entry,
int pending_history_list_offset,
int current_history_list_offset,
@@ -720,15 +721,26 @@
current_length_to_send = 0;
}
- CommitNavigationParams commit_params(
- origin_to_commit, GetIsOverridingUserAgent(), redirects, original_url,
- original_method, GetCanLoadLocalResources(), frame_entry.page_state(),
- GetUniqueID(), subframe_unique_names, intended_as_new_entry,
- pending_offset_to_send, current_offset_to_send, current_length_to_send,
- IsViewSourceMode(), should_clear_history_list());
+ mojom::CommitNavigationParamsPtr commit_params =
+ mojom::CommitNavigationParams::New(
+ origin_to_commit, GetIsOverridingUserAgent(), redirects,
+ std::vector<network::ResourceResponseHead>(),
+ std::vector<net::RedirectInfo>(), std::string(), original_url,
+ original_method, GetCanLoadLocalResources(), frame_entry.page_state(),
+ GetUniqueID(), subframe_unique_names, intended_as_new_entry,
+ pending_offset_to_send, current_offset_to_send,
+ current_length_to_send, false, IsViewSourceMode(),
+ should_clear_history_list(), mojom::NavigationTiming::New(),
+ base::nullopt, mojom::WasActivatedOption::kUnknown,
+ base::UnguessableToken::Create(),
+ std::vector<PrefetchedSignedExchangeInfo>(),
+#if defined(OS_ANDROID)
+ std::string(),
+#endif
+ false);
#if defined(OS_ANDROID)
if (NavigationControllerImpl::ValidateDataURLAsString(GetDataURLAsString())) {
- commit_params.data_url_as_string = GetDataURLAsString()->data();
+ commit_params->data_url_as_string = GetDataURLAsString()->data();
}
#endif
return commit_params;
@@ -854,9 +866,9 @@
return tree_node ? tree_node->frame_entry.get() : nullptr;
}
-std::map<std::string, bool> NavigationEntryImpl::GetSubframeUniqueNames(
+base::flat_map<std::string, bool> NavigationEntryImpl::GetSubframeUniqueNames(
FrameTreeNode* frame_tree_node) const {
- std::map<std::string, bool> names;
+ base::flat_map<std::string, bool> names;
NavigationEntryImpl::TreeNode* tree_node = GetTreeNode(frame_tree_node);
if (tree_node) {
// Return the names of all immediate children.
diff --git a/content/browser/frame_host/navigation_entry_impl.h b/content/browser/frame_host/navigation_entry_impl.h
index dca35a81..2bb6422 100644
--- a/content/browser/frame_host/navigation_entry_impl.h
+++ b/content/browser/frame_host/navigation_entry_impl.h
@@ -7,11 +7,11 @@
#include <stdint.h>
-#include <map>
#include <memory>
#include <string>
#include <vector>
+#include "base/containers/flat_map.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/optional.h"
@@ -21,6 +21,7 @@
#include "content/browser/frame_host/frame_navigation_entry.h"
#include "content/browser/frame_host/frame_tree_node.h"
#include "content/browser/site_instance_impl.h"
+#include "content/common/navigation_params.mojom.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/global_request_id.h"
#include "content/public/browser/navigation_entry.h"
@@ -33,7 +34,6 @@
#include "url/origin.h"
namespace content {
-struct CommitNavigationParams;
class CONTENT_EXPORT NavigationEntryImpl : public NavigationEntry {
public:
@@ -183,12 +183,12 @@
PreviewsState previews_state,
base::TimeTicks navigation_start,
base::TimeTicks input_start);
- CommitNavigationParams ConstructCommitNavigationParams(
+ mojom::CommitNavigationParamsPtr ConstructCommitNavigationParams(
const FrameNavigationEntry& frame_entry,
const GURL& original_url,
const base::Optional<url::Origin>& origin_to_commit,
const std::string& original_method,
- const std::map<std::string, bool>& subframe_unique_names,
+ const base::flat_map<std::string, bool>& subframe_unique_names,
bool intended_as_new_entry,
int pending_offset_to_send,
int current_offset_to_send,
@@ -250,7 +250,7 @@
// same-process PageStates for the whole subtree, so that the renderer process
// only needs to ask the browser process to handle the cross-process cases.
// See https://crbug.com/639842.
- std::map<std::string, bool> GetSubframeUniqueNames(
+ base::flat_map<std::string, bool> GetSubframeUniqueNames(
FrameTreeNode* frame_tree_node) const;
// Removes any subframe FrameNavigationEntries that match the unique name of
diff --git a/content/browser/frame_host/navigation_handle_impl_unittest.cc b/content/browser/frame_host/navigation_handle_impl_unittest.cc
index 9a19a64..0ef32ec 100644
--- a/content/browser/frame_host/navigation_handle_impl_unittest.cc
+++ b/content/browser/frame_host/navigation_handle_impl_unittest.cc
@@ -231,8 +231,8 @@
url::Origin::Create(GURL("https://initiator.example.com"));
request_ = NavigationRequest::CreateBrowserInitiated(
main_test_rfh()->frame_tree_node(), std::move(common_params),
- CommitNavigationParams(), false /* browser-initiated */, std::string(),
- *frame_entry, nullptr, nullptr, nullptr);
+ CreateCommitNavigationParams(), false /* browser-initiated */,
+ std::string(), *frame_entry, nullptr, nullptr, nullptr);
request_->CreateNavigationHandle(true);
}
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
index 8db6430..b20ecd8 100644
--- a/content/browser/frame_host/navigation_request.cc
+++ b/content/browser/frame_host/navigation_request.cc
@@ -514,7 +514,7 @@
std::unique_ptr<NavigationRequest> NavigationRequest::CreateBrowserInitiated(
FrameTreeNode* frame_tree_node,
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool browser_initiated,
const std::string& extra_headers,
const FrameNavigationEntry& frame_entry,
@@ -543,9 +543,9 @@
std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest(
frame_tree_node, std::move(common_params), std::move(navigation_params),
- commit_params, browser_initiated, false /* from_begin_navigation */,
- false /* is_for_commit */, &frame_entry, entry,
- std::move(navigation_ui_data), nullptr, nullptr));
+ std::move(commit_params), browser_initiated,
+ false /* from_begin_navigation */, false /* is_for_commit */,
+ &frame_entry, entry, std::move(navigation_ui_data), nullptr, nullptr));
navigation_request->blob_url_loader_factory_ =
frame_entry.blob_url_loader_factory();
@@ -593,23 +593,39 @@
// TODO(clamy): See if the navigation start time should be measured in the
// renderer and sent to the browser instead of being measured here.
- CommitNavigationParams commit_params(
- base::nullopt, override_user_agent,
- std::vector<GURL>(), // redirects
- common_params->url, common_params->method,
- false, // can_load_local_resources
- PageState(), // page_state
- 0, // nav_entry_id
- std::map<std::string, bool>(), // subframe_unique_names
- false, // intended_as_new_entry
- -1, // |pending_history_list_offset| is set to -1 because
- // history-navigations do not use this path. See comments above.
- current_history_list_offset, current_history_list_length,
- false, // is_view_source
- false /*should_clear_history_list*/);
+ mojom::CommitNavigationParamsPtr commit_params =
+ mojom::CommitNavigationParams::New(
+ base::nullopt, override_user_agent,
+ std::vector<GURL>(), // redirects
+ std::vector<network::ResourceResponseHead>(), // redirect_response
+ std::vector<net::RedirectInfo>(), // redirect_infos
+ std::string(), // post_content_type
+ common_params->url, common_params->method,
+ false, // can_load_local_resources
+ PageState(), // page_state
+ 0, // nav_entry_id
+ base::flat_map<std::string, bool>(), // subframe_unique_names
+ false, // intended_as_new_entry
+ -1, // |pending_history_list_offset| is set to -1 because
+ // history-navigations do not use this path. See comments above.
+ current_history_list_offset, current_history_list_length,
+ false, // was_discarded
+ false, // is_view_source
+ false /*should_clear_history_list*/,
+ mojom::NavigationTiming::New(), // navigation_timing
+ base::nullopt, // appcache_host_id
+ mojom::WasActivatedOption::kUnknown,
+ base::UnguessableToken::Create(), // navigation_token
+ std::vector<
+ PrefetchedSignedExchangeInfo>(), // prefetched_signed_exchanges
+#if defined(OS_ANDROID)
+ std::string(), // data_url_as_string
+#endif
+ false // is_browser_initiated
+ );
std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest(
frame_tree_node, std::move(common_params), std::move(begin_params),
- commit_params,
+ std::move(commit_params),
false, // browser_initiated
true, // from_begin_navigation
false, // is_for_commit
@@ -654,22 +670,34 @@
std::string() /* href_translate */,
false /* is_history_navigation_in_new_child_frame */,
base::TimeTicks::Now());
- CommitNavigationParams commit_params(
- params.origin, params.is_overriding_user_agent, params.redirects,
- params.original_request_url, params.method,
- false /* can_load_local_resources */, params.page_state,
- params.nav_entry_id,
- std::map<std::string, bool>() /* subframe_unique_names */,
- params.intended_as_new_entry, -1 /* pending_history_list_offset */,
- -1 /* current_history_list_offset */,
- -1 /* current_history_list_length */, false /* is_view_source */,
- params.history_list_was_cleared);
+ mojom::CommitNavigationParamsPtr commit_params =
+ mojom::CommitNavigationParams::New(
+ params.origin, params.is_overriding_user_agent, params.redirects,
+ std::vector<network::ResourceResponseHead>(),
+ std::vector<net::RedirectInfo>(), std::string(),
+ params.original_request_url, params.method,
+ false /* can_load_local_resources */, params.page_state,
+ params.nav_entry_id,
+ base::flat_map<std::string, bool>() /* subframe_unique_names */,
+ params.intended_as_new_entry, -1 /* pending_history_list_offset */,
+ -1 /* current_history_list_offset */,
+ -1 /* current_history_list_length */, false /* was_discard */,
+ false /* is_view_source */, params.history_list_was_cleared,
+ mojom::NavigationTiming::New(), base::nullopt /* appcache_host_id; */,
+ mojom::WasActivatedOption::kUnknown,
+ base::UnguessableToken::Create() /* navigation_token */,
+ std::vector<PrefetchedSignedExchangeInfo>(),
+#if defined(OS_ANDROID)
+ std::string(), /* data_url_as_string */
+#endif
+ false /* is_browser_initiated */
+ );
mojom::BeginNavigationParamsPtr begin_params =
mojom::BeginNavigationParams::New();
std::unique_ptr<NavigationRequest> navigation_request(new NavigationRequest(
frame_tree_node, std::move(common_params), std::move(begin_params),
- commit_params, !is_renderer_initiated, false /* from_begin_navigation */,
- true /* is_for_commit */,
+ std::move(commit_params), !is_renderer_initiated,
+ false /* from_begin_navigation */, true /* is_for_commit */,
entry ? entry->GetFrameEntry(frame_tree_node) : nullptr, entry,
nullptr /* navigation_ui_data */,
mojom::NavigationClientAssociatedPtrInfo(),
@@ -688,7 +716,7 @@
FrameTreeNode* frame_tree_node,
mojom::CommonNavigationParamsPtr common_params,
mojom::BeginNavigationParamsPtr begin_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool browser_initiated,
bool from_begin_navigation,
bool is_for_commit,
@@ -700,7 +728,7 @@
: frame_tree_node_(frame_tree_node),
common_params_(std::move(common_params)),
begin_params_(std::move(begin_params)),
- commit_params_(commit_params),
+ commit_params_(std::move(commit_params)),
browser_initiated_(browser_initiated),
navigation_ui_data_(std::move(navigation_ui_data)),
state_(NOT_STARTED),
@@ -789,7 +817,7 @@
}
std::string user_agent_override;
- if (commit_params.is_overriding_user_agent ||
+ if (commit_params_->is_overriding_user_agent ||
(entry && entry->GetIsOverridingUserAgent())) {
user_agent_override =
frame_tree_node_->navigator()->GetDelegate()->GetUserAgentOverride();
@@ -825,17 +853,17 @@
frame_tree_node);
if (begin_params_->is_form_submission) {
- if (browser_initiated && !commit_params.post_content_type.empty()) {
+ if (browser_initiated && !commit_params_->post_content_type.empty()) {
// This is a form resubmit, so make sure to set the Content-Type header.
headers.SetHeaderIfMissing(net::HttpRequestHeaders::kContentType,
- commit_params.post_content_type);
+ commit_params_->post_content_type);
} else if (!browser_initiated) {
// Save the Content-Type in case the form is resubmitted. This will get
// sent back to the renderer in the CommitNavigation IPC. The renderer
// will then send it back with the post body so that we can access it
// along with the body in FrameNavigationEntry::page_state_.
headers.GetHeader(net::HttpRequestHeaders::kContentType,
- &commit_params_.post_content_type);
+ &commit_params_->post_content_type);
}
}
}
@@ -849,7 +877,7 @@
navigation_entry_offset_ = EstimateHistoryOffset();
- commit_params_.is_browser_initiated = browser_initiated_;
+ commit_params_->is_browser_initiated = browser_initiated_;
}
NavigationRequest::~NavigationRequest() {
@@ -887,7 +915,7 @@
if (!GetContentClient()->browser()->ShouldOverrideUrlLoading(
frame_tree_node_->frame_tree_node_id(), browser_initiated_,
- commit_params_.original_url, commit_params_.original_method,
+ commit_params_->original_url, commit_params_->original_method,
common_params_->has_user_gesture, false,
frame_tree_node_->IsMainFrame(), common_params_->transition,
&should_override_url_loading)) {
@@ -1026,19 +1054,19 @@
// |begin_params_->client_side_redirect_url| will be set when the navigation
// was triggered by a client-side redirect.
redirect_chain_.push_back(begin_params_->client_side_redirect_url);
- } else if (!commit_params_.redirects.empty()) {
+ } else if (!commit_params_->redirects.empty()) {
// Redirects that were specified at NavigationRequest creation time should
// be added to the list of redirects. In particular, if the
// NavigationRequest was created at commit time, redirects that happened
- // during the navigation have been added to |commit_params_.redirects| and
+ // during the navigation have been added to |commit_params_->redirects| and
// should be passed to the NavigationHandle.
- for (const auto& url : commit_params_.redirects)
+ for (const auto& url : commit_params_->redirects)
redirect_chain_.push_back(url);
}
// Finally, add the current URL to the vector of redirects.
// Note: for NavigationRequests created at commit time, the current URL has
- // been added to |commit_params_.redirects|, so don't add it a second time.
+ // been added to |commit_params_->redirects|, so don't add it a second time.
if (!is_for_commit)
redirect_chain_.push_back(common_params_->url);
@@ -1241,22 +1269,22 @@
common_params_->post_data.reset();
// Mark time for the Navigation Timing API.
- if (commit_params_.navigation_timing.redirect_start.is_null()) {
- commit_params_.navigation_timing.redirect_start =
- commit_params_.navigation_timing.fetch_start;
+ if (commit_params_->navigation_timing->redirect_start.is_null()) {
+ commit_params_->navigation_timing->redirect_start =
+ commit_params_->navigation_timing->fetch_start;
}
- commit_params_.navigation_timing.redirect_end = base::TimeTicks::Now();
- commit_params_.navigation_timing.fetch_start = base::TimeTicks::Now();
+ commit_params_->navigation_timing->redirect_end = base::TimeTicks::Now();
+ commit_params_->navigation_timing->fetch_start = base::TimeTicks::Now();
- commit_params_.redirect_response.push_back(response_head->head);
- commit_params_.redirect_infos.push_back(redirect_info);
+ commit_params_->redirect_response.push_back(response_head->head);
+ commit_params_->redirect_infos.push_back(redirect_info);
// On redirects, the initial origin_to_commit is no longer correct, so it
// must be cleared to avoid sending incorrect value to the renderer process.
- if (commit_params_.origin_to_commit)
- commit_params_.origin_to_commit.reset();
+ if (commit_params_->origin_to_commit)
+ commit_params_->origin_to_commit.reset();
- commit_params_.redirects.push_back(common_params_->url);
+ commit_params_->redirects.push_back(common_params_->url);
common_params_->url = redirect_info.new_url;
common_params_->method = redirect_info.new_method;
common_params_->referrer->url = GURL(redirect_info.new_referrer);
@@ -1377,7 +1405,7 @@
net_error_ = net::ERR_ABORTED;
// Update the AppCache params of the commit params.
- commit_params_.appcache_host_id =
+ commit_params_->appcache_host_id =
appcache_handle_
? base::make_optional(appcache_handle_->appcache_host_id())
: base::nullopt;
@@ -1388,8 +1416,8 @@
// worker ready time if it is greater than the current value to make sure
// fetch start timing always comes after worker start timing (if a service
// worker intercepted the navigation).
- commit_params_.navigation_timing.fetch_start =
- std::max(commit_params_.navigation_timing.fetch_start,
+ commit_params_->navigation_timing->fetch_start =
+ std::max(commit_params_->navigation_timing->fetch_start,
response_head->head.service_worker_ready_time);
// A navigation is user activated if it contains a user gesture or the frame
@@ -1409,8 +1437,8 @@
// context menu. This should apply to pages that open in a new tab and we
// have to follow the referrer. It means that the activation might not be
// transmitted if it should have.
- if (commit_params_.was_activated == WasActivatedOption::kUnknown) {
- commit_params_.was_activated = WasActivatedOption::kNo;
+ if (commit_params_->was_activated == mojom::WasActivatedOption::kUnknown) {
+ commit_params_->was_activated = mojom::WasActivatedOption::kNo;
if (!browser_initiated_ &&
(frame_tree_node_->has_received_user_gesture() ||
@@ -1418,7 +1446,7 @@
ShouldPropagateUserActivation(
frame_tree_node_->current_origin(),
url::Origin::Create(common_params_->url))) {
- commit_params_.was_activated = WasActivatedOption::kYes;
+ commit_params_->was_activated = mojom::WasActivatedOption::kYes;
// TODO(805871): the next check is relying on sanitized_referrer_ but
// should ideally use a more reliable source for the originating URL when
// the navigation is renderer initiated.
@@ -1427,7 +1455,7 @@
ShouldPropagateUserActivation(
url::Origin::Create(sanitized_referrer_->url),
url::Origin::Create(common_params_->url))) {
- commit_params_.was_activated = WasActivatedOption::kYes;
+ commit_params_->was_activated = mojom::WasActivatedOption::kYes;
}
}
@@ -1804,7 +1832,7 @@
}
// Mark the fetch_start (Navigation Timing API).
- commit_params_.navigation_timing.fetch_start = base::TimeTicks::Now();
+ commit_params_->navigation_timing->fetch_start = base::TimeTicks::Now();
GURL site_for_cookies =
frame_tree_node_->current_frame_host()
@@ -2065,7 +2093,7 @@
// TODO(nasko): Create an opque origin here and pass it for the renderer
// to commit into it. Potentially also make it an opaque origin derived from
// the error page URL, so it can be checked at DidCommit processing.
- commit_params_.origin_to_commit.reset();
+ commit_params_->origin_to_commit.reset();
if (IsPerNavigationMojoInterfaceEnabled() && request_navigation_client_ &&
request_navigation_client_.is_bound()) {
if (associated_site_instance_id_ ==
@@ -2081,7 +2109,7 @@
}
ReadyToCommitNavigation(true);
- render_frame_host_->FailedNavigation(this, *common_params_, commit_params_,
+ render_frame_host_->FailedNavigation(this, *common_params_, *commit_params_,
has_stale_copy_in_cache_, net_error_,
error_page_content);
}
@@ -2124,11 +2152,11 @@
}
if (subresource_loader_params_ &&
!subresource_loader_params_->prefetched_signed_exchanges.empty()) {
- commit_params_.prefetched_signed_exchanges =
+ commit_params_->prefetched_signed_exchanges =
std::move(subresource_loader_params_->prefetched_signed_exchanges);
}
render_frame_host_->CommitNavigation(
- this, *common_params_, commit_params_, response_head_.get(),
+ this, *common_params_, *commit_params_, response_head_.get(),
std::move(response_body_), std::move(url_loader_client_endpoints_),
is_view_source_, std::move(subresource_loader_params_),
std::move(subresource_overrides_),
@@ -2321,7 +2349,7 @@
parent->ShouldModifyRequestUrlForCsp(true /* is subresource */)) {
upgrade_if_insecure_ = true;
parent->ModifyRequestUrlForCsp(&common_params_->url);
- commit_params_.original_url = common_params_->url;
+ commit_params_->original_url = common_params_->url;
}
}
@@ -2428,9 +2456,9 @@
void NavigationRequest::UpdateCommitNavigationParamsHistory() {
NavigationController* navigation_controller =
frame_tree_node_->navigator()->GetController();
- commit_params_.current_history_list_offset =
+ commit_params_->current_history_list_offset =
navigation_controller->GetCurrentEntryIndex();
- commit_params_.current_history_list_length =
+ commit_params_->current_history_list_length =
navigation_controller->GetEntryCount();
}
diff --git a/content/browser/frame_host/navigation_request.h b/content/browser/frame_host/navigation_request.h
index c3860f6..f293305a 100644
--- a/content/browser/frame_host/navigation_request.h
+++ b/content/browser/frame_host/navigation_request.h
@@ -133,7 +133,7 @@
static std::unique_ptr<NavigationRequest> CreateBrowserInitiated(
FrameTreeNode* frame_tree_node,
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool browser_initiated,
const std::string& extra_headers,
const FrameNavigationEntry& frame_entry,
@@ -187,7 +187,9 @@
return begin_params_.get();
}
- const CommitNavigationParams& commit_params() const { return commit_params_; }
+ const mojom::CommitNavigationParams& commit_params() const {
+ return *commit_params_;
+ }
// Updates the navigation start time.
void set_navigation_start_time(const base::TimeTicks& time) {
@@ -231,7 +233,7 @@
associated_site_instance_type_ = type;
}
- void set_was_discarded() { commit_params_.was_discarded = true; }
+ void set_was_discarded() { commit_params_->was_discarded = true; }
NavigationHandleImpl* navigation_handle() const {
return navigation_handle_.get();
@@ -493,7 +495,7 @@
NavigationRequest(FrameTreeNode* frame_tree_node,
mojom::CommonNavigationParamsPtr common_params,
mojom::BeginNavigationParamsPtr begin_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool browser_initiated,
bool from_begin_navigation,
bool is_for_commit,
@@ -801,7 +803,7 @@
// be set in CreatedNavigationRequest.
mojom::CommonNavigationParamsPtr common_params_;
mojom::BeginNavigationParamsPtr begin_params_;
- CommitNavigationParams commit_params_;
+ mojom::CommitNavigationParamsPtr commit_params_;
const bool browser_initiated_;
// Stores the NavigationUIData for this navigation until the NavigationHandle
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 405e17d4c..25055d4 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -4386,8 +4386,11 @@
false /* started_from_context_menu */, false /* has_user_gesture */,
InitiatorCSPInfo(), std::vector<int>(), std::string(),
false /* is_history_navigation_in_new_child_frame */, base::TimeTicks());
+ mojom::CommitNavigationParams commit_params;
+ commit_params.navigation_token = base::UnguessableToken::Create();
+ commit_params.navigation_timing = mojom::NavigationTiming::New();
CommitNavigation(
- nullptr /* navigation_request */, common_params, CommitNavigationParams(),
+ nullptr /* navigation_request */, common_params, commit_params,
nullptr /* response_head */, mojo::ScopedDataPipeConsumerHandle(),
network::mojom::URLLoaderClientEndpointsPtr(), false, base::nullopt,
base::nullopt /* subresource_overrides */, nullptr /* provider_info */,
@@ -4736,7 +4739,7 @@
void RenderFrameHostImpl::CommitNavigation(
NavigationRequest* navigation_request,
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
network::ResourceResponse* response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -5045,7 +5048,7 @@
if (is_same_document) {
DCHECK(same_document_navigation_request_);
GetNavigationControl()->CommitSameDocumentNavigation(
- common_params.Clone(), commit_params,
+ common_params.Clone(), commit_params.Clone(),
base::BindOnce(&RenderFrameHostImpl::OnSameDocumentCommitProcessed,
base::Unretained(this),
same_document_navigation_request_->navigation_handle()
@@ -5165,7 +5168,7 @@
SendCommitNavigation(
navigation_client, navigation_request, common_params.Clone(),
- commit_params, head, std::move(response_body),
+ commit_params.Clone(), head, std::move(response_body),
std::move(url_loader_client_endpoints),
std::move(subresource_loader_factories),
std::move(subresource_overrides), std::move(controller),
@@ -5195,7 +5198,7 @@
void RenderFrameHostImpl::FailedNavigation(
NavigationRequest* navigation_request,
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content) {
@@ -5236,8 +5239,8 @@
SendCommitFailedNavigation(
navigation_client, navigation_request, common_params.Clone(),
- commit_params, has_stale_copy_in_cache, error_code, error_page_content,
- std::move(subresource_loader_factories));
+ commit_params.Clone(), has_stale_copy_in_cache, error_code,
+ error_page_content, std::move(subresource_loader_factories));
// An error page is expected to commit, hence why is_loading_ is set to true.
is_loading_ = true;
@@ -5691,7 +5694,7 @@
void RenderFrameHostImpl::UpdatePermissionsForNavigation(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params) {
+ const mojom::CommitNavigationParams& commit_params) {
// Browser plugin guests are not allowed to navigate outside web-safe schemes,
// so do not grant them the ability to commit additional URLs.
if (!GetProcess()->IsForGuestsOnly()) {
@@ -6955,7 +6958,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -6970,7 +6973,7 @@
const base::UnguessableToken& devtools_navigation_token) {
if (navigation_client) {
navigation_client->CommitNavigation(
- std::move(common_params), commit_params, response_head,
+ std::move(common_params), std::move(commit_params), response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
std::move(subresource_loader_factories),
std::move(subresource_overrides), std::move(controller),
@@ -6979,7 +6982,7 @@
BuildNavigationClientCommitNavigationCallback(navigation_request));
} else {
GetNavigationControl()->CommitNavigation(
- std::move(common_params), commit_params, response_head,
+ std::move(common_params), std::move(commit_params), response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
std::move(subresource_loader_factories),
std::move(subresource_overrides), std::move(controller),
@@ -6993,7 +6996,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int32_t error_code,
const base::Optional<std::string>& error_page_content,
@@ -7001,14 +7004,16 @@
subresource_loader_factories) {
if (navigation_client) {
navigation_client->CommitFailedNavigation(
- std::move(common_params), commit_params, has_stale_copy_in_cache,
- error_code, error_page_content, std::move(subresource_loader_factories),
+ std::move(common_params), std::move(commit_params),
+ has_stale_copy_in_cache, error_code, error_page_content,
+ std::move(subresource_loader_factories),
BuildNavigationClientCommitFailedNavigationCallback(
navigation_request));
} else {
GetNavigationControl()->CommitFailedNavigation(
- std::move(common_params), commit_params, has_stale_copy_in_cache,
- error_code, error_page_content, std::move(subresource_loader_factories),
+ std::move(common_params), std::move(commit_params),
+ has_stale_copy_in_cache, error_code, error_page_content,
+ std::move(subresource_loader_factories),
BuildCommitFailedNavigationCallback(navigation_request));
}
}
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 2dfbe6b..894a911 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -168,7 +168,6 @@
struct ContextMenuParams;
struct FrameOwnerProperties;
struct PendingNavigation;
-struct CommitNavigationParams;
struct ResourceTimingInfo;
struct SubresourceLoaderParams;
@@ -691,7 +690,7 @@
void CommitNavigation(
NavigationRequest* navigation_request,
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
network::ResourceResponse* response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -707,7 +706,7 @@
// an error page.
void FailedNavigation(NavigationRequest* navigation_request,
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content);
@@ -1033,7 +1032,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -1051,7 +1050,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int32_t error_code,
const base::Optional<std::string>& error_page_content,
@@ -1354,7 +1353,7 @@
void UpdatePermissionsForNavigation(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params);
+ const mojom::CommitNavigationParams& commit_params);
// Creates a Network Service-backed factory from appropriate |NetworkContext|
// and sets a connection error handler to trigger
diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc
index 50ec9b6a..fddc7a9 100644
--- a/content/browser/frame_host/render_frame_host_manager_unittest.cc
+++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc
@@ -425,7 +425,7 @@
blink::mojom::Referrer::New(referrer.url, referrer.policy),
navigate_type, PREVIEWS_UNSPECIFIED, base::TimeTicks::Now(),
base::TimeTicks::Now());
- CommitNavigationParams commit_params =
+ mojom::CommitNavigationParamsPtr commit_params =
entry->ConstructCommitNavigationParams(
*frame_entry, common_params->url, frame_entry->committed_origin(),
common_params->method,
@@ -435,11 +435,11 @@
controller->GetIndexOfEntry(entry),
controller->GetLastCommittedEntryIndex(),
controller->GetEntryCount());
- commit_params.post_content_type = post_content_type;
+ commit_params->post_content_type = post_content_type;
std::unique_ptr<NavigationRequest> navigation_request =
NavigationRequest::CreateBrowserInitiated(
- frame_tree_node, std::move(common_params), commit_params,
+ frame_tree_node, std::move(common_params), std::move(commit_params),
!entry->is_renderer_initiated(), entry->extra_headers(),
*frame_entry, entry, request_body,
nullptr /* navigation_ui_data */);
@@ -2931,17 +2931,19 @@
blink::mojom::Referrer::New(referrer.url, referrer.policy),
mojom::NavigationType::DIFFERENT_DOCUMENT, PREVIEWS_UNSPECIFIED,
base::TimeTicks::Now(), base::TimeTicks::Now());
- CommitNavigationParams commit_params = entry.ConstructCommitNavigationParams(
- *frame_entry, common_params->url, frame_entry->committed_origin(),
- common_params->method, entry.GetSubframeUniqueNames(frame_tree_node),
- controller().GetPendingEntryIndex() == -1 /* intended_as_new_entry */,
- static_cast<NavigationControllerImpl&>(controller())
- .GetIndexOfEntry(&entry),
- controller().GetLastCommittedEntryIndex(), controller().GetEntryCount());
+ mojom::CommitNavigationParamsPtr commit_params =
+ entry.ConstructCommitNavigationParams(
+ *frame_entry, common_params->url, frame_entry->committed_origin(),
+ common_params->method, entry.GetSubframeUniqueNames(frame_tree_node),
+ controller().GetPendingEntryIndex() == -1 /* intended_as_new_entry */,
+ static_cast<NavigationControllerImpl&>(controller())
+ .GetIndexOfEntry(&entry),
+ controller().GetLastCommittedEntryIndex(),
+ controller().GetEntryCount());
std::unique_ptr<NavigationRequest> navigation_request =
NavigationRequest::CreateBrowserInitiated(
- frame_tree_node, std::move(common_params), commit_params,
+ frame_tree_node, std::move(common_params), std::move(commit_params),
!entry.is_renderer_initiated(), entry.extra_headers(), *frame_entry,
&entry, nullptr /* request_body */, nullptr /* navigation_ui_data */);
manager->DidCreateNavigationRequest(navigation_request.get());
diff --git a/content/browser/service_worker/service_worker_test_utils.cc b/content/browser/service_worker/service_worker_test_utils.cc
index 47cfc0a..3430552 100644
--- a/content/browser/service_worker/service_worker_test_utils.cc
+++ b/content/browser/service_worker/service_worker_test_utils.cc
@@ -100,7 +100,7 @@
// mojom::NavigationClientPtr implementation:
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& request_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -120,7 +120,7 @@
}
void CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -221,7 +221,7 @@
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
navigation_client_->CommitNavigation(
- std::move(common_params), CommitNavigationParams(),
+ std::move(common_params), CreateCommitNavigationParams(),
network::ResourceResponseHead(), mojo::ScopedDataPipeConsumerHandle(),
nullptr, nullptr, base::nullopt, nullptr, std::move(info),
mojo::NullRemote(), base::UnguessableToken::Create(),
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
index c9cb924..769b35b 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
@@ -78,10 +78,6 @@
gfx.mojom.Rect clip_rect);
};
-// See src/content/common/navigation_params.h
-[Native]
-struct CommitNavigationParams;
-
// Implemented by the frame provider and currently must be associated with the
// legacy IPC channel.
// KEEP THE COMMIT FUNCTIONS IN SYNC in content/common/navigation_client.mojom.
diff --git a/content/common/frame.typemap b/content/common/frame.typemap
deleted file mode 100644
index 36e3849..0000000
--- a/content/common/frame.typemap
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-mojom = "//content/common/frame.mojom"
-public_headers = [ "//content/common/navigation_params.h" ]
-traits_headers = [ "//content/common/frame_messages.h" ]
-deps = [
- "//content:export",
-]
-type_mappings =
- [ "content.mojom.CommitNavigationParams=content::CommitNavigationParams" ]
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index 72cf248..a4971e4 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -47,7 +47,6 @@
#include "content/public/common/screen_info.h"
#include "content/public/common/stop_find_action.h"
#include "content/public/common/three_d_api_types.h"
-#include "content/public/common/was_activated_option.h"
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_platform_file.h"
#include "mojo/public/cpp/system/message_pipe.h"
@@ -145,8 +144,6 @@
blink::UserActivationUpdateType::kMaxValue)
IPC_ENUM_TRAITS_MAX_VALUE(blink::WebMediaPlayerAction::Type,
blink::WebMediaPlayerAction::Type::kMaxValue)
-IPC_ENUM_TRAITS_MAX_VALUE(content::WasActivatedOption,
- content::WasActivatedOption::kMaxValue)
IPC_ENUM_TRAITS_MIN_MAX_VALUE(blink::WebScrollDirection,
blink::kFirstScrollDirection,
blink::kLastScrollDirection)
@@ -477,43 +474,6 @@
IPC_STRUCT_TRAITS_MEMBER(loader_factory_handle)
IPC_STRUCT_TRAITS_END()
-IPC_STRUCT_TRAITS_BEGIN(content::NavigationTiming)
- IPC_STRUCT_TRAITS_MEMBER(redirect_start)
- IPC_STRUCT_TRAITS_MEMBER(redirect_end)
- IPC_STRUCT_TRAITS_MEMBER(fetch_start)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(content::CommitNavigationParams)
- IPC_STRUCT_TRAITS_MEMBER(origin_to_commit)
- IPC_STRUCT_TRAITS_MEMBER(is_overriding_user_agent)
- IPC_STRUCT_TRAITS_MEMBER(redirects)
- IPC_STRUCT_TRAITS_MEMBER(redirect_response)
- IPC_STRUCT_TRAITS_MEMBER(redirect_infos)
- IPC_STRUCT_TRAITS_MEMBER(post_content_type)
- IPC_STRUCT_TRAITS_MEMBER(original_url)
- IPC_STRUCT_TRAITS_MEMBER(original_method)
- IPC_STRUCT_TRAITS_MEMBER(can_load_local_resources)
- IPC_STRUCT_TRAITS_MEMBER(page_state)
- IPC_STRUCT_TRAITS_MEMBER(nav_entry_id)
- IPC_STRUCT_TRAITS_MEMBER(subframe_unique_names)
- IPC_STRUCT_TRAITS_MEMBER(intended_as_new_entry)
- IPC_STRUCT_TRAITS_MEMBER(pending_history_list_offset)
- IPC_STRUCT_TRAITS_MEMBER(current_history_list_offset)
- IPC_STRUCT_TRAITS_MEMBER(current_history_list_length)
- IPC_STRUCT_TRAITS_MEMBER(was_discarded)
- IPC_STRUCT_TRAITS_MEMBER(is_view_source)
- IPC_STRUCT_TRAITS_MEMBER(should_clear_history_list)
- IPC_STRUCT_TRAITS_MEMBER(navigation_timing)
- IPC_STRUCT_TRAITS_MEMBER(appcache_host_id)
- IPC_STRUCT_TRAITS_MEMBER(was_activated)
- IPC_STRUCT_TRAITS_MEMBER(navigation_token)
- IPC_STRUCT_TRAITS_MEMBER(prefetched_signed_exchanges)
-#if defined(OS_ANDROID)
- IPC_STRUCT_TRAITS_MEMBER(data_url_as_string)
-#endif
- IPC_STRUCT_TRAITS_MEMBER(is_browser_initiated)
-IPC_STRUCT_TRAITS_END()
-
IPC_STRUCT_TRAITS_BEGIN(blink::ParsedFeaturePolicyDeclaration)
IPC_STRUCT_TRAITS_MEMBER(feature)
IPC_STRUCT_TRAITS_MEMBER(values)
diff --git a/content/common/navigation_client.mojom b/content/common/navigation_client.mojom
index 9c386653..4f891bf 100644
--- a/content/common/navigation_client.mojom
+++ b/content/common/navigation_client.mojom
@@ -16,10 +16,6 @@
import "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom";
import "third_party/blink/public/mojom/commit_result/commit_result.mojom";
-// See src/content/common/navigation_params.h
-[Native]
-struct CommitNavigationParams;
-
interface NavigationClient {
// Tells the renderer that a navigation is ready to commit.
//
diff --git a/content/common/navigation_params.cc b/content/common/navigation_params.cc
index 0c532666..dd256ac 100644
--- a/content/common/navigation_params.cc
+++ b/content/common/navigation_params.cc
@@ -35,45 +35,12 @@
InitiatorCSPInfo::~InitiatorCSPInfo() = default;
-CommitNavigationParams::CommitNavigationParams()
- : navigation_token(base::UnguessableToken::Create()) {}
+mojom::CommitNavigationParamsPtr CreateCommitNavigationParams() {
+ auto commit_params = mojom::CommitNavigationParams::New();
+ commit_params->navigation_token = base::UnguessableToken::Create();
+ commit_params->navigation_timing = mojom::NavigationTiming::New();
-CommitNavigationParams::CommitNavigationParams(
- const base::Optional<url::Origin>& origin_to_commit,
- bool is_overriding_user_agent,
- const std::vector<GURL>& redirects,
- const GURL& original_url,
- const std::string& original_method,
- bool can_load_local_resources,
- const PageState& page_state,
- int nav_entry_id,
- std::map<std::string, bool> subframe_unique_names,
- bool intended_as_new_entry,
- int pending_history_list_offset,
- int current_history_list_offset,
- int current_history_list_length,
- bool is_view_source,
- bool should_clear_history_list)
- : origin_to_commit(origin_to_commit),
- is_overriding_user_agent(is_overriding_user_agent),
- redirects(redirects),
- original_url(original_url),
- original_method(original_method),
- can_load_local_resources(can_load_local_resources),
- page_state(page_state),
- nav_entry_id(nav_entry_id),
- subframe_unique_names(subframe_unique_names),
- intended_as_new_entry(intended_as_new_entry),
- pending_history_list_offset(pending_history_list_offset),
- current_history_list_offset(current_history_list_offset),
- current_history_list_length(current_history_list_length),
- is_view_source(is_view_source),
- should_clear_history_list(should_clear_history_list),
- navigation_token(base::UnguessableToken::Create()) {}
-
-CommitNavigationParams::CommitNavigationParams(
- const CommitNavigationParams& other) = default;
-
-CommitNavigationParams::~CommitNavigationParams() = default;
+ return commit_params;
+}
} // namespace content
diff --git a/content/common/navigation_params.h b/content/common/navigation_params.h
index 88c983c..4da72d1 100644
--- a/content/common/navigation_params.h
+++ b/content/common/navigation_params.h
@@ -25,7 +25,7 @@
#include "content/public/common/page_state.h"
#include "content/public/common/previews_state.h"
#include "content/public/common/referrer.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "net/url_request/redirect_info.h"
#include "services/network/public/cpp/resource_request_body.h"
#include "services/network/public/cpp/resource_response.h"
@@ -81,157 +81,7 @@
base::Optional<CSPSource> initiator_self_source;
};
-// Provided by the browser -----------------------------------------------------
-
-// Timings collected in the browser during navigation for the
-// Navigation Timing API. Sent to Blink in CommitNavigationParams when
-// the navigation is ready to be committed.
-struct CONTENT_EXPORT NavigationTiming {
- base::TimeTicks redirect_start;
- base::TimeTicks redirect_end;
- base::TimeTicks fetch_start;
-};
-
-// Used by commit IPC messages. Holds the parameters needed by the renderer to
-// commit a navigation besides those in CommonNavigationParams.
-struct CONTENT_EXPORT CommitNavigationParams {
- CommitNavigationParams();
- CommitNavigationParams(const base::Optional<url::Origin>& origin_to_commit,
- bool is_overriding_user_agent,
- const std::vector<GURL>& redirects,
- const GURL& original_url,
- const std::string& original_method,
- bool can_load_local_resources,
- const PageState& page_state,
- int nav_entry_id,
- std::map<std::string, bool> subframe_unique_names,
- bool intended_as_new_entry,
- int pending_history_list_offset,
- int current_history_list_offset,
- int current_history_list_length,
- bool is_view_source,
- bool should_clear_history_list);
- CommitNavigationParams(const CommitNavigationParams& other);
- ~CommitNavigationParams();
-
- // The origin to be used for committing the navigation, if specified.
- // This will be an origin that's compatible with the |url| in the
- // CommonNavigationParams; if |url| is data: or about:blank, or the frame has
- // sandbox attributes, this determines the origin of the resulting document.
- // It is specified for session history navigations, for which the origin is
- // known and saved in the FrameNavigationEntry.
- base::Optional<url::Origin> origin_to_commit;
-
- // Whether or not the user agent override string should be used.
- bool is_overriding_user_agent = false;
-
- // Any redirect URLs that occurred before |url|. Useful for cross-process
- // navigations; defaults to empty.
- std::vector<GURL> redirects;
-
- // The ResourceResponseInfos received during redirects.
- std::vector<network::ResourceResponseHead> redirect_response;
-
- // The RedirectInfos received during redirects.
- std::vector<net::RedirectInfo> redirect_infos;
-
- // The content type from the request headers for POST requests.
- std::string post_content_type;
-
- // The original URL & method for this navigation.
- GURL original_url;
- std::string original_method;
-
- // Whether or not this url should be allowed to access local file://
- // resources.
- bool can_load_local_resources = false;
-
- // Opaque history state (received by ViewHostMsg_UpdateState).
- PageState page_state;
-
- // For browser-initiated navigations, this is the unique id of the
- // NavigationEntry being navigated to. (For renderer-initiated navigations it
- // is 0.) If the load succeeds, then this nav_entry_id will be reflected in
- // the resulting FrameHostMsg_DidCommitProvisionalLoad_Params.
- int nav_entry_id = 0;
-
- // If this is a history navigation, this contains a map of frame unique names
- // to |is_about_blank| for immediate children of the frame being navigated for
- // which there are history items. The renderer process only needs to check
- // with the browser process for newly created subframes that have these unique
- // names (and only when not staying on about:blank).
- // TODO(creis): Expand this to a data structure including corresponding
- // same-process PageStates for the whole subtree in https://crbug.com/639842.
- std::map<std::string, bool> subframe_unique_names;
-
- // For browser-initiated navigations, this is true if this is a new entry
- // being navigated to. This is false otherwise. TODO(avi): Remove this when
- // the pending entry situation is made sane and the browser keeps them around
- // long enough to match them via nav_entry_id, above.
- bool intended_as_new_entry = false;
-
- // For history navigations, this is the offset in the history list of the
- // pending load. For non-history navigations, this will be ignored.
- int pending_history_list_offset = -1;
-
- // Where its current page contents reside in session history and the total
- // size of the session history list.
- int current_history_list_offset = -1;
- int current_history_list_length = 0;
-
- // Indicates that the tab was previously discarded.
- // wasDiscarded is exposed on Document after discard, see:
- // https://github.com/WICG/web-lifecycle
- bool was_discarded = false;
-
- // Indicates whether the navigation is to a view-source:// scheme or not.
- // It is a separate boolean as the view-source scheme is stripped from the
- // URL before it is sent to the renderer process and the RenderFrame needs
- // to be put in special view source mode.
- bool is_view_source = false;
-
- // Whether session history should be cleared. In that case, the RenderView
- // needs to notify the browser that the clearing was succesful when the
- // navigation commits.
- bool should_clear_history_list = false;
-
- // Timing of navigation events.
- NavigationTiming navigation_timing;
-
- // The AppCache host id to be used to identify this navigation.
- base::Optional<base::UnguessableToken> appcache_host_id;
-
- // Set to |kYes| if a navigation is following the rules of user activation
- // propagation. This is different from |has_user_gesture|
- // (in CommonNavigationParams) as the activation may have happened before
- // the navigation was triggered, for example.
- // In other words, the distinction isn't regarding user activation and user
- // gesture but whether there was an activation prior to the navigation or to
- // start it. `was_activated` will answer the former question while
- // `user_gesture` will answer the latter.
- WasActivatedOption was_activated = WasActivatedOption::kUnknown;
-
- // A token that should be passed to the browser process in
- // DidCommitProvisionalLoadParams.
- // TODO(clamy): Remove this once NavigationClient has shipped and
- // same-document browser-initiated navigations are properly handled as well.
- base::UnguessableToken navigation_token;
-
- // Prefetched signed exchanges. Used when SignedExchangeSubresourcePrefetch
- // feature is enabled.
- std::vector<PrefetchedSignedExchangeInfo> prefetched_signed_exchanges;
-
-#if defined(OS_ANDROID)
- // The real content of the data: URL. Only used in Android WebView for
- // implementing LoadDataWithBaseUrl API method to circumvent the restriction
- // on the GURL max length in the IPC layer. Short data: URLs can still be
- // passed in the |CommonNavigationParams::url| field.
- std::string data_url_as_string;
-#endif
-
- // Whether this navigation was browser initiated.
- bool is_browser_initiated = false;
-};
+CONTENT_EXPORT mojom::CommitNavigationParamsPtr CreateCommitNavigationParams();
} // namespace content
diff --git a/content/common/navigation_params.mojom b/content/common/navigation_params.mojom
index 71a9a447..6bf27ad 100644
--- a/content/common/navigation_params.mojom
+++ b/content/common/navigation_params.mojom
@@ -4,7 +4,9 @@
module content.mojom;
+import "content/public/common/was_activated_option.mojom";
import "mojo/public/mojom/base/time.mojom";
+import "mojo/public/mojom/base/unguessable_token.mojom";
import "mojo/public/mojom/base/values.mojom";
import "services/network/public/mojom/url_loader.mojom";
import "third_party/blink/public/mojom/fetch/fetch_api_request.mojom";
@@ -23,9 +25,15 @@
struct NavigationDownloadPolicy;
[Native]
+struct PageState;
+
+[Native]
enum PageTransition;
[Native]
+struct PrefetchedSignedExchangeInfo;
+
+[Native]
struct SourceLocation;
enum NavigationType {
@@ -206,3 +214,135 @@
// setting it.
mojo_base.mojom.TimeTicks input_start;
};
+
+// Provided by the browser -----------------------------------------------------
+
+// Timings collected in the browser during navigation for the
+// Navigation Timing API. Sent to Blink in CommitNavigationParams when
+// the navigation is ready to be committed.
+struct NavigationTiming {
+ mojo_base.mojom.TimeTicks redirect_start;
+ mojo_base.mojom.TimeTicks redirect_end;
+ mojo_base.mojom.TimeTicks fetch_start;
+};
+
+// Used by commit IPC messages. Holds the parameters needed by the renderer to
+// commit a navigation besides those in CommonNavigationParams.
+struct CommitNavigationParams {
+ // The origin to be used for committing the navigation, if specified.
+ // This will be an origin that's compatible with the |url| in the
+ // CommonNavigationParams; if |url| is data: or about:blank, or the frame has
+ // sandbox attributes, this determines the origin of the resulting document.
+ // It is specified for session history navigations, for which the origin is
+ // known and saved in the FrameNavigationEntry.
+ url.mojom.Origin? origin_to_commit;
+
+ // Whether or not the user agent override string should be used.
+ bool is_overriding_user_agent = false;
+
+ // Any redirect URLs that occurred before |url|. Useful for cross-process
+ // navigations; defaults to empty.
+ array<url.mojom.Url> redirects;
+
+ // The ResourceResponseInfos received during redirects.
+ array<network.mojom.URLResponseHead> redirect_response;
+
+ // The RedirectInfos received during redirects.
+ array<network.mojom.URLRequestRedirectInfo> redirect_infos;
+
+ // The content type from the request headers for POST requests.
+ string post_content_type;
+
+ // The original URL & method for this navigation.
+ url.mojom.Url original_url;
+ string original_method;
+
+ // Whether or not this url should be allowed to access local file://
+ // resources.
+ bool can_load_local_resources = false;
+
+ // Opaque history state (received by FrameHostMsg_UpdateState).
+ PageState page_state;
+
+ // For browser-initiated navigations, this is the unique id of the
+ // NavigationEntry being navigated to. (For renderer-initiated navigations it
+ // is 0.) If the load succeeds, then this nav_entry_id will be reflected in
+ // the resulting FrameHostMsg_DidCommitProvisionalLoad_Params.
+ int32 nav_entry_id = 0;
+
+ // If this is a history navigation, this contains a map of frame unique names
+ // to |is_about_blank| for immediate children of the frame being navigated for
+ // which there are history items. The renderer process only needs to check
+ // with the browser process for newly created subframes that have these unique
+ // names (and only when not staying on about:blank).
+ // TODO(creis): Expand this to a data structure including corresponding
+ // same-process PageStates for the whole subtree in https://crbug.com/639842.
+ map<string, bool> subframe_unique_names;
+
+ // For browser-initiated navigations, this is true if this is a new entry
+ // being navigated to. This is false otherwise. TODO(avi): Remove this when
+ // the pending entry situation is made sane and the browser keeps them around
+ // long enough to match them via nav_entry_id, above.
+ bool intended_as_new_entry = false;
+
+ // For history navigations, this is the offset in the history list of the
+ // pending load. For non-history navigations, this will be ignored.
+ int32 pending_history_list_offset = -1;
+
+ // Where its current page contents reside in session history and the total
+ // size of the session history list.
+ int32 current_history_list_offset = -1;
+ int32 current_history_list_length = 0;
+
+ // Indicates that the tab was previously discarded.
+ // wasDiscarded is exposed on Document after discard, see:
+ // https://github.com/WICG/web-lifecycle
+ bool was_discarded = false;
+
+ // Indicates whether the navigation is to a view-source:// scheme or not.
+ // It is a separate boolean as the view-source scheme is stripped from the
+ // URL before it is sent to the renderer process and the RenderFrame needs
+ // to be put in special view source mode.
+ bool is_view_source = false;
+
+ // Whether session history should be cleared. In that case, the RenderView
+ // needs to notify the browser that the clearing was successful when the
+ // navigation commits.
+ bool should_clear_history_list = false;
+
+ // Timing of navigation events.
+ NavigationTiming navigation_timing;
+
+ // The AppCache host id to be used to identify this navigation.
+ mojo_base.mojom.UnguessableToken? appcache_host_id;
+
+ // Set to |kYes| if a navigation is following the rules of user activation
+ // propagation. This is different from |has_user_gesture|
+ // (in CommonNavigationParams) as the activation may have happened before
+ // the navigation was triggered, for example.
+ // In other words, the distinction isn't regarding user activation and user
+ // gesture but whether there was an activation prior to the navigation or to
+ // start it. `was_activated` will answer the former question while
+ // `user_gesture` will answer the latter.
+ WasActivatedOption was_activated = kUnknown;
+
+ // A token that should be passed to the browser process in
+ // DidCommitProvisionalLoadParams.
+ // TODO(clamy): Remove this once NavigationClient has shipped and
+ // same-document browser-initiated navigations are properly handled as well.
+ mojo_base.mojom.UnguessableToken navigation_token;
+
+ // Prefetched signed exchanges. Used when SignedExchangeSubresourcePrefetch
+ // feature is enabled.
+ array<PrefetchedSignedExchangeInfo> prefetched_signed_exchanges;
+
+ // The real content of the data: URL. Only used in Android WebView for
+ // implementing LoadDataWithBaseUrl API method to circumvent the restriction
+ // on the GURL max length in the IPC layer. Short data: URLs can still be
+ // passed in the |CommonNavigationParams::url| field.
+ [EnableIf=is_android]
+ string data_url_as_string;
+
+ // Whether this navigation was browser initiated.
+ bool is_browser_initiated = false;
+};
diff --git a/content/common/navigation_params.typemap b/content/common/navigation_params.typemap
index a394fbd..c3ab177 100644
--- a/content/common/navigation_params.typemap
+++ b/content/common/navigation_params.typemap
@@ -5,6 +5,8 @@
mojom = "//content/common/navigation_params.mojom"
public_headers = [
"//content/common/navigation_params.h",
+ "//content/common/prefetched_signed_exchange_info.h",
+ "//content/public/common/page_state.h",
"//content/public/common/navigation_policy.h",
"//third_party/blink/public/platform/web_mixed_content_context_type.h",
"//ui/base/page_transition_types.h",
@@ -20,6 +22,8 @@
"content.mojom.InitiatorCSPInfo=::content::InitiatorCSPInfo",
"content.mojom.MixedContentContextType=::blink::WebMixedContentContextType",
"content.mojom.NavigationDownloadPolicy=::content::NavigationDownloadPolicy",
+ "content.mojom.PageState=::content::PageState",
"content.mojom.PageTransition=::ui::PageTransition",
+ "content.mojom.PrefetchedSignedExchangeInfo=::content::PrefetchedSignedExchangeInfo",
"content.mojom.SourceLocation=::content::SourceLocation",
]
diff --git a/content/common/typemaps.gni b/content/common/typemaps.gni
index 920be07..e01e065 100644
--- a/content/common/typemaps.gni
+++ b/content/common/typemaps.gni
@@ -3,7 +3,6 @@
# found in the LICENSE file.
typemaps = [
- "//content/common/frame.typemap",
"//content/common/frame_messages.typemap",
"//content/common/input/synchronous_compositor.typemap",
"//content/common/native_types.typemap",
diff --git a/content/public/browser/navigation_controller.cc b/content/public/browser/navigation_controller.cc
index 7b11ca8f..e152cc82 100644
--- a/content/public/browser/navigation_controller.cc
+++ b/content/public/browser/navigation_controller.cc
@@ -7,7 +7,7 @@
#include "base/memory/ref_counted_memory.h"
#include "build/build_config.h"
#include "content/public/browser/render_frame_host.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
namespace content {
@@ -26,7 +26,7 @@
started_from_context_menu(false),
navigation_ui_data(nullptr),
from_download_cross_origin_redirect(false),
- was_activated(WasActivatedOption::kUnknown),
+ was_activated(mojom::WasActivatedOption::kUnknown),
reload_type(ReloadType::NONE) {}
NavigationController::LoadURLParams::~LoadURLParams() {
diff --git a/content/public/browser/navigation_controller.h b/content/public/browser/navigation_controller.h
index 254b4a1..a3048715 100644
--- a/content/public/browser/navigation_controller.h
+++ b/content/public/browser/navigation_controller.h
@@ -24,6 +24,7 @@
#include "content/public/browser/session_storage_namespace.h"
#include "content/public/browser/site_instance.h"
#include "content/public/common/referrer.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "services/network/public/cpp/resource_request_body.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "ui/base/page_transition_types.h"
@@ -38,7 +39,6 @@
namespace content {
-enum class WasActivatedOption;
class BrowserContext;
class NavigationEntry;
class WebContents;
@@ -223,7 +223,7 @@
// Set to |kYes| if the navigation should propagate user activation. This
// is used by embedders where the activation has occurred outside the page.
- WasActivatedOption was_activated;
+ mojom::WasActivatedOption was_activated;
// If this navigation was initiated from a link that specified the
// hrefTranslate attribute, this contains the attribute's value (a BCP47
diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn
index d3492e0c..62bea64 100644
--- a/content/public/common/BUILD.gn
+++ b/content/public/common/BUILD.gn
@@ -209,7 +209,6 @@
"use_zoom_for_dsf_policy.cc",
"use_zoom_for_dsf_policy.h",
"user_agent.h",
- "was_activated_option.h",
"web_preferences.cc",
"web_preferences.h",
"webplugininfo.cc",
@@ -366,6 +365,7 @@
"resource_load_info.mojom",
"resource_usage_reporter.mojom",
"transferrable_url_loader.mojom",
+ "was_activated_option.mojom",
"webplugininfo.mojom",
"window_container_type.mojom",
]
diff --git a/content/public/common/was_activated_option.h b/content/public/common/was_activated_option.mojom
similarity index 67%
rename from content/public/common/was_activated_option.h
rename to content/public/common/was_activated_option.mojom
index 23b37bf..16b10bf 100644
--- a/content/public/common/was_activated_option.h
+++ b/content/public/common/was_activated_option.mojom
@@ -2,14 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_PUBLIC_COMMON_WAS_ACTIVATED_OPTION_H_
-#define CONTENT_PUBLIC_COMMON_WAS_ACTIVATED_OPTION_H_
-
-namespace content {
+module content.mojom;
// Whether the navigation should propagate user activation. This can be
// specified by embedders in NavigationController::LoadURLParams.
-enum class WasActivatedOption {
+enum WasActivatedOption {
// The content layer should make a decision about whether to propagate user
// activation.
kUnknown,
@@ -19,9 +16,4 @@
// The navigation should not propagate user activation.
kNo,
- kMaxValue = kNo,
};
-
-} // namespace content
-
-#endif // CONTENT_PUBLIC_COMMON_WAS_ACTIVATED_OPTION_H_
diff --git a/content/public/test/render_view_test.cc b/content/public/test/render_view_test.cc
index 7c3f1623..b2b8182 100644
--- a/content/public/test/render_view_test.cc
+++ b/content/public/test/render_view_test.cc
@@ -664,7 +664,7 @@
TestRenderFrame* frame =
static_cast<TestRenderFrame*>(impl->GetMainRenderFrame());
FrameLoadWaiter waiter(frame);
- frame->Navigate(std::move(common_params), CommitNavigationParams());
+ frame->Navigate(std::move(common_params), CreateCommitNavigationParams());
waiter.Wait();
view_->GetWebView()->MainFrameWidget()->UpdateAllLifecyclePhases(
blink::WebWidget::LifecycleUpdateReason::kTest);
@@ -807,17 +807,17 @@
false /* started_from_context_menu */, false /* has_user_gesture */,
InitiatorCSPInfo(), std::vector<int>(), std::string(),
false /* is_history_navigation_in_new_child_frame */, base::TimeTicks());
- CommitNavigationParams commit_params;
- commit_params.page_state = state;
- commit_params.nav_entry_id = pending_offset + 1;
- commit_params.pending_history_list_offset = pending_offset;
- commit_params.current_history_list_offset = impl->history_list_offset_;
- commit_params.current_history_list_length = history_list_length;
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->page_state = state;
+ commit_params->nav_entry_id = pending_offset + 1;
+ commit_params->pending_history_list_offset = pending_offset;
+ commit_params->current_history_list_offset = impl->history_list_offset_;
+ commit_params->current_history_list_length = history_list_length;
TestRenderFrame* frame =
static_cast<TestRenderFrame*>(impl->GetMainRenderFrame());
FrameLoadWaiter waiter(frame);
- frame->Navigate(std::move(common_params), commit_params);
+ frame->Navigate(std::move(common_params), std::move(commit_params));
// The load may actually happen asynchronously, so we pump messages to process
// the pending continuation.
waiter.Wait();
diff --git a/content/renderer/loader/navigation_body_loader.cc b/content/renderer/loader/navigation_body_loader.cc
index 95e15eb..50fc776 100644
--- a/content/renderer/loader/navigation_body_loader.cc
+++ b/content/renderer/loader/navigation_body_loader.cc
@@ -21,7 +21,7 @@
// static
void NavigationBodyLoader::FillNavigationParamsResponseAndBodyLoader(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
int request_id,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
diff --git a/content/renderer/loader/navigation_body_loader.h b/content/renderer/loader/navigation_body_loader.h
index 889f0b2..90844dd 100644
--- a/content/renderer/loader/navigation_body_loader.h
+++ b/content/renderer/loader/navigation_body_loader.h
@@ -50,7 +50,7 @@
// redirects and response, and also creates a body loader if needed.
static void FillNavigationParamsResponseAndBodyLoader(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
int request_id,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
diff --git a/content/renderer/loader/navigation_body_loader_unittest.cc b/content/renderer/loader/navigation_body_loader_unittest.cc
index 6f364a33..3dd7878 100644
--- a/content/renderer/loader/navigation_body_loader_unittest.cc
+++ b/content/renderer/loader/navigation_body_loader_unittest.cc
@@ -48,8 +48,9 @@
auto common_params = mojom::CommonNavigationParams::New();
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
+ auto commit_params = CreateCommitNavigationParams();
NavigationBodyLoader::FillNavigationParamsResponseAndBodyLoader(
- *common_params, CommitNavigationParams(), 1 /* request_id */,
+ *common_params, *commit_params, 1 /* request_id */,
network::ResourceResponseHead(),
mojo::ScopedDataPipeConsumerHandle() /* response_body */,
std::move(endpoints),
@@ -316,11 +317,12 @@
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
common_params->url = GURL("https://example.test");
+ auto commit_params = CreateCommitNavigationParams();
blink::WebNavigationParams navigation_params;
auto endpoints = network::mojom::URLLoaderClientEndpoints::New();
NavigationBodyLoader::FillNavigationParamsResponseAndBodyLoader(
- *common_params, CommitNavigationParams(), 1 /* request_id */, response,
+ *common_params, *commit_params, 1 /* request_id */, response,
mojo::ScopedDataPipeConsumerHandle() /* response_body */,
std::move(endpoints),
blink::scheduler::GetSingleThreadTaskRunnerForTesting(),
diff --git a/content/renderer/navigation_client.cc b/content/renderer/navigation_client.cc
index 1765789..0bb8c7f 100644
--- a/content/renderer/navigation_client.cc
+++ b/content/renderer/navigation_client.cc
@@ -17,7 +17,7 @@
void NavigationClient::CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -36,7 +36,7 @@
// unexpectedly abort the ongoing navigation. Remove when the races are fixed.
ResetDisconnectionHandler();
render_frame_->CommitPerNavigationMojoInterfaceNavigation(
- std::move(common_params), commit_params, response_head,
+ std::move(common_params), std::move(commit_params), response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
std::move(subresource_loaders), std::move(subresource_overrides),
std::move(controller_service_worker_info), std::move(provider_info),
@@ -46,7 +46,7 @@
void NavigationClient::CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -54,9 +54,9 @@
CommitFailedNavigationCallback callback) {
ResetDisconnectionHandler();
render_frame_->CommitFailedPerNavigationMojoInterfaceNavigation(
- std::move(common_params), commit_params, has_stale_copy_in_cache,
- error_code, error_page_content, std::move(subresource_loaders),
- std::move(callback));
+ std::move(common_params), std::move(commit_params),
+ has_stale_copy_in_cache, error_code, error_page_content,
+ std::move(subresource_loaders), std::move(callback));
}
void NavigationClient::Bind(mojom::NavigationClientAssociatedRequest request) {
diff --git a/content/renderer/navigation_client.h b/content/renderer/navigation_client.h
index 36f07828..56199316 100644
--- a/content/renderer/navigation_client.h
+++ b/content/renderer/navigation_client.h
@@ -20,7 +20,7 @@
// mojom::NavigationClient implementation:
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -36,7 +36,7 @@
CommitNavigationCallback callback) override;
void CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
diff --git a/content/renderer/navigation_state.cc b/content/renderer/navigation_state.cc
index 2239f05..66413a2 100644
--- a/content/renderer/navigation_state.cc
+++ b/content/renderer/navigation_state.cc
@@ -22,7 +22,7 @@
// static
std::unique_ptr<NavigationState> NavigationState::CreateBrowserInitiated(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
base::TimeTicks time_commit_requested,
mojom::FrameNavigationControl::CommitNavigationCallback callback,
mojom::NavigationClient::CommitNavigationCallback
@@ -30,8 +30,9 @@
std::unique_ptr<NavigationClient> navigation_client,
bool was_initiated_in_this_frame) {
return base::WrapUnique(new NavigationState(
- std::move(common_params), commit_params, time_commit_requested, false,
- std::move(callback), std::move(per_navigation_mojo_interface_callback),
+ std::move(common_params), std::move(commit_params), time_commit_requested,
+ false, std::move(callback),
+ std::move(per_navigation_mojo_interface_callback),
std::move(navigation_client), was_initiated_in_this_frame));
}
@@ -41,8 +42,9 @@
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
return base::WrapUnique(new NavigationState(
- std::move(common_params), CommitNavigationParams(), base::TimeTicks(),
- true, content::mojom::FrameNavigationControl::CommitNavigationCallback(),
+ std::move(common_params), CreateCommitNavigationParams(),
+ base::TimeTicks(), true,
+ content::mojom::FrameNavigationControl::CommitNavigationCallback(),
content::mojom::NavigationClient::CommitNavigationCallback(), nullptr,
true));
}
@@ -80,7 +82,7 @@
NavigationState::NavigationState(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
base::TimeTicks time_commit_requested,
bool is_content_initiated,
mojom::FrameNavigationControl::CommitNavigationCallback callback,
@@ -93,7 +95,7 @@
was_initiated_in_this_frame_(was_initiated_in_this_frame),
is_content_initiated_(is_content_initiated),
common_params_(std::move(common_params)),
- commit_params_(commit_params),
+ commit_params_(std::move(commit_params)),
time_commit_requested_(time_commit_requested),
navigation_client_(std::move(navigation_client)),
commit_callback_(std::move(callback)),
diff --git a/content/renderer/navigation_state.h b/content/renderer/navigation_state.h
index 7938258..5d3b40d 100644
--- a/content/renderer/navigation_state.h
+++ b/content/renderer/navigation_state.h
@@ -32,7 +32,7 @@
static std::unique_ptr<NavigationState> CreateBrowserInitiated(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
base::TimeTicks time_commit_requested,
mojom::FrameNavigationControl::CommitNavigationCallback callback,
mojom::NavigationClient::CommitNavigationCallback
@@ -54,7 +54,9 @@
const mojom::CommonNavigationParams& common_params() const {
return *common_params_;
}
- const CommitNavigationParams& commit_params() const { return commit_params_; }
+ const mojom::CommitNavigationParams& commit_params() const {
+ return *commit_params_;
+ }
bool request_committed() const { return request_committed_; }
bool uses_per_navigation_mojo_interface() const {
return navigation_client_.get();
@@ -95,7 +97,7 @@
private:
NavigationState(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
base::TimeTicks time_commit_requested,
bool is_content_initiated,
content::mojom::FrameNavigationControl::CommitNavigationCallback callback,
@@ -131,7 +133,7 @@
// swaps because FrameLoader::loadWithNavigationAction treats loads before a
// FrameLoader has committedFirstRealDocumentLoad as a replacement. (Added for
// http://crbug.com/178380).
- const CommitNavigationParams commit_params_;
+ mojom::CommitNavigationParamsPtr commit_params_;
// Time when RenderFrameImpl::CommitNavigation() is called.
base::TimeTicks time_commit_requested_;
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index acebcca..4c3e0dea 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -440,7 +440,7 @@
void FillNavigationParamsRequest(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
blink::WebNavigationParams* navigation_params) {
// Use the original navigation url to start with. We'll replay the redirects
// afterwards and will eventually arrive to the final url.
@@ -887,7 +887,7 @@
// navigation parameters available in the RenderFrameImpl.
std::unique_ptr<DocumentState> BuildDocumentStateFromParams(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
base::TimeTicks time_commit_requested,
mojom::FrameNavigationControl::CommitNavigationCallback commit_callback,
mojom::NavigationClient::CommitNavigationCallback
@@ -953,7 +953,7 @@
InternalDocumentStateData::FromDocumentState(document_state.get())
->set_navigation_state(NavigationState::CreateBrowserInitiated(
- common_params.Clone(), commit_params, time_commit_requested,
+ common_params.Clone(), commit_params.Clone(), time_commit_requested,
std::move(commit_callback),
std::move(per_navigation_mojo_interface_commit_callback),
std::move(navigation_client), was_initiated_in_this_frame));
@@ -999,7 +999,7 @@
// format, blink::WebNavigationTimings.
blink::WebNavigationTimings BuildNavigationTimings(
base::TimeTicks navigation_start,
- const NavigationTiming& browser_navigation_timings,
+ const mojom::NavigationTiming& browser_navigation_timings,
base::TimeTicks input_start) {
blink::WebNavigationTimings renderer_navigation_timings;
@@ -1031,14 +1031,14 @@
// format, blink::WebNavigationParams.
void FillMiscNavigationParams(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
blink::WebNavigationParams* navigation_params) {
navigation_params->navigation_timings = BuildNavigationTimings(
- common_params.navigation_start, commit_params.navigation_timing,
+ common_params.navigation_start, *commit_params.navigation_timing,
common_params.input_start);
navigation_params->is_user_activated =
- commit_params.was_activated == WasActivatedOption::kYes;
+ commit_params.was_activated == mojom::WasActivatedOption::kYes;
navigation_params->is_browser_initiated = commit_params.is_browser_initiated;
@@ -3381,7 +3381,7 @@
void RenderFrameImpl::CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -3400,7 +3400,7 @@
// IsPerNavigationMojoInterfaceEnabled() == true, for non-committed
// interstitials where no NavigationRequest was created. Therefore, no DCHECK.
CommitNavigationInternal(
- std::move(common_params), commit_params, response_head,
+ std::move(common_params), std::move(commit_params), response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
std::move(subresource_loader_factories), std::move(subresource_overrides),
std::move(controller_service_worker_info), std::move(provider_info),
@@ -3411,7 +3411,7 @@
void RenderFrameImpl::CommitPerNavigationMojoInterfaceNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -3429,7 +3429,7 @@
DCHECK(navigation_client_impl_);
DCHECK(IsPerNavigationMojoInterfaceEnabled());
CommitNavigationInternal(
- std::move(common_params), commit_params, response_head,
+ std::move(common_params), std::move(commit_params), response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
std::move(subresource_loader_factories), std::move(subresource_overrides),
std::move(controller_service_worker_info), std::move(provider_info),
@@ -3440,7 +3440,7 @@
void RenderFrameImpl::CommitNavigationInternal(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -3458,7 +3458,7 @@
per_navigation_mojo_interface_callback) {
DCHECK(!IsRendererDebugURL(common_params->url));
DCHECK(!NavigationTypeUtils::IsSameDocument(common_params->navigation_type));
- if (ShouldIgnoreCommitNavigation(commit_params)) {
+ if (ShouldIgnoreCommitNavigation(*commit_params)) {
browser_side_navigation_pending_url_ = GURL();
AbortCommitNavigation(std::move(callback),
blink::mojom::CommitResult::Aborted);
@@ -3473,8 +3473,8 @@
} else {
was_initiated_in_this_frame =
browser_side_navigation_pending_ &&
- browser_side_navigation_pending_url_ == commit_params.original_url &&
- commit_params.nav_entry_id == 0;
+ browser_side_navigation_pending_url_ == commit_params->original_url &&
+ commit_params->nav_entry_id == 0;
}
// Sanity check that the browser always sends us new loader factories on
@@ -3492,7 +3492,7 @@
: nullptr;
int request_id = ResourceDispatcher::MakeRequestID();
std::unique_ptr<DocumentState> document_state = BuildDocumentStateFromParams(
- *common_params, commit_params, base::TimeTicks::Now(),
+ *common_params, *commit_params, base::TimeTicks::Now(),
std::move(callback), std::move(per_navigation_mojo_interface_callback),
document_state_response_head, std::move(navigation_client_impl_),
request_id, was_initiated_in_this_frame);
@@ -3503,12 +3503,12 @@
auto navigation_params =
std::make_unique<WebNavigationParams>(devtools_navigation_token);
navigation_params->is_client_redirect = is_client_redirect;
- FillMiscNavigationParams(*common_params, commit_params,
+ FillMiscNavigationParams(*common_params, *commit_params,
navigation_params.get());
auto commit_with_params = base::BindOnce(
&RenderFrameImpl::CommitNavigationWithParams, weak_factory_.GetWeakPtr(),
- common_params.Clone(), commit_params,
+ common_params.Clone(), commit_params.Clone(),
std::move(subresource_loader_factories), std::move(subresource_overrides),
std::move(controller_service_worker_info), std::move(provider_info),
std::move(prefetch_loader_factory), std::move(document_state));
@@ -3517,12 +3517,12 @@
// Note: the base URL might be invalid, so also check the data URL string.
bool should_load_data_url = !common_params->base_url_for_data_url.is_empty();
#if defined(OS_ANDROID)
- should_load_data_url |= !commit_params.data_url_as_string.empty();
+ should_load_data_url |= !commit_params->data_url_as_string.empty();
#endif
if (is_main_frame_ && should_load_data_url) {
std::string mime_type, charset, data;
GURL base_url;
- DecodeDataURL(*common_params, commit_params, &mime_type, &charset, &data,
+ DecodeDataURL(*common_params, *commit_params, &mime_type, &charset, &data,
&base_url);
navigation_params->url = base_url;
WebNavigationParams::FillStaticResponse(navigation_params.get(),
@@ -3535,7 +3535,7 @@
return;
}
- FillNavigationParamsRequest(*common_params, commit_params,
+ FillNavigationParamsRequest(*common_params, *commit_params,
navigation_params.get());
if (!url_loader_client_endpoints &&
common_params->url.SchemeIs(url::kDataScheme)) {
@@ -3553,7 +3553,7 @@
WebString::FromUTF8(charset), data);
} else {
NavigationBodyLoader::FillNavigationParamsResponseAndBodyLoader(
- *common_params, commit_params, request_id, response_head,
+ *common_params, *commit_params, request_id, response_head,
std::move(response_body), std::move(url_loader_client_endpoints),
GetTaskRunner(blink::TaskType::kInternalLoading), GetRoutingID(),
!frame_->Parent(), navigation_params.get());
@@ -3581,7 +3581,7 @@
}
bool RenderFrameImpl::ShouldIgnoreCommitNavigation(
- const CommitNavigationParams& commit_params) {
+ const mojom::CommitNavigationParams& commit_params) {
// We can ignore renderer-initiated navigations (nav_entry_id == 0) which
// have been canceled in the renderer, but browser was not aware yet at the
// moment of issuing a CommitNavigation call.
@@ -3596,7 +3596,7 @@
void RenderFrameImpl::CommitNavigationWithParams(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>
subresource_loader_factories,
base::Optional<std::vector<mojom::TransferrableURLLoaderPtr>>
@@ -3607,7 +3607,7 @@
prefetch_loader_factory,
std::unique_ptr<DocumentState> document_state,
std::unique_ptr<WebNavigationParams> navigation_params) {
- if (ShouldIgnoreCommitNavigation(commit_params)) {
+ if (ShouldIgnoreCommitNavigation(*commit_params)) {
browser_side_navigation_pending_url_ = GURL();
return;
}
@@ -3653,15 +3653,15 @@
// If the navigation is for "view source", the WebLocalFrame needs to be put
// in a special mode.
- if (commit_params.is_view_source)
+ if (commit_params->is_view_source)
frame_->EnableViewSourceMode(true);
- PrepareFrameForCommit(common_params->url, commit_params);
+ PrepareFrameForCommit(common_params->url, *commit_params);
blink::WebFrameLoadType load_type =
NavigationTypeToLoadType(common_params->navigation_type,
common_params->should_replace_current_entry,
- commit_params.page_state.IsValid());
+ commit_params->page_state.IsValid());
WebHistoryItem item_for_history_navigation;
blink::mojom::CommitResult commit_status = blink::mojom::CommitResult::Ok;
@@ -3670,11 +3670,11 @@
// We must know the nav entry ID of the page we are navigating back to,
// which should be the case because history navigations are routed via the
// browser.
- DCHECK_NE(0, commit_params.nav_entry_id);
+ DCHECK_NE(0, commit_params->nav_entry_id);
// Check that the history navigation can commit.
commit_status = PrepareForHistoryNavigationCommit(
- *common_params, commit_params, &item_for_history_navigation,
+ *common_params, *commit_params, &item_for_history_navigation,
&load_type);
}
@@ -3700,7 +3700,7 @@
void RenderFrameImpl::CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -3710,15 +3710,15 @@
DCHECK(!navigation_client_impl_);
DCHECK(!IsPerNavigationMojoInterfaceEnabled());
CommitFailedNavigationInternal(
- std::move(common_params), commit_params, has_stale_copy_in_cache,
- error_code, error_page_content, std::move(subresource_loader_factories),
- std::move(callback),
+ std::move(common_params), std::move(commit_params),
+ has_stale_copy_in_cache, error_code, error_page_content,
+ std::move(subresource_loader_factories), std::move(callback),
mojom::NavigationClient::CommitFailedNavigationCallback());
}
void RenderFrameImpl::CommitFailedPerNavigationMojoInterfaceNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -3729,15 +3729,16 @@
DCHECK(navigation_client_impl_);
DCHECK(IsPerNavigationMojoInterfaceEnabled());
CommitFailedNavigationInternal(
- std::move(common_params), commit_params, has_stale_copy_in_cache,
- error_code, error_page_content, std::move(subresource_loader_factories),
+ std::move(common_params), std::move(commit_params),
+ has_stale_copy_in_cache, error_code, error_page_content,
+ std::move(subresource_loader_factories),
mojom::FrameNavigationControl::CommitFailedNavigationCallback(),
std::move(per_navigation_mojo_interface_callback));
}
void RenderFrameImpl::CommitFailedNavigationInternal(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -3750,7 +3751,7 @@
"RenderFrameImpl::CommitFailedNavigation", "id", routing_id_);
DCHECK(!NavigationTypeUtils::IsSameDocument(common_params->navigation_type));
RenderFrameImpl::PrepareRenderViewForNavigation(common_params->url,
- commit_params);
+ *commit_params);
sync_navigation_callback_.Cancel();
mhtml_body_loader_client_.reset();
@@ -3769,7 +3770,7 @@
WebURLError::IsWebSecurityViolation::kFalse, common_params->url);
auto navigation_params = std::make_unique<WebNavigationParams>();
- FillNavigationParamsRequest(*common_params, commit_params,
+ FillNavigationParamsRequest(*common_params, *commit_params,
navigation_params.get());
navigation_params->url = GURL(kUnreachableWebDataURL);
navigation_params->error_code = error_code;
@@ -3798,7 +3799,7 @@
if (!weak_this)
return;
- if (commit_params.nav_entry_id == 0) {
+ if (commit_params->nav_entry_id == 0) {
// For renderer initiated navigations, we send out a
// DidFailProvisionalLoad() notification.
NotifyObserversOfFailedProvisionalLoad(error);
@@ -3846,8 +3847,8 @@
common_params->url == GetLoadingUrl() ||
common_params->should_replace_current_entry;
std::unique_ptr<HistoryEntry> history_entry;
- if (commit_params.page_state.IsValid())
- history_entry = PageStateToHistoryEntry(commit_params.page_state);
+ if (commit_params->page_state.IsValid())
+ history_entry = PageStateToHistoryEntry(commit_params->page_state);
std::string error_html;
if (error_page_content.has_value()) {
@@ -3874,7 +3875,7 @@
}
navigation_params->service_worker_network_provider =
ServiceWorkerNetworkProviderForFrame::CreateInvalidInstance();
- FillMiscNavigationParams(*common_params, commit_params,
+ FillMiscNavigationParams(*common_params, *commit_params,
navigation_params.get());
WebNavigationParams::FillStaticResponse(navigation_params.get(), "text/html",
"UTF-8", error_html);
@@ -3884,7 +3885,7 @@
// was not initiated through BeginNavigation, therefore
// |was_initiated_in_this_frame| is false.
std::unique_ptr<DocumentState> document_state = BuildDocumentStateFromParams(
- *common_params, commit_params, base::TimeTicks(), std::move(callback),
+ *common_params, *commit_params, base::TimeTicks(), std::move(callback),
std::move(per_navigation_mojo_interface_callback), nullptr,
std::move(navigation_client_impl_), ResourceDispatcher::MakeRequestID(),
false /* was_initiated_in_this_frame */);
@@ -3904,33 +3905,33 @@
void RenderFrameImpl::CommitSameDocumentNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
CommitSameDocumentNavigationCallback callback) {
DCHECK(!IsRendererDebugURL(common_params->url));
DCHECK(!NavigationTypeUtils::IsReload(common_params->navigation_type));
- DCHECK(!commit_params.is_view_source);
+ DCHECK(!commit_params->is_view_source);
DCHECK(NavigationTypeUtils::IsSameDocument(common_params->navigation_type));
- PrepareFrameForCommit(common_params->url, commit_params);
+ PrepareFrameForCommit(common_params->url, *commit_params);
blink::WebFrameLoadType load_type =
NavigationTypeToLoadType(common_params->navigation_type,
common_params->should_replace_current_entry,
- commit_params.page_state.IsValid());
+ commit_params->page_state.IsValid());
blink::mojom::CommitResult commit_status = blink::mojom::CommitResult::Ok;
WebHistoryItem item_for_history_navigation;
if (common_params->navigation_type ==
mojom::NavigationType::HISTORY_SAME_DOCUMENT) {
- DCHECK(commit_params.page_state.IsValid());
+ DCHECK(commit_params->page_state.IsValid());
// We must know the nav entry ID of the page we are navigating back to,
// which should be the case because history navigations are routed via the
// browser.
- DCHECK_NE(0, commit_params.nav_entry_id);
+ DCHECK_NE(0, commit_params->nav_entry_id);
DCHECK(!common_params->is_history_navigation_in_new_child_frame);
commit_status = PrepareForHistoryNavigationCommit(
- *common_params, commit_params, &item_for_history_navigation,
+ *common_params, *commit_params, &item_for_history_navigation,
&load_type);
}
@@ -3948,8 +3949,9 @@
InternalDocumentStateData::FromDocumentState(original_document_state));
// This is a browser-initiated same-document navigation (as opposed to a
// fragment link click), therefore |was_initiated_in_this_frame| is false.
+ auto url = common_params->url;
internal_data->set_navigation_state(NavigationState::CreateBrowserInitiated(
- common_params.Clone(), commit_params,
+ std::move(common_params), std::move(commit_params),
base::TimeTicks(), // Not used for same-document navigation.
mojom::FrameNavigationControl::CommitNavigationCallback(),
mojom::NavigationClient::CommitNavigationCallback(), nullptr,
@@ -3957,8 +3959,8 @@
// Load the request.
commit_status = frame_->CommitSameDocumentNavigation(
- common_params->url, load_type, item_for_history_navigation,
- is_client_redirect, std::move(document_state));
+ url, load_type, item_for_history_navigation, is_client_redirect,
+ std::move(document_state));
// The load of the URL can result in this frame being removed. Use a
// WeakPtr as an easy way to detect whether this has occured. If so, this
@@ -6111,7 +6113,7 @@
blink::WebHistoryCommitType commit_type) {
NavigationState* navigation_state =
NavigationState::FromDocumentLoader(frame_->GetDocumentLoader());
- const CommitNavigationParams& commit_params =
+ const mojom::CommitNavigationParams& commit_params =
navigation_state->commit_params();
// Update the current history item for this frame.
@@ -6240,7 +6242,7 @@
void RenderFrameImpl::PrepareFrameForCommit(
const GURL& url,
- const CommitNavigationParams& commit_params) {
+ const mojom::CommitNavigationParams& commit_params) {
browser_side_navigation_pending_ = false;
browser_side_navigation_pending_url_ = GURL();
sync_navigation_callback_.Cancel();
@@ -6254,7 +6256,7 @@
blink::mojom::CommitResult RenderFrameImpl::PrepareForHistoryNavigationCommit(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
WebHistoryItem* item_for_history_navigation,
blink::WebFrameLoadType* load_type) {
mojom::NavigationType navigation_type = common_params.navigation_type;
@@ -7124,7 +7126,7 @@
void RenderFrameImpl::PrepareRenderViewForNavigation(
const GURL& url,
- const CommitNavigationParams& commit_params) {
+ const mojom::CommitNavigationParams& commit_params) {
DCHECK(render_view_->webview());
render_view_->history_list_offset_ =
@@ -7263,7 +7265,7 @@
void RenderFrameImpl::DecodeDataURL(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
std::string* mime_type,
std::string* charset,
std::string* data,
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index f78f012..dcf012ae 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -37,6 +37,7 @@
#include "content/common/frame_delete_intention.h"
#include "content/common/host_zoom.mojom.h"
#include "content/common/media/renderer_audio_input_stream_factory.mojom.h"
+#include "content/common/navigation_params.mojom.h"
#include "content/common/renderer.mojom.h"
#include "content/common/unique_name_helper.h"
#include "content/common/widget.mojom.h"
@@ -172,7 +173,6 @@
struct CustomContextMenuContext;
struct FrameOwnerProperties;
struct FrameReplicationState;
-struct CommitNavigationParams;
struct ScreenInfo;
class CONTENT_EXPORT RenderFrameImpl
@@ -560,8 +560,8 @@
// mojom::FrameNavigationControl implementation:
void CommitNavigation(
- const mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommonNavigationParamsPtr common_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -583,7 +583,7 @@
// the one from NavigationClient mojo interface.
void CommitPerNavigationMojoInterfaceNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -602,7 +602,7 @@
void CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -615,7 +615,7 @@
// the one from NavigationClient mojo interface.
void CommitFailedPerNavigationMojoInterfaceNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -626,7 +626,7 @@
void CommitSameDocumentNavigation(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
CommitSameDocumentNavigationCallback callback) override;
void HandleRendererDebugURL(const GURL& url) override;
void UpdateSubresourceLoaderFactories(
@@ -1251,7 +1251,7 @@
// Does preparation for the navigation to |url|.
void PrepareRenderViewForNavigation(
const GURL& url,
- const CommitNavigationParams& commit_params);
+ const mojom::CommitNavigationParams& commit_params);
// Sends a FrameHostMsg_BeginNavigation to the browser
void BeginNavigationInternal(std::unique_ptr<blink::WebNavigationInfo> info,
@@ -1269,7 +1269,7 @@
// Commit navigation with |navigation_params| prepared.
void CommitNavigationWithParams(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>
subresource_loader_factories,
base::Optional<std::vector<mojom::TransferrableURLLoaderPtr>>
@@ -1286,11 +1286,11 @@
// in the renderer, but browser was not aware yet at the moment of issuing
// a CommitNavigation call.
bool ShouldIgnoreCommitNavigation(
- const CommitNavigationParams& commit_params);
+ const mojom::CommitNavigationParams& commit_params);
// Decodes a data url for navigation commit.
void DecodeDataURL(const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
std::string* mime_type,
std::string* charset,
std::string* data,
@@ -1397,8 +1397,9 @@
blink::WebLocalFrameClient::AppCacheType GetAppCacheType() override;
// Updates the state of this frame when asked to commit a navigation.
- void PrepareFrameForCommit(const GURL& url,
- const CommitNavigationParams& commit_params);
+ void PrepareFrameForCommit(
+ const GURL& url,
+ const mojom::CommitNavigationParams& commit_params);
// Updates the state when asked to commit a history navigation. Sets
// |item_for_history_navigation| and |load_type| to the appropriate values for
@@ -1426,7 +1427,7 @@
// so that it can be performed in cross-document fashion.
blink::mojom::CommitResult PrepareForHistoryNavigationCommit(
const mojom::CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params,
+ const mojom::CommitNavigationParams& commit_params,
blink::WebHistoryItem* item_for_history_navigation,
blink::WebFrameLoadType* load_type);
@@ -1445,7 +1446,7 @@
// Commit*PerNavigationMojoInterfaceNavigation functions.
void CommitNavigationInternal(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -1465,7 +1466,7 @@
void CommitFailedNavigationInternal(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int error_code,
const base::Optional<std::string>& error_page_content,
@@ -1562,7 +1563,7 @@
// is never used after the initial navigation.
// TODO(creis): Expand this to include any corresponding same-process
// PageStates for the whole subtree in https://crbug.com/639842.
- std::map<std::string, bool> history_subframe_unique_names_;
+ base::flat_map<std::string, bool> history_subframe_unique_names_;
// Stores the current history item for this frame, so that updates to it can
// be reported to the browser process via SendUpdateState.
diff --git a/content/renderer/render_frame_impl_browsertest.cc b/content/renderer/render_frame_impl_browsertest.cc
index b6d9eaa0..a0f2cb1 100644
--- a/content/renderer/render_frame_impl_browsertest.cc
+++ b/content/renderer/render_frame_impl_browsertest.cc
@@ -455,7 +455,7 @@
common_params->navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
GetMainRenderFrame()->SetHostZoomLevel(common_params->url, kMinZoomLevel);
GetMainRenderFrame()->Navigate(common_params.Clone(),
- CommitNavigationParams());
+ CreateCommitNavigationParams());
base::RunLoop().RunUntilIdle();
EXPECT_DOUBLE_EQ(kMinZoomLevel, view_->GetWebView()->ZoomLevel());
@@ -465,7 +465,7 @@
common_params->url = GURL("data:text/html,max_zoomlimit_test");
GetMainRenderFrame()->SetHostZoomLevel(common_params->url, kMaxZoomLevel);
GetMainRenderFrame()->Navigate(common_params.Clone(),
- CommitNavigationParams());
+ CreateCommitNavigationParams());
base::RunLoop().RunUntilIdle();
EXPECT_DOUBLE_EQ(kMaxZoomLevel, view_->GetWebView()->ZoomLevel());
}
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index e93043af..bf66006 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -277,16 +277,16 @@
void GoToOffsetWithParams(int offset,
const PageState& state,
mojom::CommonNavigationParamsPtr common_params,
- CommitNavigationParams commit_params) {
+ mojom::CommitNavigationParamsPtr commit_params) {
EXPECT_TRUE(common_params->transition & ui::PAGE_TRANSITION_FORWARD_BACK);
int pending_offset = offset + view()->history_list_offset_;
- commit_params.page_state = state;
- commit_params.nav_entry_id = pending_offset + 1;
- commit_params.pending_history_list_offset = pending_offset;
- commit_params.current_history_list_offset = view()->history_list_offset_;
- commit_params.current_history_list_length = view()->history_list_length_;
- frame()->Navigate(std::move(common_params), commit_params);
+ commit_params->page_state = state;
+ commit_params->nav_entry_id = pending_offset + 1;
+ commit_params->pending_history_list_offset = pending_offset;
+ commit_params->current_history_list_offset = view()->history_list_offset_;
+ commit_params->current_history_list_length = view()->history_list_length_;
+ frame()->Navigate(std::move(common_params), std::move(commit_params));
// The load actually happens asynchronously, so we pump messages to process
// the pending continuation.
@@ -636,7 +636,6 @@
auto common_params = mojom::CommonNavigationParams::New();
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
- CommitNavigationParams commit_params;
common_params->url = GURL("data:text/html,<div>Page</div>");
common_params->navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
common_params->transition = ui::PAGE_TRANSITION_TYPED;
@@ -650,7 +649,7 @@
post_data->AppendBytes(raw_data, length);
common_params->post_data = post_data;
- frame()->Navigate(std::move(common_params), commit_params);
+ frame()->Navigate(std::move(common_params), CreateCommitNavigationParams());
base::RunLoop().RunUntilIdle();
auto last_commit_params = frame()->TakeLastCommitParams();
@@ -689,12 +688,12 @@
common_params->transition = ui::PAGE_TRANSITION_TYPED;
common_params->base_url_for_data_url = GURL("about:blank");
common_params->history_url_for_data_url = GURL("about:blank");
- CommitNavigationParams commit_params;
- commit_params.data_url_as_string =
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->data_url_as_string =
"data:text/html,<html><head><title>Data page</title></head></html>";
render_thread_->sink().ClearMessages();
- frame()->Navigate(std::move(common_params), commit_params);
+ frame()->Navigate(std::move(common_params), std::move(commit_params));
const IPC::Message* frame_title_msg = nullptr;
do {
base::RunLoop().RunUntilIdle();
@@ -1087,9 +1086,9 @@
common_params->url = GURL("data:text/html,<div>Page</div>");
common_params->navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
common_params->transition = ui::PAGE_TRANSITION_TYPED;
- CommitNavigationParams commit_params;
- provisional_frame->Navigate(std::move(common_params), commit_params);
+ provisional_frame->Navigate(std::move(common_params),
+ CreateCommitNavigationParams());
base::RunLoop().RunUntilIdle();
EXPECT_EQ(device_scale, view()->GetDeviceScaleFactor());
@@ -1502,7 +1501,7 @@
common_params->navigation_start = base::TimeTicks::Now();
common_params->navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
common_params->url = GURL("data:text/html,test data");
- frame()->Navigate(std::move(common_params), CommitNavigationParams());
+ frame()->Navigate(std::move(common_params), CreateCommitNavigationParams());
// A cancellation occurred.
view()->GetMainRenderFrame()->DidFailProvisionalLoad(error, "GET");
@@ -1879,23 +1878,23 @@
LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>");
// Navigate the frame only.
- mojom::CommonNavigationParams common_params;
- common_params.referrer = blink::mojom::Referrer::New();
- common_params.navigation_start = base::TimeTicks::Now();
- common_params.url = GURL("data:text/html,world");
- common_params.navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
- common_params.transition = ui::PAGE_TRANSITION_TYPED;
- common_params.navigation_start = base::TimeTicks::FromInternalValue(1);
- CommitNavigationParams commit_params;
- commit_params.current_history_list_length = 1;
- commit_params.current_history_list_offset = 0;
- commit_params.pending_history_list_offset = 1;
+ auto common_params = mojom::CommonNavigationParams::New();
+ common_params->referrer = blink::mojom::Referrer::New();
+ common_params->navigation_start = base::TimeTicks::Now();
+ common_params->url = GURL("data:text/html,world");
+ common_params->navigation_type = mojom::NavigationType::DIFFERENT_DOCUMENT;
+ common_params->transition = ui::PAGE_TRANSITION_TYPED;
+ common_params->navigation_start = base::TimeTicks::FromInternalValue(1);
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->current_history_list_length = 1;
+ commit_params->current_history_list_offset = 0;
+ commit_params->pending_history_list_offset = 1;
TestRenderFrame* subframe =
static_cast<TestRenderFrame*>(RenderFrameImpl::FromWebFrame(
frame()->GetWebFrame()->FindFrameByName("frame")));
FrameLoadWaiter waiter(subframe);
- subframe->Navigate(common_params.Clone(), commit_params);
+ subframe->Navigate(std::move(common_params), std::move(commit_params));
waiter.Wait();
// Copy the document content to std::string and compare with the
@@ -2002,7 +2001,7 @@
common_params->url = GURL("http://example.com/suppress");
TestRenderFrame* main_frame = static_cast<TestRenderFrame*>(frame());
main_frame->NavigateWithError(
- std::move(common_params), CommitNavigationParams(),
+ std::move(common_params), CreateCommitNavigationParams(),
net::ERR_FILE_NOT_FOUND, "A suffusion of yellow.");
const int kMaxOutputCharacters = 22;
@@ -2026,7 +2025,7 @@
common_params->url = GURL("http://example.com/dont-suppress");
TestRenderFrame* main_frame = static_cast<TestRenderFrame*>(frame());
main_frame->NavigateWithError(
- std::move(common_params), CommitNavigationParams(),
+ std::move(common_params), CreateCommitNavigationParams(),
net::ERR_FILE_NOT_FOUND, "A suffusion of yellow.");
// The error page itself is loaded asynchronously.
@@ -2063,7 +2062,7 @@
TestRenderFrame* main_frame = static_cast<TestRenderFrame*>(frame());
main_frame->Navigate(head, std::move(common_params),
- CommitNavigationParams());
+ CreateCommitNavigationParams());
main_frame->DidFinishDocumentLoad();
main_frame->RunScriptsAtDocumentReady(true);
@@ -2169,7 +2168,7 @@
auto common_params = MakeCommonNavigationParams(-TimeDelta::FromSeconds(1));
FrameLoadWaiter waiter(frame());
- frame()->Navigate(common_params.Clone(), CommitNavigationParams());
+ frame()->Navigate(common_params.Clone(), CreateCommitNavigationParams());
waiter.Wait();
NavigationState* navigation_state = NavigationState::FromDocumentLoader(
frame()->GetWebFrame()->GetDocumentLoader());
@@ -2187,7 +2186,7 @@
auto late_common_params = MakeCommonNavigationParams(TimeDelta::FromDays(42));
late_common_params->method = "POST";
- frame()->Navigate(late_common_params.Clone(), CommitNavigationParams());
+ frame()->Navigate(late_common_params.Clone(), CreateCommitNavigationParams());
base::RunLoop().RunUntilIdle();
base::Time after_navigation =
base::Time::Now() + base::TimeDelta::FromDays(1);
@@ -2207,7 +2206,7 @@
auto common_params = MakeCommonNavigationParams(-TimeDelta::FromSeconds(1));
FrameLoadWaiter waiter(frame());
- frame()->Navigate(common_params.Clone(), CommitNavigationParams());
+ frame()->Navigate(common_params.Clone(), CreateCommitNavigationParams());
waiter.Wait();
NavigationState* navigation_state = NavigationState::FromDocumentLoader(
frame()->GetWebFrame()->GetDocumentLoader());
@@ -2233,7 +2232,7 @@
// The browser navigation_start should not be used because beforeunload will
// be fired during Navigate.
FrameLoadWaiter waiter(frame());
- frame()->Navigate(common_params.Clone(), CommitNavigationParams());
+ frame()->Navigate(common_params.Clone(), CreateCommitNavigationParams());
waiter.Wait();
// The browser navigation_start is always used.
@@ -2262,7 +2261,7 @@
common_params_back->navigation_type =
mojom::NavigationType::HISTORY_DIFFERENT_DOCUMENT;
GoToOffsetWithParams(-1, back_state, common_params_back.Clone(),
- CommitNavigationParams());
+ CreateCommitNavigationParams());
NavigationState* navigation_state = NavigationState::FromDocumentLoader(
frame()->GetWebFrame()->GetDocumentLoader());
@@ -2280,7 +2279,7 @@
common_params_forward->navigation_type =
mojom::NavigationType::HISTORY_DIFFERENT_DOCUMENT;
GoToOffsetWithParams(1, forward_state, common_params_forward.Clone(),
- CommitNavigationParams());
+ CreateCommitNavigationParams());
navigation_state = NavigationState::FromDocumentLoader(
frame()->GetWebFrame()->GetDocumentLoader());
EXPECT_EQ(common_params_forward->navigation_start,
@@ -2293,15 +2292,15 @@
common_params->navigation_type =
mojom::NavigationType::HISTORY_DIFFERENT_DOCUMENT;
- CommitNavigationParams commit_params;
- commit_params.page_state =
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->page_state =
PageState::CreateForTesting(common_params->url, false, nullptr, nullptr);
- commit_params.nav_entry_id = 42;
- commit_params.pending_history_list_offset = 1;
- commit_params.current_history_list_offset = 0;
- commit_params.current_history_list_length = 1;
+ commit_params->nav_entry_id = 42;
+ commit_params->pending_history_list_offset = 1;
+ commit_params->current_history_list_offset = 0;
+ commit_params->current_history_list_length = 1;
FrameLoadWaiter waiter(frame());
- frame()->Navigate(common_params.Clone(), commit_params);
+ frame()->Navigate(common_params.Clone(), std::move(commit_params));
waiter.Wait();
NavigationState* navigation_state = NavigationState::FromDocumentLoader(
@@ -2360,13 +2359,13 @@
view()->HistoryForwardListCount() + 1);
// Receive a CommitNavigation message with history parameters.
- CommitNavigationParams commit_params;
- commit_params.current_history_list_offset = 1;
- commit_params.current_history_list_length = 2;
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->current_history_list_offset = 1;
+ commit_params->current_history_list_length = 2;
auto common_params = mojom::CommonNavigationParams::New();
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
- frame()->Navigate(std::move(common_params), commit_params);
+ frame()->Navigate(std::move(common_params), std::move(commit_params));
// The current history list in RenderView is updated.
EXPECT_EQ(1, view()->HistoryBackListCount());
@@ -2382,15 +2381,15 @@
view()->HistoryForwardListCount() + 1);
// Receive a CommitNavigation message with history parameters.
- CommitNavigationParams commit_params;
- commit_params.current_history_list_offset = 1;
- commit_params.current_history_list_length = 25;
- commit_params.pending_history_list_offset = 12;
- commit_params.nav_entry_id = 777;
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->current_history_list_offset = 1;
+ commit_params->current_history_list_length = 25;
+ commit_params->pending_history_list_offset = 12;
+ commit_params->nav_entry_id = 777;
auto common_params = mojom::CommonNavigationParams::New();
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
- frame()->Navigate(std::move(common_params), commit_params);
+ frame()->Navigate(std::move(common_params), std::move(commit_params));
// The current history list in RenderView is updated.
EXPECT_EQ(12, view()->HistoryBackListCount());
@@ -2406,14 +2405,14 @@
view()->HistoryForwardListCount() + 1);
// Receive a CommitNavigation message with history parameters.
- CommitNavigationParams commit_params;
- commit_params.current_history_list_offset = 12;
- commit_params.current_history_list_length = 25;
- commit_params.should_clear_history_list = true;
+ auto commit_params = CreateCommitNavigationParams();
+ commit_params->current_history_list_offset = 12;
+ commit_params->current_history_list_length = 25;
+ commit_params->should_clear_history_list = true;
auto common_params = mojom::CommonNavigationParams::New();
common_params->referrer = blink::mojom::Referrer::New();
common_params->navigation_start = base::TimeTicks::Now();
- frame()->Navigate(std::move(common_params), commit_params);
+ frame()->Navigate(std::move(common_params), std::move(commit_params));
// The current history list in RenderView is updated.
EXPECT_EQ(0, view()->HistoryBackListCount());
diff --git a/content/test/test_render_frame.cc b/content/test/test_render_frame.cc
index a511327..6998ef35 100644
--- a/content/test/test_render_frame.cc
+++ b/content/test/test_render_frame.cc
@@ -262,9 +262,9 @@
void TestRenderFrame::Navigate(const network::ResourceResponseHead& head,
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params) {
+ mojom::CommitNavigationParamsPtr commit_params) {
if (!IsPerNavigationMojoInterfaceEnabled()) {
- CommitNavigation(std::move(common_params), commit_params, head,
+ CommitNavigation(std::move(common_params), std::move(commit_params), head,
mojo::ScopedDataPipeConsumerHandle(),
network::mojom::URLLoaderClientEndpointsPtr(),
std::make_unique<blink::URLLoaderFactoryBundleInfo>(),
@@ -277,7 +277,7 @@
BindNavigationClient(
mojo::MakeRequestAssociatedWithDedicatedPipe(&mock_navigation_client_));
CommitPerNavigationMojoInterfaceNavigation(
- std::move(common_params), commit_params, head,
+ std::move(common_params), std::move(commit_params), head,
mojo::ScopedDataPipeConsumerHandle(),
network::mojom::URLLoaderClientEndpointsPtr(),
std::make_unique<blink::URLLoaderFactoryBundleInfo>(), base::nullopt,
@@ -291,25 +291,25 @@
}
void TestRenderFrame::Navigate(mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params) {
+ mojom::CommitNavigationParamsPtr commit_params) {
Navigate(network::ResourceResponseHead(), std::move(common_params),
- commit_params);
+ std::move(commit_params));
}
void TestRenderFrame::NavigateWithError(
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
int error_code,
const base::Optional<std::string>& error_page_content) {
if (!IsPerNavigationMojoInterfaceEnabled()) {
- CommitFailedNavigation(std::move(common_params), commit_params,
+ CommitFailedNavigation(std::move(common_params), std::move(commit_params),
false /* has_stale_copy_in_cache */, error_code,
error_page_content, nullptr, base::DoNothing());
} else {
BindNavigationClient(
mojo::MakeRequestAssociatedWithDedicatedPipe(&mock_navigation_client_));
mock_navigation_client_->CommitFailedNavigation(
- std::move(common_params), commit_params,
+ std::move(common_params), std::move(commit_params),
false /* has_stale_copy_in_cache */, error_code, error_page_content,
nullptr,
base::BindOnce(&MockFrameHost::DidCommitProvisionalLoad,
diff --git a/content/test/test_render_frame.h b/content/test/test_render_frame.h
index 4e68429..48e4d19 100644
--- a/content/test/test_render_frame.h
+++ b/content/test/test_render_frame.h
@@ -11,6 +11,7 @@
#include "base/optional.h"
#include "content/common/frame.mojom.h"
#include "content/common/input/input_handler.mojom.h"
+#include "content/common/navigation_params.mojom.h"
#include "content/renderer/render_frame_impl.h"
#include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
@@ -21,7 +22,6 @@
namespace content {
class MockFrameHost;
-struct CommitNavigationParams;
// A test class to use in RenderViewTests.
class TestRenderFrame : public RenderFrameImpl {
@@ -41,11 +41,11 @@
void Navigate(const network::ResourceResponseHead& head,
mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params);
+ mojom::CommitNavigationParamsPtr commit_params);
void Navigate(mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& commit_params);
+ mojom::CommitNavigationParamsPtr commit_params);
void NavigateWithError(mojom::CommonNavigationParamsPtr common_params,
- const CommitNavigationParams& request_params,
+ mojom::CommitNavigationParamsPtr request_params,
int error_code,
const base::Optional<std::string>& error_page_content);
void SwapOut(int proxy_routing_id,
diff --git a/content/test/test_render_frame_host.cc b/content/test/test_render_frame_host.cc
index 4c803d2..fc8ea1e 100644
--- a/content/test/test_render_frame_host.cc
+++ b/content/test/test_render_frame_host.cc
@@ -539,7 +539,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -567,7 +567,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int32_t error_code,
const base::Optional<std::string>& error_page_content,
diff --git a/content/test/test_render_frame_host.h b/content/test/test_render_frame_host.h
index 281a9e7..bdd24d6 100644
--- a/content/test/test_render_frame_host.h
+++ b/content/test/test_render_frame_host.h
@@ -211,7 +211,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
const network::ResourceResponseHead& response_head,
mojo::ScopedDataPipeConsumerHandle response_body,
network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
@@ -229,7 +229,7 @@
mojom::NavigationClient* navigation_client,
NavigationRequest* navigation_request,
mojom::CommonNavigationParamsPtr common_params,
- const content::CommitNavigationParams& commit_params,
+ mojom::CommitNavigationParamsPtr commit_params,
bool has_stale_copy_in_cache,
int32_t error_code,
const base::Optional<std::string>& error_page_content,
diff --git a/fuchsia/engine/browser/frame_impl.cc b/fuchsia/engine/browser/frame_impl.cc
index 0793e4d..04a1590b 100644
--- a/fuchsia/engine/browser/frame_impl.cc
+++ b/fuchsia/engine/browser/frame_impl.cc
@@ -18,7 +18,7 @@
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/renderer_preferences_util.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "fuchsia/base/mem_buffer_util.h"
#include "fuchsia/base/message_port.h"
#include "fuchsia/engine/browser/context_impl.h"
diff --git a/fuchsia/engine/browser/navigation_controller_impl.cc b/fuchsia/engine/browser/navigation_controller_impl.cc
index 1a1d6cf..b1bd139 100644
--- a/fuchsia/engine/browser/navigation_controller_impl.cc
+++ b/fuchsia/engine/browser/navigation_controller_impl.cc
@@ -9,7 +9,7 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/common/was_activated_option.h"
+#include "content/public/common/was_activated_option.mojom.h"
#include "ui/base/page_transition_types.h"
namespace {
@@ -159,9 +159,9 @@
params_converted.transition_type = ui::PageTransitionFromInt(
ui::PAGE_TRANSITION_TYPED | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR);
if (params.has_was_user_activated() && params.was_user_activated()) {
- params_converted.was_activated = content::WasActivatedOption::kYes;
+ params_converted.was_activated = content::mojom::WasActivatedOption::kYes;
} else {
- params_converted.was_activated = content::WasActivatedOption::kNo;
+ params_converted.was_activated = content::mojom::WasActivatedOption::kNo;
}
web_contents_->GetController().LoadURLWithParams(params_converted);