| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 1178bf924891e3ca6c1b4041e7e74f25a170398a..f3a7a59a052faafde13b568b6693cef08010072e 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -2164,6 +2164,22 @@ void WebContentsImpl::DidStartProvisionalLoad(
|
| }
|
| }
|
|
|
| +void WebContentsImpl::DidFailProvisionalLoadWithError(
|
| + RenderFrameHostImpl* render_frame_host,
|
| + const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
|
| + GURL validated_url(params.url);
|
| + FOR_EACH_OBSERVER(
|
| + WebContentsObserver,
|
| + observers_,
|
| + DidFailProvisionalLoad(params.frame_id,
|
| + params.frame_unique_name,
|
| + params.is_main_frame,
|
| + validated_url,
|
| + params.error_code,
|
| + params.error_description,
|
| + render_frame_host->render_view_host()));
|
| +}
|
| +
|
| void WebContentsImpl::NotifyChangedNavigationState(
|
| InvalidateTypes changed_flags) {
|
| NotifyNavigationStateChanged(changed_flags);
|
| @@ -2199,71 +2215,6 @@ void WebContentsImpl::DidRedirectProvisionalLoad(
|
| render_view_host));
|
| }
|
|
|
| -void WebContentsImpl::DidFailProvisionalLoadWithError(
|
| - RenderViewHost* render_view_host,
|
| - const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) {
|
| - VLOG(1) << "Failed Provisional Load: " << params.url.possibly_invalid_spec()
|
| - << ", error_code: " << params.error_code
|
| - << ", error_description: " << params.error_description
|
| - << ", is_main_frame: " << params.is_main_frame
|
| - << ", showing_repost_interstitial: " <<
|
| - params.showing_repost_interstitial
|
| - << ", frame_id: " << params.frame_id;
|
| - GURL validated_url(params.url);
|
| - RenderProcessHost* render_process_host =
|
| - render_view_host->GetProcess();
|
| - render_process_host->FilterURL(false, &validated_url);
|
| -
|
| - if (net::ERR_ABORTED == params.error_code) {
|
| - // EVIL HACK ALERT! Ignore failed loads when we're showing interstitials.
|
| - // This means that the interstitial won't be torn down properly, which is
|
| - // bad. But if we have an interstitial, go back to another tab type, and
|
| - // then load the same interstitial again, we could end up getting the first
|
| - // interstitial's "failed" message (as a result of the cancel) when we're on
|
| - // the second one.
|
| - //
|
| - // We can't tell this apart, so we think we're tearing down the current page
|
| - // which will cause a crash later one. There is also some code in
|
| - // RenderFrameHostManager::RendererAbortedProvisionalLoad that is commented
|
| - // out because of this problem.
|
| - //
|
| - // http://code.google.com/p/chromium/issues/detail?id=2855
|
| - // Because this will not tear down the interstitial properly, if "back" is
|
| - // back to another tab type, the interstitial will still be somewhat alive
|
| - // in the previous tab type. If you navigate somewhere that activates the
|
| - // tab with the interstitial again, you'll see a flash before the new load
|
| - // commits of the interstitial page.
|
| - if (ShowingInterstitialPage()) {
|
| - LOG(WARNING) << "Discarding message during interstitial.";
|
| - return;
|
| - }
|
| -
|
| - GetRenderManager()->RendererAbortedProvisionalLoad(render_view_host);
|
| - }
|
| -
|
| - // Do not usually clear the pending entry if one exists, so that the user's
|
| - // typed URL is not lost when a navigation fails or is aborted. However, in
|
| - // cases that we don't show the pending entry (e.g., renderer-initiated
|
| - // navigations in an existing tab), we don't keep it around. That prevents
|
| - // spoofs on in-page navigations that don't go through
|
| - // DidStartProvisionalLoadForFrame.
|
| - // In general, we allow the view to clear the pending entry and typed URL if
|
| - // the user requests (e.g., hitting Escape with focus in the address bar).
|
| - // Note: don't touch the transient entry, since an interstitial may exist.
|
| - if (controller_.GetPendingEntry() != controller_.GetVisibleEntry())
|
| - controller_.DiscardPendingEntry();
|
| -
|
| - FOR_EACH_OBSERVER(WebContentsObserver,
|
| - observers_,
|
| - DidFailProvisionalLoad(params.frame_id,
|
| - params.frame_unique_name,
|
| - params.is_main_frame,
|
| - validated_url,
|
| - params.error_code,
|
| - params.error_description,
|
| - render_view_host));
|
| -}
|
| -
|
| void WebContentsImpl::OnDidLoadResourceFromMemoryCache(
|
| const GURL& url,
|
| const std::string& security_info,
|
|
|