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 12 namespace content { 13 14 class NavigationControllerImpl; 15 class InterstitialPageImpl; 16 17 // Navigator implementation specific to InterstialPageImpl. It allows only one 18 // navigation to commit, since interstitial pages are not allowed to navigate. 19 class 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: ~InterstitialPageNavigatorImpl()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