Index: content/browser/frame_host/interstitial_page_navigator_impl.cc |
diff --git a/content/browser/frame_host/interstitial_page_navigator_impl.cc b/content/browser/frame_host/interstitial_page_navigator_impl.cc |
index 8b1a3a6865f238458a77200361f06e61ed038ec9..a3fcac36251812fcb855798d2d7dbb8e8b04a92e 100644 |
--- a/content/browser/frame_host/interstitial_page_navigator_impl.cc |
+++ b/content/browser/frame_host/interstitial_page_navigator_impl.cc |
@@ -17,6 +17,8 @@ InterstitialPageNavigatorImpl::InterstitialPageNavigatorImpl( |
: interstitial_(interstitial), |
controller_(navigation_controller) {} |
+InterstitialPageNavigatorImpl::~InterstitialPageNavigatorImpl() {} |
+ |
NavigatorDelegate* InterstitialPageNavigatorImpl::GetDelegate() { |
return interstitial_; |
} |
@@ -25,13 +27,40 @@ NavigationController* InterstitialPageNavigatorImpl::GetController() { |
return controller_; |
} |
+void InterstitialPageNavigatorImpl::DidStartProvisionalLoad( |
+ RenderFrameHostImpl* render_frame_host, |
+ const GURL& url, |
+ const base::TimeTicks& navigation_start) { |
+ // The interstitial page should only navigate once. |
+ DCHECK(!navigation_handle_.get()); |
+ navigation_handle_ = |
+ NavigationHandleImpl::Create(url, render_frame_host->frame_tree_node(), |
+ false, // is_renderer_initiated |
+ false, // is_synchronous |
+ false, // is_srcdoc |
+ navigation_start, |
+ 0); // pending_nav_entry_id |
+} |
+ |
void InterstitialPageNavigatorImpl::DidNavigate( |
RenderFrameHostImpl* render_frame_host, |
const FrameHostMsg_DidCommitProvisionalLoad_Params& input_params) { |
+ if (navigation_handle_) { |
+ navigation_handle_->DidCommitNavigation(input_params, false, |
+ render_frame_host); |
+ navigation_handle_.reset(); |
+ } |
+ |
// TODO(nasko): Move implementation here, but for the time being call out |
// to the interstitial page code. |
- interstitial_->DidNavigate( |
- render_frame_host->render_view_host(), input_params); |
+ interstitial_->DidNavigate(render_frame_host->render_view_host(), |
+ input_params); |
+} |
+ |
+NavigationHandleImpl* |
+InterstitialPageNavigatorImpl::GetNavigationHandleForFrameHost( |
+ RenderFrameHostImpl* render_frame_host) { |
+ return navigation_handle_.get(); |
} |
} // namespace content |