Index: content/browser/frame_host/frame_tree_node.cc |
diff --git a/content/browser/frame_host/frame_tree_node.cc b/content/browser/frame_host/frame_tree_node.cc |
index 7dfb6dd52c23871b4275f1a275289cfbc645da11..542adfe6dbdc8713dc13844508f36953d0441d27 100644 |
--- a/content/browser/frame_host/frame_tree_node.cc |
+++ b/content/browser/frame_host/frame_tree_node.cc |
@@ -313,6 +313,7 @@ void FrameTreeNode::ResetNavigationRequest(bool keep_state) { |
CHECK(IsBrowserSideNavigationEnabled()); |
if (!navigation_request_) |
return; |
+ bool was_renderer_initiated = !navigation_request_->browser_initiated(); |
navigation_request_.reset(); |
if (keep_state) |
@@ -322,6 +323,14 @@ void FrameTreeNode::ResetNavigationRequest(bool keep_state) { |
// it created for the navigation. Also register that the load stopped. |
DidStopLoading(); |
render_manager_.CleanUpNavigation(); |
+ |
+ // If the navigation is renderer-initiated, the renderer should also be |
+ // informed that the navigation stopped. |
+ if (was_renderer_initiated) { |
+ current_frame_host()->Send( |
+ new FrameMsg_Stop(current_frame_host()->GetRoutingID())); |
+ } |
+ |
} |
bool FrameTreeNode::has_started_loading() const { |