render_frame_message_filter.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright 2013 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 CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_MESSAGE_FILTER_H_ 6#define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_MESSAGE_FILTER_H_ 7 8#include "content/public/browser/browser_message_filter.h" 9 10namespace content { 11class RenderWidgetHelper; 12 13// RenderFrameMessageFilter intercepts FrameHost messages on the IO thread 14// that require low-latency processing. The canonical example of this is 15// child-frame creation which is a sync IPC that provides the renderer 16// with the routing id for a newly created RenderFrame. 17// 18// This object is created on the UI thread and used on the IO thread. 19class RenderFrameMessageFilter : public BrowserMessageFilter { 20 public: 21 RenderFrameMessageFilter(int render_process_id, 22 RenderWidgetHelper* render_widget_helper); 23 24 virtual bool OnMessageReceived(const IPC::Message& message, 25 bool* message_was_ok) OVERRIDE; 26 27 private: 28 virtual ~RenderFrameMessageFilter(); 29 30 void OnCreateChildFrame(int parent_routing_id, 31 const std::string& frame_name, 32 int* new_render_frame_id); 33 34 const int render_process_id_; 35 36 // Needed for issuing routing ids and surface ids. 37 scoped_refptr<RenderWidgetHelper> render_widget_helper_; 38}; 39 40} // namespace content 41 42#endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_MESSAGE_FILTER_H_ 43