interstitial_page_navigator_impl.h revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_BROWSER_FRAME_HOST_INTERSTITIAL_PAGE_NAVIGATOR_IMPL_H_ 6#define CONTENT_BROWSER_FRAME_HOST_INTERSTITIAL_PAGE_NAVIGATOR_IMPL_H_ 7 8#include "base/memory/ref_counted.h" 9#include "content/browser/frame_host/navigator.h" 10#include "content/common/content_export.h" 11 12namespace content { 13 14class NavigationControllerImpl; 15class InterstitialPageImpl; 16 17// Navigator implementation specific to InterstialPageImpl. It allows only one 18// navigation to commit, since interstitial pages are not allowed to navigate. 19class CONTENT_EXPORT InterstitialPageNavigatorImpl : public Navigator { 20 public: 21 InterstitialPageNavigatorImpl( 22 InterstitialPageImpl* interstitial, 23 NavigationControllerImpl* navigation_controller); 24 25 virtual NavigationController* GetController() OVERRIDE; 26 virtual void DidNavigate( 27 RenderFrameHostImpl* render_frame_host, 28 const FrameHostMsg_DidCommitProvisionalLoad_Params& 29 input_params) OVERRIDE; 30 31 private: 32 virtual ~InterstitialPageNavigatorImpl() {} 33 34 // The InterstitialPage with which this navigator object is associated. 35 // Non owned pointer. 36 InterstitialPageImpl* interstitial_; 37 38 // The NavigationController associated with this navigator. 39 NavigationControllerImpl* controller_; 40 41 DISALLOW_COPY_AND_ASSIGN(InterstitialPageNavigatorImpl); 42}; 43 44} // namespace content 45 46#endif // CONTENT_BROWSER_FRAME_HOST_INTERSTITIAL_PAGE_NAVIGATOR_IMPL_H_ 47