Home | History | Annotate | Download | only in prerender
      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