render_frame_message_filter.h revision 1e9bf3e0803691d0a228da41fc608347b6db4340
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_render_frame_id, 31 int64 parent_frame_id, 32 int64 frame_id, 33 const std::string& frame_name, 34 int* new_render_frame_id); 35 36 const int render_process_id_; 37 38 // Needed for issuing routing ids and surface ids. 39 scoped_refptr<RenderWidgetHelper> render_widget_helper_; 40}; 41 42} // namespace content 43 44#endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_MESSAGE_FILTER_H_ 45