#ifndef CHROME_RENDERER_PRERENDER_PRERENDER_DISPATCHER_H_
#define CHROME_RENDERER_PRERENDER_PRERENDER_DISPATCHER_H_
#include <map>
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "content/public/renderer/render_process_observer.h"
class GURL;
namespace prerender {
class PrerenderingSupport;
class PrerenderDispatcher : public content::RenderProcessObserver {
public:
PrerenderDispatcher();
virtual ~PrerenderDispatcher();
bool IsPrerenderURL(const GURL & url) const;
private:
friend class PrerenderDispatcherTest;
void OnAddPrerenderURL(const GURL& url);
void OnRemovePrerenderURL(const GURL& url);
virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE;
typedef std::map<GURL, int> PrerenderMap;
PrerenderMap prerender_urls_;
scoped_ptr<PrerenderingSupport> prerendering_support_;
};
}
#endif