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 CHROME_BROWSER_PRERENDER_PRERENDER_MESSAGE_FILTER_H_ 6#define CHROME_BROWSER_PRERENDER_PRERENDER_MESSAGE_FILTER_H_ 7 8#include "base/compiler_specific.h" 9#include "content/public/browser/browser_message_filter.h" 10#include "url/gurl.h" 11 12class Profile; 13 14namespace content { 15struct Referrer; 16} 17 18namespace gfx { 19class Size; 20} 21 22namespace IPC { 23class Message; 24} 25 26namespace prerender { 27 28class PrerenderMessageFilter : public content::BrowserMessageFilter { 29 public: 30 PrerenderMessageFilter(int render_process_id, Profile* profile); 31 32 private: 33 virtual ~PrerenderMessageFilter(); 34 35 // Overridden from content::BrowserMessageFilter. 36 virtual bool OnMessageReceived(const IPC::Message& message, 37 bool* message_was_ok) OVERRIDE; 38 virtual void OverrideThreadForMessage( 39 const IPC::Message& message, 40 content::BrowserThread::ID* thread) OVERRIDE; 41 virtual void OnChannelClosing() OVERRIDE; 42 43 void OnAddPrerender(int prerender_id, 44 const GURL& url, 45 const content::Referrer& referrer, 46 const gfx::Size& size, 47 int render_view_route_id); 48 void OnCancelPrerender(int prerender_id); 49 void OnAbandonPrerender(int prerender_id); 50 51 const int render_process_id_; 52 Profile* const profile_; 53 54 DISALLOW_COPY_AND_ASSIGN(PrerenderMessageFilter); 55}; 56 57} // namespace prerender 58 59#endif // CHROME_BROWSER_PRERENDER_PRERENDER_MESSAGE_FILTER_H_ 60 61