Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1629)

Unified Diff: chrome/browser/renderer_host/render_message_filter.h

Issue 5874002: Create a ResourceMessageFilter to filter resource related IPCs. This gets ri... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/render_message_filter.h
===================================================================
--- chrome/browser/renderer_host/render_message_filter.h (revision 69229)
+++ chrome/browser/renderer_host/render_message_filter.h (working copy)
@@ -18,17 +18,15 @@
#include "base/callback.h"
#include "base/file_path.h"
#include "base/linked_ptr.h"
-#include "base/process.h"
-#include "base/ref_counted.h"
#include "base/string16.h"
#include "base/task.h"
#include "build/build_config.h"
+#include "chrome/browser/browser_message_filter.h"
#include "chrome/browser/in_process_webkit/webkit_context.h"
#include "chrome/browser/net/resolve_proxy_msg_helper.h"
#include "chrome/browser/renderer_host/resource_dispatcher_host.h"
#include "chrome/common/content_settings.h"
#include "gfx/native_widget_types.h"
-#include "ipc/ipc_channel_proxy.h"
#include "third_party/WebKit/WebKit/chromium/public/WebCache.h"
#include "third_party/WebKit/WebKit/chromium/public/WebPopupType.h"
@@ -46,7 +44,6 @@
struct WebPluginInfo;
namespace base {
-struct PlatformFileInfo;
class SharedMemory;
}
@@ -59,47 +56,27 @@
class PrintJobManager;
}
-namespace webkit_glue {
-struct WebCookie;
-}
-
struct ViewHostMsg_ScriptedPrint_Params;
-#if defined(OS_POSIX) && !defined(OS_MACOSX)
-struct ViewHostMsg_DidPrintPage_Params;
-#endif
-// This class filters out incoming IPC messages for network requests and
-// processes them on the IPC thread. As a result, network requests are not
-// delayed by costly UI processing that may be occuring on the main thread of
-// the browser. It also means that any hangs in starting a network request
-// will not interfere with browser UI.
-
-class RenderMessageFilter : public IPC::ChannelProxy::MessageFilter,
- public ResourceDispatcherHost::Receiver,
+// This class filters out incoming IPC messages for the renderer process on the
+// IPC thread.
+class RenderMessageFilter : public BrowserMessageFilter,
public ResolveProxyMsgHelper::Delegate {
public:
// Create the filter.
- RenderMessageFilter(ResourceDispatcherHost* resource_dispatcher_host,
- int child_id,
+ RenderMessageFilter(int render_process_id,
PluginService* plugin_service,
- printing::PrintJobManager* print_job_manager,
Profile* profile,
RenderWidgetHelper* render_widget_helper);
- // IPC::ChannelProxy::MessageFilter methods:
- virtual void OnFilterAdded(IPC::Channel* channel);
+ // BrowserMessageFilter methods:
virtual void OnChannelConnected(int32 peer_pid);
virtual void OnChannelError();
- virtual void OnChannelClosing();
- virtual bool OnMessageReceived(const IPC::Message& message);
+ virtual bool OnMessageReceived(const IPC::Message& message,
+ bool* message_was_ok);
virtual void OnDestruct() const;
- // ResourceDispatcherHost::Receiver methods:
- virtual bool Send(IPC::Message* message);
- virtual URLRequestContext* GetRequestContext(
- uint32 request_id,
- const ViewHostMsg_Resource_Request& request_data);
-
+ int render_process_id() const { return render_process_id_; }
ResourceDispatcherHost* resource_dispatcher_host() {
return resource_dispatcher_host_;
}
@@ -370,7 +347,6 @@
int routing_id);
#if defined(USE_X11)
- void SendDelayedReply(IPC::Message* reply_msg);
void DoOnGetScreenInfo(gfx::NativeViewId view, IPC::Message* reply_msg);
void DoOnGetWindowRect(gfx::NativeViewId view, IPC::Message* reply_msg);
void DoOnGetRootWindowRect(gfx::NativeViewId view, IPC::Message* reply_msg);
@@ -399,10 +375,6 @@
// thread.
static Clipboard* GetClipboard();
- // The channel associated with the renderer connection. This pointer is not
- // owned by this class.
- IPC::Channel* channel_;
-
// Cached resource request dispatcher host and plugin service, guaranteed to
// be non-null if Init succeeds. We do not own the objects, they are managed
// by the BrowserProcess, which has a wider scope than we do.
@@ -425,9 +397,6 @@
// Contextual information to be used for requests created here.
scoped_refptr<URLRequestContextGetter> request_context_;
- // A request context specific for media resources.
- scoped_refptr<URLRequestContextGetter> media_request_context_;
-
// A request context that holds a cookie store for chrome-extension URLs.
scoped_refptr<URLRequestContextGetter> extensions_request_context_;
@@ -453,9 +422,10 @@
// A callback to create a routing id for the associated renderer process.
scoped_ptr<CallbackWithReturnValue<int>::Type> next_route_id_callback_;
-
scoped_refptr<WebKitContext> webkit_context_;
+ int render_process_id_;
+
DISALLOW_COPY_AND_ASSIGN(RenderMessageFilter);
};

Powered by Google App Engine
This is Rietveld 408576698