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

Unified Diff: chrome/browser/browser_message_filter.cc

Issue 6538100: Move core pieces of chrome\browser. I've only gone up to "g", will do the re... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: take out extra stuff from content_browser.gypi Created 9 years, 10 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
« no previous file with comments | « chrome/browser/browser_message_filter.h ('k') | chrome/browser/browser_thread.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_message_filter.cc
===================================================================
--- chrome/browser/browser_message_filter.cc (revision 75626)
+++ chrome/browser/browser_message_filter.cc (working copy)
@@ -1,92 +0,0 @@
-// Copyright (c) 2010 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.
-
-#include "chrome/browser/browser_message_filter.h"
-
-#include "base/logging.h"
-#include "base/process.h"
-#include "base/process_util.h"
-#include "chrome/browser/metrics/user_metrics.h"
-#include "chrome/common/result_codes.h"
-
-BrowserMessageFilter::BrowserMessageFilter()
- : channel_(NULL), peer_handle_(base::kNullProcessHandle) {
-}
-
-BrowserMessageFilter::~BrowserMessageFilter() {
- base::CloseProcessHandle(peer_handle_);
-}
-
-void BrowserMessageFilter::OnFilterAdded(IPC::Channel* channel) {
- channel_ = channel;
-}
-
-void BrowserMessageFilter::OnChannelClosing() {
- channel_ = NULL;
-}
-
-void BrowserMessageFilter::OnChannelConnected(int32 peer_pid) {
- if (!base::OpenProcessHandle(peer_pid, &peer_handle_)) {
- NOTREACHED();
- }
-}
-
-bool BrowserMessageFilter::Send(IPC::Message* message) {
- if (message->is_sync()) {
- // We don't support sending synchronous messages from the browser. If we
- // really needed it, we can make this class derive from SyncMessageFilter
- // but it seems better to not allow sending synchronous messages from the
- // browser, since it might allow a corrupt/malicious renderer to hang us.
- NOTREACHED() << "Can't send sync message through BrowserMessageFilter!";
- return false;
- }
-
- if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
- BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- NewRunnableMethod(this, &BrowserMessageFilter::Send, message));
- return true;
- }
-
- if (channel_)
- return channel_->Send(message);
-
- delete message;
- return false;
-}
-
-void BrowserMessageFilter::OverrideThreadForMessage(const IPC::Message& message,
- BrowserThread::ID* thread) {
-}
-
-bool BrowserMessageFilter::OnMessageReceived(const IPC::Message& message) {
- BrowserThread::ID thread = BrowserThread::IO;
- OverrideThreadForMessage(message, &thread);
- if (thread == BrowserThread::IO)
- return DispatchMessage(message);
-
- BrowserThread::PostTask(
- thread, FROM_HERE,
- NewRunnableMethod(
- this, &BrowserMessageFilter::DispatchMessage, message));
- return true;
-}
-
-bool BrowserMessageFilter::DispatchMessage(const IPC::Message& message) {
- bool message_was_ok = true;
- bool rv = OnMessageReceived(message, &message_was_ok);
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO) || rv) <<
- "Must handle messages that were dispatched to another thread!";
- if (!message_was_ok) {
- UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_BMF"));
- BadMessageReceived();
- }
-
- return rv;
-}
-
-void BrowserMessageFilter::BadMessageReceived() {
- base::KillProcess(peer_handle(), ResultCodes::KILLED_BAD_MESSAGE, false);
-}
« no previous file with comments | « chrome/browser/browser_message_filter.h ('k') | chrome/browser/browser_thread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698