Index: content/browser/tab_contents/interstitial_page.h |
=================================================================== |
--- content/browser/tab_contents/interstitial_page.h (revision 120733) |
+++ content/browser/tab_contents/interstitial_page.h (working copy) |
@@ -22,6 +22,7 @@ |
class TabContents; |
namespace content { |
+class InterstitialPageDelegate; |
class NavigationEntry; |
class WebContents; |
class WebContentsView; |
@@ -61,15 +62,22 @@ |
// added to the navigation controller (so the interstitial page appears as a |
// new navigation entry). |new_navigation| should be false when the |
// interstitial was triggered by a loading a sub-resource in a page. |
+ // Takes ownership of |delegate|. |
+ static InterstitialPage* Create(content::WebContents* tab, |
+ bool new_navigation, |
+ const GURL& url, |
+ content::InterstitialPageDelegate* delegate); |
+ |
InterstitialPage(content::WebContents* tab, |
bool new_navigation, |
- const GURL& url); |
+ const GURL& url, |
+ content::InterstitialPageDelegate* delegate); |
virtual ~InterstitialPage(); |
// Shows the interstitial page in the tab. |
- virtual void Show(); |
+ void Show(); |
- // Hides the interstitial page. Warning: this deletes the InterstitialPage. |
+ // Hides the interstitial page. |
void Hide(); |
// Retrieves the InterstitialPage if any associated with the specified |
@@ -77,12 +85,6 @@ |
static InterstitialPage* GetInterstitialPage( |
content::WebContents* web_contents); |
- // Sub-classes should return the HTML that should be displayed in the page. |
- virtual std::string GetHTMLContents(); |
- |
- // Invoked when the page sent a command through DOMAutomation. |
- virtual void CommandReceived(const std::string& command) {} |
- |
// Reverts to the page showing before the interstitial. |
// Sub-classes should call this method when the user has chosen NOT to proceed |
// to the target URL. |
@@ -112,16 +114,17 @@ |
// Called when tab traversing. |
void FocusThroughTabTraversal(bool reverse); |
- virtual content::ViewType GetRenderViewType() const OVERRIDE; |
- |
- virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; |
- |
// 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_; } |
+ RenderViewHost* render_view_host() const { return render_view_host_; } |
+ |
+ content::InterstitialPageDelegate* GetDelegateForTesting(); |
+ void DontCreateViewForTesting(); |
+ |
protected: |
// content::NotificationObserver method: |
virtual void Observe(int type, |
@@ -148,21 +151,12 @@ |
bool* is_keyboard_shortcut) OVERRIDE; |
virtual void HandleKeyboardEvent( |
const NativeWebKeyboardEvent& event) OVERRIDE; |
+ virtual content::ViewType GetRenderViewType() const OVERRIDE; |
+ virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; |
- // Invoked with the NavigationEntry that is going to be added to the |
- // navigation controller. |
- // Gives an opportunity to sub-classes to set states on the |entry|. |
- // Note that this is only called if the InterstitialPage was constructed with |
- // |create_navigation_entry| set to true. |
- virtual void UpdateEntry(content::NavigationEntry* entry) {} |
- |
bool enabled() const { return enabled_; } |
content::WebContents* tab() const; |
const GURL& url() const { return url_; } |
- RenderViewHost* render_view_host() const { return render_view_host_; } |
- void set_renderer_preferences(const content::RendererPreferences& prefs) { |
- renderer_preferences_ = prefs; |
- } |
// Creates the RenderViewHost containing the interstitial content. |
// Overriden in unit tests. |
@@ -256,8 +250,12 @@ |
static InterstitialPageMap* tab_to_interstitial_page_; |
// Settings passed to the renderer. |
- content::RendererPreferences renderer_preferences_; |
+ mutable content::RendererPreferences renderer_preferences_; |
+ bool create_view_; |
+ |
+ scoped_ptr<content::InterstitialPageDelegate> delegate_; |
+ |
DISALLOW_COPY_AND_ASSIGN(InterstitialPage); |
}; |