1 // Copyright (c) 2011 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 CHROME_BROWSER_PRERENDER_PRERENDER_RENDER_VIEW_HOST_OBSERVER_H_ 6 #define CHROME_BROWSER_PRERENDER_PRERENDER_RENDER_VIEW_HOST_OBSERVER_H_ 7 8 #include <vector> 9 10 #include "content/public/browser/render_view_host_observer.h" 11 12 namespace content { 13 struct FaviconURL; 14 class RenderViewHost; 15 } 16 17 namespace IPC { 18 class Message; 19 } 20 21 namespace prerender { 22 23 class PrerenderContents; 24 25 // Observer for RenderViewHost messages. 26 class PrerenderRenderViewHostObserver : public content::RenderViewHostObserver { 27 public: 28 PrerenderRenderViewHostObserver(PrerenderContents* prerender_contents, 29 content::RenderViewHost* render_view_host); 30 31 virtual void RenderViewHostDestroyed(content::RenderViewHost* rvh) OVERRIDE; 32 33 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 34 virtual bool Send(IPC::Message* message) OVERRIDE; 35 36 void set_prerender_contents(PrerenderContents* prerender_contents) { 37 prerender_contents_ = prerender_contents; 38 } 39 40 private: 41 // Message handlers. 42 43 void OnMaybeCancelPrerenderForHTML5Media(); 44 void OnCancelPrerenderForPrinting(); 45 46 // The associated prerender contents. 47 PrerenderContents* prerender_contents_; 48 }; 49 50 } // namespace prerender 51 52 #endif // CHROME_BROWSER_PRERENDER_PRERENDER_RENDER_VIEW_HOST_OBSERVER_H_ 53