Index: content/browser/web_contents/interstitial_page_impl.h |
diff --git a/content/browser/web_contents/interstitial_page_impl.h b/content/browser/web_contents/interstitial_page_impl.h |
deleted file mode 100644 |
index 96de25afca9412a1f2cd212b0fa46c3cc516ab30..0000000000000000000000000000000000000000 |
--- a/content/browser/web_contents/interstitial_page_impl.h |
+++ /dev/null |
@@ -1,267 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CONTENT_BROWSER_WEB_CONTENTS_INTERSTITIAL_PAGE_IMPL_H_ |
-#define CONTENT_BROWSER_WEB_CONTENTS_INTERSTITIAL_PAGE_IMPL_H_ |
- |
-#include "base/compiler_specific.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "content/browser/renderer_host/frame_tree.h" |
-#include "content/browser/renderer_host/render_view_host_delegate.h" |
-#include "content/browser/renderer_host/render_widget_host_delegate.h" |
-#include "content/public/browser/interstitial_page.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/public/browser/web_contents_observer.h" |
-#include "content/public/common/renderer_preferences.h" |
-#include "url/gurl.h" |
- |
-namespace content { |
-class NavigationEntry; |
-class NavigationControllerImpl; |
-class RenderViewHostImpl; |
-class RenderWidgetHostView; |
-class WebContentsView; |
-class WebContentsImpl; |
- |
-enum ResourceRequestAction { |
- BLOCK, |
- RESUME, |
- CANCEL |
-}; |
- |
-class CONTENT_EXPORT InterstitialPageImpl |
- : public NON_EXPORTED_BASE(InterstitialPage), |
- public NotificationObserver, |
- public WebContentsObserver, |
- public RenderViewHostDelegate, |
- public RenderWidgetHostDelegate { |
- public: |
- // The different state of actions the user can take in an interstitial. |
- enum ActionState { |
- NO_ACTION, // No action has been taken yet. |
- PROCEED_ACTION, // "Proceed" was selected. |
- DONT_PROCEED_ACTION // "Don't proceed" was selected. |
- }; |
- |
- InterstitialPageImpl(WebContents* web_contents, |
- RenderWidgetHostDelegate* render_widget_host_delegate, |
- bool new_navigation, |
- const GURL& url, |
- InterstitialPageDelegate* delegate); |
- virtual ~InterstitialPageImpl(); |
- |
- // InterstitialPage implementation: |
- virtual void Show() OVERRIDE; |
- virtual void Hide() OVERRIDE; |
- virtual void DontProceed() OVERRIDE; |
- virtual void Proceed() OVERRIDE; |
- virtual RenderViewHost* GetRenderViewHostForTesting() const OVERRIDE; |
- virtual InterstitialPageDelegate* GetDelegateForTesting() OVERRIDE; |
- virtual void DontCreateViewForTesting() OVERRIDE; |
- virtual void SetSize(const gfx::Size& size) OVERRIDE; |
- virtual void Focus() OVERRIDE; |
- |
- // Allows the user to navigate away by disabling the interstitial, canceling |
- // the pending request, and unblocking the hidden renderer. The interstitial |
- // will stay visible until the navigation completes. |
- void CancelForNavigation(); |
- |
- // Focus the first (last if reverse is true) element in the interstitial page. |
- // Called when tab traversing. |
- void FocusThroughTabTraversal(bool reverse); |
- |
- RenderWidgetHostView* GetView(); |
- |
- // See description above field. |
- void set_reload_on_dont_proceed(bool value) { |
- reload_on_dont_proceed_ = value; |
- } |
- bool reload_on_dont_proceed() const { return reload_on_dont_proceed_; } |
- |
-#if defined(OS_ANDROID) |
- // Android shares a single platform window for all tabs, so we need to expose |
- // the RenderViewHost to properly route gestures to the interstitial. |
- RenderViewHost* GetRenderViewHost() const; |
-#endif |
- |
- protected: |
- // NotificationObserver method: |
- virtual void Observe(int type, |
- const NotificationSource& source, |
- const NotificationDetails& details) OVERRIDE; |
- |
- // WebContentsObserver implementation: |
- virtual void WebContentsDestroyed(WebContents* web_contents) OVERRIDE; |
- virtual void NavigationEntryCommitted( |
- const LoadCommittedDetails& load_details) OVERRIDE; |
- |
- // RenderViewHostDelegate implementation: |
- virtual RenderViewHostDelegateView* GetDelegateView() OVERRIDE; |
- virtual const GURL& GetURL() const OVERRIDE; |
- virtual void RenderViewTerminated(RenderViewHost* render_view_host, |
- base::TerminationStatus status, |
- int error_code) OVERRIDE; |
- virtual void DidNavigate( |
- RenderViewHost* render_view_host, |
- const ViewHostMsg_FrameNavigate_Params& params) OVERRIDE; |
- virtual void UpdateTitle(RenderViewHost* render_view_host, |
- int32 page_id, |
- const string16& title, |
- base::i18n::TextDirection title_direction) OVERRIDE; |
- virtual RendererPreferences GetRendererPrefs( |
- BrowserContext* browser_context) const OVERRIDE; |
- virtual WebPreferences GetWebkitPrefs() OVERRIDE; |
- virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; |
- virtual void CreateNewWindow( |
- int route_id, |
- int main_frame_route_id, |
- const ViewHostMsg_CreateWindow_Params& params, |
- SessionStorageNamespace* session_storage_namespace) OVERRIDE; |
- virtual void CreateNewWidget(int route_id, |
- WebKit::WebPopupType popup_type) OVERRIDE; |
- virtual void CreateNewFullscreenWidget(int route_id) OVERRIDE; |
- virtual void ShowCreatedWindow(int route_id, |
- WindowOpenDisposition disposition, |
- const gfx::Rect& initial_pos, |
- bool user_gesture) OVERRIDE; |
- virtual void ShowCreatedWidget(int route_id, |
- const gfx::Rect& initial_pos) OVERRIDE; |
- virtual void ShowCreatedFullscreenWidget(int route_id) OVERRIDE; |
- |
- virtual SessionStorageNamespace* GetSessionStorageNamespace( |
- SiteInstance* instance) OVERRIDE; |
- |
- virtual FrameTree* GetFrameTree() OVERRIDE; |
- |
- // RenderWidgetHostDelegate implementation: |
- virtual void RenderWidgetDeleted( |
- RenderWidgetHostImpl* render_widget_host) OVERRIDE; |
- virtual bool PreHandleKeyboardEvent( |
- const NativeWebKeyboardEvent& event, |
- bool* is_keyboard_shortcut) OVERRIDE; |
- virtual void HandleKeyboardEvent( |
- const NativeWebKeyboardEvent& event) OVERRIDE; |
-#if defined(OS_WIN) && defined(USE_AURA) |
- virtual gfx::NativeViewAccessible GetParentNativeViewAccessible() OVERRIDE; |
-#endif |
- |
- bool enabled() const { return enabled_; } |
- WebContents* web_contents() const; |
- const GURL& url() const { return url_; } |
- |
- // Creates the RenderViewHost containing the interstitial content. |
- // Overriden in unit tests. |
- virtual RenderViewHost* CreateRenderViewHost(); |
- |
- // Creates the WebContentsView that shows the interstitial RVH. |
- // Overriden in unit tests. |
- virtual WebContentsView* CreateWebContentsView(); |
- |
- // Notification magic. |
- NotificationRegistrar notification_registrar_; |
- |
- private: |
- class InterstitialPageRVHDelegateView; |
- |
- // Disable the interstitial: |
- // - if it is not yet showing, then it won't be shown. |
- // - any command sent by the RenderViewHost will be ignored. |
- void Disable(); |
- |
- // Shutdown the RVH. We will be deleted by the time this method returns. |
- void Shutdown(RenderViewHostImpl* render_view_host); |
- |
- void OnNavigatingAwayOrTabClosing(); |
- |
- // Executes the passed action on the ResourceDispatcher (on the IO thread). |
- // Used to block/resume/cancel requests for the RenderViewHost hidden by this |
- // interstitial. |
- void TakeActionOnResourceDispatcher(ResourceRequestAction action); |
- |
- // The contents in which we are displayed. This is valid until Hide is |
- // called, at which point it will be set to NULL because the WebContents |
- // itself may be deleted. |
- WebContents* web_contents_; |
- |
- // The NavigationController for the content this page is being displayed over. |
- NavigationControllerImpl* controller_; |
- |
- // Delegate for dispatching keyboard events and accessing the native view. |
- RenderWidgetHostDelegate* render_widget_host_delegate_; |
- |
- // The URL that is shown when the interstitial is showing. |
- GURL url_; |
- |
- // Whether this interstitial is shown as a result of a new navigation (in |
- // which case a transient navigation entry is created). |
- bool new_navigation_; |
- |
- // Whether we should discard the pending navigation entry when not proceeding. |
- // This is to deal with cases where |new_navigation_| is true but a new |
- // pending entry was created since this interstitial was shown and we should |
- // not discard it. |
- bool should_discard_pending_nav_entry_; |
- |
- // If true and the user chooses not to proceed the target NavigationController |
- // is reloaded. This is used when two NavigationControllers are merged |
- // (CopyStateFromAndPrune). |
- // The default is false. |
- bool reload_on_dont_proceed_; |
- |
- // Whether this interstitial is enabled. See Disable() for more info. |
- bool enabled_; |
- |
- // Whether the Proceed or DontProceed methods have been called yet. |
- ActionState action_taken_; |
- |
- // The RenderViewHost displaying the interstitial contents. This is valid |
- // until Hide is called, at which point it will be set to NULL, signifying |
- // that shutdown has started. |
- RenderViewHostImpl* render_view_host_; |
- |
- // The frame tree structure of the current page. |
- FrameTree frame_tree_; |
- |
- // The IDs for the Render[View|Process]Host hidden by this interstitial. |
- int original_child_id_; |
- int original_rvh_id_; |
- |
- // Whether or not we should change the title of the contents when hidden (to |
- // revert it to its original value). |
- bool should_revert_web_contents_title_; |
- |
- // Whether or not the contents was loading resources when the interstitial was |
- // shown. We restore this state if the user proceeds from the interstitial. |
- bool web_contents_was_loading_; |
- |
- // Whether the ResourceDispatcherHost has been notified to cancel/resume the |
- // resource requests blocked for the RenderViewHost. |
- bool resource_dispatcher_host_notified_; |
- |
- // The original title of the contents that should be reverted to when the |
- // interstitial is hidden. |
- string16 original_web_contents_title_; |
- |
- // Our RenderViewHostViewDelegate, necessary for accelerators to work. |
- scoped_ptr<InterstitialPageRVHDelegateView> rvh_delegate_view_; |
- |
- // Settings passed to the renderer. |
- mutable RendererPreferences renderer_preferences_; |
- |
- bool create_view_; |
- |
- scoped_ptr<InterstitialPageDelegate> delegate_; |
- |
- base::WeakPtrFactory<InterstitialPageImpl> weak_ptr_factory_; |
- |
- scoped_refptr<SessionStorageNamespace> session_storage_namespace_; |
- |
- DISALLOW_COPY_AND_ASSIGN(InterstitialPageImpl); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_BROWSER_WEB_CONTENTS_INTERSTITIAL_PAGE_IMPL_H_ |