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)); |