1 // Copyright (c) 2012 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_PUBLIC_BROWSER_INTERSTITIAL_PAGE_DELEGATE_H_ 6 #define CONTENT_PUBLIC_BROWSER_INTERSTITIAL_PAGE_DELEGATE_H_ 7 8 #include <string> 9 10 #include "content/common/content_export.h" 11 12 namespace content { 13 14 class NavigationEntry; 15 struct RendererPreferences; 16 17 // Controls and provides the html for an interstitial page. The delegate is 18 // owned by the InterstitialPage. 19 class InterstitialPageDelegate { 20 public: ~InterstitialPageDelegate()21 virtual ~InterstitialPageDelegate() {} 22 23 // Return the HTML that should be displayed in the page. 24 virtual std::string GetHTMLContents() = 0; 25 26 // Called when the interstitial is proceeded or cancelled. Note that this may 27 // be called by content directly even if the embedder didn't call Proceed or 28 // DontProceed on InterstitialPage, since navigations etc may cancel them. OnProceed()29 virtual void OnProceed() {} OnDontProceed()30 virtual void OnDontProceed() {} 31 32 // Invoked when the page sent a command through DOMAutomation. CommandReceived(const std::string & command)33 virtual void CommandReceived(const std::string& command) {} 34 35 // Invoked with the NavigationEntry that is going to be added to the 36 // navigation controller. 37 // Gives an opportunity to delegates to set states on the |entry|. 38 // Note that this is only called if the InterstitialPage was constructed with 39 // |new_navigation| set to true. OverrideEntry(content::NavigationEntry * entry)40 virtual void OverrideEntry(content::NavigationEntry* entry) {} 41 42 // Allows the delegate to override the renderer preferences structure that's 43 // sent to the new RenderViewHost. OverrideRendererPrefs(content::RendererPreferences * prefs)44 virtual void OverrideRendererPrefs(content::RendererPreferences* prefs) {} 45 }; 46 47 } // namespace content 48 49 #endif // CONTENT_PUBLIC_BROWSER_INTERSTITIAL_PAGE_DELEGATE_H_ 50