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

Unified Diff: chrome/browser/renderer_host/resource_message_filter_gtk.cc

Issue 100321: Track which NativeViewIds each render process is allowed to interact with. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 8 months 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/resource_message_filter_gtk.cc
===================================================================
--- chrome/browser/renderer_host/resource_message_filter_gtk.cc (revision 14874)
+++ chrome/browser/renderer_host/resource_message_filter_gtk.cc (working copy)
@@ -6,6 +6,7 @@
#include "base/gfx/gtk_native_view_id_manager.h"
#include "chrome/browser/chrome_thread.h"
+#include "chrome/browser/renderer_host/renderer_security_policy.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/x11_util.h"
@@ -102,6 +103,12 @@
// Called on the IO thread.
void ResourceMessageFilter::OnGetScreenInfo(gfx::NativeViewId view,
IPC::Message* reply_msg) {
+ RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance();
+ if (!policy->HasNativeViewId(GetProcessId(), view)) {
+ NOTREACHED() << "Bad NativeViewId from render process.";
+ return;
+ }
+
ChromeThread::GetMessageLoop(ChromeThread::BACKGROUND_X11)->PostTask(
FROM_HERE, NewRunnableMethod(
this, &ResourceMessageFilter::DoOnGetScreenInfo, view, reply_msg));
@@ -110,6 +117,12 @@
// Called on the IO thread.
void ResourceMessageFilter::OnGetWindowRect(gfx::NativeViewId view,
IPC::Message* reply_msg) {
+ RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance();
+ if (!policy->HasNativeViewId(GetProcessId(), view)) {
+ NOTREACHED() << "Bad NativeViewId from render process.";
+ return;
+ }
+
ChromeThread::GetMessageLoop(ChromeThread::BACKGROUND_X11)->PostTask(
FROM_HERE, NewRunnableMethod(
this, &ResourceMessageFilter::DoOnGetWindowRect, view, reply_msg));
@@ -118,6 +131,12 @@
// Called on the IO thread.
void ResourceMessageFilter::OnGetRootWindowRect(gfx::NativeViewId view,
IPC::Message* reply_msg) {
+ RendererSecurityPolicy* policy = RendererSecurityPolicy::GetInstance();
+ if (!policy->HasNativeViewId(GetProcessId(), view)) {
+ NOTREACHED() << "Bad NativeViewId from render process.";
+ return;
+ }
+
ChromeThread::GetMessageLoop(ChromeThread::BACKGROUND_X11)->PostTask(
FROM_HERE, NewRunnableMethod(
this, &ResourceMessageFilter::DoOnGetRootWindowRect, view, reply_msg));
« no previous file with comments | « chrome/browser/renderer_host/resource_message_filter.cc ('k') | chrome/browser/renderer_host/resource_message_filter_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698