// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_RENDERER_CHROME_RENDER_FRAME_OBSERVER_H_
#define CHROME_RENDERER_CHROME_RENDER_FRAME_OBSERVER_H_
#include "base/basictypes.h"
#include "content/public/renderer/render_frame_observer.h"
namespace gfx {
class Size;
}
// This class holds the Chrome specific parts of RenderFrame, and has the same
// lifetime.
class ChromeRenderFrameObserver : public content::RenderFrameObserver {
public:
explicit ChromeRenderFrameObserver(content::RenderFrame* render_frame);
virtual ~ChromeRenderFrameObserver();
private:
// RenderFrameObserver implementation.
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
virtual void DidChangeName(const base::string16& name) OVERRIDE;
// IPC handlers
void OnSetIsPrerendering(bool is_prerendering);
void OnRequestThumbnailForContextNode(
int thumbnail_min_area_pixels,
const gfx::Size& thumbnail_max_size_pixels);
void OnPrintNodeUnderContextMenu();
DISALLOW_COPY_AND_ASSIGN(ChromeRenderFrameObserver);
};
#endif // CHROME_RENDERER_CHROME_RENDER_FRAME_OBSERVER_H_