Index: content/browser/frame_host/navigator_impl.cc |
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc |
index 0bbd2bd8e2d9a66b137070062ad681c8fc9482ec..6058b228bd712aca0b4b4bcc4ac31c5a7c4ff020 100644 |
--- a/content/browser/frame_host/navigator_impl.cc |
+++ b/content/browser/frame_host/navigator_impl.cc |
@@ -177,6 +177,16 @@ void NavigatorImpl::DidFailProvisionalLoadWithError( |
<< ", showing_repost_interstitial: " << |
params.showing_repost_interstitial |
<< ", frame_id: " << render_frame_host->GetRoutingID(); |
+ if (controller_->GetPendingEntry() && params.nav_entry_id != 0 && |
mnaganov (inactive)
2015/04/22 09:29:03
This change is causing ClientOnPageFinishedTest#te
Avi (use Gerrit)
2015/04/22 18:31:50
Ah. I will look into this, and will call out when
|
+ controller_->GetPendingEntry()->GetUniqueID() != params.nav_entry_id) { |
+ // If this failure is browser-initiated but isn't that of the pending entry, |
+ // ignore it. This can happen if there is an outstanding request that never |
+ // committed, and then a user makes a new request. In that case the new |
+ // request will be the pending entry, and the attempt to load the new |
+ // request will cause a failure message from the old request. |
+ return; |
+ } |
+ |
GURL validated_url(params.url); |
RenderProcessHost* render_process_host = render_frame_host->GetProcess(); |
render_process_host->FilterURL(false, &validated_url); |