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

Unified Diff: content/browser/frame_host/navigation_request.cc

Issue 2846983002: Add more navigation tracing to RenderFrameHost and NavigationRequest. (Closed)
Patch Set: Move SetWaitingForRendererResponse implementation to .cc file. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/navigation_request.cc
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc
index e4f6850a6c143a055c4fe7fabc3d3bed73a9043c..0b5e04d31dfd583dc62b3b1bf7c455af9cb4f93c 100644
--- a/content/browser/frame_host/navigation_request.cc
+++ b/content/browser/frame_host/navigation_request.cc
@@ -316,6 +316,10 @@ NavigationRequest::NavigationRequest(
associated_site_instance_type_(AssociatedSiteInstanceType::NONE),
may_transfer_(may_transfer) {
DCHECK(!browser_initiated || (entry != nullptr && frame_entry != nullptr));
+ TRACE_EVENT_ASYNC_BEGIN2("navigation", "NavigationRequest", this,
+ "frame_tree_node",
+ frame_tree_node_->frame_tree_node_id(), "url",
+ common_params_.url.possibly_invalid_spec());
// Sanitize the referrer.
common_params_.referrer =
@@ -360,11 +364,14 @@ NavigationRequest::NavigationRequest(
}
NavigationRequest::~NavigationRequest() {
+ TRACE_EVENT_ASYNC_END0("navigation", "NavigationRequest", this);
}
void NavigationRequest::BeginNavigation() {
DCHECK(!loader_);
DCHECK(state_ == NOT_STARTED || state_ == WAITING_FOR_RENDERER_RESPONSE);
+ TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
+ "BeginNavigation");
state_ = STARTED;
RenderFrameDevToolsAgentHost::OnBeforeNavigation(navigation_handle_.get());
@@ -390,6 +397,8 @@ void NavigationRequest::BeginNavigation() {
// There is no need to make a network request for this navigation, so commit
// it immediately.
+ TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
+ "ResponseStarted");
state_ = RESPONSE_STARTED;
// Select an appropriate RenderFrameHost.
@@ -404,6 +413,13 @@ void NavigationRequest::BeginNavigation() {
CommitNavigation();
}
+void NavigationRequest::SetWaitingForRendererResponse() {
+ TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
+ "WaitingForRendererResponse");
+ DCHECK(state_ == NOT_STARTED);
+ state_ = WAITING_FOR_RENDERER_RESPONSE;
+}
+
void NavigationRequest::CreateNavigationHandle(int pending_nav_entry_id) {
DCHECK_EQ(frame_tree_node_->navigation_request(), this);
FrameTreeNode* frame_tree_node = frame_tree_node_;
@@ -516,6 +532,8 @@ void NavigationRequest::OnResponseStarted(
bool is_stream) {
DCHECK(state_ == STARTED);
DCHECK(response);
+ TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationRequest", this,
+ "OnResponseStarted");
state_ = RESPONSE_STARTED;
// Check if the response should be sent to a renderer.
@@ -596,6 +614,8 @@ void NavigationRequest::OnResponseStarted(
void NavigationRequest::OnRequestFailed(bool has_stale_copy_in_cache,
int net_error) {
DCHECK(state_ == STARTED || state_ == RESPONSE_STARTED);
+ TRACE_EVENT_ASYNC_STEP_INTO1("navigation", "NavigationRequest", this,
+ "OnRequestFailed", "error", net_error);
state_ = FAILED;
navigation_handle_->set_net_error_code(static_cast<net::Error>(net_error));

Powered by Google App Engine
This is Rietveld 408576698