| 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 7adfe79445ace2bafe3760864f94fc0b1443dd3f..98f0651d0e7cd2d2ecce2ddf014b7454de3ef77a 100644
|
| --- a/content/browser/frame_host/navigator_impl.cc
|
| +++ b/content/browser/frame_host/navigator_impl.cc
|
| @@ -154,4 +154,31 @@ void NavigatorImpl::DidFailProvisionalLoadWithError(
|
| delegate_->DidFailProvisionalLoadWithError(render_frame_host, params);
|
| }
|
|
|
| +void NavigatorImpl::DidRedirectProvisionalLoad(
|
| + RenderFrameHostImpl* render_frame_host,
|
| + int32 page_id,
|
| + const GURL& source_url,
|
| + const GURL& target_url) {
|
| + // TODO(creis): Remove this method and have the pre-rendering code listen to
|
| + // WebContentsObserver::DidGetRedirectForResourceRequest instead.
|
| + // See http://crbug.com/78512.
|
| + GURL validated_source_url(source_url);
|
| + GURL validated_target_url(target_url);
|
| + RenderProcessHost* render_process_host = render_frame_host->GetProcess();
|
| + render_process_host->FilterURL(false, &validated_source_url);
|
| + render_process_host->FilterURL(false, &validated_target_url);
|
| + NavigationEntry* entry;
|
| + if (page_id == -1) {
|
| + entry = controller_->GetPendingEntry();
|
| + } else {
|
| + entry = controller_->GetEntryWithPageID(
|
| + render_frame_host->GetSiteInstance(), page_id);
|
| + }
|
| + if (!entry || entry->GetURL() != validated_source_url)
|
| + return;
|
| +
|
| + delegate_->DidRedirectProvisionalLoad(
|
| + render_frame_host, validated_target_url);
|
| +}
|
| +
|
| } // namespace content
|
|
|